Multi-chain by default
Ethereum, Polygon, Solana, Tron, and BNB Chain — one API, one webhook contract, one dashboard.
BchainPay is a developer-first crypto payment gateway: accept stablecoin payments on five chains via one REST API. Confirmed payments collect into per-coin pockets you can withdraw on demand — signed webhooks and idempotent requests included.
Five chains. One API. One webhook contract.
Ethereum, Polygon, Solana, Tron, and BNB Chain — one API, one webhook contract, one dashboard.
Every confirmed payment lands in a pocket — one balance per Network/Coin pair. Hold, top up, or withdraw on demand.
Sweep any pocket to your own wallet with POST /v1/withdrawals. Signed in our vault, broadcast on-chain, confirmed by webhook.
`Idempotency-Key` enforced at the edge with a 24h Redis cache and DB uniqueness. Replays are free.
HMAC-SHA256 with per-merchant secrets, key rotation, replay protection, and a 30-day retry queue.
A fresh address per payment from an HD wallet pool, AES-256-GCM encrypted keys, and audit logs on every state change.
Create a payment intent against api.bchainpay.com — same request shape on every supported network.
curl -X POST https://api.bchainpay.com/v1/payment-intents \ -H "Authorization: Bearer $BCHAINPAY_API_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{ "amount_cents": 4999, "currency": "USD", "settlement_currency": "USDC", "network": "polygon", "reference": "INV-2026-001" }'Read the API reference →
// Webhook body — type: payment_intent.completed { "id": "pi_3L9k…42", "status": "completed", "amount_cents": 4999, "currency": "USD", "settlement_currency": "USDC", "network": "polygon", "pocket_id": "pkt_usdc_polygon", "address": "0x9f3a…b41C", "tx_hash": "0x7d2e…01ab", "reference": "INV-2026-001" }
Every confirmed payment lands in your pocket for that Network/Coin pair. Sweep it to your own wallet whenever you like.
POST /v1/payment-intents with amount, currency, and network. We return a fresh on-chain address.
Once confirmed on-chain, the amount is credited to your USDC · polygon pocket and a signed payment_intent.completed webhook fires.
POST /v1/withdrawals with a pocket id, amount, and destination address. We sign, broadcast, and confirm.
On-chain gas fees are passed through at cost. No setup fee, no monthly minimum on Sandbox or Growth.
Free
For building and testing.
0.5%/settled payment
For live businesses up to $1M/mo.
Custom
For high-volume and enterprise.
Every webhook is HMAC-SHA256-signed with your per-merchant secret and a timestamp. If your server misses one, just pull the latest state from the API.
GET /v1/payment-intents/{id} as the source of truth// Verify a BchainPay webhook (Node.js) const sig = req.headers['bchainpay-signature']; const ok = bchainpay.webhooks.verify( req.rawBody, sig, process.env.BCHAINPAY_WEBHOOK_SECRET ); if (ok && req.body.type === 'payment_intent.completed') { fulfillOrder(req.body.data.reference); }
Trusted by builders shipping on-chain payments
Ethereum, Polygon, Solana, Tron, and BNB Chain at launch. Base, Arbitrum, and Avalanche are next on the roadmap.
Each merchant has one pocket per Network/Coin pair (e.g. USDC · Polygon, ETH · Ethereum). Confirmed payments accumulate in those pockets in custodial wallets BchainPay operates. Withdraw to any external address you control, whenever you like.
Call POST /v1/withdrawals with a pocket id, amount, and destination address — or click Withdraw in the dashboard. We sign the transaction in our vault, broadcast it on-chain, and fire a withdrawal.completed webhook with the tx_hash.
Every webhook is signed with HMAC-SHA256 using a per-merchant secret. We include a timestamp to prevent replays and retry with exponential backoff for 30 days.
Pull the latest state from GET /v1/payment-intents/{id} or GET /v1/pockets at any time. The API is the source of truth; webhooks are an optimization.
Yes. The sandbox is free, supports all five chains on testnets, and requires no KYC. Sign up and get a key in under a minute.
We treat keys, webhooks, and audit trails as first-class product surface — not an afterthought.
Read the full security overview on the docs site.
Free sandbox keys. No credit card. No KYC to start building.
Or read the 5-minute quickstart →