taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

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.