Skip to main content

Webhooks

Qefro consumes webhooks from billing and messaging providers. Configure secrets in the Admin Console and always verify signatures / challenges.

Short definition (citation-ready)

Qefro billing webhooks verify Razorpay signatures and update entitlements; WhatsApp webhooks verify Meta challenges and ingest inbound customer messages into a bound workspace.

Billing (Razorpay)

ItemDetail
EndpointPOST /api/v1/billing/webhook
AuthRazorpay signature verification
Important eventspayment.captured, payment.failed, subscription lifecycle
FailuresStored with error_code / error_reason / error_description when present
IdempotencyOrder-level guards against duplicate captures

Enable payment.failed in the Razorpay Dashboard webhook settings or failures may not appear in-product.

WhatsApp (Meta Cloud API)

ItemDetail
VerifyGET /api/v1/whatsapp/webhook
InboundPOST /api/v1/whatsapp/webhook
ConfigEncrypted tokens + workspace binding in Admin Console
PlanGrowth+

Guide: Deploy WhatsApp AI.

Architecture

Workflow

Operate webhooks safely

  1. Copy endpoint URLs from docs/consoleHTTPS only.
  2. Set secrets in provider + QefroNever commit them.
  3. Send a test eventConfirm 2xx and in-app effect.
  4. Monitor failurespayment.failed + Meta delivery errors.
  5. Rotate secrets on staff changeUpdate both sides.

FAQ

Can I push outbound webhooks from Qefro to my server?
Prefer Business Tools for request/response integrations. Outbound event webhooks may expand later — check Release Notes.
Why is my plan not upgrading after payment?
Confirm Razorpay webhook delivery, signature secret, and that captured events reached /billing/webhook. Check Billing UI and support.