A system design interview looks like this: 1. Functional requirements, 2. Non-functional requirements, APIs, data structures, high-level design and data structures. We need to handle any failure we may face while processing the payment. Our system should be reliable and fault-tolerance. How to handle sensitive data, how to handle credit card information? How to make the system reliable. How to host payment pages provided by payment service providers like Stripe, Braintree, etc. If we want to collect $100M and there will be 10 charities so each user may decide where he/she wants to donate the money.