From 13f339060c4b475227214cb000df02db7592aa1a Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Fri, 12 Jun 2020 10:15:36 +0200 Subject: update spec --- core/api-merchant.rst | 64 ++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 31 deletions(-) (limited to 'core') diff --git a/core/api-merchant.rst b/core/api-merchant.rst index 2110a897..407dd46f 100644 --- a/core/api-merchant.rst +++ b/core/api-merchant.rst @@ -1063,14 +1063,8 @@ Receiving Payments Returns a `MerchantOrderStatusResponse`, whose format can differ based on the status of the payment. :status 404 Not Found: The order or instance is unknown to the backend. - :status 409 Conflict: - The exchange previously claimed that a deposit was not included in a wire - transfer, and now claims that it is. This means that the exchange is - dishonest. The response contains the cryptographic proof that the exchange - is misbehaving in the form of a `TransactionConflictProof`. :status 424 Failed dependency: - We failed to obtain a response from the exchange about the - wire transfer status. + We failed to obtain a response from the exchange (about the wire transfer status). .. ts:def:: MerchantOrderStatusResponse @@ -1085,26 +1079,39 @@ Receiving Payments // Was the payment refunded (even partially) refunded: boolean; + // Did the exchange wire us the funds + wired: boolean; + // Total amount the exchange deposited into our bank account // for this contract, excluding fees. - deposits_total: Amount; + deposit_total: Amount; + + // Numeric `error code ` indicating errors the exchange + // encountered tracking the wire transfer for this purchase (before + // we even got to specific coin issues). + // 0 if there were no issues. + exchange_ec: number; - // Total value of the coins the exchange deposited into our bank account - // for this contract, includes the fees (which the exchange charged). - transfer_value_total: Amount; + // HTTP status code returned by the exchange when we asked for + // information to track the wire transfer for this purchase. + // 0 if there were no issues. + exchange_hc: number; - // Total amount that was refunded, only present if refunded is true. - refund_amount?: Amount; + // Total amount that was refunded, 0 if refunded is false. + refund_amount: Amount; // Contract terms contract_terms: ContractTerms; - // If available, the wire transfer status from the exchange for this order - wire_details?: TransactionWireTransfer[]; + // Ihe wire transfer status from the exchange for this order if available, otherwise empty array + wire_details: TransactionWireTransfer[]; + + // Reports about trouble obtaining wire transfer details, empty array if no trouble were encountered. + wire_reports: TransactionWireReport[]; - // If available, the refund details for this order. One entry per - // refunded coin. - refund_details?: RefundDetails[]; + // The refund details for this order. One entry per + // refunded coin; empty array if there are no refunds. + refund_details: RefundDetails[]; } .. ts:def:: CheckPaymentUnpaidResponse @@ -1159,33 +1166,28 @@ Receiving Payments confirmed: boolean; } - .. ts:def:: TransactionConflictProof + .. ts:def:: TransactionWireReport - interface TransactionConflictProof { + interface TransactionWireReport { // Numerical `error code ` code: number; // Human-readable error description hint: string; - // A claim by the exchange about the transactions associated - // with a given wire transfer; it does not list the - // transaction that ``transaction_tracking_claim`` says is part - // of the aggregate. This is - // a ``/track/transfer`` response from the exchange. - wtid_tracking_claim: TrackTransferResponse; + // Numerical `error code ` from the exchange. + exchange_ec: number; - // The current claim by the exchange that the given - // transaction is included in the above WTID. - // (A response from ``/track/order``). - transaction_tracking_claim: TrackTransactionResponse; + // HTTP status code received from the exchange. + exchange_hc: number; - // Public key of the coin for which we got conflicting information. + // Public key of the coin for which we got the exchange error. coin_pub: CoinPublicKey; } + .. http:get:: /orders/$ORDER_ID/ Query the payment status of an order. This endpoint is for the wallet. -- cgit v1.2.3