put-deposit-confirmation.rst (3007B)
1 .. http:put:: /deposit-confirmation 2 3 Submits a `DepositConfirmation` to the exchange. Should succeed 4 unless the signature provided is invalid or the exchange is not 5 audited by this auditor. 6 7 **Response:** 8 9 :http:statuscode:`200 Ok`: 10 The auditor responds with a `DepositAudited` object. 11 This request should virtually always be successful. 12 :http:statuscode:`403 Forbidden`: 13 The signature on the deposit confirmation is invalid. 14 :http:statuscode:`410 Gone`: 15 The public key used to sign the deposit confirmation 16 was revoked. 17 18 **Details:** 19 20 .. ts:def:: DepositAudited 21 22 interface DepositAudited { 23 // TODO: maybe change to ``204 No content`` instead? 24 } 25 26 .. ts:def:: DepositConfirmation 27 28 interface DepositConfirmation { 29 30 // Hash over the contract for which this deposit is made. 31 h_contract_terms: HashCode; 32 33 // Hash over the extensions. 34 h_extensions: HashCode; 35 36 // Hash over the wiring information of the merchant. 37 h_wire: HashCode; 38 39 // Time when the deposit confirmation confirmation was generated. 40 timestamp: Timestamp; 41 42 // How much time does the merchant have to issue a refund 43 // request? Zero if refunds are not allowed. 44 refund_deadline: Timestamp; 45 46 // By what time does the exchange have to wire the funds? 47 wire_deadline: Timestamp; 48 49 // Amount to be deposited, excluding fee. Calculated from the 50 // amount with fee and the fee from the deposit request. 51 amount_without_fee: Amount; 52 53 // Array of public keys of the deposited coins. 54 coin_pubs: EddsaPublicKey[]; 55 56 // Array of deposit signatures of the deposited coins. 57 // Must have the same length as ``coin_pubs``. 58 coin_sigs: EddsaSignature[]; 59 60 // The Merchant's public key. Allows the merchant to later refund 61 // the transaction or to inquire about the wire transfer identifier. 62 merchant_pub: EddsaPublicKey; 63 64 // Signature from the exchange of type 65 // ``TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT``. 66 exchange_sig: EddsaSignature; 67 68 // Public signing key from the exchange matching ``exchange_sig``. 69 exchange_pub: EddsaPublicKey; 70 71 // Master public key of the exchange corresponding to ``master_sig``. 72 // Identifies the exchange this is about. 73 // @deprecated since v1 (now ignored, global per auditor) 74 master_pub: EddsaPublicKey; 75 76 // When does the validity of the exchange_pub end? 77 ep_start: Timestamp; 78 79 // When will the exchange stop using the signing key? 80 ep_expire: Timestamp; 81 82 // When does the validity of the exchange_pub end? 83 ep_end: Timestamp; 84 85 // Exchange master signature over ``exchange_sig``. 86 master_sig: EddsaSignature; 87 } 88 89 .. note:: 90 91 This endpoint is still experimental (and is not yet implemented at the 92 time of this writing). A key open question is whether the auditor 93 should sign the response information.