As a partner, you can pay out up to the total amount available in the merchant’s Funds Management Account (FMA) to their designated primary bank account. A credit will push money from the FMA to the payment method on file. A debit will pull funds from the payment method on file to the FMA.
This guide shows you how to use our API to designate a merchant’s primary bank account, get FMA details such as current balance, and initiate an electronic funds transfer (EFT) from their FMA to their primary bank account and vice versa. This includes both credit (payin) and debit (payout) funding events that originate from ACH deposits.
If you prefer us to manage the automated payouts to your merchants, contact your account manager.
Before starting the steps in this guide, make sure you:
In this step, we add the bank account on file to serve as the primary payment method for payouts for the merchant’s FMA account. A merchant can then pull funds into their FMA account or push deposits from their FMA to this bank account.
If the bank account was attached as part of the merchant boarding process, or the merchant has previously added it, you can skip this step.
Because adding or editing a primary bank account is an asynchronous process, we recommend that you always review the webhook notification for a successful update.
curl --location --request PATCH 'https://apis.sandbox.globalpay.com/ucp/merchants/MER_62bf22bae11f4cc0a3d6d4a65b4f0d20' \
--header 'X-GP-Version: 2021-03-22' \
--header 'Authorization: Bearer eM1BIwT2CAr1MpC2VlwMvhNXvmy4' \
--header 'Content-Type: application/json' \
--data-raw '{
"payment_methods": [
{
"functions": [
"PRIMARY_PAYOUT"
],
"name": "John’s National Bank Account",
"reference": "My National Bank Account",
"bank_transfer": {
"account_holder_type": "PERSONAL",
"account_type": "CHECKING",
"account_number": "156423786",
"bank": {
"name": "National Bank",
"code": "124002971",
"address": {
"line_1": "1 Business Address",
"line_2": "Suite 2",
"line_3": "foyer",
"city": "Atlanta",
"state": "GA",
"postal_code": "30346",
"country": "US"
}
}
},
"notifications": {
"status_url": "https://www.example.com/status"
}
}
]
}'{
"id": "MER_62bf22bae11f4cc0a3d6d4a65b4f0d20",
"name": "Elias.Hoeger",
"status": "UNDER_REVIEW",
"type": "MERCHANT",
"time_created": "2023-03-15T19:55:48.555Z",
"time_last_updated": "2023-03-15T19:55:48.555Z",
"status_description": "Merchant Editing in progress",
"action": {
"id": "ACT_DaVjietoKTAIYas2GrTjSXe8p5p2lO",
"type": "MERCHANT_EDIT_INITIATED",
"time_created": "2023-03-15T19:55:48.555Z",
"result_code": "PENDING",
"app_id": "U1lRHKomEn7DN907RCDPxVhyMfiMLcfy",
"app_name": "demo_app"
}
}{
"id": "MER_a5d1c5ab153d458bb9e3b5ea0deac0c7",
"name": "Randall91",
"status": "ACTIVE",
"type": "MERCHANT",
"time_created": "2025-04-12 04:31:42",
"time_last_updated": "2025-05-19 15:35:37",
"status_description": "Merchant Update Successful",
"action": {
"id": "ACT_Gbl0qb7bo7bEyDyj1Wb6fPpm4nZJmI",
"type": "MERCHANT_EDIT",
"time_created": "2025-05-19T15:35:42.976Z",
"result_code": "SUCCESS",
"app_id": "s8BXOr6DxRKtizTN0fouveLB2uYFR0QV",
"app_name": "demo_app"
}
}In this step, we get the details on a merchant’s FMA. For example, you can review the merchant’s available balance for transfer (you can initiate a transfer for up to the total available amount). If you plan to deposit the merchant’s full available balance, you may be able to skip this step.
Capability must be set to PAY_OUT_ENABLE to initiate the transfer. If a merchant has PAY_OUT_DISABLE, the following may help to indicate if they have exceeded their processing limit:
CARD_PROCESSING_OVER_LIMIT_ENABLE
BANK_TRANSFER_PROCESSING_OVER_LIMIT_ENABLE
CARD_PROCESSING_OVER_LIMIT_DISABLE
BANK_TRANSFER_PROCESSING_OVER_LIMIT_DISABLE
curl --compressed -X GET "https://apis.sandbox.globalpay.com/ucp/merchants/MER_31087d9c-e68c-4389-9f13-39378e166ea5/accounts/FMA_02ca6d0284b743449a28aadfb702c71c" \
-H "Authorization: Bearer G3FA4TuYGCBiCWs4YpzrALGCYXZJ" \
-H "X-GP-Version: 2021-03-22" \{
"id": "FMA_345e7b4fe3474b549e940ad2fc682377",
"type": "FUND_MANAGEMENT",
"name": "718657604_402300",
"status": "ACTIVE",
"time_created": "2025-04-12T04:32:32.000Z",
"time_last_updated": "",
"permissions": [
"ACC_GET_List",
"ACC_GET_Single",
"FMA_LIMIT_Notification",
"FND_POST_Create",
"GET_Single",
"TRF_POST_Reverse",
"TRF_POST_Transfer"
],
"capabilities": [
"PAY_OUT_ENABLE",
"CARD_PROCESSING_OVER_LIMIT_ENABLE",
"BANK_TRANSFER_PROCESSING_OVER_LIMIT_ENABLE"
],
"payment_processing_statistics": {
"card_transaction_limit_amount": "50000",
"card_monthly_limit_amount": "300000",
"bank_transfer_per_transaction_limit_amount": "1000000",
"bank_transfer_monthly_limit_amount": "300000000",
"bank_transfer_month_to_date_processed_amount": "0",
"card_month_to_date_processed_amount": "0",
"available_balance_amount": "0",
"pending_balance_amount": "0",
"reserve_balance_amount": "0",
"allowed_negative_balance_amount": "50000",
"disable_payout_card_limit_percentage": "300",
"disable_payout_bank_transfer_limit_percentage": "300",
"card_month_to_date_processed_percentage": "0.00",
"bank_transfer_month_to_date_processed_percentage": "0.00"
},
"action": {
"id": "ACT_VCD9ILVitKg9SdP8Lbir6AjREQ0tl4",
"type": "ACCOUNT_SINGLE",
"time_created": "2025-04-18T17:24:35.545Z",
"result_code": "SUCCESS",
"app_id": "s8BXOr6DxRKtizTN0fouveLB2uYFR0QV",
"app_name": "demo app"
}
}This step initiates an EFT to or from the primary payout payment method on file. Specifically, we show how to initiate a debit (payout) and credit (payin) from the ACH deposit to the primary bank account designated in Step 1.
For complete API request details, see the API Explorer.
ACH/EFT is available in the United States, Canada, and the United Kingdom. However, instant card deposit (FMA to debit card) is available only in the United States.
curl --location --request POST 'https://apis.sandbox.globalpay.com/ucp/merchants/MER_62bf22bae11f4cc0a3d6d4a65b4f0d20'/settlement/funds' \
--header 'X-GP-Version: 2021-03-22' \
--header
'Authorization: Bearer A4hPJEYQnARjtNLnsHgOkz2e6yzU' \
--header 'Content-Type: application/json' \
\
--data-raw '{
"account_name": "718556837_989567",
"account_id": "FMA_bde109d70fb24d78b25fd364317dd9dc",
"type": "DEBIT",
"amount": "500",
"currency": "USD",
"payment_method": "BANK_TRANSFER"
}{
"id": "FND_ZkGPrJiuVRMCh10VEyInhn0fbTKdfT",
"time_created": "2021-05-03T21:23:39.718Z",
"time_last_updated": "2021-05-03T21:23:39.718Z",
"type": "DEBIT",
"status": "CAPTURED",
"amount": "500",
"merchant_id": "MER_c4c0df11039c48a9b63701adeaa296c3",
"merchant_name": "Sandbox_merchant_2",
"account_id": "FMA_bde109d70fb24d78b25fd364317dd9dc",
"account_name": "718556837_989567",
"currency": "USD",
"payment_method": "BANK_TRANSFER",
"provider": {
"result": "00",
"message": "SUCCESS"
},
"action": {
"id": "ACT_uzFr7t4VOqxdLDI44hHmXIjHtOOE8d",
"type": "FUNDS",
"time_created": "2021-05-03T21:23:39.718Z",
"result_code": "SUCCESS",
"app_id": "U1lRHKomEn7DN907RCDPxVhyMfiMLcfy",
"app_name": "demo_app"
}
}Credit (payin) is available only in the United States.
curl --location --request POST 'https://apis.sandbox.globalpay.com/ucp//merchants/MER_62bf22bae11f4cc0a3d6d4a65b4f0d20'/settlement/funds' \
--header 'X-GP-Version: 2021-03-22' \
--header
'Authorization: Bearer A4hPJEYQnARjtNLnsHgOkz2e6yzU' \
--header 'Content-Type: application/json' \
\
--data-raw '{
"account_id":"FMA_1ee6035273cc422b9c0d14e4371fd753",
"type": "CREDIT",
"amount": "10",
"currency": "USD",
"payment_methods": "BANK_TRANSFER"
}{
"id": "FND_FW8Ks2fsPYzvOetzYDJ7n7x5nK5Yl7",
"status": "CAPTURED",
"merchant_id": "MER_62bf22bae11f4cc0a3d6d4a65b4f0d20'",
"merchant_name": "Edgar39",
"account_id": "FMA_1ee6035273cc422b9c0d14e4371fd753",
"account_name": "718559464_407259",
"type": "CREDIT",
"amount": "10",
"time_created": "2023-02-01T15:28:27.690Z",
"time_last_updated": "2023-02-01T15:28:27.690Z",
"result": "00",
"message": "Successful",
"action": {
"id": "ACT_FW8Ks2fsPYzvOetzYDJ7n7x5nK5Yl7",
"type": "FUNDS",
"time_created": "2023-02-01T15:28:28.049Z",
"result_code": "SUCCESS",
"app_id": "U1lRHKomEn7DN907RCDPxVhyMfiMLcfy",
"app_name": "demo_app"
}
}To get a deeper understanding of money movement, we recommend that you use our provided integration references for both API and SDK integrations. For the full detailed API specification, see the API Explorer.
See the full API specification for creating an access token.
See the full API specification for crediting or debiting a funds account.
Add server-side or client-side code to your integration.
This solution is available for testing in our free Sandbox environment for registered users of this developer portal. Use our resources below to start testing different scenarios.
Test different transaction outcomes with simulated cards or banks.
View, import, or fork our API collection in Postman.
View successful responses, HTTP status codes, action response data, and errors.
Below are recommended next steps for your partners integration.