10. Payments & Payouts
10.1 Model
- Cash: No online charge; booking is marked “cash”; provider collects at appointment.
- Card: Customer pays online; funds go to provider’s connected Stripe account (Stripe Connect); Stripe pays out to provider’s bank on its schedule (e.g. daily).
10.2 Stripe Connect
- Express or Standard accounts: Providers complete Stripe Connect onboarding; link bank account.
- Payment flow: Create PaymentIntent or Checkout Session with
transfer_data.destination= provider’s connected account ID (for direct charge) or use destination charges; alternatively, charge on platform and transfer. - Payouts: Handled by Stripe; no custom payout code needed for basic behaviour (rolling payouts to connected bank).
10.3 Implementation Notes
- Store provider’s
stripe_account_id(or similar) after Connect onboarding. - Only allow “pay by card” if provider has completed Connect and account is in good standing.
- Implement webhook handler for payment success/failure and refunds; update booking status and send confirmation.