Process Global Payouts
Send outbound transfers to approved payee bank accounts using API or Virtual Terminal.
Introduction
Global Payouts allow you to send funds to a payee’s bank account by bank transfer. This payment type is intended for outbound credit transfers. You submit the payout details through the API or from a Virtual Terminal. The payout is then reviewed and processed through the banking route.
Prerequisites and availability
Before you start, make sure you meet the following prerequisites:
- Global Payouts require operational approval by emerchantpay Support.
- Before you can make a Global Payout, onboard the beneficiary as a Payee and complete the required verification and compliance checks. You must also add the beneficiary’s bank account as a Payee Account and complete the bank account verification.
- Your merchant-level Notification URL is configured if you want to receive asynchronous status updates.
You can send Global Payouts to bank accounts in the following countries and territories: European Economic Area (EU Member States plus Iceland, Liechtenstein and Norway), United Kingdom (Gibraltar is supported, but Crown dependencies such as the Isle of Man, Guernsey and Jersey are excluded), Switzerland, United States, Canada, Australia, New Zealand, Hong Kong, Singapore, Japan, China, India, Malaysia, South Korea and Thailand.
You can submit Global Payouts in GBP and EUR. Other currencies may be available for settlement, depending on the payout route.
Global Payout via API
To initiate a Global Payout using API, submit a transaction request with the transaction_type set to global_payout. You must submit the payout to an approved Payee account. The payee_account_id identifies the verified bank account that will receive the funds.
Global Payout requests must include the transaction details, payout amount, currency, payee account and billing address information needed to process the payout. See the Request parameters section for more details.
Global Payouts are asynchronous. A successful API validation response means that the payout has been accepted for processing; it does not always mean that the beneficiary has already received the funds. Use notifications or transaction status checks to confirm the final outcome.
global_payout request does not include a notification_url parameter. To receive asynchronous payout status updates, contact emerchantpay Support or your Account Manager to configure the Notification URL at the account level. If you are not sure whether this is already configured for your merchant account, log in to the Gateway Console and go to Configuration > Merchants, then click Actions > View Details to the left of your merchant name and finally, on the Merchant Details page, check the Notification URL panel on the right.

