v1

latestOpenAPI 3.1.0CC-BY-NC-SA-4.02026-07-2413803.8 MB
Orders API

Create order refund

⚠️ We no longer recommend using the Orders API. Please refer to the Payments API instead.

When using the Orders API, refunds should be made for a specific order.

If you want to refund arbitrary amounts, however, you can also use the Create payment refund endpoint by creating a refund on the payment itself.

If an order line is still in the authorized state, it cannot be refunded. You should cancel it instead. Order lines that are paid, shipping or completed can be refunded.

🔑 Access with

API key

Advanced access token with refunds.write

OAuth access with refunds.write

post/orders/{orderId}/refunds

Request body

resourcestring

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

idstring

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

modestring

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

Possible values: live test

descriptionstring

The description of the refund that may be shown to your customer, depending on the payment method used.

orderIdstring

The unique identifier of the order this refund was created for. For example: ord_8wmqcHMN4U. Not present if the refund was not created for an order.

settlementIdstring nullable

The identifier referring to the settlement this refund was settled with. This field is omitted if the refund is not settled (yet).

status'queued' | 'pending' | 'processing' | 'refunded' | 'failed' | 'canceled'

Refunds may take some time to get confirmed.

createdAtstring

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

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

{
  "id": "re_5B8cwPMGnU",
  "mode": "live",
  "description": "Refunding a Chess Board",
  "amount": {
    "currency": "EUR",
    "value": "10.00"
  },
  "settlementAmount": {
    "currency": "EUR",
    "value": "10.00"
  },
  "orderId": "ord_5B8cwPMGnU",
  "settlementId": "stl_5B8cwPMGnU",
  "status": "queued",
  "createdAt": "2024-03-20T09:13:37+00:00",
  "externalReference": {
    "type": "acquirer-reference"
  },
  "lines": [
    {
      "resource": "orderline",
      "id": "odl_5B8cwPMGnU",
      "orderId": "ord_5B8cwPMGnU",
      "name": "Chess Board",
      "type": "physical",
      "status": "created",
      "quantity": 1,
      "amountShipped": {
        "currency": "EUR",
        "value": "10.00"
      },
      "amountRefunded": {
        "currency": "EUR",
        "value": "10.00"
      },
      "amountCanceled": {
        "currency": "EUR",
        "value": "10.00"
      },
      "amount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "unitPrice": {
        "currency": "EUR",
        "value": "10.00"
      },
      "totalAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "vatRate": "21.00",
      "vatAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "createdAt": "2025-03-28T16:42:12+00:00",
      "discountedAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "_links": {
        "productUr": {
          "href": "https://...",
          "type": "application/hal+json"
        },
        "imageUrl": {
          "href": "https://...",
          "type": "application/hal+json"
        }
      }
    }
  ],
  "_links": {
    "self": {
      "href": "https://...",
      "type": "application/hal+json"
    },
    "order": {
      "href": "https://...",
      "type": "application/hal+json"
    },
    "settlement": {
      "href": "https://...",
      "type": "application/hal+json"
    },
    "documentation": {
      "href": "https://...",
      "type": "application/hal+json"
    }
  }
}

Response

The newly created refund object.