- POST /aml/$OFFICER_PUB/decision#
Make an AML decision. Triggers the respective action and records the justification.
Request:
The request must be an AmlDecisionRequest message.
Response
- 204 No content:
The AML decision has been executed and recorded successfully.
- 403 Forbidden:
The signature is invalid (or the AML officer not known).
- 404 Not found:
The normalized payto-address the decision was made for is unknown to the exchange.
- 409 Conflict:
The designated AML account is not enabled or a more recent decision was already submitted.
Details:
interface AmlDecisionRequest { // Human-readable justification for the decision. justification: string; // Hash of normalized payto-address of the account the decision is about. // Identifies a GNU Taler wallet or an affected bank account. h_payto: NormalizedPaytoHash; // Full payto address of the account the decision is about. // Optional. Must be given if the account is not yet // known to the exchange. If given, must match h_payto // (when normalized and then hashed). // @since protocol **v21**. payto_uri?: string; // What are the new rules? // New since protocol **v20**. new_rules: LegitimizationRuleSet; // What are the new account properties? // New since protocol **v20**. properties: AccountProperties; // Array of AML/KYC events to trigger for statistics. // Note that this information is not covered by the signature // (which is OK as events are just for statistics). // New since protocol **v24**. events?: string[]; // Space-separated list of measures to trigger // immediately on the account. // Prefixed with a "+" to indicate that the // measures should be ANDed. // Should typically be used to give the user some // information or request additional information. // // At most one measure with a SKIP check may be specified. // // @since protocol **v21**. new_measures?: string; // True if the account should remain under investigation by AML staff. // @since protocol **v20**. keep_investigating: boolean; // Signature by the AML officer over a TALER_AmlDecisionPS. // Must have purpose TALER_SIGNATURE_MASTER_AML_KEY. officer_sig: EddsaSignature; // When was the decision made? decision_time: Timestamp; // KYC attributes uploaded by the AML officer // The object *must* contain high-entropy salt, // as the hash of the attributes will be // stored in plain text. attributes?: CustomerKycAttributes; // Expiration timestamp of the attributes. // Mandatory if attributes are present. attributes_expiration?: Timestamp; }