Process bank payouts in Brazil

Learn how to transfer funds to customers in Brazil using emerchantpay’s various methods of bank payouts.


You can send funds to customers’ bank accounts in Brazil through bank payouts using the emerchantpay Payout API.

Supported countries Brazil
Currency BRL
Upfront payment No initial pay-in is required.
Payment method Your customers receive funds via a straightforward bank transfer to their bank accounts.
Supported types of bank payouts PIX and Bank-to-bank
Supported business models B2C and B2B

When processing bank payouts in Brazil, you can choose between two different types of bank payouts:

PIX payout flow

  • Customer involvement: Customers provide their PIX key.
  • Process overview: This flow is designed for transactions involving the PIX instant payment system.
  • Result: Funds are transferred directly through PIX based on the provided PIX key.

Bank-to-bank payout flow

  • Customer involvement: Customers provide their bank account details.
  • Process overview: This flow is suitable for transactions involving standard bank account transfers.
  • Result: Funds are transferred to the specified bank account based on the provided details.


PIX payouts

You can make payouts to customers’ bank accounts using PIX, a streamlined instant payment method in Brazil.

emerchantpay supports two business models: Business to Consumer (B2C) and Business to Business (B2B).

When processing bank payouts with PIX, you have two integration options:

  • Manual integration via virtual terminal
  • API integration

Below, you’ll find a detailed listing of the required and optional parameters for the API request, if you choose the API integration option.


PIX B2C payouts

To initiate PIX B2C payouts, use the parameters outlined in the table below.

Parameter Required Format Description
transaction_type required string(255) The type of transaction, specifying bank_payout.
transaction_id required string(255) A unique identifier for the transaction defined by you.
remote_ip required IPv4 or IPv6 address The IPv4 or IPv6 address of the customer.
amount required integer > 0 The amount (in minor currency units) that transfers to your bank account or debit card. See Currency and Amount Handling for more details.
currency required string(3) The three-letter currency code following ISO 4217 standards associated with the transaction.
notification_url required URL The URL for receiving the transaction outcome from the gateway.
return_failure_url required URL The URL to which the customer is directed after an unsuccessful payment.
return_success_url required URL The URL to which the customer is directed after a successful payment.
customer_email required e-mail address A valid email address of the customer.
document_id required string(11) Customer’s Brazilian Identification Number (CPF). Use only numeric characters.
bank_account_name required bank account name The name of the account holder as it appears on the bank account.
pix_key required string(255) PIX key of the customer.
payment_type required string(12) Bank payout subtypes. Use pix.
billing_address required object A group of parameters describing the billing address provided by the customer.
first_name required string(255) The first name of the customer.
last_name required string(255) The last name of the customer.
city required string(255) The name of the city in the address information associated with the transaction.
country required string(2) The two-letter country code following ISO 3166 standards associated with the transaction.

Parameter Required Format Description
customer_phone optional string(32) A valid phone number of the customer.
mothers_name optional string(255) The customer’s mother’s name.
usage optional string(255) A description of the transaction for future reference.
address1 optional string(255) The primary address associated with the transaction. This parameter is part of the billing_address object.
address2 optional string(255) The secondary address associated with the transaction. This parameter is part of the billing_address object.
state optional string(2) The state code following ISO 3166-2 standards, required for transactions in the USA and Canada. This parameter is part of the billing_address object.
zip_code optional string The ZIP code associated with the transaction. This parameter is part of the billing_address object.

See the example API request for PIX B2C payouts below:

