Skip to content

Troubleshooting

Match the error string or symptom, apply the fix. When you email support, send merchant id, session id if you have one, and request_id from the JSON error body.

Copy this page as a setup prompt for your coding assistant.

API and auth

SymptomFix
Invalid API key formatBearer token must be full plurel_… key
Invalid or revoked API keyRotate on Developers (Rotate publishable/secret key); the previous key is revoked immediately
Complete the sandbox checklist on your dashboard before activating liveFinish all five Setup guide steps, then open Activate live from the account menu
Checkout uses wrong payment modeCharges follow the API key, not the Sandbox or Live view
Secret API keys must not be used from browser clientsPublishable key + signing in frontend; secret key on server
Too many requestsHonor Retry-After; stop tight retry loops on 401
Headless REST requires onboardingUse publishable + sign, or contact Plurel Pay to enable headless

Cart signing

SymptomFix
Invalid cart signatureWrong credential: use PLUREL_SIGNING_SECRET (plurel_sign_…), not secret API key (plurel_sk_…) or webhook secret (whsec_…)
Invalid cart signatureSecret correct but still fails: use createCartSignature from @plurel/sdk/signing ≥ 0.1.7 (includes fees: [] in HMAC)
Invalid cart signaturePLUREL_SIGNING_SECRET must match dashboard plurel_sign_… value; redeploy after env change or rotation
Invalid cart signatureRead the details[] array on the API error response for a checklist
Cart signing failed (client)Your /api/cart/sign returned non-200; check server logs
cart.total, cart.currency requiredtotal in smallest currency unit (cents for USD, whole yen for JPY); items array non-empty

SDK and modal

SymptomFix
Plurel Pay is undefinedLoad plurel.js before init; await script onload if needed
Blank iframeCSP frame-src must allow plurelpay.com; test without blockers
onGroupFunded never ranNormal if user closed tab; fulfill on webhook
Callbacks fire twiceIdempotent handlers; webhook is authoritative

Webhooks

SymptomFix
401 on your handlerwhsec_ for dashboard URL; signing secret for webhook_url
No deliveriesHTTPS public URL; check delivery log for last error
Retries foreverReturn 2xx; fix 4xx/5xx; check TLS expiry
No group.fundedSession not fully paid; endpoint not subscribed to event

Payouts & settlement

SymptomFix
Payout account not readyFinish setup in Payments in the merchant portal
Expected payout in preferred currencySettlement transfers use checkout currency; preferred setting only triggers FX fee. See /docs/currencies#important-limitations
FX fields missing on group.fundedOmitted when checkout matches preference or mode is checkout; sandbox still includes FX fields when fee would apply live
Card declined in sandboxUse 4242… test card; live card in live mode only
Settlement failed notificationPayout account capabilities, bank account, holds

Merchant sign-in

SymptomFix
No OTP emailSpam folder; production needs Loops configured on Plurel Pay side
OTP not configured errorContact Plurel Pay ops for production email setup
Passkey sign-in failedUse email OTP or Google; re-register passkey at Settings → Security
2FA code rejectedCheck device clock; use backup code; disable and re-enable at Settings → Security

Contact

Check system status first. Then email contact@plurelinc.com with redacted request/response bodies. Portal snippets: Integration wizard.