Contents

POST /aml/$OFFICER_PUB/render-form#

Render a filled AML/KYC form as a PDF without storing it or associating it with an account.

This endpoint was introduced in protocol v41. It is available to both read-only and read-write AML officers.

Request:

Taler-AML-Officer-Signature:

The client must provide a Base-32 encoded EdDSA signature made with $OFFICER_PRIV, affirming the desire to access AML data. This is the same query signature used by the other AML officer read endpoints; the request body is not covered by the signature.

The request body must be a CustomerKycAttributes JSON object with a string-valued FORM_ID. FORM_VERSION describes the version of the completed form, but does not select the installed Typst package version.

Before rendering, fields missing from the request are filled from the exchange’s GLOBAL_PDF_FORM_DATA configuration. Values explicitly sent by the client take precedence. The endpoint renders only the selected form: it does not add an account cover sheet or attachments from file-valued form attributes.

Response:

200 OK:

The response body is the rendered document with content type application/pdf.

400 Bad Request:

The body is not a JSON object, FORM_ID is absent or not a string, or an HTTP authentication header is malformed. Returned with an error code such as TALER_EC_GENERIC_PARAMETER_MALFORMED or TALER_EC_GENERIC_HTTP_HEADERS_MALFORMED.

403 Forbidden:

The signature is invalid, or the AML officer is unknown or disabled. Returned with TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID or TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED.

413 Request Entity Too Large:

The request body exceeds the upload size limit. Returned with TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT.

500 Internal Server Error:

Typst could not render the requested form, for example because the form package is unknown or required data is missing. The response is a standard ErrorDetail describing the rendering failure.

501 Not Implemented:

PDF rendering is unavailable at this exchange backend. Returned with TALER_EC_EXCHANGE_GENERIC_NO_TYPST_OR_PDFTK.