Skip to main content
The Pay on Behalf Of (POBO) flow allows you to initiate cross-border payouts where the funds are explicitly sent on behalf of a distinct third party (the sender) to the final destination (the recipient). In standard local payouts, your platform’s workspace or wallet owner is implicitly assumed to be the sender. However, for international transfers, global compliance and Anti-Money Laundering (AML) regulations require strict identification of both the sending and receiving parties. The flow represents the relationship between the parties:
  • Sender: The person or business on whose behalf the payout is being made.
  • meCash POBO Payout: Processes the payout using the specified quote and payment channel.
  • Recipient: The final beneficiary receiving the funds.
  • Recipient Bank Account: The account where the funds are delivered.
  • Payment Channel: Determines how the payout is routed and, for applicable SWIFT transfers, how transfer charges are handled.

Supported Corridors

POBO requires explicitly passing a sender object and is currently supported for:
  • US Dollar (USD): To US bank accounts via SWIFT.
  • Euro (EUR): To SEPA countries via Bank Transfer or SWIFT.

The Sender Object

The sender object must map to the individual or business initiating the transfer on your platform.

Sender Types

Set sender.type to accurately reflect the entity:
  • INDIVIDUAL or PERSON: Use when the sender is a natural person.
  • BUSINESS: Use when the sender is a registered company.

Specific KYC Requirements

Depending on the corridor, specific sender fields are required: USD Payouts:
  • icNumber: Identification number of the sender.
  • mobileNumber: International mobile number (e.g., +234...).
EUR Payouts:
  • dateOfIncorporation: The business incorporation date (Required if type is BUSINESS).
  • relationship: The sender’s relationship to the account (e.g., Self).

The Recipient Object

The recipient object must capture the final beneficiary receiving the funds. Like the sender, you must define recipient.type as INDIVIDUAL (or PERSON) or BUSINESS. You must also provide international banking credentials:
  • swiftCode: The BIC/SWIFT code (Required for USD).
  • accountNumber or iban: The recipient’s local account number or IBAN.

Payment Channels & Fees

For cross-border POBO payouts, the paymentChannel must be provided at the root level of the JSON request.

SWIFT Channels

For SWIFT payouts (USD and optionally EUR), you must specify who bears the transfer network fees:

SEPA Channels

For EUR transfers via SEPA, use BANK_TRANSFER as the payment channel.

Constructing the Request

To initiate a POBO payout, you must link an active Quote to the transaction and pass both the sender and recipient blocks.

Example: USD POBO (SWIFT)

Example: EUR POBO (SEPA)


Webhooks & Tracking

POBO payouts settle asynchronously over international networks (like SWIFT), which means they rarely succeed instantly.
  1. Initial Status: A successful API response will return a state of PENDING.
  2. Tracking via API: Use the Get Transaction API using the referenceNumber to poll the status.
  3. Webhooks: The most reliable way to track completion is to subscribe to the payout.completed and payout.failed webhook events.

Error Handling

If you misconfigure the POBO fields, you will likely encounter a 400 Bad Request or 422 Unprocessable Entity. Common validation errors include:
  • Missing sender object for USD or EUR requests.
  • Invalid type (Must be INDIVIDUAL, PERSON, or BUSINESS).
  • Missing paymentChannel at the root of the request payload.
  • Attempting to use a SWIFT channel for a destination that only supports BANK_TRANSFER.