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

Fix:

Automatic recovery runs through the reconciliation cron, but you can also force a check from the dashboard:

  1. Verify in the Whop dashboard that the payment is actually Paid
  2. Open Dashboard โ†’ Orders โ†’ order
  3. If the session is PENDING or PROCESSING, click Verify payment
  4. The backend runs POST /api/checkout/merchant/orders/:token/backfill-status, asks Whop directly and, if it finds a successful payment, updates the status

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 a role that is too low or custom permissions that are insufficient. Whop /v5/company rejects with 401 "does not have permission to access this route". Solution: regenerate the API key with Administrator or Owner role, reconnect on WooshPayment. See Whop setup.

"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, but the order does not appear in the store admin (Shopify Admin or WooCommerce โ†’ Orders).

Causes:

  • Shopify accessToken revoked/expired
  • write_orders scope removed by a partial re-install
  • WooCommerce REST credentials revoked or missing order permissions
  • WooCommerce REST API quota exceeded

Solution:

  1. Dashboard โ†’ Settings โ†’ Store connection โ†’ check Shopify or WooCommerce according to the connected platform
  2. If Shopify is "Not connected" โ†’ restart Shopify OAuth; if WooCommerce fails โ†’ regenerate Consumer Key/Secret and reconnect
  3. For orders already COMPLETED but without a Store order in the dashboard, wait for the next automatic reconcile run; if it remains stuck, send us the session token because the specific Shopify/Woo error needs inspection

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 hello@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"Open the order and click Verify payment; if it remains stuck, send session token + Whop payment id
"Cannot connect to Whop API"API key has too-low role or missing Company permissions โ€” regenerate with Administrator or Owner