Webhooks API

Create a webhook

Changed on

A webhook must have a name, an url and a list of event types. You can also create webhooks in the webhooks settings section of the Dashboard.

post/v2/webhooks

Request

  • Base URL
    https://api.mollie.com
  • URL
    https://api.mollie.com/v2/webhooks
  • Auth
    • HTTP bearer
    • or OAuth 2
      Authorization code: https://my.mollie.com/oauth2/authorize
      Token URL: https://api.mollie.com/oauth2/tokens scopes: webhooks.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

namestring required

A name that identifies the webhook.

urlstring required

The URL Mollie will send the events to. This URL must be publicly accessible.

testmodeboolean

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

You can enable test mode by setting testmode to true.

Example request

{
  "name": "Webhook #1",
  "url": "https://mollie.com/",
  "eventTypes": [
    "payment-link.paid"
  ]
}

Response

The webhook object.

resourcestring required

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

idstring required

The identifier uniquely referring to this subscription.

urlstring required

The subscription's events destination.

profileIdstring nullable required

The identifier uniquely referring to the profile that created the subscription.

createdAtstring required

The subscription's date time of creation.

namestring required

The subscription's name.

eventTypesWebhookEventTypesResponse[] required

The events types that are subscribed.

status'enabled' | 'blocked' | 'disabled' | 'deleted' required

The subscription's current status.

mode'live' | 'test' required

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

webhookSecretstring required

The subscription's secret.

Example response

{
  "resource": "webhook",
  "id": "hook_tNP6fpF9fLJpFWziRcgiH",
  "url": "https://example.com/webhook-endpoint",
  "profileId": "pfl_YyoaNFjtHc",
  "createdAt": "2023-01-01T12:00:00+00:00",
  "name": "Profile Updates Webhook",
  "eventTypes": [
    "sales-invoice.paid, sales-invoice.canceled"
  ],
  "status": "enabled",
  "mode": "live",
  "webhookSecret": "secret",
  "_links": {
    "self": {
      "href": "https://...",
      "type": "application/hal+json"
    },
    "documentation": {
      "href": "https://...",
      "type": "application/hal+json"
    }
  }
}

Changes

    • warning

      added the new unmatched-credit-transfer.expired enum value to the / response property for the response status

    • warning

      added the new unmatched-credit-transfer.match.completed enum value to the / response property for the response status

    • warning

      added the new unmatched-credit-transfer.match.failed enum value to the / response property for the response status

    • warning

      added the new unmatched-credit-transfer.matched enum value to the / response property for the response status

    • warning

      added the new unmatched-credit-transfer.return.completed enum value to the / response property for the response status

    • warning

      added the new unmatched-credit-transfer.return.failed enum value to the / response property for the response status

    • warning

      added the new unmatched-credit-transfer.returned enum value to the / response property for the response status

    • info

      added the new unmatched-credit-transfer.expired enum value to the request property ////

    • info

      added the new unmatched-credit-transfer.expired enum value to the request property //

    • info

      added the new unmatched-credit-transfer.match.completed enum value to the request property ////

    • info

      added the new unmatched-credit-transfer.match.completed enum value to the request property //

    • info

      added the new unmatched-credit-transfer.match.failed enum value to the request property ////

    • info

      added the new unmatched-credit-transfer.match.failed enum value to the request property //

    • info

      added the new unmatched-credit-transfer.matched enum value to the request property ////

    • info

      added the new unmatched-credit-transfer.matched enum value to the request property //

    • info

      added the new unmatched-credit-transfer.return.completed enum value to the request property ////

    • info

      added the new unmatched-credit-transfer.return.completed enum value to the request property //

    • info

      added the new unmatched-credit-transfer.return.failed enum value to the request property ////

    • info

      added the new unmatched-credit-transfer.return.failed enum value to the request property //

    • info

      added the new unmatched-credit-transfer.returned enum value to the request property ////

    • info

      added the new unmatched-credit-transfer.returned enum value to the request property //

    • warning

      added the new unmatched-credit-transfer.received enum value to the / response property for the response status

    • info

      added the new unmatched-credit-transfer.received enum value to the request property ////

    • info

      added the new unmatched-credit-transfer.received enum value to the request property //