---
url: /razorpay-acellemail/troubleshooting.md
description: >-
  Fixes for common Razorpay for AcelleMail issues — gateways not appearing,
  subscription unavailable, payments failing, webhooks not verifying, and
  ionCube not loaded.
---

# 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](/razorpay-acellemail/guides/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](/razorpay-acellemail/errors).

## 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](/razorpay-acellemail/guides/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](/razorpay-acellemail/requirements).

## Related pages

* [Errors](/razorpay-acellemail/errors)
* [Licensing](/razorpay-acellemail/licensing)
* [Configure webhooks](/razorpay-acellemail/guides/configure-webhooks)
* [Set up subscriptions](/razorpay-acellemail/guides/set-up-subscriptions)
* [FAQ](/razorpay-acellemail/faq)
