WWooshPayment docs
Troubleshooting

Payment fails

Diagnosing when a payment doesn't go through. Common causes and fixes.

4 min read

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:

StatusMeaningAction
PENDINGCustomer hasn't completed yetWait or send recovery from your store
PENDING_PAYMENTCOD order or awaiting paymentFor COD wait for delivery; otherwise see below
COMPLETEDPayment OK, order createdNothing to do
FAILEDPayment rejectedSee causes
REFUNDEDRefundedHistoric
EXPIREDSession expired unpaidAutomatic 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:

  1. Verify in the Whop dashboard that the payment is actually Paid
  2. Open a ticket at noreply@wooshpayment.com with session token + Whop payment id
  3. WooshPayment staff can run POST /api/checkout/merchant/orders/:token/backfill-status to 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_orders scope removed by a partial re-install
  • WooCommerce REST API quota exceeded

Solution:

  1. Dashboard โ†’ Settings โ†’ Shopify connection (or WooCommerce) โ†’ check connection status
  2. If "Not connected" โ†’ restart Shopify OAuth from Settings
  3. For orders already COMPLETED but without shopifyOrderId, write to us for manual backfill

5. Browser issues on the customer side

Customer symptomPossible causeFix
"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 sideContact support
"White screen after pay"JS blocked by extreme AdBlockCustomer disables AdBlock
"Charged but no product received"Webhook didn't arriveSee 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

SymptomMerchant-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