> ## Documentation Index
> Fetch the complete documentation index at: https://razorpay-60c89f9a-mintlify-audit-missing-sections-1778528421.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Subscribe to the following webhook events to receive real-time notifications about token and mandate status changes. For general webhook setup instructions, see [Webhooks](/webh...

Subscribe to the following webhook events to receive real-time notifications about token and mandate status changes. For general webhook setup instructions, see [Webhooks](/webhooks).

## token.confirmed

Sent when the customer approves the mandate after completing the authorisation flow. Once you receive this event, the mandate is active and funds are blocked. You can safely proceed to create subsequent payments.

```json: token.confirmed theme={null}
{
  "entity": "event",
  "account_id": "acc_EDUGNVWZIB7Ewb",
  "event": "token.confirmed",
  "contains": [
    "token"
  ],
  "payload": {
    "token": {
      "entity": {
        "id": "token_RtP3bvcI7tle25",
        "entity": "token",
        "token": "4w03TrEDtkjmEJ",
        "bank": null,
        "wallet": null,
        "method": "upi",
        "vpa": {
          "username": "9876543210",
          "handle": "upi",
          "name": "GAURAV KUMAR",
          "status": "valid",
          "received_at": 1757596287
        },
        "recurring": true,
        "recurring_details": {
          "status": "confirmed",
          "failure_reason": null,
          "amount_blocked": 200,
          "amount_debited": 0
        },
        "auth_type": null,
        "mrn": null,
        "used_at": null,
        "created_at": 1766132688,
        "start_time": 1766132682,
        "notes": [],
        "error_description": null,
        "entity_id": null,
        "dcc_enabled": false,
        "max_amount": 200,
        "expired_at": 1767091469
      }
    }
  },
  "created_at": 1766133037
}
```

<Warning>
  **Watch Out!**

  There is no mandate rejection option in the TPAP apps during testing.
</Warning>

## token.cancellation\_initiated

Sent when a cancellation request is acknowledged by NPCI. This event confirms that the cancellation process has begun; the blocked funds will be released to the customer's account once the cancellation is complete.

```json: token.cancellation_initiated theme={null}
{
  "entity": "event",
  "account_id": "acc_EDUGNVWZIB7Ewb",
  "event": "token.cancellation_initiated",
  "contains": [
    "token"
  ],
  "payload": {
    "token": {
      "entity": {
        "id": "token_RtOSr9o9lZwv5C",
        "entity": "token",
        "token": "9uZG3CE8KsVG9J",
        "bank": null,
        "wallet": null,
        "method": "upi",
        "vpa": {
          "username": "9876543210",
          "handle": "upi",
          "name": "GAURAV KUMAR",
          "status": "valid",
          "received_at": 1757596287
        },
        "recurring": true,
        "recurring_details": {
          "status": "cancellation_initiated",
          "failure_reason": "Mandate execution is completed.",
          "amount_blocked": 200,
          "amount_debited": 200
        },
        "auth_type": null,
        "mrn": null,
        "used_at": 1766131484,
        "created_at": 1766130600,
        "start_time": 1766130592,
        "notes": [],
        "error_description": null,
        "entity_id": null,
        "dcc_enabled": false,
        "max_amount": 200,
        "expired_at": 1767091469
      }
    }
  },
  "created_at": 1766380810
}
```
