BramaPay Docs

BramaPay Developer Documentation

Accept stablecoin payments directly to your wallet with hosted checkout, project-scoped API keys, and signed webhooks.

BramaPay is a non-custodial payment gateway for merchants that want automated stablecoin checkout without handing custody of payment funds to a processor. Customers send the displayed amount directly to a receiving wallet controlled by the merchant; BramaPay watches the blockchain, settles the invoice, and sends a signed webhook.

Payment flow

Create an invoice

Your backend calls POST /v1/invoices with a project-bound sk_live_... key and a durable Idempotency-Key.

Send the customer to checkout

The response contains a hosted checkoutUrl. Checkout shows the network, token, merchant wallet, exact amount, and expiry.

Receive the transfer

The customer sends one exact transfer to the merchant wallet. BramaPay detects and confirms it on-chain.

Fulfill once

BramaPay marks the invoice PAID and sends an HMAC-signed invoice.paid webhook. Verify the signature, deduplicate X-Event-Id, and then fulfill.

A redirect is not payment proof

The success URL is browser navigation only. Fulfill only from a verified invoice.paid webhook and/or an authenticated GET /v1/invoices/:invoiceId response from your server.

Current product scope

The deployed single-container product runs the TRON payment watcher. The enabled public merchant flow is TRON USDT with six decimal places; Shasta is available only in a separate isolated test deployment. The backend registry contains broader EVM architecture, but Ethereum, BSC, Polygon, and TRON USDC are not documented as production-ready BramaPay payment options.

All monetary values are decimal strings. Never parse invoice amounts through JavaScript number.

On this page