Getting started
Get from zero to your first payout in under 10 minutes.
Sign up + complete KYC
If you don’t already have a Swappr account, sign up at app.swappr.me/sign-up. You’ll need to complete KYC before live mode is enabled, but you can use sandbox immediately.
Generate an API key
From your dashboard, go to API & Webhooks → click + Generate new key. Pick Sandbox or Live, give the key a label, and add at least one IP address to the allowlist (mandatory).
You’ll see the secret once — store it securely. The dashboard only shows the first 12 characters going forward.
API keys look like:
- Sandbox:
sk_test_xxxxxxxxxxxxxxxxxxxxxxxx - Live:
sk_live_xxxxxxxxxxxxxxxxxxxxxxxx
Never commit API keys to source control. Use environment variables or a secrets manager.
Make your first request
Try a balance check — read-only, no idempotency key needed:
curl https://api.swappr.me/v1/balances \
-H "Authorization: Bearer sk_test_..."You should get back a list of your wallets with current balances.
Send your first payout
Sandbox payouts use simulated providers — no real money moves. NGN payouts only need an account number + bank code; the recipient name is auto-resolved via NUBAN.
curl https://api.swappr.me/v1/payouts \
-H "Authorization: Bearer sk_test_..." \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"amount_minor": "5000",
"currency": "NGN",
"recipient": {
"account_number": "0690000032",
"bank_code": "044"
},
"merchant_reference": "TEST_001"
}'The response includes:
id— internal cuidreference— merchant-facing reference (po_xxx)status— usuallypaidin sandbox (simulated success), orprocessingfor liverecipient_name— bank-of-record name auto-resolved via NUBANprovider— which rail dispatched the payout
Set up a webhook
Webhooks notify you when payouts complete, virtual accounts are credited, etc. Go to API & Webhooks → + Add webhook endpoint, paste your HTTPS URL, pick the events you care about.
You’ll get a signing secret ONCE on creation — store it. Every webhook delivery includes an X-Swappr-Signature header you verify against this secret.
# Test the endpoint with a synthetic event:
curl https://api.swappr.me/v1/webhook_endpoints/whe_xxx/test \
-X POST \
-H "Authorization: Bearer sk_test_..."See Webhooks for the full signing scheme + verification examples.
Go live
When you’re ready for production:
- Complete KYC at app.swappr.me/settings/compliance
- Wait for compliance approval (1-3 business days)
- Generate a Live API key (
sk_live_) - Switch your code to use
https://api.swappr.me/v1(same hostname, live keys auto-route) - Whitelist your production IPs
What’s next?
- Authentication details
- Bulk payouts guide — push 150 payouts in one call
- Idempotency — handle network retries safely
- Webhooks — verify signatures + handle deliveries