Bulk Payouts
Bulk payouts allow you to send funds to multiple recipients in a single API call. This is ideal for processing large batches of disbursements efficiently, such as payroll, marketplace payouts, or mass customer disbursements.
When to Use Bulk Payouts
- Processing payroll for multiple employees
- Marketplace seller payouts
- Mass customer disbursements
- Regular scheduled payments
- High-volume operations
Creating Bulk Payouts
A bulk payout request can include multiple payouts in a single batch. Each payout in the batch follows the same structure as a single payout:
merchantId: Your merchant identifiermerchantReference: Your internal reference for tracking and idempotencydestinationValue: Object withminorAmount(integer) andcurrencypaymentMethodId:"banktransfer","mobilemoney", or"crypto"paymentLocation: 3-letter ISO country coderecipient: Recipient details (structure depends onpaymentMethodId)sender(optional): Sender details with KYC fields (required for some destinations)attributes(optional): Additional payout attributes
Note: Amounts are specified in minor units (integer). Fiat currencies use 2 decimal places; USDT/USDC use 6. See Single Payouts for details.
Request Structure
Note: minorAmount: 1000000 = 10,000.00 NGN, minorAmount: 500000 = 5,000.00 KES, minorAmount: 2500000 = 2.500000 USDC.
Response Structure
Bulk payouts are processed asynchronously. The create request returns a 202 Accepted with a batch ID and monitor URL.
Response fields:
message: Status message confirming the batch was acceptedbatchId: Identifier for the batchmonitorUrl: URL to poll for batch status
Benefits
- Efficiency: Process multiple payouts in one API call
- Performance: Reduced API calls and faster processing
- Reliability: Batch processing with status tracking for each payout
- Cost-effective: Lower overhead for high-volume operations
- Partial Success Handling: Individual payouts can succeed or fail independently
Example Use Cases
- Payroll: Distribute salaries to all employees at once
- Marketplace Payouts: Pay out earnings to multiple sellers
- Mass Refunds: Process refunds for multiple customers
- Regular Disbursements: Scheduled payments to multiple recipients
Handling Partial Failures
When processing bulk payouts, individual payouts may succeed or fail independently. Use the monitorUrl to poll for batch status and outcomes, or consume updates via webhooks.
Error Handling
If the entire bulk request fails (e.g., invalid request structure, authentication error), the API returns an HTTP 400, 401, or 422 with an error object:
If the request succeeds, the response is HTTP 202 with a batchId and monitorUrl. Use the monitor URL or webhooks to check individual outcomes.
Best Practices
- Validate all recipient details before creating bulk payouts
- Use unique, meaningful references for each payout (enables idempotency and easy tracking)
- Monitor batch status and individual payout statuses through history endpoints or webhooks
- Implement retry logic for failed payouts (with corrected recipient details)
- Keep batch sizes manageable and consider splitting very large batches
- Check the
successfulandfailedcounts in the response - Review individual payout
statusandfailureReasonfields for failed payouts - Store payout IDs and references for reconciliation and tracking
For detailed API documentation, see the Payouts API Reference.