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 KycAttributesResponse message.

204 No content:

There are no matching KYC attributes.

400 Bad Request:

The request is malformed. Cases include: - The $H_NORMALIZED_PAYTO or H_OFFICER_PUB path segment

is malformed. This response comes with a standard ErrorDetail response with a code of TALER_EC_GENERIC_PATH_SEGMENT_MALFORMED.

  • The required HTTP header with the signature is missing. Returned with TALER_EC_GENERIC_HTTP_HEADERS_MALFORMED.

403 Forbidden:

Two cases: - The signature is invalid. Returned with a code of

TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID.

  • The specific officer is unknown or disabled. Returned with a code of TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED.

404 Not found:

The target account is unknown to the exchange. This response comes with a standard ErrorDetail response with a code of TALER_EC_EXCHANGE_GENERIC_TARGET_ACCOUNT_UNKNOWN.

406 Not Acceptable:

The requested MIME type for the response is not supported. This response comes with a standard ErrorDetail response with a code of TALER_EC_GENERIC_REQUESTED_FORMAT_UNSUPPORTED.

500 Internal server error:

The server had an internal problem handling the request. The error code is usually a TALER_EC_GENERIC_DB_FETCH_FAILED.

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. This response comes with a standard ErrorDetail response with a code of TALER_EC_EXCHANGE_GENERIC_NO_TYPST_OR_PDFTK.

interface KycAttributesResponse {

  // 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!

}