Payouts for Platforms
Learn how to payout to your users' bank accounts and your own bank accounts.
After the payments are made, the funds remain in the corresponding User or Liable account. After the settlement period, they become available for payment to external bank accounts.
Payouts types
To fulfill both local regulations and your requirements, two types of payouts are available:
Payout to user
Only to previously validated accounts. It must be bank accounts owned by the users or user's UBOs.
Payout type | Description |
---|---|
Settlement | Also known as withdrawal. The amount settled from the payins can be paid out. By sending a payout request with settlement_period , the system will automatically calculate the amount and payout to the user's validated bank account. |
Standalone payout | Standalone payout means you can request a specific amount. We will pay the exact amount to the user's validated bank account. |
Payout to 3rd Parties
Usually, for platforms providing payout services like Remittances, Payroll, HR, etc.
Payout type | Description |
---|---|
Standalone payout | Standalone payout means you can request a specific amount. We will pay the exact amount to the beneficiary's bank account. |
Payouts steps
1. Identify the account for payout
Choose the account from which funds will be debited. This depends on your account structure and funds flow:
- Liable account: A platform-managed account.
- User account: A specific user’s account.
Include this in the parameter balance_account_id
in each payout request to specify the account.
2. Set the payout destination
The payout can be sent to:
- Previously validated accounts. Those must be bank accounts owned by the users or users' UBOs.
- Third-Party Bank accounts. Typically, for platforms that offer payout services like Remittances, Payroll, HR, etc.
Considerations
- For user bank accounts, add the bank account beforehand for verification. We will verify the bank account ahead of time to offer a smooth experience when you request a payout.
- After adding a bank account, you’ll receive a
bank_account_id
for future use in the response. - Link multiple bank accounts to an account by including the
bank_account_id
in the payout request instead of the full payout beneficiary bank account information. - For Third-Party Bank accounts, beneficiary and bank account information must be provided in the payout request.
3. Confirm the payout amount
Ensure the payout type is Settlement or Standalone.
For Standalone payout, the amount must not exceed the available for withdrawals balance.
4. Submit a payout request
Here are some samples for different scenarios:
{
"balance_account_id": "AC-520873ef-fead-43ea-9270-0a7f366463a8",
"external_reference": "ex_id8910",
"currency": "BRL",
"amount": 50000.19,
"statement_descriptor": "ABC remittance provider",
"description": "ABC - Withdraw",
"notification_url": "https://marketplace.com/notifications",
"beneficiary": {
"account_id": "AC-520873ef-fead-43ea-9270-0a7f366463a8",
"bank_account": {
"id": "BA-asdfac-aqefasd-casdg9820s"
}
}
}
{
"balance_account_id": "AC-520873ef-fead-43ea-9270-0a7f366463a8",
"external_reference": "ex_id8910",
"currency": "BRL",
"settlement_period": {
"from": "2024-12-01",
"to": "2024-12-10"
},
"statement_descriptor": "ABC remittance provider",
"description": "ABC - Withdraw",
"notification_url": "https://marketplace.com/notifications",
"beneficiary": {
"account_id": "AC-520873ef-fead-43ea-9270-0a7f366463a8",
"bank_account": {
"id": "BA-asdfac-aqefasd-casdg9820s"
}
}
}
{
"balance_account_id": "AC-520873ef-fead-43ea-9270-0a7f366463a8",
"beneficiary": {
"first_name": "John",
"last_name": "Doe",
"phone": "+5511971111111",
"email": "john.doe@gmail.com",
"bank_account": {
"code": "341",
"branch": "0167",
"type": "S",
"account": "12345-1",
"currency": "BRL"
},
"document": {
"type": "CPF",
"id": "12345677890"
},
"birth_info": {
"date": "1980-06-23",
"country": "BR",
"city": "Sao Paulo"
},
"address": {
"street": "Avenida Paulista ",
"number": "123",
"city": "Sao Paulo",
"state": "Sao Paulo",
"country": "BR",
"postal_code": "05319-000"
}
},
"external_reference": "e043ca72-3530-4c2f-8458-99d89f1f2d8a",
"currency": "BRL",
"description": "some comment",
"amount": 120000
}
For detailed instructions on creating a payout, refer to the API Reference.
5. Handle the response
dLocal will send synchronous responses as well as notifications to inform about the status update of the payouts.
Manage payouts
Get a payout
Retrieve payout details by querying with either the dLocal ID or External ID.
Check the Get payout endpoint for more information.
Cancel a payout
Payouts under PENDING
status can be canceled via Cancel payout endpoint.
Updated 6 days ago