- POST /reserves/$RESERVE_PUB/attest#
Request signed KYC information about the owner of a reserve. This can be used by a reserve owner to include a proof of their identity in invoices.
Request:
The request body must be a ReserveAttestRequest object.
Response:
- 200 OK:
The exchange responds with a ReserveAttestResponse object.
- 400 Bad Request:
The request is malformed. This response comes with a standard ErrorDetail response. Possible error codes include
TALER_EC_GENERIC_RESERVE_PUB_MALFORMEDorTALER_EC_EXCHANGE_GENERIC_CLOCK_SKEW.- 403 Forbidden:
The TALER_SIGNATURE_WALLET_KYC_DETAILS signature is invalid. This response comes with a standard ErrorDetail response with a code of
TALER_EC_EXCHANGE_RESERVES_ATTEST_BAD_SIGNATURE.- 404 Not found:
The reserve key does not belong to a reserve known to the exchange. This response comes with a standard ErrorDetail response with a code of
TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN.- 409 Conflict:
The exchange does not have the requested KYC information.
- 413 Request entity too large:
The uploaded body is to long, it exceeds the size limit. Returned with an error code of
TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT.- 500 Internal Server Error:
The server experienced an internal error. This response comes with a standard ErrorDetail response. Possible error codes include
TALER_EC_GENERIC_DB_FETCH_FAILEDorTALER_EC_GENERIC_JSON_ALLOCATION_FAILURE.
Details:
interface ReserveAttestRequest { // Signature of purpose // TALER_SIGNATURE_WALLET_ATTEST_DETAILS over // a TALER_WalletReserveAttestRequestSignaturePS. reserve_sig: EddsaSignature; // Client's time for the request. request_timestamp: Timestamp; // Array of KYC attributes requested. details: string[]; }
interface ReserveAttestResponse { // Signature of purpose // TALER_SIGNATURE_EXCHANGE_RESERVE_ATTEST_DETAILS over // a TALER_ExchangeAttestPS. exchange_sig: EddsaSignature; // Exchange public key used to create the // signature. exchange_pub: EddsaPublicKey; // Time when the exchange created the signature. exchange_timestamp: Timestamp; // Expiration time for the provided information. expiration_time: Timestamp; // KYC details (key-value pairs) as requested. // The keys will match the elements of the // details array from the request. attributes: CustomerKycAttributes; }