Accept crypto like card payments.

Invoices, hosted checkout, chain watchers, balances, withdrawals, and signed webhooks โ€” one gateway you can run beside your stack or ship as gateway.bahaa.io. Merchants integrate with HMAC; shoppers get a polished pay page.

End-to-end

How money moves

Same five-step story as our integration guide: your backend stays authoritative; the gateway handles custody UI and chain truth.

๐Ÿงพ

Create

POST invoice, get payment_url

โ†’
๐Ÿ’ณ

Pay

Hosted page or your own UI via JSON

โ†’
โ›“๏ธ

Confirm

Watchers + confirmation policy

โ†’
๐Ÿ“ฃ

Notify

Verified webhooks

โ†’
โœ…

Settle

Balances & withdrawals

Explore

Everything in one place

Documentation uses the same visual language as this page โ€” dark, minimal, copy-friendly examples.

Checkout showcase

Hosted pay, product-grade layout

GET /{invoice_id} serves the real checkout. This frame is a static mock โ€” layout and hierarchy match the live template; data comes from your gateway on a real invoice.

๐Ÿ”’ https://gateway.bahaa.io/inv_01demo

Pay invoice

Order #1001 ยท Demo preview

inv_01demo
Due now
50.00 USDT
โ‰ˆ $50.00 invoice total
Pay with
TRON ยท USDT
ETH ยท USDT
Deposit address
TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE

Scan from any TRON wallet. Amount and memo must match exactly โ€” the gateway matches on-chain credits to this invoice.

Live page adds countdown, explorer links, and theme.

Awaiting payment Expires in 9:42

Self-hosters: mirror this UI with /select, /status, /ws, and /cancel โ€” same payloads as our template. Full reference in API docs โ†’ Hosted checkout.

Server-side first step
Merchants still create invoices with POST /api/v1/invoices and HMAC headers. The shopper only ever sees the invoice slug URL and the public JSON/WebSocket routes above.
Merchant ยท create
POST /api/v1/invoices
X-API-Key ยท X-Timestamp ยท X-Signature
Checkout ยท select
POST /{id}/select
{"network":"tron","symbol":"USDT"}
HMAC-SHA256 REST JSON WebSocket Webhooks Multi-chain