Example request
The following is an example request:
<payment_transaction>
<transaction_type>global_payout</transaction_type>
<transaction_id>119643250547501c79d8295</transaction_id>
<usage>Concert ticket refund</usage>
<remote_ip>245.253.2.12</remote_ip>
<amount>100</amount>
<currency>GBP</currency>
<payee_account_id>ea4e1dfa-80f1-47fd-96f5-f796c9864e50</payee_account_id>
<billing_address>
<first_name>John</first_name>
<last_name>Smith</last_name>
<address1>45 North Str</address1>
<city>London</city>
<zip_code>W1T 2QS</zip_code>
<country>GB</country>
</billing_address>
</payment_transaction>
The Global Payout request references the approved Payee Account using payee_account_id. Required fields can vary depending on the destination country, currency and clearing route.
Request parameters
The following table lists the parameters you can include when submitting a Global Payout request:
| PARAMETER | REQUIRED | FORMAT | DESCRIPTION |
|---|---|---|---|
transaction_type |
Required | String (255) |
The transaction type: set to global_payout. |
transaction_id |
Required | String (255) | Unique transaction ID defined by you. |
usage |
Optional | String (255) | Description of the transaction for later use. |
remote_ip |
Required* | IPv4 or IPv6 address | IPv4 or IPv6 address of the customer. |
amount |
Required | Integer > 0 | Amount of the transaction in minor currency units. |
currency |
Required | String (3) | Currency code in ISO 4217 format. |
payee_account_id |
Required | String | Unique Account ID of the Payee Account. For more details, see the Payee Accounts API. |
billing_address |
Required | Object | Billing address object. |
first_name |
Required* | String (255) | Payee first name. |
last_name |
Required* | String (255) | Payee last name. |
address1 |
Required* | String (255) | Primary address. |
address2 |
Required* | String (255) | Secondary address. |
zip_code |
Required* | String (255) | ZIP code. |
city |
Required* | String (255) | City. |
neighborhood |
Required* | String (255) | Neighbourhood. |
state |
Required* | String (2) | State code in ISO 3166-2 format. Required for the USA and Canada. |
country |
Required* | String (2) | Country code in ISO 3166 format. |
An asterisk * indicates that the parameter is conditionally required.
Example response
The following is an example response:
<payment_response>
<transaction_type>global_payout</transaction_type>
<status>pending_async</status>
<mode>live</mode>
<transaction_id>119643250547501c79d8295</transaction_id>
<unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
<timestamp>2026-05-28T07:35:36Z</timestamp>
<descriptor>Acme Co.</descriptor>
<amount>100</amount>
<currency>GBP</currency>
<sent_to_acquirer>false</sent_to_acquirer>
</payment_response>
Do not treat pending_async as a final result. The final payout result is returned later through notifications sent to your Notification URL or through transaction status checks by unique_id or transaction_id.
Response parameters
The following table describes the parameters returned in a successful Global Payout response:
| PARAMETER | FORMAT | DESCRIPTION |
|---|---|---|
transaction_type |
String (255) | The transaction type. |
status |
String (255) | The status of the transaction. See Transaction states for details. |
mode |
String (4) |
Mode of the transaction’s terminal. Can be test or live. |
transaction_id |
String (255) | Unique transaction ID defined by you. |
unique_id |
String (32) | Unique ID defined by the gateway. |
timestamp |
String (255) | Time when the transaction was processed in ISO 8601 combined date and time format, for example 2007-08-30T17:46:11Z. |
descriptor |
String (255) | Static descriptor MID information as configured on the gateway. |
amount |
Integer | Amount of the transaction in minor currency units. |
currency |
String (255) | Currency code in ISO 4217 format. |
sent_to_acquirer |
String (255) |
Indicates whether the transaction was sent to the acquirer. The possible values are true or false. |
Error handling
If the Global Payout request fails validation or cannot be accepted for processing, you get an error response.
The error response includes the same transaction details as a successful response, with the following differences:
statusis returned aserror.technical_messageprovides the technical error details. This value is intended for internal use and should not be displayed to customers.messageprovides a human-readable error message that can be displayed to customers, where appropriate.
The following is an example error response:
<payment_response>
<transaction_type>global_payout</transaction_type>
<status>error</status>
<technical_message>billing_address[zip_code] is invalid!</technical_message>
<message>billing_address[zip_code] is invalid!</message>
<mode>live</mode>
<transaction_id>119643250547501c79d8295</transaction_id>
<unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
<timestamp>2026-05-28T07:35:36Z</timestamp>
<descriptor>Descriptor one</descriptor>
<amount>100</amount>
<currency>GBP</currency>
<sent_to_acquirer>false</sent_to_acquirer>
</payment_response>
Global Payout via Virtual Terminal
Use Virtual Terminal when you want to submit a Global Payout manually from the Gateway Console instead of integrating through the API.
To submit a Global Payout through a Virtual Terminal:
- Open the Gateway Console and select Virtual Terminal in the navigation menu.
- Select the Global Payout transaction type. You can use the Search to find it quickly.

- Choose the applicable Terminal to process the payout.
- Enter the Amount and make sure to select the correct currency.
- Enter the Payee Account Identifier and other beneficiary details such as the date of birth, email, phone, names, and address. The Payee Account Identifier must refer to an existing approved Payee account.
- Optionally, you can set a custom Transaction ID – a unique reference for the payout.
- The Usage field refers to a short description or reference for the payout to help identify the business purpose of the transaction.
- Enter the Notification URL where you want to receive asynchronous payout status updates.
- Enter the Return success URL where you want to redirect the user after a successful payout submission.
- Enter the Return failure URL is where you want to redirect the user after a failed payout submission.

- Click the Process button to submit the payout.
The payee later receives the funds in their bank account if the payout is successful.