PIKSELIPOLKU
Payment failure audit
01Summary
Seven findings. Three are high severity and two of those take under half a day to fix. The largest single loss is 3-D Secure failing inside in-app browsers, where buyers arriving from social ads cannot complete the bank challenge. Combined, the findings put roughly €6,300 a month at stake in this fictional store, of which about €3,300 sits in the four week-one fixes.
02Findings
| # | Finding | Severity | Evidence | Fix and effort | € a month |
|---|---|---|---|---|---|
| 1 | 3-D Secure challenge fails inside in-app browsers | High | 118 payments left waiting for authentication; 63 % from in-app browsers | Open the challenge in the system browser; payment link after timeout. M, 1 to 2 days | 1,660 |
| 2 | Webhook endpoint times out after a plugin update | High | 31 failed deliveries; 9 paid orders still pending | Return 200 first, queue the work, alert on failures. S, under half a day | 980 |
| 3 | Custom risk rule blocks returning customers abroad | High | 23 payments blocked; 17 by customers with clean history | Switch the rule from block to review. S, under half a day | 780 |
| 4 | Payment script blocked on the express checkout page | Medium | 42 sessions with a blocked script, 0 orders | Allow the provider script and frames in the CSP. S, under half a day | 1,360 |
| 5 | No second payment method after a decline | Medium | 12 % of declined buyers try again | Offer a wallet or bank payment beside the decline message. M, 1 to 2 days | 1,170 |
| 6 | Double-pressed Pay creates two charges | Medium | 6 pairs of identical charges within 10 seconds | Idempotency key per checkout; button locked while confirming. S, under half a day | 210 |
| 7 | Refunds made in the gateway never reach the store | Low | 11 refunds with no credit note or stock return | Listen for refund events and write them back to the order. M, 1 to 2 days | 120 |
€ figures are illustrative estimates for a fictional store.
03Evidence appendix
203.0.113.24 - - [14/Sep 14:02:11] "POST /webhooks/payments" 500 30012ms
203.0.113.24 - - [14/Sep 14:07:40] "POST /webhooks/payments" 500 30008ms
pi_test_3Fd9 requires_action canceled in-app browser €54.00
pi_test_8Hq2 blocked rule: country mismatch 7 earlier orders
csp-violation blocked-uri=https://js.provider.example page=/checkout/express
04Fix plan
- WEEK 1Webhook queue and alerting; risk rule from block to review; CSP update; idempotency key on Pay.
- WEEK 23-D Secure in in-app browsers; second payment method after a decline.
- WEEK 3 AND ONRefund sync; 30-day before and after comparison; daily payments-to-orders report.
Page 1 of 9, sample