path: root/core
diff options
authorChristian Grothoff <>2020-08-24 13:39:00 +0200
committerChristian Grothoff <>2020-08-24 13:39:00 +0200
commit7e59a22f266a829156e29aa9d8bb5acc2d6abc0d (patch)
treecc34297e82b84a07250f79fbd6eb1870077c3c6e /core
parentd86e4e6e844dd9aee47fe77c62def8470e501d44 (diff)
update spec based on discussion with Florian
Diffstat (limited to 'core')
1 files changed, 9 insertions, 5 deletions
diff --git a/core/api-merchant.rst b/core/api-merchant.rst
index 51b08a8..23f4cba 100644
--- a/core/api-merchant.rst
+++ b/core/api-merchant.rst
@@ -718,9 +718,12 @@ Payment processing
summary: string;
// URL that will show that the order was successful after
- // it has been paid for. The wallet must always automatically append
- // the order_id as a query parameter to this URL when using it.
- fulfillment_url: string;
+ // it has been paid for. Optional. When POSTing to the
+ // merchant, the placeholder "${ORDER_ID}" will be
+ // replaced with the actual order ID (useful if the
+ // order ID is generated server-side and needs to be
+ // in the URL).
+ fulfillment_url?: string;
The following fields can be specified if the order is inventory-based.
@@ -1418,7 +1421,8 @@ Payment processing
:status 402 PaymentRequired:
The response is a `StatusUnpaidResponse`.
:status 403 Forbidden:
- The ``h_contract`` (or the ``token`` for unclaimed orders) does not match the order.
+ The ``h_contract`` (or the ``token`` for unclaimed orders) does not match the order
+ and we have no fulfillment URL in the contract.
:status 410 Gone:
The response is a `StatusGoneResponse`.
:status 404 Not found:
@@ -2464,7 +2468,7 @@ The contract terms must have the following structure:
// The URL for this purchase. Every time is is visited, the merchant
// will send back to the customer the same proposal. Clearly, this URL
// can be bookmarked and shared by users.
- fulfillment_url: string;
+ fulfillment_url?: string;
// Maximum total deposit fee accepted by the merchant for this contract
max_fee: Amount;