post-private-accounts-H_WIRE-kycauth.rst (2574B)
1 .. http:post:: [/instances/$INSTANCE]/private/accounts/$H_WIRE/kycauth 2 3 Request from the backend to create wire transfer instructions for 4 a KYC Auth transfer for a particular bank account and exchange. 5 6 KYC Auth transfers may be required by an exchange when an account is 7 activated for the first time. Furthermore, obtaining the correct 8 wire transfer instructions may require getting details from the 9 exchange and interacting with the banking system to produce a proper 10 (short) wire transfer subject and a transferrable minimum amount. 11 Thus, this endpoint should be used to obtain the wire transfer 12 instructions for a KYC Auth wire transfer when onboarding a new 13 bank account at an exchange that requires proof of control over the 14 bank account via a wire transfer. 15 16 Since protocol **v28**. 17 18 **Required permission:** ``accounts-read`` 19 20 **Request:** 21 22 The request must provide `exchange information <KycAuthExchangeSelectionRequest>`. 23 24 **Response:** 25 26 :http:statuscode:`200 Ok`: 27 Wire transfer instructions are returned in the 28 `response <KycAuthWireTransferInstructionResponse>`. 29 :http:statuscode:`404 Not found`: 30 The instance or account are unknown to the exchange. 31 :http:statuscode:`413 Request entity too large`: 32 The uploaded body is to long, it exceeds the size limit. 33 Returned with an error code of 34 ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. 35 36 **Details:** 37 38 .. ts:def:: KycAuthExchangeSelectionRequest 39 40 interface KycAuthExchangeSelectionRequest { 41 42 // Base URL of the exchange for which KYC Auth wire 43 // transfer instructions are requested. 44 exchange_url: string; 45 } 46 47 .. ts:def:: KycAuthWireTransferInstructionResponse 48 49 interface KycAuthWireTransferInstructionResponse { 50 51 // Array of possible wire transfers to do. There might 52 // be more than one possibility, for example if the 53 // exchange supports multiple bank accounts. 54 wire_instructions: WireTransferInstructionDetail[]; 55 56 } 57 58 .. ts:def:: WireTransferInstructionDetail 59 60 interface WireTransferInstructionDetail { 61 62 // Amount to wire (minimum amount, as per ``tiny_amount`` 63 // of the ``/keys`` of the exchange). 64 amount: Amount; 65 66 // Full payto:// URL of the (exchange) bank account to which the 67 // money should be sent, excludes the wire subject and the amount. 68 target_payto: string; 69 70 // Subject to use. See also DD80! 71 subject: TransferSubject; 72 73 // Expiration date after which this subject might be reused 74 expiration: Timestamp; 75 76 }