Batch Payments
Process multiple payments at once - perfect for subscriptions, memberships, and recurring billing. Creates multiple payment orders in a single request.Why Use Batch Payments?
Faster Processing
Process hundreds of payments in a single API call
Subscription Renewals
Charge all subscribers at once each billing cycle
Bulk Invoicing
Process multiple invoices simultaneously
Automatic Retries
Built-in retry logic for failed payments
Ideal Use Cases
Monthly Subscription Renewals
Charge all your subscribers at once:Membership Fee Collection
Process monthly gym, club, or association fees:Scheduled Billing Runs
Automate recurring billing for services:- SaaS subscriptions
- Hosting renewals
- License renewals
- Maintenance contracts
Request Format
Required Fields
| Field | Type | Description |
|---|---|---|
batchId | string | Unique identifier for this batch |
payments | array | Array of payment objects (max 100) |
payments[].externalId | string | Unique payment identifier |
payments[].customerId | string | Cheqpay customer ID |
payments[].paymentMethodId | string | Saved payment method ID |
payments[].amount | integer | Amount in cents |
payments[].currency | string | ISO currency code |
Response Format
Monitor Batch Progress
Get Batch Status
Batch Statuses
| Status | Description |
|---|---|
processing | Batch is being processed |
completed | All payments have been attempted |
partial | Some payments succeeded, some failed |
Handle Failed Payments
Failed payments in a batch don’t stop other payments from processing:1
Identify Failures
Check the batch results to see which payments failed.
2
Notify Customers
Send email or SMS to customers with failed payments.
3
Update Payment Methods
Allow customers to update their payment information.
4
Retry
Create a new batch with just the failed payments.
Example: Retry Failed Payments
Webhook Notifications
Receive notifications for batch completion and individual payment results:Batch Completed
Individual Payment Updates
You’ll also receive standard payment webhooks for each payment in the batch:Configure Webhooks
Learn how to set up webhook notifications
Best Practices
Use Unique Batch IDs
Use Unique Batch IDs
Include date and identifier in batch IDs:
batch_subscriptions_2025_10_30Process Off-Peak Hours
Process Off-Peak Hours
Schedule batch jobs during low-traffic hours to minimize impact on customers.
Add Metadata
Add Metadata
Include subscription IDs, plan types, or other relevant data in metadata for easier reconciliation.
Monitor Failure Rates
Monitor Failure Rates
Track failure patterns. High failure rates may indicate expired cards or other issues.
Implement Dunning
Implement Dunning
Create a retry strategy for failed payments (e.g., retry after 3 days, then 7 days).
Limits and Performance
Batch Limits
- Maximum payments per batch: 100
- Maximum batches per hour: Contact support for high-volume needs
- Processing time: ~2-5 seconds per payment
Expected Performance
For a batch of 100 payments:- Processing time: 3-8 minutes
- Success rate: 85-95% (varies by customer base)
Need higher limits? Contact [email protected] to discuss your requirements.
Testing Batch Payments
Test in sandbox with multiple test payments:4000000000002503- Success4000000000000002- Decline