post-aml-OFFICER_PUB-decision.rst (2999B)
1 .. http:post:: /aml/$OFFICER_PUB/decision 2 3 Make an AML decision. Triggers the respective action and 4 records the justification. 5 6 **Request:** 7 8 The request must be an `AmlDecisionRequest` message. 9 10 **Response** 11 12 :http:statuscode:`204 No content`: 13 The AML decision has been executed and recorded successfully. 14 :http:statuscode:`403 Forbidden`: 15 The signature is invalid (or the AML officer not known). 16 :http:statuscode:`404 Not found`: 17 The normalized payto-address the decision was made for is unknown to the exchange. 18 :http:statuscode:`409 Conflict`: 19 The designated AML account is not enabled or a more recent 20 decision was already submitted. 21 22 **Details:** 23 24 .. ts:def:: AmlDecisionRequest 25 26 interface AmlDecisionRequest { 27 28 // Human-readable justification for the decision. 29 justification: string; 30 31 // Hash of normalized payto-address of the account the decision is about. 32 // Identifies a GNU Taler wallet or an affected bank account. 33 h_payto: NormalizedPaytoHash; 34 35 // Full payto address of the account the decision is about. 36 // Optional. Must be given if the account is not yet 37 // known to the exchange. If given, must match ``h_payto`` 38 // (when normalized and then hashed). 39 // @since protocol **v21**. 40 payto_uri?: string; 41 42 // What are the new rules? 43 // New since protocol **v20**. 44 new_rules: LegitimizationRuleSet; 45 46 // What are the new account properties? 47 // New since protocol **v20**. 48 properties: AccountProperties; 49 50 // Array of AML/KYC events to trigger for statistics. 51 // Note that this information is not covered by the signature 52 // (which is OK as events are just for statistics). 53 // New since protocol **v24**. 54 events?: string[]; 55 56 // Space-separated list of measures to trigger 57 // immediately on the account. 58 // Prefixed with a "+" to indicate that the 59 // measures should be ANDed. 60 // Should typically be used to give the user some 61 // information or request additional information. 62 // 63 // At most one measure with a SKIP check may be specified. 64 // 65 // @since protocol **v21**. 66 new_measures?: string; 67 68 // True if the account should remain under investigation by AML staff. 69 // @since protocol **v20**. 70 keep_investigating: boolean; 71 72 // Signature by the AML officer over a `TALER_AmlDecisionPS`. 73 // Must have purpose ``TALER_SIGNATURE_MASTER_AML_KEY``. 74 officer_sig: EddsaSignature; 75 76 // When was the decision made? 77 decision_time: Timestamp; 78 79 // KYC attributes uploaded by the AML officer 80 // The object *must* contain high-entropy salt, 81 // as the hash of the attributes will be 82 // stored in plain text. 83 attributes?: CustomerKycAttributes; 84 85 // Expiration timestamp of the attributes. 86 // Mandatory if attributes are present. 87 attributes_expiration?: Timestamp; 88 89 }