- GET /aml/$OFFICER_PUB/measures#
To enable the AML staff SPA to give AML staff a choice of possible measures, a new endpoint
/aml/$OFFICER_PUB/measuresis added that allows the AML SPA to dynamically GET the list of available measures. It returns a list of known KYC checks (by name) with their descriptions and a list of AML programs with information about the required context.This endpoint was introduced in protocol v20.
Request:
- Taler-AML-Officer-Signature:
The client must provide Base-32 encoded EdDSA signature with
$OFFICER_PRIV, affirming the desire to obtain AML data. Note that this is merely a simple authentication mechanism, the details of the request are not protected by the signature.
Response:
- 200 Ok:
Information about possible measures is returned in a AvailableMeasureSummary object.
Details:
interface AvailableMeasureSummary { // Available original measures that can be // triggered directly by default rules. roots: { "$measure_name" : MeasureInformation; }; // Available AML programs. programs: { "$prog_name" : AmlProgramRequirement; }; // Available KYC checks. checks: { "$check_name" : KycCheckInformation; }; // Default KYC rules. This is the set of KYC rules that // applies by default to new "accounts". Note that some // rules only apply to wallets, while others only apply to // bank accounts. The returned array is the union of all // possible rules, applications should consider the // operation_type to filter for rules that actually // apply to a specific situation. // @since protocol **v28**. default_rules: KycRule[]; }
interface MeasureInformation { // Name of a KYC check. check_name: string; // Name of an AML program. // Optional @since protocol **v30**. prog_name?: string; // Context for the check. Optional. context?: Object; // Operation that this measure relates to. // NULL if unknown. Useful as a hint to the // user if there are many (voluntary) measures // and some related to unlocking certain operations. // (and due to zero-amount thresholds, no measure // was actually specifically triggered). // // Must be one of "WITHDRAW", "DEPOSIT", // (p2p) "MERGE", (wallet) "BALANCE", // (reserve) "CLOSE", "AGGREGATE", // "TRANSACTION" or "REFUND". // @since protocol **v21**. operation_type?: string; // Can this measure be undertaken voluntarily? // Optional, default is false. // @since protocol **vATTEST**. voluntary?: boolean; }
interface AmlProgramRequirement { // Description of what the AML program does. description: string; // List of required field names in the context to run this // AML program. SPA must check that the AML staff is providing // adequate CONTEXT when defining a measure using this program. context: string[]; // List of required attribute names in the // input of this AML program. These attributes // are the minimum that the check must produce // (it may produce more). inputs: string[]; }
interface KycCheckInformation { // Description of the KYC check. Should be shown // to the AML staff but will also be shown to the // client when they initiate the check in the KYC SPA. description: string; // Map from IETF BCP 47 language tags to localized // description texts. description_i18n ?: { [lang_tag: string]: string}; // Names of the fields that the CONTEXT must provide // as inputs to this check. // SPA must check that the AML staff is providing // adequate CONTEXT when defining a measure using // this check. requires: string[]; // Names of the attributes the check will output. // SPA must check that the outputs match the // required inputs when combining a KYC check // with an AML program into a measure. outputs: string[]; // Name of a root measure taken when this check fails. fallback: string; }