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 typeDescription
SettlementAlso 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 payoutStandalone 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 typeDescription
Standalone payoutStandalone 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 abank_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.