taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 1a7dff6c8ddf0a143797f8790887858cf900ee2e
parent 80399cdaf0b98d9b6b16cab5eaf0b48e9e540c42
Author: Hernâni Marques <hernani+clementine@vecirex.net>
Date:   Sat,  5 Sep 2026 03:20:47 +0200

10989/docs: explain stage e2e onboarding (mostly manual)

Diffstat:
Mdeployments/tops-stage-devtesting.rst | 97++++++++++++++++++++++++++++++++++++++++++-------------------------------------
1 file changed, 51 insertions(+), 46 deletions(-)

diff --git a/deployments/tops-stage-devtesting.rst b/deployments/tops-stage-devtesting.rst @@ -1,72 +1,77 @@ -Testing in the TOPS Staging Environment -======================================= -This document contains a detailled, step-by-step instructions for testing -with the staging environment for the Taler Operations deployment. -The staging environment (on host ``rusty``) is almost equivalent to the production -environment. It is, however, not connected to a real bank account. +Merchant: End-to-end onboarding (staging) +----------------------------------------- -Prerequisites -------------- +Stage-specific glue for the merchant path already described elsewhere: +:ref:`taler-merchant-backend-operator-manual` (SPA) and *Merchant: +Onboarding* in :doc:`tops` (bank account → KYC auth → accept exchange +terms of service → accept payments). Wire faking reuses ``geniban`` / +``fake-incoming`` from *Deposits: Deposit with KYC Auth* above. -An administrator needs to enable your SSH key for testing -in the staging environment. +This section is the **mostly manual** path (merchant portal / SPA). +Variables used below (set your own values): -Withdrawals: Basic Withdrawal ------------------------------ +.. code:: none -1. Scan the following QR code to start a withdrawal from the `stage exchange <https://exchange.stage.taler-ops.ch/>`_: + BASE=https://stage.my.taler-ops.ch + INSTANCE=my-shop # instance id (slug) + INSTANCE_PASSWORD=… # password chosen at signup + IBAN=… # from geniban + DEBIT_PAYTO=payto://iban/$IBAN - .. image:: ./qr-withdraw-tops-stage.png +``$BASE/`` redirects to ``$BASE/webui/``. Use the +`stage exchange <https://exchange.stage.taler-ops.ch/>`_ for payments. +Check ``have_self_provisioning`` and ``mandatory_tan_channels`` on +``$BASE/config``. - ``taler://withdraw-exchange/exchange.stage.taler-ops.ch/`` +Shared bank / KYC steps +^^^^^^^^^^^^^^^^^^^^^^^ -2. Confirm the withdrawal in the wallet. - -3. Run the following command to fake a wire transfer, using a randomly - generated creditor IBAN. The ``$AMOUNT`` and ``$SUBJECT`` should be - taken from the wire transfer instructions in the wallet UI. +1. Generate an IBAN for the merchant bank account: .. code:: none - ssh -T devtesting@rusty.taler-ops.ch "fake-incoming --amount $AMOUNT --subject '$SUBJECT'" - -4. Check that the withdrawal succeeded in the wallet. - - -Deposits: Basic Deposit ------------------------ + IBAN=$(ssh -T devtesting@rusty.taler-ops.ch geniban) + DEBIT_PAYTO="payto://iban/$IBAN" -1. Do a basic withdrawal. -2. Initiate a deposit in the wallet UI, using the receiver account known to the wallet from the withdrawal. -3. The deposit transaction should now ask for KYC information. Fill out the corresponding form(s). -4. The deposit transaction should finish. +2. Register that IBAN in the portal under **Bank account** + (:ref:`instance-account-setup`). Skip revenue-API credentials + unless an administrator provided stage ones. -Deposits: Deposit with KYC Auth -------------------------------- - -1. Do a basic withdrawal. - -2. Generate an IBAN via: +3. When the exchange requires the KYC auth transfer (*Merchant: + Onboarding* in :doc:`tops`), satisfy it like *Deposits: Deposit with + KYC Auth*. Take ``$AMOUNT`` and ``$SUBJECT`` from the KYC UI: .. code:: none - ssh -T devtesting@rusty.taler-ops.ch geniban + ssh -T devtesting@rusty.taler-ops.ch \ + "fake-incoming --amount $AMOUNT --subject '$SUBJECT' --debit-payto '$DEBIT_PAYTO'" -3. Initiate a deposit in the wallet UI to the randomly generated IBAN. +4. If the deposit limit is still zero, accept the TOPS exchange terms + of service on the exchange KYC page (*Merchant: Onboarding* in + :doc:`tops`). For stuck account validation, see + :doc:`tops-troubleshooting`. -4. The deposit transaction should now ask for a KYC auth transfer. Satisfy the auth transfer by running: - - .. code:: none +5. Fund a wallet via *Withdrawals: Basic Withdrawal* above, then pay + the order (*Paying an order* in the merchant manual). - ssh -T devtesting@rusty.taler-ops.ch "fake-incoming --amount $AMOUNT --subject '$SUBJECT' --debit-payto '$DEBIT_PAYTO'" +SPA (login with password) +^^^^^^^^^^^^^^^^^^^^^^^^^ - with the information shown in the wallet UI, where the ``$DEBIT_PAYTO`` must contain the IBAN generated in step (2). +Normal interactive path (:ref:`Instance-setup`, *Self-provisioning*, +*Manually creating an order using the SPA*). +1. Open ``$BASE/webui/``. **Sign up** or **log in** with ``$INSTANCE`` + and ``$INSTANCE_PASSWORD``. Confirm e-mail and SMS TAN when asked + (both channels are mandatory on this backend). -5. The deposit transaction should now ask for KYC information. Fill out the corresponding form(s). +2. Complete *Shared bank / KYC steps* in the portal (**Bank account**, + KYC links). -6. The deposit transaction should finish. +3. **Orders** → create (summary + amount). Keep the payment QR / pay + link from the order status page. +4. Pay from the wallet (shared step 5) and confirm paid status in the + SPA.