<payment_transaction>
  <transaction_type>bank_payout</transaction_type>
  <transaction_id>119643250547501c79d8295</transaction_id>
  <remote_ip>127.0.0.1</remote_ip>
  <amount>5000</amount>
  <currency>BRL</currency>
  <notification_url>https://www.example.com/notification</notification_url>
  <return_success_url>https://example.com/return_success_url</return_success_url>
  <return_failure_url>https://example.com/return_failure_url</return_failure_url>
  <return_pending_url>https://example.com/return_pending_url</return_pending_url>
  <customer_email>paulo@teste.com.br</customer_email>
  <document_id>59754295018</document_id>
  <mothers_name>Test</mothers_name>
  <bank_account_name>Paulo da Silva</bank_account_name>
  <pix_key>59754295018</pix_key>
  <payment_type>pix</payment_type>
  <billing_address>
    <first_name>Paulo</first_name>
    <last_name>da Silva</last_name>
    <city>Sao Paulo</city>
    <country>BR</country>
  </billing_address>
</payment_transaction>

See the example API response for PIX B2C payouts below:

<payment_response>
    <transaction_type>bank_payout</transaction_type>
    <status>pending_async</status>
    <unique_id>8bd0773cd8655271ffbe430ac689078f</unique_id>
    <transaction_id>8372a4bd-c7de-4841-a1c0-fd31947a2c26</transaction_id>
    <technical_message>TESTMODE: No real money will be transferred!</technical_message>
    <message>TESTMODE: No real money will be transferred!</message>
    <mode>test</mode>
    <timestamp>2023-11-15T11:49:44Z</timestamp>
    <descriptor>Test</descriptor>
    <amount>5000</amount>
    <currency>BRL</currency>
    <sent_to_acquirer>false</sent_to_acquirer>
</payment_response>


PIX B2B payouts

To initiate PIX B2B payouts, use the parameters outlined in the table below.

Parameter Required Format Description
transaction_type required string(255) The type of transaction, specifying bank_payout.
transaction_id required string(255) A unique identifier for the transaction defined by you.
remote_ip required IPv4 or IPv6 address The IPv4 or IPv6 address of the customer.
amount required integer > 0 The amount (in minor currency units) that transfers to your bank account or debit card. See Currency and Amount Handling for more details.
currency required string(3) The three-letter currency code following ISO 4217 standards associated with the transaction.
notification_url required URL The URL for receiving the transaction outcome from the gateway.
return_failure_url required URL The URL to which the customer is directed after an unsuccessful payment.
return_success_url required URL The URL to which the customer is directed after a successful payment.
customer_email required e-mail address A valid email address of the customer.
document_id required string(14) Customer’s Brazilian Identification Number (CNPJ). Use only numeric characters.
bank_account_name required bank account name The name of the account holder as it appears on the bank account.
company_type required string(255) The legal entity’s type of business or company.

SA = 0, LTDA = 1, MEI = 2, ME = 3, EIRELI = 4, Condominium = 5, Closed SA = 6, Simple EIRELI = 7, Others = 8

company_activity required string(255) The business activity of the legal entity.
incorporation_date required yyyy-mm-dd The incorporation date of the legal entity.
pix_key required string(255) PIX key of the customer.
payment_type required string(12) Bank payout subtypes. Use pix_b2b.
billing_address required object A group of parameters describing the billing address provided by the customer.
first_name required string(255) The first name of the customer.
last_name required string(255) The last name of the customer.
city required string(255) The name of the city in the address information associated with the transaction.
country required string(2) The two-letter country code following ISO 3166 standards associated with the transaction.

Parameter Required Format Description
customer_phone optional string(32) A valid phone number of the customer.
usage optional string(255) A description of the transaction for future reference.
address1 optional string(255) The primary address associated with the transaction. This parameter is part of the billing_address object.
address2 optional string(255) The secondary address associated with the transaction. This parameter is part of the billing_address object.
state optional string(2) The state code following ISO 3166-2 standards, required for transactions in the USA and Canada. This parameter is part of the billing_address object.
zip_code optional string The ZIP code associated with the transaction. This parameter is part of the billing_address object.

See the example API request for PIX B2B payouts below:

