Troubleshooting

Payment & Webhook Errors

Diagnosing and fixing payment failures, webhook delivery issues, and signature verification errors.

Payment problems typically fall into two categories: checkout failures (user-facing) and webhook failures (server-to-server). Each requires different diagnostic steps.

Stripe Webhook Signature Verification Failed

Error message: “Webhook signature verification failed” in your PHP error log.

Causes and fixes:

  • Wrong webhook secret: The signing secret is per-endpoint. Make sure you copied the secret from the exact endpoint URL in the Stripe Dashboard, not the general API secret key. The webhook secret starts with whsec_.
  • Caching proxy stripping headers: Some CDN or reverse proxy configurations strip or modify the Stripe-Signature header. Exclude your webhook URL from caching.
  • Body modified by WordPress: Some security plugins modify the raw request body, breaking signature verification. Whitelist /wp-json/influenzic/v1/stripe/webhook in your security plugin.

Payments Succeed in Stripe but Wallet Does Not Update

Cause: Webhooks are not reaching your site.

Diagnosis:

  1. 1
    In Stripe Dashboard, go to Developers → Webhooks → Your endpoint.
  2. 2
    Click Recent deliveries and look for failed attempts.
  3. 3
    Common causes: your server returned a non-2xx status, the URL is unreachable (local dev, behind firewall), or your WordPress site is in maintenance mode.
Local development: Stripe cannot reach localhost. Use the Stripe CLI (stripe listen --forward-to localhost:8080/wp-json/influenzic/v1/stripe/webhook) to forward webhooks to your local machine.

PayPal Webhook Not Firing

  • Verify the Webhook ID in Settings → PayPal → Webhook ID exactly matches the ID shown in the PayPal Developer Dashboard.
  • Ensure you subscribed to the correct events: CHECKOUT.ORDER.APPROVED, PAYMENT.CAPTURE.COMPLETED.
  • In Sandbox mode, test events using the PayPal Developer Dashboard’s webhook simulator.

Currency Mismatch Error

Error: “The currency does not match your Stripe account’s default currency.”

Stripe accounts are created in a primary settlement currency. If your platform currency is different, either enable multi-currency in your Stripe account settings, or match the platform currency to your Stripe settlement currency under Influenzic → Settings → General → Currency.

Was this article helpful?