Docs

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.