<payment_transaction>
  <transaction_type>bank_payout</transaction_type>
  <transaction_id>{{$guid}}</transaction_id>
  <remote_ip>127.0.0.1</remote_ip>
  <amount>900</amount>
  <currency>BRL</currency>
  <notification_url>https://www.example.com/notification</notification_url>
  <return_success_url>https://example.com/return_success_url</return_success_url>
  <return_failure_url>https://example.com/return_failure_url</return_failure_url>
  <return_pending_url>https://example.com/return_pending_url</return_pending_url>
  <customer_email>companya@teste.com.br</customer_email>
  <customer_phone>+5511991119999</customer_phone>
  <document_id>63507349000134</document_id>
  <bank_account_name>Company A</bank_account_name>
  <company_type>SA</company_type>
  <company_activity>null</company_activity>
  <incorporation_date>2000/07/12</incorporation_date>
  <pix_key>63507349000134</pix_key>
  <payment_type>pix_b2b</payment_type>
  <billing_address>
    <first_name>Company</first_name>
    <last_name>A</last_name>
    <city>Sao Paulo</city>
    <country>BR</country>
  </billing_address>
</payment_transaction>

See the example API response for PIX B2B payouts below:

<payment_response>
    <transaction_type>bank_payout</transaction_type>
    <status>pending_async</status>
    <unique_id>432c17300b7fa8f502c4d1d4a583d3a5</unique_id>
    <transaction_id>28f5fd8c-75c0-4726-988c-52e246a95c7f</transaction_id>
    <technical_message>TESTMODE: No real money will be transferred!</technical_message>
    <message>TESTMODE: No real money will be transferred!</message>
    <mode>test</mode>
    <timestamp>2023-11-28T11:47:34Z</timestamp>
    <descriptor>Test</descriptor>
    <amount>900</amount>
    <currency>BRL</currency>
    <sent_to_acquirer>false</sent_to_acquirer>
</payment_response>


Bank-to-bank payouts

A bank-to-bank payout is a financial transaction where funds are transferred directly from one bank account to another.

emerchantpay supports two business models: Business to Consumer (B2C) and Business to Business (B2B).

You have two integration options:

  • Manual integration via virtual terminal
  • API integration

Below, you’ll find a detailed listing of the required and optional parameters for the API request, if you choose the API integration option.


Bank-to-bank B2C payouts

To initiate bank-to-bank B2C payouts, use the parameters outlined in the table below.

Parameter Required Format Description
transaction_type required string(255) The type of transaction, specifying bank_payout.
transaction_id required string(255) A unique identifier for the transaction defined by you.
remote_ip required IPv4 or IPv6 address The IPv4 or IPv6 address of the customer.
amount required integer > 0 The amount (in minor currency units) that transfers to your bank account or debit card. See Currency and Amount Handling for more details.
currency required string(3) The three-letter currency code following ISO 4217 standards associated with the transaction.
notification_url required URL The URL for receiving the transaction outcome from the gateway.
return_failure_url required URL The URL to which the customer is directed after an unsuccessful payment.
return_success_url required URL The URL to which the customer is directed after a successful payment.
customer_email required e-mail address A valid email address of the customer.
document_id required string(11) Customer’s Brazilian Identification Number (CPF). Use only numeric characters.
bank_code required bank code The bank code used to process the transaction. It must be one of the supported bank codes.
bank_branch required string The bank agency code associated with the transaction. The code is a set of numbers or letters that identifies a specific branch of a bank.
bank_account_name required bank account name The name of the account holder as it appears on the bank account.
bank_account_number required bank account number The customer’s bank account number.
bank_account_verification_digit required string(1) The verification digit associated with the beneficiary’s bank account.
bank_account_type required string(1) The type of account. Use C for checking accounts and S for savings accounts.
payment_type required string(12) Bank payout subtypes. Use bank_to_bank.
billing_address required object A group of parameters describing the billing address provided by the customer.
first_name required string(255) The first name of the customer.
last_name required string(255) The last name of the customer.
city required string(255) The name of the city in the address information associated with the transaction.
country required string(2) The two-letter country code following ISO 3166 standards associated with the transaction.

