taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

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     }