Payments: Stripe processing, e-transfer/comp overrides & receipts #7
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Take payment at registration. Default rail is credit card via Stripe; studio admin can set a student to e-transfer (recorded, marked paid manually) or comp (no charge). Single bookings charged once; weekly/group charged full-term upfront. Numbered receipt emailed automatically on payment.
Spec:
docs/features/payments.mdScope
manage_billing): publishable/secret key, mode, currencyus_payment_method(card/etransfer/comp), defaultcard{prefix}us_payments(amount, currency, method, status, stripe_payment_intent_id, receipt_number, receipt_sent_at, paid_at, polymorphic registration ref)src/Payment/:Payment,PaymentRepository,StripeGateway,ReceiptMailer,StudioSettings,PaymentEndpointPOST /payments/intent(book_lesson),POST /payments/webhook(Stripe signature verified),PATCH /payments/{id}(manage_billing)paid: confirm linked registration, assign receipt number, email receiptAcceptance
tests/Unit/Payment/passingClosing as complete. Implemented and merged across PR #25 (foundation: e-transfer/comp, config, receipts) and PR #28 (live Stripe card charges + webhook).