Parameter Required Format Description
bank_name optional bank name Name of the bank associated with the bank account. If specified, it must be one of the supported bank names.
customer_phone optional string(32) A valid phone number of the customer.
mothers_name optional string(255) The customer’s mother’s name.
usage optional string(255) A description of the transaction for future reference.
address1 optional string(255) The primary address associated with the transaction. This parameter is part of the billing_address object.
address2 optional string(255) The secondary address associated with the transaction. This parameter is part of the billing_address object.
state optional string(2) The state code following ISO 3166-2 standards, required for transactions in the USA and Canada. This parameter is part of the billing_address object.
zip_code optional string The ZIP code associated with the transaction. This parameter is part of the billing_address object.

See the example API request for B2C bank-to-bank payouts below:

<payment_transaction>
  <transaction_type>bank_payout</transaction_type>
  <transaction_id>119643250547501c79d8295</transaction_id>
  <remote_ip>127.0.0.1</remote_ip>
  <amount>1200</amount>
  <currency>BRL</currency>
  <notification_url>https://www.example.com/notification</notification_url>
  <return_success_url>https://example.com/return_success_url</return_success_url>
  <return_failure_url>https://example.com/return_failure_url</return_failure_url>
  <return_pending_url>https://example.com/return_pending_url</return_pending_url>
  <customer_email>paulo@teste.com.br</customer_email>
  <customer_phone>+5585997784745</customer_phone>
  <billing_address>
    <first_name>Paulo</first_name>
    <last_name>da Silva</last_name>
    <city>Sao Paulo</city>
    <country>BR</country>
  </billing_address>
  <document_id>59754295018</document_id>
  <bank_code>450</bank_code>
  <bank_branch>0001</bank_branch>
  <bank_account_name>Test</bank_account_name>
  <bank_account_number>8209260</bank_account_number>
  <bank_account_verification_digit>6</bank_account_verification_digit>
  <bank_account_type>C</bank_account_type>
  <payment_type>bank_to_bank</payment_type>
</payment_transaction>

See the example API response for B2C bank-to-bank payouts below:

<payment_response>
    <transaction_type>bank_payout</transaction_type>
    <status>pending_async</status>
    <unique_id>bd2a1415b1db5af80a02b3d7dd5e65ba</unique_id>
    <transaction_id>86182d84-325f-41b3-b603-8c15b33eb349</transaction_id>
    <bank_account_number>8209260</bank_account_number>
    <technical_message>TESTMODE: No real money will be transferred!</technical_message>
    <message>TESTMODE: No real money will be transferred!</message>
    <mode>test</mode>
    <timestamp>2023-11-15T11:55:35Z</timestamp>
    <descriptor>Test</descriptor>
    <amount>1200</amount>
    <currency>BRL</currency>
    <sent_to_acquirer>false</sent_to_acquirer>
</payment_response>


Bank-to-bank B2B payouts

To initiate bank-to-bank B2B payouts, use the parameters outlined in the table below.

Parameter Required Format Description
transaction_type required string(255) The type of transaction, specifying bank_payout.
transaction_id required string(255) A unique identifier for the transaction defined by you.
remote_ip required IPv4 or IPv6 address The IPv4 or IPv6 address of the customer.
amount required integer > 0 The amount (in minor currency units) that transfers to your bank account or debit card. See Currency and Amount Handling for more details.
currency required string(3) The three-letter currency code following ISO 4217 standards associated with the transaction.
notification_url required URL The URL for receiving the transaction outcome from the gateway.
return_failure_url required URL The URL to which the customer is directed after an unsuccessful payment.
return_success_url required URL The URL to which the customer is directed after a successful payment.
customer_email required e-mail address A valid email address of the customer.
document_id required string(14) Customer’s Brazilian Identification Number (CNPJ). Use only numeric characters.
company_type required string(255) The legal entity’s type of business or company.

SA = 0, LTDA = 1, MEI = 2, ME = 3, EIRELI = 4, Condominium = 5, Closed SA = 6, Simple EIRELI = 7, Others = 8

