Every write takes an idempotency key
Retry a request as many times as you need. The same key returns the same payout rather than sending the money twice.
Developers
A REST API with predictable resources, idempotency on every write, and signed webhooks that confirm settlement. No SOAP, no nightly file drops, no SFTP.
Quickstart
curl https://api.syntrapayments.com/v1/quotes \
-H "Authorization: Bearer $SYNTRA_KEY" \
-d source_currency=NGN \
-d destination_currency=USD \
-d amount=2500000
{
"id": "qt_7Vd2Kp",
"rate": 1550.25,
"fee": 0,
"receive_amount": "1612.90",
"expires_at": "2026-03-14T16:41:32Z"
}curl https://api.syntrapayments.com/v1/payouts \
-H "Authorization: Bearer $SYNTRA_KEY" \
-H "Idempotency-Key: 8f2c-payroll-mar" \
-d quote=qt_7Vd2Kp \
-d beneficiary=bnf_9Ka2Rt \
-d reference="March payroll"
{
"id": "po_4471QxD",
"status": "settled",
"rate": 1550.25,
"received": "1612.90",
"settled_at": "2026-03-14T16:41:02Z"
}Reference
| Method | Endpoint | What it does |
|---|---|---|
| POST | /v1/quotes | Price a corridor and hold the rate for 30 seconds |
| POST | /v1/payouts | Execute a payout against a quote or at the live rate |
| GET | /v1/payouts/:id | Read the current state of a single payout |
| POST | /v1/batches | Submit up to 10,000 payouts in one request |
| GET | /v1/balances | List every currency balance on the account |
| POST | /v1/beneficiaries | Store a beneficiary and validate its details |
Design rules
Retry a request as many times as you need. The same key returns the same payout rather than sending the money twice.
A rejected request returns the parameter at fault and what was expected, so you can fix it without opening a ticket.
Your account is pinned to the API version you integrated against. Breaking changes ship behind a new version you opt into.
Apply in under ten minutes. Most businesses are verified within one working day and send their first payout the day after.