Create a disbursement
Body
string
required
The user receiving the disbursement.
string
required
Amount in kobo. String-encoded BigInt to preserve precision.
string
required
One of:
WALLET— Land in the user’s Guild wallet. They can then withdraw or use it directly.BANK_DIRECT— Land directly in the user’s verified payout bank account. Skips the wallet.
string
required
Your internal loan/credit reference. We include it in the audit row and the webhook.
string
Free-text purpose tag for your internal tracking. Optional. Examples:
tool_equipment_loan, inventory_advance, working_capital.object
Optional. Arbitrary key-value pairs for your records.
Required headers
string
required
Bearer <api_key> with write:disbursements scope.string
required
Required for disbursements (write operations). Use a fresh UUID per logical disbursement; same UUID per retry of that disbursement.
Example
Response 201
string
ULID prefixed
dis_.string
One of
PENDING, DELIVERED, FAILED.string
User receiving.
string
As requested.
string
As requested.
string
Your reference.
string
As supplied.
string
ISO-8601.
object
As supplied.
WALLET destination, the response is typically DELIVERED synchronously — the wallet credit is internal. For BANK_DIRECT destination, the response is typically PENDING and resolves to DELIVERED (or FAILED) via webhook once OPay’s payout completes.
Error cases
Get a disbursement
Response 200
Same shape as the creation response, with the current status. For a settled disbursement, additional fields appear:string
ISO-8601 of when the funds landed.
string
The OPay transaction reference (audit trail).
string
If
FAILED, the reason.List disbursements
Query parameters
string
Filter to one user.
string
Filter by status.
string
ISO-8601 inclusive lower bound on
createdAt.string
ISO-8601 exclusive upper bound on
createdAt.integer
default:"50"
Max 200.
string
For pagination.
Response 200
Cursor-paginated list.Lifecycle webhooks
Subscribe todisbursement.delivered and disbursement.failed events to receive push notifications when status changes. See Webhooks.
Settlement timing
A disbursement that’s been
PENDING for over 5 minutes is unusual. We surface it in the dashboard and you can also poll the GET endpoint.
What to read next
Webhooks
Push notifications for delivery and failure.
Repayments
How repayments come back to you via direct debit.