---
updatedAt: 2026-08-31T08:00:23.000Z
agentTools:
  projectIndex: https://docs.mollie.com/llms.txt
---

# Balance transfers

Balance transfers allow you to control the flow of funds between different organizations within your platform. Whether you're collecting invoices, redistributing revenue or applying changes post-settlement - this feature allows you to do it all in one place, within Mollie's ecosystem.

## What is a balance transfer?

Balance transfers move funds between two Mollie organizations tha&#x74;*&#x20;already own those funds*.

It **must not** be used to process merchant or consumer funds **on behalf of others** or to:

* Receive shopper funds into your platform and forward them to sellers.
* Aggregate or split consumer payments or act as merchant of record for others.
* Hold or escrow third-party funds, intermediate settlements or net consumer payments across multiple merchants.
* Create pass-through "transit" flows where the platform becomes a part of the settlement.

It is **allowed** to be used for:

* Collecting platform fees or royalties owed to the platform by a connected merchant (with prior consent).
* Post-delivery adjustments between connected merchants, where both parties are the legal owners of the balances being moved.
* Correcting or applying penalties that do not affect shopper funds or replace settlement.

Example use cases:

* **SaaS platforms** collecting monthly or per-transaction fees.
* **Marketplaces** adjusting balances post-delivery.
* **Franchisors** charging revenue-based or fixed monthly fees.

<Callout icon="📘" theme="info">
  Partners are responsible for [PSD2](https://help.mollie.com/hc/en-us/articles/360035609413-What-are-PSD2-and-Strong-Customer-Authentication) compliance. Mollie may review and block transfers that indicate the platform is in the money flow.
</Callout>

## Setup & Permissions

<Callout icon="📘" theme="info">
  Contact your Mollie point of contact to enable balance transfers for your Organization.
</Callout>

To use balance transfers, connect your sub-merchants via [OAuth application](https://docs.mollie.com/reference/oauth-api#/) with the following scopes:

* `balance-transfers.read`
* `balance-transfers.write`

Every time you create a Balance Transfer, ensure that both the source and destination accounts are:

* Active and can receive payments
* Can send settlements
* Have sufficient balance (validated via pre-execution reserve check)

<Callout icon="🚧" theme="warn">
  You must have a **documented consent** from your sub-merchants authorizing balance movements.
</Callout>

## How it works

1. Authenticate the transfer using the source organization's [access token](https://help.mollie.com/hc/en-us/articles/360010774314-What-is-an-Organization-Access-Token).
2. Initiate a transfer with an API call to [Balance Transfers API](https://docs.mollie.com/reference/balance-transfers-api).
3. Track your transfer's status asynchronously using [Webhooks](https://docs.mollie.com/reference/webhooks-new#/) or via the GET endpoint.

## API Overview

### Create a transfer

```json
POST /v2/connect/balance-transfers

{
    "amount": {
        "currency": "EUR",
        "value": "0.10"
    },
    "description": "transfer test",
    "destination": {
        "description": "description for the destination",
        "id": "org_12659708",
        "type": "organization"
    },
    "source": {
        "description": "description for the source",
        "id": "org_19120883",
        "type": "organization"
    },
    "testmode": false
}
```

Balance transfer requests are processed **asynchronously**. Use the returned `id` to query your transfer's status or listen to any updates using Webhooks.

### Get a transfer

```
GET /v2/connect/balance-transfers/{id}
```

### List transfers

```
GET /v2/connect/balance-transfers
```

Supports query parameters: `limit` `sort` `from` `testmode`

### Webhooks

To receive updates for your transfers using Webhooks:

* Set up a Webhook using our <Anchor target="_blank" href="https://docs.mollie.com/reference/webhooks-new">Next-gen Webhooks</Anchor>.
* Listen for status changes like: `connect-balance-transfer.succeeded` or `connect-balance-transfer.failed`.

Status reason codes:

* `request_created` - Balance transfer request was created.
* `success` - Balance transfer completed successfully.
* `source_not_allowed` - Balance transfers from the source organization are not allowed.
* `destination_not_allowed` - Balance transfers to the destination organization are not allowed.
* `insufficient_funds` - source does not have enough balance.
* `invalid_source_balance` - invalid balance for source organization.
* `invalid_destination_balance` - invalid balance for destination organization.
* `transfer_request_expired` - request for balance transfer has expired.
* `transfer_limit_reached` - transfer limit has been exceeded.

### Current limits

* Default limit for **live transfers** is `EUR 1,000` per month per sub-merchant (combined debits & credits).
* There are currently no limits for **test transfers** (`testmode : true`).

<Callout icon="📘" theme="info">
  Need higher production limits? Reach out to your Mollie point of contact to inquire about adjusted transfer limits.
</Callout>

### Legal notice

Mollie executes transfers a partner has initiated under the following circumstances:

* The Partner initiating the transfer has their **sub-merchant's consent**.
* The **amount** and **purpose** of the transfer are valid.

Partners are legally responsible for all submitted transfer requests along with the instructions they provided when initiated.