Merchant docs

Troubleshooting

Common integration issues and how to fix them.

Order stays pending in WooCommerce

  • Check the order in Novupay Orders. If it is PAID there but not in WordPress, the store callback failed.
  • Verify callback URL in Sites (API) matches https://your-store.com/wp-json/card2pay/v1/callback.
  • Ensure your site uses HTTPS and the REST API is not blocked (security plugins, Cloudflare rules, country blocks).
  • Confirm API secret in WordPress exactly matches the secret on your Novupay site card.

Payment error at checkout redirect

  • API key, API secret, and base URL must all be filled in the gateway settings.
  • Base URL must be exactly https://portal.novupay.com (no trailing slash).
  • Card checkout (PayGate) requires an email — WooCommerce billing email is used automatically; payment links without email get a fallback address.
  • Site must be ACTIVE in Dashboard → Sites.
  • If you rotated the API secret, update WordPress with the new secret.

Paid in Novupay, not in store

Novupay POSTs a signed JSON body to your callback URL when payment confirms. The plugin checks header x-card2pay-signature.

  • Wrong API secret → signature mismatch → order not updated.
  • Callback URL unreachable → check server logs / firewall.
  • Test REST endpoint manually: GET /wp-json/card2pay/v1/callback should not return 404.

Customer paid but order not PAID in dashboard

  • Crypto payments can take a few minutes to confirm — refresh the order status.
  • Card payments usually confirm within seconds. If stuck, note the order reference and contact support.
  • Include your order reference (e.g. C2P-ABC123) when writing to info@novupay.com.

Test without WordPress

On Sites (API), use Test checkout hash to open a sampleNovupay checkout. This verifies your API keys and Novupay checkout without WooCommerce.

Still stuck?

Open live chat from your dashboard or email info@novupay.com with:

  • Order reference (C2P-…)
  • Store URL
  • Approximate time of the payment
  • Screenshot of WooCommerce gateway settings (hide API secret)