Payment Links API

Update payment link

Changed on

Certain details of an existing payment link can be updated.

patch/v2/payment-links/{paymentLinkId}

Request

  • Base URL
    https://api.mollie.com
  • URL
    https://api.mollie.com/v2/payment-links/{paymentLinkId}
  • Auth
    • HTTP bearer
    • or HTTP bearer
    • or OAuth 2
      Authorization code: https://my.mollie.com/oauth2/authorize
      Token URL: https://api.mollie.com/oauth2/tokens scopes: payment-links.write

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

descriptionstring

A short description of the payment link. The description is visible in the Dashboard and will be shown on the customer's bank or card statement when possible.

Updating the description does not affect any previously existing payments created for this payment link.

archivedboolean

Whether the payment link is archived. Customers will not be able to complete payments on archived payment links.

allowedMethodsPaymentLinkMethod[] nullable

An array of payment methods that are allowed to be used for this payment link. When this parameter is not provided or is an empty array, all enabled payment methods will be available.

testmodeboolean

Whether the entity was created in test mode or live mode. This field does not update the mode of the entity.

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

{
  "description": "Chess Board",
  "minimumAmount": {
    "currency": "EUR",
    "value": "10.00"
  },
  "allowedMethods": [
    "ideal"
  ],
  "lines": [
    {
      "type": "physical",
      "description": "LEGO 4440 Forest Police Station",
      "quantity": 1,
      "quantityUnit": "pcs",
      "unitPrice": {
        "currency": "EUR",
        "value": "10.00"
      },
      "discountAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "totalAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "vatRate": "21.00",
      "vatAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "sku": "9780241661628",
      "categories": [
        "meal",
        "eco"
      ],
      "imageUrl": "https://...",
      "productUrl": "https://..."
    }
  ],
  "billingAddress": {
    "title": "Mr.",
    "givenName": "Piet",
    "familyName": "Mondriaan",
    "organizationName": "Mollie B.V.",
    "streetAndNumber": "Keizersgracht 126",
    "streetAdditional": "Apt. 1",
    "postalCode": "1234AB",
    "email": "piet@example.org",
    "city": "Amsterdam",
    "region": "Noord-Holland",
    "country": "NL"
  },
  "shippingAddress": {
    "title": "Mr.",
    "givenName": "Piet",
    "familyName": "Mondriaan",
    "organizationName": "Mollie B.V.",
    "streetAndNumber": "Keizersgracht 126",
    "streetAdditional": "Apt. 1",
    "postalCode": "1234AB",
    "email": "piet@example.org",
    "city": "Amsterdam",
    "region": "Noord-Holland",
    "country": "NL"
  }
}

Response

The payment link object.

resourcestring

Indicates the response contains a payment link object. Will always contain the string payment-link for this endpoint.

idstring
mode'live' | 'test'

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

descriptionstring

A short description of the payment link. The description is visible in the Dashboard and will be shown on the customer's bank or card statement when possible.

archivedboolean

Whether the payment link is archived. Customers will not be able to complete payments on archived payment links.

redirectUrlstring nullable

The URL your customer will be redirected to after completing the payment process. If no redirect URL is provided, the customer will be shown a generic message after completing the payment.

webhookUrlstring nullable

The webhook URL where we will send payment status updates to.

The webhookUrl is optional, but without a webhook you will miss out on important status changes to any payments resulting from the payment link.

The webhookUrl must be reachable from Mollie's point of view, so you cannot use localhost. If you want to use webhook during development on localhost, you must use a tool like ngrok to have the webhooks delivered to your local machine.

profileIdstring nullable

The identifier referring to the profile this entity belongs to.

Most API credentials are linked to a single profile. In these cases the profileId must not be sent in the creation request. For organization-level credentials such as OAuth access tokens however, the profileId parameter is required.

reusableboolean nullable

Indicates whether the payment link is reusable. If this field is set to true, customers can make multiple payments using the same link.

If no value is specified, the field defaults to false, allowing only a single payment per link.

createdAtstring

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

paidAtstring nullable

The date and time the payment link became paid, in ISO 8601 format.

expiresAtstring nullable

The date and time the payment link is set to expire, in ISO 8601 format. If no expiry date was provided up front, the payment link will not expire automatically.

allowedMethodsPaymentLinkMethodResponse[] nullable

An array of payment methods that are allowed to be used for this payment link. When this parameter is not provided or is an empty array, all enabled payment methods will be available.

sequenceType'oneoff' | 'first'
customerIdstring nullable

Only relevant when sequenceType is set to first

The ID of the customer the payment link is being created for. If a value is not provided, the customer will be required to input relevant information which will be used to establish a mandate after the payment is made.

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 response

{
  "resource": "payment-link",
  "id": "pl_d9fQur83kFdhH8hIhaZfq",
  "mode": "live",
  "description": "Chess Board",
  "amount": {
    "currency": "EUR",
    "value": "10.00"
  },
  "minimumAmount": {
    "currency": "EUR",
    "value": "10.00"
  },
  "redirectUrl": "https://webshop.example.org/payment-links/redirect/",
  "webhookUrl": "https://webshop.example.org/payment-links/webhook/",
  "lines": [
    {
      "type": "physical",
      "description": "LEGO 4440 Forest Police Station",
      "quantity": 1,
      "quantityUnit": "pcs",
      "unitPrice": {
        "currency": "EUR",
        "value": "10.00"
      },
      "discountAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "totalAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "vatRate": "21.00",
      "vatAmount": {
        "currency": "EUR",
        "value": "10.00"
      },
      "sku": "9780241661628",
      "categories": [
        "meal",
        "eco"
      ],
      "imageUrl": "https://...",
      "productUrl": "https://..."
    }
  ],
  "billingAddress": {
    "title": "Mr.",
    "givenName": "Piet",
    "familyName": "Mondriaan",
    "organizationName": "Mollie B.V.",
    "streetAndNumber": "Keizersgracht 126",
    "streetAdditional": "Apt. 1",
    "postalCode": "1234AB",
    "email": "piet@example.org",
    "city": "Amsterdam",
    "region": "Noord-Holland",
    "country": "NL"
  },
  "shippingAddress": {
    "title": "Mr.",
    "givenName": "Piet",
    "familyName": "Mondriaan",
    "organizationName": "Mollie B.V.",
    "streetAndNumber": "Keizersgracht 126",
    "streetAdditional": "Apt. 1",
    "postalCode": "1234AB",
    "email": "piet@example.org",
    "city": "Amsterdam",
    "region": "Noord-Holland",
    "country": "NL"
  },
  "profileId": "pfl_QkEhN94Ba",
  "createdAt": "2024-03-20T09:13:37+00:00",
  "paidAt": "2025-12-24T11:00:16+00:00",
  "expiresAt": "2025-12-24T11:00:16+00:00",
  "allowedMethods": [
    "ideal"
  ],
  "applicationFee": {
    "amount": {
      "currency": "EUR",
      "value": "10.00"
    },
    "description": "Platform fee"
  },
  "sequenceType": "oneoff",
  "customerId": "cst_XimFHuaEzd",
  "_links": {
    "self": {
      "href": "https://...",
      "type": "application/hal+json"
    },
    "paymentLink": {
      "href": "https://...",
      "type": "application/hal+json"
    }
  }
}

Changes

    • warning

      added the new googlepay enum value to the ///// response property for the response status

    • info

      added the new googlepay enum value to the request property /

    • warning

      added the new wero enum value to the ///// response property for the response status

    • info

      added the new wero enum value to the request property /