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. |
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. |
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. |
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. |
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>