702 B
702 B
Payment Module — Manual Review Checklist
High-risk module: payment changes require human confirmation for every blocker/major fix.
- Callback idempotency: a duplicated webhook/callback does not double-charge
- Amounts stored as fixed-point (integers/cents), never floats
- Currency codes and precision handled correctly
- Provider signature / HMAC verification on callbacks
- Refund logic: correct reversal, no double-refund
- Failure path: payment timeout, declined, retry semantics
- Transaction boundary spans charge + order-state update
- Sensitive data (PAN, tokens) never logged or masked on output
- Ledger/journal entries are append-only and auditable