NexusPay· Payouts

Payouts

Move funds from your NexusPay balance to an external destination. Payouts are processed via DirectPay and support multiple disbursement channels.

Create a payout

Send PHP to e-wallets or bank accounts. Settlement is asynchronous — you will receive a payout.succeeded or payout.failed webhook once the transfer completes.

curl -X POST https://nexuspayph.com/v1/payouts \
  -H "Authorization: Bearer sk_live_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 500.00,
    "currency": "PHP",
    "method": "gcash",
    "destination": { "account_no": "09171234567" },
    "description": "Weekly settlement"
  }'

Supported payout methods

MethodChannelDestination
gcashGCash11-digit mobile number
paymayaMaya (PayMaya)11-digit mobile number
grabpayGrabPay11-digit mobile number
coinsCoins.ph11-digit mobile number
bank_transferBank (InstaPay/PESONet)Bank account number

Request parameters

ParameterTypeDescription
amountnumberAmount to send (minimum 1.00)
currencystringPHP
methodstringOne of: gcash, paymaya, grabpay, coins, bank_transfer
destinationobject{"account_no": "..."} — wallet/account number
descriptionstringOptional note for your records

Bank transfer destination

For bank_transfer method, include additional bank details:

{
  "amount": 1000.00,
  "currency": "PHP",
  "method": "bank_transfer",
  "destination": {
    "account_no": "1234567890",
    "bank_code": "BDO",
    "account_name": "Juan Dela Cruz"
  },
  "description": "Supplier payment"
}

Response

{
  "id": "po_abc123",
  "object": "payout",
  "amount": 500.00,
  "currency": "PHP",
  "method": "gcash",
  "status": "pending",
  "destination": { "account_no": "09171234567" },
  "description": "Weekly settlement",
  "created_at": "2026-04-24T10:30:00Z"
}

The payout starts in pending status. Once DirectPay confirms the transfer, you will receive a webhook and the status updates to succeeded or failed.

Balance check

The API blocks payouts that would drive your balance negative. Ensure you have sufficient funds before initiating a payout. Test-mode payouts succeed immediately via MockProvider.

Ledger effect

A successful payout writes a debit row to the ledger. If the provider dispatch fails, we write an offsetting credit with kind adjustment to reverse the hold.

Webhook events

EventDescription
payout.succeededFunds successfully sent to recipient
payout.failedTransfer failed (invalid account, insufficient float, etc.)