Public integration guide. API base URL: https://api.toknex.space. Confirm network settings and one-time fees in your merchant account.
Testing & go-live checklist
How to test
USDT payments are real blockchain transfers, so there are two ways to test:
- Small live payments (simplest). After activation, create a test customer through the API and send a small amount, at least the minimum of account-configured min deposit USDT, from your own wallet. You see the full lifecycle: webhook
deposit.detected→deposit.confirmed→deposit.collected, and the amount (minus the platform fee) appears in your merchant balance. You can withdraw it with a settlement. - Staging on BSC testnet. If you need many test payments, ask us for access to the staging environment. It runs on BSC testnet with test USDT that has no value.
Note: sk_test_ keys do not switch networks. On this deployment they behave like live keys.
Test plan
Tick every line before you launch:
- [ ]
GET /api/v1/statusreturns"collection_paused": false. - [ ]
POST /api/v1/userswith yourexternal_idreturns adeposit_address; calling it again returns the same address. - [ ] Your payment page shows the address, the QR code, "BNB Smart Chain (BEP-20)", "USDT", the minimum and the wrong-network warning.
- [ ] Scanning the QR code with a mobile wallet fills in the correct address.
- [ ] Send test event reaches your webhook, the signature verifies, and you answer 200.
- [ ] A request with a wrong signature is rejected with 401 (test by changing one character of the secret).
- [ ] A real deposit produces
deposit.detectedthendeposit.confirmed, and your system credits the customer once. - [ ] Re-sending the same webhook (from your logs) does not credit twice.
- [ ] Two transfers to the same address are both credited.
- [ ] A transfer below account-configured min deposit USDT shows
below_minimum: trueand is not credited. - [ ] Your reconciliation job (
GET /api/v1/deposits?since_id=…) finds a deposit when your webhook endpoint was switched off. - [ ] Amounts are stored as decimals or strings:
0.1 + 0.2adds up to exactly0.3in your database. - [ ] Your API key lives only in server configuration and does not appear in client code, logs or git.
- [ ] Optional: you set an IP allow-list for your servers under Account.
- [ ] You requested a small settlement, received it in your payout wallet, and got the
settlement.paidwebhook.
Go live
- Deploy your production configuration with your
sk_live_key and webhook secret. - Point the dashboard webhook at your production URL and send a test event.
- Make one real end-to-end payment yourself.
- Monitor Deposits and Webhooks → deliveries in your dashboard for the first days.
Customer support script
When a customer says "I paid but I don't see it":
- Ask for the transaction hash (TxID) and the network they used.
- Search your dashboard Deposits for the hash.
- Found with CONFIRMING: it will be credited automatically after account-configured confirmations confirmations.
- Found with CONFIRMED but not in your system: your webhook failed. Check Webhooks → deliveries and re-run your reconciliation.
- Not found: open the hash on BscScan. If it isn't on BNB Smart Chain, or the token isn't USDT, or the recipient is a different address, see the FAQ.
