Webhooks.
Minyut does not currently send outbound webhooks to customer servers. This page explains the billing webhook Minyut receives from Razorpay and what is planned for query-event notifications.
Billing webhooks (Razorpay → Minyut)
Minyut uses Razorpay Subscriptions for billing. Razorpay sends signed webhook events to Minyut's edge function when subscription state changes. These are internal events — you do not need to configure anything.
Events handled internally:
subscription.activated— plan activates after paymentsubscription.charged— renewal payment succeedssubscription.cancelled— user cancels or payment fails after grace periodsubscription.pending— renewal payment failed, grace period beginssubscription.halted— grace period expired, access downgraded
Each event updates your profiles row in real time. Your dashboard reflects the change within seconds.
Query event notifications (coming soon)
A future release will let you register a webhook URL in the dashboard and receive a POST request for each visitor query. This lets you:
- Log queries to your own analytics system
- Alert your team when a visitor hits an unanswered question
- Trigger CRM workflows based on visitor intent
The payload will look like this:
{
"event": "query.completed",
"chatbot_id": "uuid",
"query": "What is your return policy?",
"answer": "Returns are accepted within 30 days…",
"was_answered": true,
"timestamp": "2026-05-25T10:30:00Z"
}Payloads will be signed with HMAC-SHA256 so you can verify they came from Minyut. Contact us if you need this now — we can prioritise it.
Webhook security
When outbound webhooks ship, every request will include an X-Minyut-Signature header. Verify it server-side:
import crypto from "crypto";
function verifySignature(body: string, signature: string, secret: string) {
const expected = crypto
.createHmac("sha256", secret)
.update(body)
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}