Contents

PUT /deposit-confirmation#

Submits a DepositConfirmation to the exchange. Should succeed unless the signature provided is invalid or the exchange is not audited by this auditor.

Response:

200 Ok:

The auditor responds with a DepositAudited object. This request should virtually always be successful.

403 Forbidden:

The signature on the deposit confirmation is invalid.

410 Gone:

The public key used to sign the deposit confirmation was revoked.

Details:

interface DepositAudited {
  // TODO: maybe change to 204 No content instead?
}
interface DepositConfirmation {

  // Hash over the contract for which this deposit is made.
  h_contract_terms: HashCode;

  // Hash over the extensions.
  h_extensions: HashCode;

  // Hash over the wiring information of the merchant.
  h_wire: HashCode;

  // Time when the deposit confirmation confirmation was generated.
  timestamp: Timestamp;

  // How much time does the merchant have to issue a refund
  // request?  Zero if refunds are not allowed.
  refund_deadline: Timestamp;

  // By what time does the exchange have to wire the funds?
  wire_deadline: Timestamp;

  // Amount to be deposited, excluding fee.  Calculated from the
  // amount with fee and the fee from the deposit request.
  amount_without_fee: Amount;

  // Array of public keys of the deposited coins.
  coin_pubs: EddsaPublicKey[];

  // Array of deposit signatures of the deposited coins.
  // Must have the same length as coin_pubs.
  coin_sigs: EddsaSignature[];

  // The Merchant's public key.  Allows the merchant to later refund
  // the transaction or to inquire about the wire transfer identifier.
  merchant_pub: EddsaPublicKey;

  // Signature from the exchange of type
  // TALER_SIGNATURE_EXCHANGE_CONFIRM_DEPOSIT.
  exchange_sig: EddsaSignature;

  // Public signing key from the exchange matching exchange_sig.
  exchange_pub: EddsaPublicKey;

  // Master public key of the exchange corresponding to master_sig.
  // Identifies the exchange this is about.
  // @deprecated since v1 (now ignored, global per auditor)
  master_pub: EddsaPublicKey;

  // When does the validity of the exchange_pub end?
  ep_start: Timestamp;

  // When will the exchange stop using the signing key?
  ep_expire: Timestamp;

  // When does the validity of the exchange_pub end?
  ep_end: Timestamp;

  // Exchange master signature over exchange_sig.
  master_sig: EddsaSignature;
}

Note

This endpoint is still experimental (and is not yet implemented at the time of this writing). A key open question is whether the auditor should sign the response information.