# Direct pay flow

Manual transfer

{% stepper %}
{% step %}
**Customer selects “Direct Pay” option**

The wallet connection widget opens.

&#x20;![](https://3637480436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3TsE4w3mKKZa9SsK3biR%2Fuploads%2FiRLmzKhJnBbhFfSWbeLJ%2FScreenshot%202025-11-25%20at%2010.39.13.png?alt=media\&token=8600ca94-0dd4-483d-9cbf-955914b2e393)

{% endstep %}

{% step %}
**Network selection**

The customer selects the desired network (e.g., Celo, Base) and the asset they wish to pay with.

![](https://3637480436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3TsE4w3mKKZa9SsK3biR%2Fuploads%2FiRLmzKhJnBbhFfSWbeLJ%2FScreenshot%202025-11-25%20at%2010.39.13.png?alt=media\&token=8600ca94-0dd4-483d-9cbf-955914b2e393) ![](https://3637480436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3TsE4w3mKKZa9SsK3biR%2Fuploads%2FCdWfFiiwZ5EYJGE6ZMIa%2FScreenshot%202025-11-25%20at%2010.38.07.png?alt=media\&token=7cc21f2b-3e26-4993-91fd-b4b2110a8add)
{% endstep %}

{% step %}
**Payment details confirmation**

Upon selecting an asset, the system instantly calls the settlement endpoint and retrieves the following:

* Exact crypto amount to send
* Destination address
* Current exchange rate
* Payment expiry timer&#x20;

The customer either scans the QR code with any mobile wallet or exchange app, or copies the address and manually sends the exact amount&#x20;

&#x20; ![](https://3637480436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3TsE4w3mKKZa9SsK3biR%2Fuploads%2FjfncLbGd0xLpyY1e1XIg%2FScreenshot%202025-11-25%20at%2010.40.33.png?alt=media\&token=17aced99-aaaa-4b20-8e87-cbee936aaaba)![](https://3637480436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3TsE4w3mKKZa9SsK3biR%2Fuploads%2FPG06gbLLdWReDAD9kYQ1%2FScreenshot%202025-11-25%20at%2010.42.35.png?alt=media\&token=17fe4f78-dd10-4a2d-9417-3269858175b5)
{% endstep %}

{% step %}
**Payment confirmation**

The widget starts polling the order status every 30 seconds (and offers a manual “Confirm” button) for the customer to manually confirm in case they have already paid.

Once the customer pays, the payment will be confirmed on-chain, and the customer sees “Payment Complete” and is redirected to the merchant’s success/callback URL
{% endstep %}

{% step %}
**Disbursement of funds to the merchant**

Clients pay using stablecoins, while merchants receive their funds in local currency. On the merchant dashboard, they can choose to enable **automatic settlements**, allowing funds to be disbursed automatically to their respective mobile money or bank accounts.&#x20;

<figure><img src="https://3637480436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3TsE4w3mKKZa9SsK3biR%2Fuploads%2FfS2uRP1EbXJiM29qNhUe%2Fauto_settlement.png?alt=media&#x26;token=b962d069-45a4-4799-99e9-d2ce0cd859b2" alt=""><figcaption></figcaption></figure>

Alternatively, merchants may opt for **manual settlements**, where they can manually withdraw funds to their respective mobile money or bank accounts.

<figure><img src="https://3637480436-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3TsE4w3mKKZa9SsK3biR%2Fuploads%2FcFyCz0Q1azyfln9ms20G%2Fmanual.png?alt=media&#x26;token=975e500b-01eb-4677-a4e3-d8f6f937070a" alt=""><figcaption></figcaption></figure>

{% endstep %}
{% endstepper %}
