How a payment actually happens

Money never touches your server

PawWalk never sees a credit card number โ€” that's Stripe's job. Your backend's job is narrower: create a PaymentIntent (Stripe's object for "we intend to charge this much"), hand the client a client_secret, and let the mobile app finish the charge directly with Stripe. Read the real router.