Company: Stripe_16july
Difficulty: medium
Payment Intent System Problem Description Background Stripe processes billions of dollars of payments to businesses every day through dozens of different payment methods like cards, bank debits, and even paper cheques. We don't want merchants (the businesses who use Stripe to accept payments) to have to worry about the details for each specific payment method. For example, for many payment methods, payments are not completed instantly and can take a few days to process and be confirmed or fail, while others are processed much more quickly. Stripe abstracts this payment flow with a simple state machine object called a Payment Intent. What is a Payment Intent? A Payment Intent tracks a payment through its flow from Initialization to processing to confirmation. We model this flow as a state machine: an abstract object that can exist in one of a number of states and transition between states. REQUIRES_ACTION The initial state of a Payment Intent upon creation. Can transition to PROCESSING.