FAQ
Practical answers about custody, matching, testing, redirects, and webhooks.
Does BramaPay hold my payment funds?
No. The customer sends the token to the wallet address configured by the merchant. BramaPay stores only the public receiving address and never requests its private key.
What happens when the customer sends the wrong amount?
It does not match a new Single Wallet invoice automatically. BramaPay has no public merchant endpoint that manually binds that transfer to an invoice. Reconcile the transfer on-chain and handle the customer operationally.
Can a payment be split across several transactions?
No. A current invoice requires one transfer of the exact displayed amountCrypto.
Can I trust the success redirect?
No. Anyone can open a return URL. Use a verified invoice.paid webhook and/or GET /v1/invoices/:invoiceId with the same project's secret key.
Can the same webhook arrive twice?
Yes. Delivery is at least once. Deduplicate the stable X-Event-Id and return 2xx for an already accepted event.
What if my webhook endpoint is unavailable?
Retryable network errors, timeouts, 408, 429, and 5xx responses are retried. Failed deliveries remain visible in the dashboard and can be redelivered manually.
How do I test without real funds?
Use an isolated Shasta deployment with test USDT when one is provided for your environment. The dashboard's integration.test webhook validates delivery and signature handling only; it does not create or pay an invoice.
Which network should I use?
Use the network returned by the enabled BramaPay product environment. The current deployed product flow is TRON USDT. Never send Mainnet value to a Shasta address or treat Shasta tokens as valuable.
How long is an invoice payable?
The default is 30 minutes unless the deployment configuration changes it. Checkout displays the authoritative expiresAt. A transfer timestamped before expiry may still settle after delayed confirmation; a transfer initiated after expiry is not eligible.