Payment fails
Diagnosing when a payment doesn't go through. Common causes and fixes.
If a customer reports "I can't pay" or you see orders stuck in FAILED, below are the most common causes.
1. Session status
Dashboard โ Orders โ select order โ the status field can be:
| Status | Meaning | Action |
|---|---|---|
PENDING | Customer hasn't completed yet | Wait or send recovery from your store |
PENDING_PAYMENT | COD order or awaiting payment | For COD wait for delivery; otherwise see below |
COMPLETED | Payment OK, order created | Nothing to do |
FAILED | Payment rejected | See causes |
REFUNDED | Refunded | Historic |
EXPIRED | Session expired unpaid | Automatic cron sweep, ok |
2. Status stuck after Whop confirmation
If Whop shows "Paid" on its dashboard but WooshPayment stays PENDING for more than a few minutes, the Whop webhook probably didn't arrive or has an invalid signature.
Possible causes:
- Whop webhook not configured to
https://api.wooshpayment.com/webhooks/whop/payment-update - Wrong HMAC secret (signature rejected)
- Whop had a rare missed delivery
Manual fix:
For now the merchant doesn't have a direct "Force sync" button. The safest way:
- Verify in the Whop dashboard that the payment is actually
Paid - Open a ticket at
noreply@wooshpayment.comwith session token + Whop payment id - WooshPayment staff can run
POST /api/checkout/merchant/orders/:token/backfill-statusto re-sync the status
Roadmap: merchant-facing "Verify payment" button.
3. FAILED โ common causes
Card declined by the bank
Symptom: customer sees "Payment declined" on the Whop iframe. Causes: card limits exceeded, insufficient funds, bank block on foreign-currency purchase, expired card. Solution: customer tries another card or contacts their bank.
3D-Secure cancelled
Symptom: customer sees the 3D-Secure screen (SMS code or banking app), then clicks "Cancel". Solution: customer refreshes and retries, completes 3DS.
Address mismatch / antifraud
Symptom: Whop's antifraud blocks for inconsistency between card country and shipping address. Solution: customer uses the same country as the card-issuing country for the billing address.
Apple Pay not working
Symptom: the Apple Pay button shows but clicking does nothing, or a generic error. Common causes:
- Checkout domain not registered on Whop Apple Pay (see Setup Apple Pay)
- Card in the customer's Wallet not supported by Whop
- Customer didn't select a card in the Wallet
Solution: customer pays with a manually entered card; you verify the domain registration on your Whop.
401 error connecting Whop
Symptom: dashboard shows "Invalid Whop API key" when you go to Integrations.
Cause: the API key was generated with the Admin role instead of Owner. Whop /v5/company rejects with 401 "does not have permission to access this route".
Solution: regenerate the API key with the Owner role, reconnect on WooshPayment. See Setup Whop.
"Whop took too long to respond"
Symptom: Whop connect attempt returns WHOP_TIMEOUT (504).
Cause: 6s timeout on our side to avoid blocking the serverless function.
Solution: retry. Almost always transient.
4. Customer pays but order not in Shopify/Woo
Symptom: WooshPayment shows COMPLETED, Shopify Admin doesn't see the order.
Causes:
- Shopify accessToken revoked/expired
write_ordersscope removed by a partial re-install- WooCommerce REST API quota exceeded
Solution:
- Dashboard โ Settings โ Shopify connection (or WooCommerce) โ check connection status
- If "Not connected" โ restart Shopify OAuth from Settings
- For orders already
COMPLETEDbut withoutshopifyOrderId, write to us for manual backfill
5. Browser issues on the customer side
| Customer symptom | Possible cause | Fix |
|---|---|---|
| "The checkout page doesn't load" | Subdomain DNS not yet propagated (new merchant) | Wait 5-30 min, reload |
| "I see a CORS error in console" | Rare bug on our side | Contact support |
| "White screen after pay" | JS blocked by extreme AdBlock | Customer disables AdBlock |
| "Charged but no product received" | Webhook didn't arrive | See section 2 |
6. Logs
Internally, application logs (Pino) have 90-day retention. For specific debugging write to us with session token / order id and we'll provide info from the logs.
7. When to contact us
Send email to noreply@wooshpayment.com with:
- Session token / Order ID
- Whop payment ID if available
- Customer email
- Screenshot of the error message
- What you've already tried
We respond within 24h business hours.
Quick symptom โ fix table
| Symptom | Merchant-side fix |
|---|---|
| "The checkout page doesn't load" | Wait for subdomain DNS propagation |
| "Card declined" | Customer tries another card or pays with Apple Pay |
| "Apple Pay button missing" | Verify domain registration on your Whop |
| "Charged but no product received" | Verify Whop webhook configured to api.wooshpayment.com/webhooks/whop/payment-update |
| "Whop says paid but WooshPayment doesn't" | Missing webhook / invalid signature โ contact us for backfill |
| "Cannot connect to Whop API" | API key with Admin role instead of Owner โ regenerate |