Skip to content

Security

The Razorpay integration enforces a multi-layer security model to protect payment integrity, API credentials, and gateway availability.

Every event is signature-verified

Razorpay signs the messages it sends back; the plugin verifies each with HMAC-SHA256 before acting:

MessageWhat it is
Payment callbacksThe one-time result after checkout.
Subscription callbacksRecurring-charge results.
WebhooksThe events Razorpay posts to your site.

Unsigned or altered messages fail verification immediately. Forged webhooks and replayed callback URLs are rejected before invoice state can change.

HMAC signature verification

HMAC signatures create cryptographic digests combining payload contents and your shared secret. A verified signature guarantees origin authenticity and payload integrity.

Outcomes are confirmed server-side

The plugin queries Razorpay's API server-to-server to confirm payment status before marking invoices paid. Client-side browser payloads are never trusted in isolation.

The settings page is admin-gated

Plugin settings are restricted to authenticated administrators. The API Key Secret is masked as a password field and is never transmitted to customer-facing client code.

License and plugin-state gating

GateEffect
License gatingProcessing is disabled while the license is inactive. Until the key is Active, neither gateway appears in Admin → Payment Gateways. The check is a local background check against relyweb.co — brief outages tolerated, re-saving Settings restores it.
Plugin-state gatingDeactivating the plugin removes both gateways; reactivating restores them. When off, there is no live payment path.

Lapsed licenses or deactivated plugins immediately halt payment processing.

Documentation for the Relyweb app catalogue.