Checkout URL
Every payment includes acheckout_url:
cs_...) also resolve to the same hosted page.
Customer flow
- Customer opens the checkout URL
- Checkout loads payment amount, settlement asset, allowed assets, merchant name, and logo
- If multiple allowed assets are configured, the customer selects which asset to pay with
- Customer clicks Connect wallet (Stellar Wallet Kit: Freighter, xBull, etc.)
- Customer clicks Pay and approves the transaction in their wallet
- Payoes submits the signed transaction to Horizon
- Payoes verifies the payment, records
paid_asset, and shows a success state
What Payoes handles
- Building the unsigned Stellar payment transaction in the customer’s chosen paid asset
- Setting the correct destination (merchant settlement wallet)
- Attaching a payment memo for reconciliation
- Trustline preflight checks before signing
- Horizon submission and verification against the paid asset
- Status updates and webhook delivery
Checkout API (internal)
The hosted page uses public endpoints under/api/checkout/{payment_id}:
These endpoints are used by the checkout UI. Integrations should use
/api/v1/payments instead.
Custom checkout (embed)
Embed the hosted checkout in a modal on your site with@payoes/sdk or the script tag bundle. See the Embedded checkout guide.
Retry confirmation
If a transaction succeeds on Stellar but confirmation fails (e.g. temporary Horizon delay), the checkout page offers Retry payment confirmation with the submitted transaction hash.Integration pattern
payment.completed webhooks or poll GET /api/v1/payments/{id}. Completed payments include both settlement_asset and paid_asset.