Payment Flow
A payment moves through four steps: your server creates it, the customer pays it, Finomesh notifies you, and your server verifies the outcome before fulfilling.
- Create — your server calls
POST /api/v1/paymentswith the invoice currency, amount, and yourcallbackUrl(hosted mode — API mode sendswebhookUrlinstead). The response contains the paymentpaymentUidand thepaymentUrlto redirect the customer to. The payable assets (amount, fees, deposit address) live on the hosted checkout, not in this response. - Redirect — send the customer to the hosted checkout at
https://checkout.finomesh.com/p/{paymentId}. They pick an asset and pay; Finomesh watches the chain and confirms the deposit. - Get notified — the customer's browser is redirected back to your
callbackUrl, and (if you set awebhookUrl) Finomesh POSTs a signed webhook to your server. Both are thin triggers — they carry onlypaymentIdandstatus, never amounts. - Verify — your server calls
POST /api/v1/payments/{id}/verify. The response is the single source of truth: the real status plus the expected and received amounts. Fulfil the order based on this response only.
Never trust the callback
The callback is a plain browser redirect — anyone can craft callbackUrl?status=SUCCESS by hand. Always confirm the outcome server-side with verify before fulfilling an order.
Next
- Payment Statuses — the terminal statuses and when to fulfil.
- Quickstart — run this flow end to end in five minutes.