> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paywise.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Event Types

> All webhook event types and what triggers them

## Available Event Types

Subscribe to the events relevant to your integration. Each event type corresponds to a specific action in the paywise system.

### Mandate Events

| Event Type                | Description                                                                                                          |
| ------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `mandate.created`         | A new mandate has been created for your company                                                                      |
| `mandate.updated`         | Mandate data has changed (e.g. debtor address, contact details)                                                      |
| `mandate.status_updated`  | The processing status of a mandate has changed (e.g. reminder sent, collection initiated, court proceedings started) |
| `mandate.closed`          | A mandate has been closed (e.g. fully paid, discontinued, or written off)                                            |
| `mandate.balance_updated` | The balance of a mandate has changed (e.g. after a payment, cost calculation, or interest accrual)                   |
| `mandate.message_created` | A new message has been added to a mandate (e.g. debtor correspondence, internal notes)                               |

### Claim Events

| Event Type      | Description                                                   |
| --------------- | ------------------------------------------------------------- |
| `claim.created` | A new claim has been submitted                                |
| `claim.updated` | Claim data has changed (e.g. amount, due date, or line items) |

### Payment Events

| Event Type        | Description                                                                      |
| ----------------- | -------------------------------------------------------------------------------- |
| `payment.created` | A payment has been reported or received for a mandate                            |
| `payment.updated` | Payment information has changed (e.g. allocation to claims, confirmation status) |

### Statement Events

| Event Type          | Description                                           |
| ------------------- | ----------------------------------------------------- |
| `statement.created` | A new statement has been created                      |
| `statement.updated` | Statement data has changed (e.g. published, canceled) |

### Single Mandate Statement Events

An **Aktenabrechnung** (per-case statement) settles exactly one case — see the
[Single Mandate Statements overview](/api-docs/case-management-api/single-mandate-statements/overview).

| Event Type                         | Description                                        |
| ---------------------------------- | -------------------------------------------------- |
| `single_mandate_statement.created` | We release an Aktenabrechnung to you               |
| `single_mandate_statement.updated` | A released Aktenabrechnung changes (e.g. reversal) |

<Info>
  `.created` means **"became available to you"**, not "created in our system". An Aktenabrechnung
  exists internally from the moment the case event is booked; you are notified when we release it.
</Info>

You never receive an event for an unreleased Aktenabrechnung, so the object announced by a webhook
is always retrievable through the API. Should we withdraw a release before the delivery goes out,
the event is dropped rather than delivered.

The `data` object of both events:

```json theme={null}
{
  "single_mandate_statement": "9f1c2d3e-4a5b-4c6d-8e9f-0a1b2c3d4e5f",
  "company": "5600672e-2bfa-488c-b23a-460c1dd1f833",
  "mandate": "7e4d1b90-1f2a-4c3b-8d5e-6f708192a3b4",
  "reference_number": "K26-757P3",
  "clearing_no": "A2026/000123",
  "invoice_no": "R2026/000456",
  "statement_type": "interim",
  "booking_date": "2026-08-18",
  "period_start": "2026-07-01",
  "period_end": "2026-08-18",
  "published": true,
  "canceled": false
}
```

`mandate`, `invoice_no` and `period_start` may be `null` — they are always present as keys.
`reference_number` is a snapshot and stays populated even when the case link is gone.

### Request to Client Events

| Event Type                   | Description                                                  |
| ---------------------------- | ------------------------------------------------------------ |
| `request_to_client.created`  | A new request to the client ("Rückfrage") has been published |
| `request_to_client.answered` | A request to the client has been answered                    |

## Subscribing to Events

When creating a webhook endpoint, specify the events you want to receive as an array:

```json theme={null}
{
  "url": "https://your-domain.com/webhooks",
  "events": [
    "mandate.created",
    "mandate.status_updated",
    "payment.created"
  ]
}
```

You can subscribe to as many event types as needed. Only events you subscribe to will be delivered to your endpoint.

<Info>
  You can update the subscribed events for an existing endpoint at any time via the API using a PATCH request.
</Info>

## Access Mode

Events are strictly isolated by access mode:

* **Test** webhooks only receive events from test API operations
* **Production** webhooks only receive events from production API operations

The access mode is determined by the API token used when creating the webhook endpoint.
