summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/api-common.rst2
-rw-r--r--api/api-exchange.rst5
-rw-r--r--api/api-merchant.rst17
3 files changed, 22 insertions, 2 deletions
diff --git a/api/api-common.rst b/api/api-common.rst
index 944bafca..0d4cf50f 100644
--- a/api/api-common.rst
+++ b/api/api-common.rst
@@ -600,6 +600,7 @@ within the
* purpose.purpose = TALER_SIGNATURE_MASTER_WIRE_FEES
*/
struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
+ struct GNUNET_HashCode h_wire_method;
struct GNUNET_TIME_AbsoluteNBO start_date;
struct GNUNET_TIME_AbsoluteNBO end_date;
struct TALER_AmountNBO wire_fee;
@@ -642,6 +643,7 @@ within the
*/
struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
struct TALER_AmountNBO total;
+ struct TALER_AmountNBO wire_fee;
struct TALER_MerchantPublicKeyP merchant_pub;
struct GNUNET_HashCode h_wire;
struct GNUNET_HashCode h_details;
diff --git a/api/api-exchange.rst b/api/api-exchange.rst
index 876f1631..d3014cb8 100644
--- a/api/api-exchange.rst
+++ b/api/api-exchange.rst
@@ -260,7 +260,7 @@ Obtaining wire-transfer information
// Wire transfer fee structure. Specifies aggregate wire transfer fees.
fees: AggregateTransferFee[];
- // Signaure of `TALER_MasterWireDetailsPS`_ with purpose TALER_SIGNATURE_MASTER_TEST_DETAILS
+ // Signature of `TALER_MasterWireDetailsPS`_ with purpose TALER_SIGNATURE_MASTER_TEST_DETAILS
// Note that the `h_sepa_details` field of `TALER_MasterWireDetailsPS`_ is computed
// by concatenating all of the above fields (in the same order they appear) and then
// by hashing the obtained concatenation.
@@ -990,6 +990,9 @@ typically also view the balance.)
// Total amount transferred
total: Amount;
+ // Applicable wire fee that was charged
+ wire_fee: Amount;
+
// public key of the merchant (identical for all deposits)
merchant_pub: EddsaPublicKey;
diff --git a/api/api-merchant.rst b/api/api-merchant.rst
index 3bad4917..5b0e71e9 100644
--- a/api/api-merchant.rst
+++ b/api/api-merchant.rst
@@ -477,6 +477,21 @@ The `offer` must have the following structure:
// Maximum total deposit fee accepted by the merchant for this contract
max_fee: Amount;
+ // Maximum wire fee accepted by the merchant (customer share to be
+ // divided by the 'wire_fee_amortization' factor, and further reduced
+ // if deposit fees are below 'max_fee'). Default if missing is zero.
+ max_wire_fee: Amount;
+
+ // Over how many customer transactions does the merchant expect to
+ // amortize wire fees on average? If the exchange's wire fee is
+ // above 'max_wire_fee', the difference is divided by this number
+ // to compute the expected customer's contribution to the wire fee.
+ // The customer's contribution may further be reduced by the difference
+ // between the 'max_fee' and the sum of the actual deposit fees.
+ // Optional, default value if missing is 1. 0 and negative values are
+ // invalid and also interpreted as 1.
+ wire_fee_amortization: Integer;
+
// A free-form identifier for this transaction.
transaction_id: string;
@@ -512,7 +527,7 @@ The `offer` must have the following structure:
locations: { [label: string]: [location: Location], ... };
// Extra data that is only interpreted by the merchant frontend.
- // Useful when the merchant needs to store extra information on a
+ // Useful when the merchant needs to store extra information on a
// contract without storing it separately in their database.
extra: any;
}