summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/api-merchant.rst34
1 files changed, 33 insertions, 1 deletions
diff --git a/core/api-merchant.rst b/core/api-merchant.rst
index e20b5319..2cc57ae0 100644
--- a/core/api-merchant.rst
+++ b/core/api-merchant.rst
@@ -1021,6 +1021,8 @@ Receiving Payments
.. ts:def:: RefundResult
+ // RefundResult differs from RefundDetail as in this case we
+ // can generate a substantially shorter response.
interface RefundResult {
// HTTP status of the request to the exchange.
exchange_status: integer;
@@ -1185,7 +1187,7 @@ Receiving Payments
// Amount that was refunded in total.
refund_amount: Amount;
- // Refunds for this payment, empty array for none.
+ // Successful refunds for this payment, empty array for none.
refunds: RefundDetail[];
// URI that the wallet must process to complete the payment.
@@ -1197,6 +1199,36 @@ Receiving Payments
}
+ .. ts:def:: RefundDetail
+
+ // Additional details needed to verify the refund confirmation signature
+ // (``h_contract_terms`` and ``merchant_pub``) are already known
+ // to the wallet and thus not included.
+ interface RefundDetail {
+
+ // the EdDSA :ref:`signature` (binary-only) with purpose
+ // `TALER_SIGNATURE_EXCHANGE_CONFIRM_REFUND` using a current signing key of the
+ // exchange affirming the successful refund
+ exchange_sig: EddsaSignature;
+
+ // public EdDSA key of the exchange that was used to generate the signature.
+ // Should match one of the exchange's signing keys from /keys. It is given
+ // explicitly as the client might otherwise be confused by clock skew as to
+ // which signing key was used.
+ exchange_pub: EddsaPublicKey;
+
+ // Refund transaction ID.
+ rtransaction_id: Integer;
+
+ // public key of a coin that was refunded
+ coin_pub: EddsaPublicKey;
+
+ // Amount that was refunded, including refund fee charged by the exchange
+ // to the customer.
+ refund_amout: Amount;
+
+ }
+
.. http:delete:: /private/orders/$ORDER_ID