A batch payout can partially succeed.
Payoneer pays some, fails others,
rolls back nothing.
Payoneer is not a checkout gateway — it's a payout platform. Instead of collecting money from customers, you use it to pay sellers, contractors, and affiliates at scale. A single API call can batch dozens of cross-border transfers across multiple currencies.
Use case
B2B payouts
Currencies
Multi-currency
To start
0 setup
Payoneer is fundamentally different from most payment gateways on this list. Where Stripe, PayPal, and Razorpay help you collect money from customers, Payoneer helps you send money to recipients — contractors, marketplace sellers, affiliates, or any payee with a Payoneer account. This means there is no checkout flow, no customer redirect, and no card form. The entire flow is server-side.
The Payouts API accepts a payee_id (the recipient's Payoneer account identifier), an amount, and a currency. You can submit individual payouts or batch multiple recipients into a single API call. Batches are processed asynchronously — each payout gets its own status: PENDING while queued, PROCESSING while being sent, PAID when received. A batch can partially succeed — some payouts PAID while others FAILED.
Common failure reasons include PAYEE_ACCOUNT_INACTIVE (recipient hasn't activated their Payoneer account), INSUFFICIENT_BALANCE (your balance is too low), and CURRENCY_NOT_SUPPORTED. You need to handle these per-payout errors in batch responses, not just a top-level success/failure. This mock delivers the full batch payout flow and all status transitions.
Payouts, not collections
Most payment gateways move money toward you. Payoneer moves money away from you. That's not a limitation — it's the whole point. If you're building a marketplace, a gig platform, or an affiliate network, your problem isn't collecting payments: it's distributing them.
Standard gateway (Stripe, PayPal)
Customer
pays $50
You
receive $50
You are the merchant. Customers pay you. Your bank account fills up.
Payoneer
You
send $250
Recipient
contractor / seller
You are the payer. Sellers, contractors, affiliates receive money from you.
Common use cases: marketplace seller payouts, freelance platform contractor payments, affiliate network commissions, content creator royalties.
Mass payout flow
Payoneer processes payouts asynchronously. You submit a batch, receive a batch_id immediately, then track individual statuses as they settle. A batch can span multiple currencies and dozens of recipients.
Batch the payouts
Build a list of recipients (payee_id + amount + currency). Each entry gets a client_reference_id you define — this is how you match webhook events back to your internal records.
Submit the batch
POST the entire array in one request. Payoneer returns a batch_id immediately with status PENDING. Batches can contain payouts in multiple currencies.
Track per-recipient status
Poll GET /payouts/{batch_id} or listen for payout.paid and payout.failed webhooks. Each recipient has its own status — a batch can be partially successful.
Payout statuses
Each entry in a batch has its own lifecycle. Handle all five states.
In the queue, not yet sent to the recipient.
Being transferred — funds are in flight to the recipient's account.
Recipient received funds. Update your records and mark the payout complete.
Payout did not complete. Check error_code in the webhook or batch status response.
Cancelled before processing began. Can be re-submitted as a new payout.
curl -X POST https://mockgateway.dev/api/base/payoneer/init \
-H "Authorization: Bearer YOUR_MOCK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"payouts": [
{
"payee_id": "payoneer_uid_00481",
"amount": 250.00,
"currency": "USD",
"description": "Freelance project — March invoice",
"client_reference_id": "PAY-REF-20001"
},
{
"payee_id": "payoneer_uid_00927",
"amount": 1800.00,
"currency": "EUR",
"description": "Marketplace seller payout — week 12",
"client_reference_id": "PAY-REF-20002"
}
]
}'Request parameters
Sent to POST /api/base/payoneer/init
| Parameter | Type | Required | Description |
|---|---|---|---|
amount | number | required | Transaction amount e.g. 99.99 |
currency | string | required | ISO 4217 currency e.g. USD |
order_id | string | required | Your unique order reference e.g. ORD-12345 |
description | string | optional | Payment description |
Response fields
| Field | Type | Description |
|---|---|---|
transaction_id | string | Payoneer transaction ID |
status | enum | Transaction status |
created_at | datetime |
Frequently asked questions
Other gateway templates
Looking for a different provider?