company_activity required string(255) The business activity of the legal entity.
incorporation_date required yyyy-mm-dd The incorporation date of the legal entity.
bank_code required bank code The bank code used to process the transaction. It must be one of the supported bank codes.
bank_branch required string The bank agency code associated with the transaction. The code is a set of numbers or letters that identifies a specific branch of a bank.
bank_account_name required bank account name The name of the account holder as it appears on the bank account.
bank_account_number required bank account number The customer’s bank account number.
bank_account_verification_digit required string(1) The verification digit associated with the beneficiary’s bank account.
bank_account_type required string(1) The type of account. Use C for checking accounts and S for savings accounts.
payment_type required string(12) Bank payout subtypes. Use bank_to_bank_b2b.
billing_address required object A group of parameters describing the billing address provided by the customer.
first_name required string(255) The first name of the customer.
last_name required string(255) The last name of the customer.
city required string(255) The name of the city in the address information associated with the transaction.
country required string(2) The two-letter country code following ISO 3166 standards associated with the transaction.

Parameter Required Format Description
bank_name optional bank name Name of the bank associated with the bank account. If specified, it must be one of the supported bank names.
customer_phone optional string(32) A valid phone number of the customer.
usage optional string(255) A description of the transaction for future reference.
address1 optional string(255) The primary address associated with the transaction. This parameter is part of the billing_address object.
address2 optional string(255) The secondary address associated with the transaction. This parameter is part of the billing_address object.
state optional string(2) The state code following ISO 3166-2 standards, required for transactions in the USA and Canada. This parameter is part of the billing_address object.
zip_code optional string The ZIP code associated with the transaction. This parameter is part of the billing_address object.

See the example API request for B2B bank-to-bank payouts below:

<payment_transaction>
  <transaction_type>bank_payout</transaction_type>
  <transaction_id>{{$guid}}</transaction_id>
  <remote_ip>127.0.0.1</remote_ip>
  <amount>1200</amount>
  <currency>BRL</currency>
  <notification_url>https://www.example.com/notification</notification_url>
  <return_success_url>https://example.com/return_success_url</return_success_url>
  <return_failure_url>https://example.com/return_failure_url</return_failure_url>
  <return_pending_url>https://example.com/return_pending_url</return_pending_url>
  <customer_email>companya@teste.com.br</customer_email>
  <customer_phone>+5585997784745</customer_phone>
  <billing_address>
    <first_name>Company</first_name>
    <last_name>A</last_name>
    <city>Sao Paulo</city>
    <country>BR</country>
  </billing_address>
  <document_id>63507349000134</document_id>
  <company_type>SA</company_type>
  <company_activity>null</company_activity>
  <incorporation_date>2000/07/12</incorporation_date>
  <bank_code>450</bank_code>
  <bank_branch>0001</bank_branch>
  <bank_account_name>Company A</bank_account_name>
  <bank_account_number>15333656</bank_account_number>
  <bank_account_verification_digit>5</bank_account_verification_digit>
  <bank_account_type>C</bank_account_type>
  <payment_type>bank_to_bank_b2b</payment_type>
</payment_transaction>

See the example API response for B2B bank-to-bank payouts below:

<payment_response>
    <transaction_type>bank_payout</transaction_type>
    <status>pending_async</status>
    <unique_id>79e5a49495067e1d9ac643a37d16508d</unique_id>
    <transaction_id>0b432a10-ffde-439e-917a-d215dbe278bf</transaction_id>
    <bank_account_number>15333656</bank_account_number>
    <technical_message>TESTMODE: No real money will be transferred!</technical_message>
    <message>TESTMODE: No real money will be transferred!</message>
    <mode>test</mode>
    <timestamp>2023-11-24T15:44:23Z</timestamp>
    <descriptor>Test</descriptor>
    <amount>1200</amount>
    <currency>BRL</currency>
    <sent_to_acquirer>false</sent_to_acquirer>
</payment_response>