Quickstart
This guide takes you from an API key to a fully reconciled payment. Everything here works with a test-mode key (zero real money). Create your key in the Xental dashboard; a live key becomes available once your account is approved there.
1. Get a bearer token
Create an API key in the dashboard, then exchange its client id + secret for a short-lived bearer token.
curl -X POST "https://api.xental.online/api/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{ "clientId": "xnt_test_...", "clientSecret": "sk_test_..." }'2. Provision a virtual account
Create a persistent NUBAN for a customer, optionally with an expected amount (in kobo).
curl -X POST "https://api.xental.online/api/v1/virtual-accounts" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{ "accountRef": "inv_001", "name": "Ada Lovelace", "expectedAmountKobo": 500000 }'3. Simulate a payment (test mode)
Rather than making a real bank transfer, drive the real reconciliation engine with the sandbox simulator — zero money, same code path as a live webhook.
curl -X POST "https://api.xental.online/api/v1/sandbox/simulate/deposit" \
-H "Authorization: Bearer <API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{ "accountRef": "inv_001", "amountKobo": 500000 }'The response reports reconciliation and paymentState (e.g. FullyPaid). Fetch the account any time to see its balance:
curl "https://api.xental.online/api/v1/virtual-accounts/inv_001" \
-H "Authorization: Bearer <API_TOKEN>"4. Receive events
Register a webhook endpoint to receive signed, pre-reconcileddeposit.reconciled events, or open a Live Checkout stream to show a payer “Payment received ✓” in real time.
Next steps
- Authentication — keys, tokens, and the two auth planes.
- Recurring Billing — bill a customer on a cycle from a reusable account.
- Split & Escrow — fan settlements across beneficiaries.
- Money Rules — automate holds and notifications.