Skip to content

8.1 — Cashier integration & charge-on-confirm #242

Description

@tessak22

Summary

Capture a payment method at booking and charge it when the booking is confirmed, using Laravel Cashier. No Stripe invoicing, no tax.

Spec references

  • §5.6 (Payments), §10b (Money), §9

Requirements

  • Team is the Cashier Billable entity (already configured in M0).
  • Capture payment method at booking via Cashier setupIntent / stored method; charge on confirm.
  • payments records method (card|cash), stripe_payment_method_id, total, charged_at, status.

Acceptance criteria

  • Payment method captured at booking (Cashier setupIntent / stored method on the Team), CHARGED when the booking reaches confirmed — via staff approval (first-timers) or auto-confirm (established) (§10b).
  • Cash-in-person option: flags the booking as cash, skips the charge, marks amount owed, Jeff settles manually (§10b).
  • No Stripe invoicing (avoids invoice fees) (§5.6).
  • No tax logic of any kind — do not implement Stripe Tax or any tax calculation; charged as listed (§10b).
  • Laravel Cashier only — no custom Stripe SDK work (§5.6).

Mobile behavior

Card entry via Stripe Elements; big pay button; clear cash-option toggle.

Config over code

Amounts from 8.2 / rate_config.

Tests

  • setupIntent stores a method at booking; confirm triggers a charge.
  • Cash booking skips charge, marks owed.
  • No tax added to any total.

Definition of done

Charge-on-confirm via Cashier; cash path; no invoicing; no tax.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    devinFor Devin (AI coding agent)payments

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions