---
updatedAt: 2026-03-25T10:34:00.000Z
agentTools:
  projectIndex: https://docs.dlocal.com/llms.txt
---

# Transfer between accounts

Discover everything you need to know about making and managing account transfers.

The [Transfer API](https://docs.dlocal.com/reference/transfers) allows moving funds between accounts within the dLocal ecosystem. You can use it for automatic internal transfers or to create transfers manually.

# Transfer flows

There are two types of transfer flow:

1. **Merchant transfer**. Platform merchants can initiate transfers between accounts via the API as needed.
2. **Internal transfer.** Automatically triggered between accounts (e.g., between a platform’s liability account and user accounts) based on rules set during the [payment configuration](https://docs.dlocal.com/docs/payment-configuration-platforms) process.

# Use cases

Common use cases for the transfers include:

* **Transferring funds** from a Liable account to user accounts as rewards.
* **Deducting fees** from users after they receive funds (e.g., commission or logistic fees).
* Using the Liable account to **cover refunds or chargebacks** when a user account lacks sufficient funds, followed by a transfer to recover the amount from the user.

# Transfer types

1. **Instant transfer.** Processes transfer immediately upon creation.
2. **Scheduled transfer**. Processes transfer on a specified release date. To schedule, include the `release_date` parameter in the API request.

# Handle transfer

## Create a transfer

To [create a transfer](https://docs.dlocal.com/reference/create-transfer-v2-platforms), the following parameters are required in the request:

| Body parameter     | Required | Description                                                                                                                     |
| :----------------- | :------- | :------------------------------------------------------------------------------------------------------------------------------ |
| `origin`           | Yes      | Origin account ID                                                                                                               |
| `destination`      | Yes      | Destination account ID.                                                                                                         |
| `amount`           | Yes      | Transfer amount to be sent to a destination.                                                                                    |
| `currency`         | No       | Currency of the transfer amount. <br>If no currency is specified, it will automatically use the currency of the origin account. |
| `external_id`      | Yes      | ID given by the merchant in their system.                                                                                       |
| `release_date`     | No       | Release date when the transfer will be executed timestamp  ISO-8601 - Notification’s timestamp (YYYY-MM-DDTHH:mm:ss.SSSSZ)      |
| `notification_url` | Yes      | URL where dLocal will send notifications associated with the transfer.                                                          |
| `description`      | Yes      | Transfer description.                                                                                                           |

> 📘
>
> Transfers will be rejected if the origin or destination account is in certain statuses (e.g., pending compliance review or flagged as high-risk industry).

## Cancel a transfer

Before the merchant transfers are released, it can be canceled via API.

[Learn how to cancel a transfer >](https://docs.dlocal.com/reference/cancel-transfer-v2-platforms)

## Get a transfer

Transfer details can be retrieved by providing the transfer ID.

[Check all the transfer status descriptions >](https://docs.dlocal.com/reference/transfer-status-v2-platforms)

# Notifications

Webhooks are available for both internal and merchant transfers:

* For **merchant transfers**, notifications are sent for all status updates.
* For **internal transfers**, notifications are sent when a transfer is generated and for each status update.

[Explore how notifications work >](https://docs.dlocal.com/reference/notifications-v2-platforms)