---
title: "Razorpay Webhook"
method: POST
path: "/webhook/razorpay"
tags: ["webhooks"]
---

# Razorpay Webhook

`POST /webhook/razorpay`

## Request

- Base URL: `https://api.oxlo.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.oxlo.ai/webhook/razorpay`
- Auth: none declared

Handle Razorpay subscription webhook events.

Razorpay signs the raw request body with the webhook secret
(HMAC SHA256) and sends it in the X-Razorpay-Signature header.
X-Razorpay-Event-Id uniquely identifies each event for idempotency.

Supported events:
- subscription.activated
- subscription.pending
- subscription.halted
- subscription.cancelled
- subscription.completed
- invoice.paid
- invoice.failed

## Response `200`

Successful Response

- WebhookResponse
  - `event` string, required
  - `success` boolean, required
  - `message` string, nullable

---

[API](https://skmtc.dev/oxlo/apis/oxlo-backend.md) - [All operations](https://skmtc.dev/oxlo/apis/oxlo-backend/llms.txt) - [OpenAPI document](https://skmtc.dev/oxlo/apis/oxlo-backend/revisions/bc2ecdc94f31?raw)
