v55

latestOpenAPI 3.1.0CC-BY-NC-SA-4.0raw.githubusercontent.com2026-08-011243791.8 MB
Payouts API

Create payout

Request a payout from one of your balances to the balance's configured bank account.

The payout will be executed on the next scheduled business day. If no amount is specified, the full available balance minus any configured balance reserve is paid out.

Once the payout is created with status requested, you can cancel it via the Cancel payout endpoint, up until the payout moves to initiated.

Creating a payout via the API automatically sets the balance's transferFrequency to never, pausing any previously configured automatic settlement schedule. To resume automatic settlements, update the transfer frequency via the dashboard.

Webhooks

Subscribe to the following webhook events to track payout status changes. See the Webhook Subscriptions API for details on subscribing.

EventDescription
payout.initiatedThe payout is being executed and funds are reserved.
payout.processing-at-bankThe payout has been submitted to the bank.
payout.completedThe payout has been sent to the destination bank account.
payout.canceledThe payout was canceled via the API before being submitted to the bank.
payout.failedThe payout failed after creation, including bank rejections and post-submission cancellations.

Payout failure reasons

A payout request may fail immediately if one of the following conditions applies:

  • A payout is already scheduled for the next business day for this balance.
  • The balance has insufficient funds.
  • The balance is not active.
  • Payouts are blocked for this organization.
  • The balance has queued refunds.
  • One of the organization's balances is below the negative balance threshold.
  • The payout destination (bank account) is invalid or not configured.
post/v2/payouts

Headers

idempotency-keystring
Example:123e4567-e89b-12d3-a456-426

A unique key to ensure idempotent requests. This key should be a UUID v4 string.

Request body

resourcestring required

Indicates the response contains a payout object. Will always contain the string payout for this endpoint.

idstring required

The identifier uniquely referring to this payout. Mollie assigns this identifier at payout creation time. Mollie will always refer to the payout by this ID. Example: payout_j8NvRAM2WNZtsykpLEX8J.

balanceIdstring required

The identifier of the balance that will be paid out. Example: bal_gVMhHKqSSRYJyPsuoPNFH.

descriptionstring

The description that will appear on the bank statement for this payout.

status'requested' | 'initiated' | 'processing-at-bank' | 'completed' | 'failed' | 'canceled' required

The status of the payout.

createdAtstring required

The entity's date and time of creation, in ISO 8601 format.

initiatedAtstring nullable

The date and time the payout was initiated, in ISO 8601 format. This is the moment Mollie attempted to reserve the funds on the balance.

completedAtstring nullable

The date and time the payout was sent to the destination bank account, in ISO 8601 format. null if the payout has not completed yet.

canceledAtstring nullable

The date and time the payout was canceled, in ISO 8601 format. null if the payout was not canceled.

mode'live' | 'test' required

Whether this entity was created in live mode or in test mode.

testmodeboolean nullable

Whether to create the entity in test mode or live mode.

Most API credentials are specifically created for either live mode or test mode, in which case this parameter must not be sent. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting testmode to true.

Example request

{
  "resource": "payout",
  "id": "payout_j8NvRAM2WNZtsykpLEX8J",
  "balanceId": "bal_gVMhHKqSSRYJyPsuoPNFH",
  "amount": {
    "currency": "EUR",
    "value": "10.00"
  },
  "description": "My payout description",
  "status": "requested",
  "statusReason": {
    "code": "requested",
    "message": "The payout has been requested."
  },
  "createdAt": "2024-03-20T09:13:37+00:00",
  "initiatedAt": "2024-03-20T09:13:40+00:00",
  "completedAt": "2024-03-20T14:00:00+00:00",
  "mode": "live",
  "_links": {
    "self": {
      "href": "https://...",
      "type": "application/hal+json"
    },
    "documentation": {
      "href": "https://...",
      "type": "application/hal+json"
    }
  }
}

Response

The newly created payout object.