summaryrefslogtreecommitdiff
path: root/design-documents/037-wallet-transactions-lifecycle.rst
diff options
context:
space:
mode:
Diffstat (limited to 'design-documents/037-wallet-transactions-lifecycle.rst')
-rw-r--r--design-documents/037-wallet-transactions-lifecycle.rst43
1 files changed, 16 insertions, 27 deletions
diff --git a/design-documents/037-wallet-transactions-lifecycle.rst b/design-documents/037-wallet-transactions-lifecycle.rst
index 90b39ee1..be39e076 100644
--- a/design-documents/037-wallet-transactions-lifecycle.rst
+++ b/design-documents/037-wallet-transactions-lifecycle.rst
@@ -429,13 +429,22 @@ Transaction Type: Payment to Merchant
completed. It is not relevant for auto-refunds or refunds for incomplete
payments.
- * ``[refunds-checked] => done`` --- Refunds were checked, this
- might create new refund transactions.
+ * ``[refunds-checked] => pending(user-new-refunds)`` --- New
+ refund(s) are available, user needs to confirm.
+ * ``[refunds-checked] => done`` --- Refunds were checked, but no
+ new refunds are available.
* ``[action:stop-refund-query] => done`` ---
This action would usually only be offered when the state is pending
with errors. It stops the refund query, but the payment of course
is left intact.
+* ``pending(user-new-refunds)``
+
+ * ``[action:accept] => done``: User accepts refunds,
+ new refund transactions will be created.
+ * ``[action:refuse] => done``: User refuses new refunds,
+ no new refund transactions will be created.
+
* ``pending(repurchase-session-reset)``
The wallet should reset the associated session for the already purchased
@@ -459,33 +468,13 @@ Transaction Type: Refund
A refund is a pseudo-transaction that is always associated with a merchant
payment transaction.
-* ``pending(lookup-refund)``
-
- We received a ``refund`` URI. Download refund details (like the amount) from
- the merchant. If the merchant responds with a permanent failure, we only
- show a transient warning and delete the transaction.
-
- * ``[success] => pending(user-accept)``
- * ``[action:suspend] => suspended(lookup-refund)``
- * ``[failure] => deleted``: A transient warning is shown to the user about the failure.
-
-* ``suspended(lookup-refund)``
-
- The user suspended while we were looking up the refund details. Allow resuming or permanent deletion.
-
- * ``[action:resume] => pending(lookup-refund)``
- * ``[action:force-delete] => deleted``: Refund funds will be lost to the user.
-
-* ``pending(user-accept)``
-
- The wallet has downloaded metadata for the refund from the merchant and stored it in the database. The user needs to accept/refuse it.
-
- * ``[action:accept] => pending(merchant)``: the refund is accepted
- * ``[action:delete] => deleted`` : the refund is not accepted
-
* ``pending(merchant)``
- A refund is pending in this state while we are waiting for the merchant to get a successful response from the exchange (and relaying that error response to the wallet).
+ Initial state for a refund.
+
+ A refund is pending in this state while we are waiting for the merchant to
+ get a successful response from the exchange (and relaying that error response
+ to the wallet).
* ``[action:suspend] => suspended(merchant)``
* ``[processed-success] => pending(refresh)``