Authorization
default A public key (pk./pk_test.) is accepted on /payments, /customers, /links, /invoices and the catalogue reads (/channels, /providers, /countries, /currencies); anything that moves money out, reads the balance or manages the account answers 406 to it. It is an identifier, never an authorization. Use a secret key (sk./sk_test.) for sensitive operations (transfers, refunds, balance), or a restricted key (rk./rk_test.) scoped to specific permissions. The _test. variant of any key selects the sandbox environment, there is no separate sandbox URL. Never expose your secret key in client-side code.
In: header
Header Parameters
Required, and unique to this batch: re-sending the same batch with the same key only sends the lines that did not go through. Your key for this request, 1 to 128 characters of letters, digits and `. _ : -`. The same request sent again with the same key returns the first answer instead of doing the work twice. See [Idempotency](/api/idempotency).
Request Body
application/json
Up to 500 payouts.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.wajub.com/transfers/batch" \ -H "Idempotency-Key: payout-run-2026-09-16" \ -H "Content-Type: application/json" \ -d '{ "transfers": null }'{ "code": 200, "status": "OK", "message": "Batch partially accepted", "batch": { "reference": "payout-run-2026-09-16", "total": 2, "accepted": 1, "rejected": 1 }, "results": [ { "reference": "seller-42", "status": "accepted", "recovered": 0, "transfer": { "id": "po_Gv2Ks9Lp4Xr7Mw1Qt8Zn", "reference": "seller-42", "amount": 12500, "currency": "XAF", "description": "September sales", "sandbox": false, "status": "processing", "complete": false, "source": "api", "created_at": "2026-09-16T18:00:02+00:00", "updated_at": "2026-09-16T18:00:02+00:00" } }, { "reference": "seller-57", "status": "rejected", "message": "This beneficiary payment method has not been verified yet and cannot receive live payouts." } ]}OK