Appearance
Troubleshooting
Most problems come down to one of four things: the license isn't Active, a plan isn't mapped, the API keys are wrong (or point at the wrong environment), or the Webhook Secret doesn't match. Work through the checks below — they're ordered by how often they're the cause.
Gateways not appearing after saving
If Razorpay and Razorpay Subscription don't show up in Admin → Payment Gateways → Add:
- Open Admin → Plugins → Razorpay → Settings and check the license badge. It must read Active. If it shows Not configured or Invalid — payment gateway is disabled, the gateways stay hidden.
- Make sure the server can reach relyweb.co over HTTPS (port 443). A local background check runs there; brief outages are tolerated, so re-save Settings to restore the badge.
- Click Save Settings — the gateways are auto-created on save, not before.
Subscription not available
If a plan shows "Razorpay Subscription — Not available for this plan", the plan isn't eligible:
- Map the plan. In Admin → Remote Plan Mappings, map your local AcelleMail plan to the matching Razorpay plan (same currency and amount) and click Map. See Set up subscriptions.
- Check the currency. Razorpay here is INR-only — the plan must be priced in INR. The direct Razorpay gateway needs no mapping.
Payments failing
If checkout errors or payments don't complete:
- Recheck your API Key ID and API Key Secret in Settings — a mistyped secret fails silently.
- Confirm the environment matches the key prefix:
rzp_test_for test,rzp_live_for live. Testing with live keys (or the reverse) will fail. There's no sandbox checkbox — the prefix decides. - Check the AcelleMail transaction log for the specific outcome, and see the error reference.
Webhook not working
If subscription renewals or payment confirmations don't update:
- In Razorpay Dashboard → Webhooks, confirm the URL is exactly
https://YOUR_DOMAIN/cashier/razorpay/webhooks. - Make sure the Webhook Secret is identical in the Razorpay dashboard and in Plugin Settings — every webhook is HMAC-SHA256 signature-verified, and a mismatch is rejected. See Configure webhooks.
ionCube missing
If the plugin shows "ionCube Loader required" or a parse error on install, the ionCube Loader isn't active. Enable ionCube Loader 13.0.2 or newer on PHP 8.2–8.5 (check with php -m | grep -i ioncube or Admin → Info). See Requirements.