Skip to main content

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

money in

You

receive $50

You are the merchant. Customers pay you. Your bank account fills up.

Payoneer

You

send $250

money out

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.

1

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.

2

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.

3

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.

PENDING

In the queue, not yet sent to the recipient.

PROCESSING

Being transferred — funds are in flight to the recipient's account.

PAID

Recipient received funds. Update your records and mark the payout complete.

FAILED

Payout did not complete. Check error_code in the webhook or batch status response.

CANCELED

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

Request parameters
ParameterTypeRequiredDescription
amountnumberrequired

Transaction amount

e.g. 99.99
currencystringrequired

ISO 4217 currency

e.g. USD
order_idstringrequired

Your unique order reference

e.g. ORD-12345
descriptionstringoptional

Payment description

Response fields

Response fields
FieldTypeDescription
transaction_idstringPayoneer transaction ID
statusenumTransaction status
created_atdatetime

Frequently asked questions

Other gateway templates

Looking for a different provider?