Queue a payout
Requires payouts:create. Validates the recipient, atomically reserves funds, and writes a durable payout-dispatch record before BullMQ sends it to Paga. Provider calls are never retried automatically after dispatch begins.
Requires payouts:create. Validates the recipient, atomically reserves funds, and writes a durable payout-dispatch record before BullMQ sends it to Paga. Provider calls are never retried automatically after dispatch begins.
api-keyx-api-key<token>Your API key: ck_test_... for test mode, ck_live_... for live. Send it with x-api-secret (or Authorization: Bearer ).
x-api-secret?stringRecommended: API secret sent over HTTPS. You may send it as Authorization: Bearer instead. If supplied, x-timestamp and x-signature are not required.
x-timestamp?stringLegacy signed mode: Unix time in milliseconds; maximum clock skew five minutes.
x-signature?stringLegacy signed mode: HMAC-SHA256(secret, timestamp.METHOD.url.idempotencyKey.bodyHash).
x-idempotency-key*string1–128 letters/digits or ._:-. Same key and payload replay for 24 hours; conflicting, in-flight, or expired keys return 409. Never change a key to retry an uncertain payment.
application/json- body
amountMinor*stringcurrency*stringbankCode*stringaccountNumber*stringaccountName?stringreference?stringnarration?stringapplication/json- response
id*stringtransactionId*stringUse this ID for transaction lookup and sandbox completion. Payout id is a separate payout record ID.
reference*stringstatus*string"PENDING""PROCESSING""SUCCESS""FAILED"amountMinor*stringInteger minor units, encoded as a string.
currency*stringprovider*stringproviderReference*string|nullrequiresReconciliation*booleanTrue when provider outcome is uncertain. Do not retry with a new key; query the transaction or reconcile it.
feeMinor*stringCreddot fee charged to the business in minor units.
totalDebitMinor*stringWallet debit for payouts; equals amountMinor for incoming transfers.
netCreditMinor*stringWallet credit for incoming transfers; equals amountMinor for payouts.
queued*trueThe payout was reserved and accepted by the durable dispatch queue.
truequeueJobId*stringDurable payout dispatch job ID. Administrators can monitor this ID.
curl -X POST 'https://api.creddot.com/api/v1/payouts' \ -H 'x-idempotency-key: string' \ -H 'Content-Type: application/json' \ -d '{ "amountMinor": "100000", "currency": "NGN", "bankCode": "044", "accountNumber": "0123456789"}'{ "id": "string", "transactionId": "string", "reference": "string", "status": "PENDING", "amountMinor": "100000", "currency": "NGN", "provider": "PAGA", "providerReference": "string", "requiresReconciliation": true, "feeMinor": "1500", "totalDebitMinor": "101500", "netCreditMinor": "98500", "queued": true, "queueJobId": "string"}