---
title: "Create a webhook"
method: POST
path: "/v2/webhooks"
tags: ["Webhooks API"]
---

# Create a webhook

`POST /v2/webhooks`

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.

> 🔑 Access with
>
> [Advanced access token with **webhooks.write**](/reference/authentication)
>
> [OAuth access with **webhooks.write**](/reference/authentication)

## Request body

- object
  - `name` string, required — A name that identifies the webhook.
  - `url` string, required — The URL Mollie will send the events to. This URL must be publicly accessible.
  - `eventTypes` union, required
    - string[] — The list of events to enable for this webhook. You may specify `'*'` to add all events, except those that require explicit selection.
    - 'payment.paid' | 'payment.authorized' | 'payment.failed' | 'payment.canceled' | 'payment.expired' | 'payment.pending' | 'refund.queued' | 'refund.pending' | 'refund.processing' | 'refund.refunded' | 'refund.failed' | 'refund.canceled' | 'chargeback.received' | 'chargeback.reversed' | 'capture.succeeded' | 'capture.failed' | 'payment-link.paid' | 'balance-transaction.created' | 'payout.initiated' | 'payout.processing-at-bank' | 'payout.completed' | 'payout.canceled' | 'payout.failed' | 'sales-invoice.created' | 'sales-invoice.issued' | 'sales-invoice.canceled' | 'sales-invoice.paid' | 'sales-invoice.e-invoice-failed' | 'sales-invoice.e-invoice-issued' | 'business-account-transfer.requested' | 'business-account-transfer.initiated' | 'business-account-transfer.pending-review' | 'business-account-transfer.processed' | 'business-account-transfer.failed' | 'business-account-transfer.blocked' | 'business-account-transfer.returned' | '*' — The list of events to enable for this webhook. You may specify `'*'` to add all events, except those that require explicit selection. Possible values: `payment.paid` `payment.authorized` `payment.failed` `payment.canceled` `payment.expired` `payment.pending` `refund.queued` `refund.pending` `refund.processing` `refund.refunded` `refund.failed` `refund.canceled` `chargeback.received` `chargeback.reversed` `capture.succeeded` `capture.failed` `payment-link.paid` `balance-transaction.created` `payout.initiated` `payout.processing-at-bank` `payout.completed` `payout.canceled` `payout.failed` `sales-invoice.created` `sales-invoice.issued` `sales-invoice.canceled` `sales-invoice.paid` `sales-invoice.e-invoice-failed` `sales-invoice.e-invoice-issued` `business-account-transfer.requested` `business-account-transfer.initiated` `business-account-transfer.pending-review` `business-account-transfer.processed` `business-account-transfer.failed` `business-account-transfer.blocked` `business-account-transfer.returned` `*`
  - `testmode` boolean — Whether to create the entity in test mode or live mode. You can enable test mode by setting `testmode` to `true`.

## Response `201`

The webhook object.

## Other responses

- `422` — The request contains issues. For example, if the URL is missing.
- `429` — Rate Limit has been reached.

---

[API](https://skmtc.net/mollie/apis/accepting-payments.md) · [All operations](https://skmtc.net/mollie/apis/accepting-payments/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mollie/accepting-payments/revisions/4b45df3039ef/schema)
