Disbursement Channels
NextAPI routes outbound payments across Philippine payment rails: InstaPay, PESONet, and QRPH payouts. Understanding these channels helps you set expectations with your users and design your integration correctly.
Available channels
InstaPay
InstaPay is a real-time low-value fund transfer system operated by BSP.
| Property | Value |
|---|---|
| Processing time | Near real-time (typically 5–30 seconds) |
| Maximum per transaction | PHP 50,000 |
| Availability | 24/7, including weekends and holidays |
| Settlement | Immediate |
Best for: Payroll disbursements to individuals, small vendor payments, gig economy payouts.
PESONet
PESONet is a batch electronic fund transfer system for higher-value transactions.
| Property | Value |
|---|---|
| Processing time | Same banking day (if submitted before cutoff) |
| Maximum per transaction | No standard limit (bank-dependent) |
| Availability | Banking days only |
| Settlement | End-of-day batch |
Best for: Large supplier payments, corporate disbursements, amounts above PHP 50,000.
QRPH Payouts
NextAPI can send funds to QRPH-linked accounts — bank accounts or e-wallets that have a registered QR code.
| Property | Value |
|---|---|
| Processing time | Varies by underlying rail |
| Recipient requirement | Must have a QRPH-registered account |
| Use case | Consumer wallets, merchants with QR |
Auto-routing
NextAPI automatically selects the appropriate channel based on the transaction amount:
Amount ≤ PHP 50,000 → InstaPay (real-time)
Amount > PHP 50,000 → PESONet (same-day batch)
You do not need to specify a channel in your payout request — routing is handled automatically. However, you can influence routing by specifying the rail in your payout request if your use case requires it.
Routing diagram
POST /v2/payout-requests
│
▼
Amount check
┌────┴────┐
≤ 50k > 50k
│ │
InstaPay PESONet
(real-time) (batch)
Split payouts
A single payout request may be split into multiple payouts if the amount spans rail limits. For example, a PHP 75,000 disbursement could be split:
- Payout 1: PHP 50,000 via InstaPay
- Payout 2: PHP 25,000 via PESONet
Use GET /v2/payout-requests/{id}/payouts to list all payouts under a single request.
Checking available institutions
To see all supported recipient banks and e-wallets:
curl https://api.partners.nextpay.world/v2/receiving-institutions \
-u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"
The response includes institution codes, names, and supported rails. Use these codes in your payout requests for the recipient.institution_code field.
Service health
Check real-time rail availability before submitting large batches:
curl https://api.partners.nextpay.world/v2/service-health \
-u "YOUR_CLIENT_ID:YOUR_CLIENT_SECRET"
This endpoint reports InstaPay and PESONet availability. If a rail is degraded, you can hold disbursements and retry when the rail recovers.
Timing considerations
| Scenario | Channel | Expected completion |
|---|---|---|
| PHP 5,000 to GCash, 2pm Monday | InstaPay | Within minutes |
| PHP 5,000 to GCash, 11pm Sunday | InstaPay | Within minutes (24/7) |
| PHP 80,000 to BDO, 9am Monday | PESONet | Same day (before EOD cutoff) |
| PHP 80,000 to BDO, 4pm Friday | PESONet | Next banking day |
Always account for PESONet's banking-day-only schedule when designing payout SLAs for your users.
Related
- The Lifecycle of a Payout — payout states from Initiated to Completed
- Multi-Provider Routing — how NextAPI selects across its network of financial providers
- Send a Single Payout — step-by-step payout guide
- API Reference: Receiving Institutions — list supported banks and e-wallets