post-reserves-RESERVE_PUB-attest.rst (2307B)
1 .. http:post:: /reserves/$RESERVE_PUB/attest 2 3 Request signed KYC information about the owner of a reserve. 4 This can be used by a reserve owner to include a proof 5 of their identity in invoices. 6 7 **Request:** 8 9 The request body must be a `ReserveAttestRequest` object. 10 11 **Response:** 12 13 :http:statuscode:`200 OK`: 14 The exchange responds with a `ReserveAttestResponse` object. 15 :http:statuscode:`400 Bad Request`: 16 The ``$RESERVE_PUB`` is malformed. 17 This response comes with a standard `ErrorDetail` response with 18 a code of ``TALER_EC_GENERIC_RESERVE_PUB_MALFORMED``. 19 :http:statuscode:`403 Forbidden`: 20 The *TALER_SIGNATURE_WALLET_KYC_DETAILS* signature is invalid. 21 This response comes with a standard `ErrorDetail` response. 22 :http:statuscode:`404 Not found`: 23 The reserve key does not belong to a reserve known to the exchange. 24 :http:statuscode:`409 Conflict`: 25 The exchange does not have the requested KYC information. 26 :http:statuscode:`413 Request entity too large`: 27 The uploaded body is to long, it exceeds the size limit. 28 Returned with an error code of 29 ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. 30 31 **Details:** 32 33 .. ts:def:: ReserveAttestRequest 34 35 interface ReserveAttestRequest { 36 // Signature of purpose 37 // ``TALER_SIGNATURE_WALLET_ATTEST_DETAILS`` over 38 // a `TALER_WalletReserveAttestRequestSignaturePS`. 39 reserve_sig: EddsaSignature; 40 41 // Client's time for the request. 42 request_timestamp: Timestamp; 43 44 // Array of KYC attributes requested. 45 details: string[]; 46 } 47 48 .. ts:def:: ReserveAttestResponse 49 50 interface ReserveAttestResponse { 51 // Signature of purpose 52 // ``TALER_SIGNATURE_EXCHANGE_RESERVE_ATTEST_DETAILS`` over 53 // a `TALER_ExchangeAttestPS`. 54 exchange_sig: EddsaSignature; 55 56 // Exchange public key used to create the 57 // signature. 58 exchange_pub: EddsaPublicKey; 59 60 // Time when the exchange created the signature. 61 exchange_timestamp: Timestamp; 62 63 // Expiration time for the provided information. 64 expiration_time: Timestamp; 65 66 // KYC details (key-value pairs) as requested. 67 // The keys will match the elements of the 68 // ``details`` array from the request. 69 attributes: CustomerKycAttributes; 70 }