Contents

GET /aml/$OFFICER_PUB/attributes/$H_NORMALIZED_PAYTO#

Obtain attributes obtained as part of AML/KYC processes for a given account.

This endpoint was introduced in protocol v20.

Request:

Accept:

The client may specify the desired MIME-type for the result. Supported are the usual “application/json”, but also “application/pdf”.

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.

Query Parameters:
  • limitOptional. takes value of the form N (-N), so that at most N values strictly older (younger) than start are returned. Defaults to -20 to return the last 20 entries (before start).

  • offsetOptional. Row number threshold, see delta for its interpretation. Defaults to INT64_MAX, namely the biggest row id possible in the database.

Response:

200 OK:

The responds will be an KycAttributes message.

204 No content:

There are no matching KYC attributes.

403 Forbidden:

The signature is invalid.

404 Not found:

The designated AML account is not known.

409 Conflict:

The designated AML account is not enabled.

501 Not implemented:

The requested functionality is not implemented. Usually returned if the PDF generator is not available at this backend and the requested format was application/pdf.

interface KycAttributes {

  // Matching KYC attribute history of the account.
  details: KycAttributeCollectionEvent[];

}
interface KycAttributeCollectionEvent {

  // Row ID of the record.  Used to filter by offset.
  rowid: Integer;

  // True if the attributes were filed by an AML officer,
  // otherwise they were provided directly by the customer.
  by_aml_officer: boolean;

  // The collected KYC data.  NULL if the attribute data could not
  // be decrypted (internal error of the exchange, likely the
  // attribute key was changed).
  attributes?: CustomerKycAttributes;

  // Time when the KYC data was collected
  collection_time: Timestamp;

}
interface CustomerKycAttributes {

  // ID of the Form that was used to submit the attributes and/or
  // that should be used to *render* the attributes.
  // Mandatory since **v31**.
  FORM_ID: string;

  // Version of the form completed by the user.
  FORM_VERSION?: Integer;

  // High entropy value used in forms where hash is going to be stored in
  // plain text.
  FORM?_SALT: string;

  // Attributes can have basically arbitrary additional
  // Key-value pairs. See the
  // gnu-taler-form-attributes registry in GANA
  // for possible keys!

}