PAY-911 · SEV-2 · Customers double charged
The mobile client retries POST /api/payments on timeouts and always sends an Idempotency-Key header. Customers are still being charged twice, sometimes even when two retries arrive at the same time. Finance also found charges with fractional cents.
Requirements: same key ⇒ exactly one charge; replays return 200 with the original body; amounts are stored as integer cents.