Design a payment processing system for an e-commerce platform that handles credit card charges, refunds, and integrates with multiple payment providers.
Scale requirements: - 10 million transactions per day - Peak: 5,000 transactions per second during sales events - Support multiple payment methods: credit cards, debit cards, digital wallets - 99.99% availability for payment processing - PCI DSS compliance required
Areas to cover: 1. Payment flow (authorization, capture, settlement) 2. Integration with payment gateways (Stripe, Adyen, Braintree) 3. Idempotency and exactly-once processing 4. Refund and dispute handling 5. Ledger and reconciliation
Constraints: - No double charges under any failure scenario - Support retry with idempotency keys - Handle gateway timeouts gracefully - Maintain audit trail for all financial operations - Sensitive card data never touches your servers (tokenization)
How to approach it
- Hint 1
Start with the payment lifecycle: authorization -> capture -> settlement. Why is this split important, and how does your system track each state transition? Think about the state machine.
- Hint 2
Consider failure modes: what happens if you send a charge to Stripe but never get a response? How do idempotency keys, timeout handling, and reconciliation jobs prevent double charges?
- Hint 3
Think about the ledger: every financial operation should be recorded as a double-entry. How does this help with reconciliation against payment provider statements?
Ready to answer it out loud?
Record your answer in 1:30 and Preptile scores it 1–10 with specifics — what landed, what you skipped, and what to say next time.
Practising needs an invite code. Join the waitlist and we’ll send you one.