# Phase 7 Release Checklist

## Database
- [x] `011_billing_payments.sql`
- [x] bills / bill items / bill allocations
- [x] payments / transaction journal / allocation links
- [x] room-charge requests and hashed PIN credentials
- [x] bill status history
- [x] database-driven billing/payment permissions

## Billing
- [x] table-session bill context
- [x] room-session bill context
- [x] immutable order snapshot amounts
- [x] later order sync before payment
- [x] financial freeze after successful payment starts
- [x] whole bill
- [x] individual customer grouping
- [x] selected items
- [x] equal split with deterministic cent rounding
- [x] item split

## Payments
- [x] cash recording
- [x] external card-terminal recording
- [x] external online-reference recording by staff
- [x] guest online gateway boundary (disabled until provider configured)
- [x] server-side outstanding-balance validation
- [x] payment idempotency
- [x] payment transaction journal
- [x] partial/paid bill status calculation

## Room charge
- [x] room QR alone grants no charge authority
- [x] default Staff Approval flow
- [x] optional hashed Room PIN flow
- [x] pending / verified / rejected / expired states
- [x] overpayment re-check at approval
- [x] room-session authority set only after verification
- [x] audit logging
- [x] cPanel cron expiry

## Interfaces
- [x] guest Bill navigation/page
- [x] guest split actions
- [x] guest room-charge request
- [x] admin Billing & Payments dashboard
- [x] cashier payment form
- [x] room-charge approval queue
- [x] room-charge settings/PIN provisioning
- [x] bill generation from Admin order
- [x] REST bill/payment endpoints

## Release verification
- [x] PHP lint
- [x] smoke tests
- [x] Composer JSON
- [x] migration/FK structural sanity
- [x] route duplicate check
- [x] front-controller HTTP boot
- [x] secret/private-key scan
- [x] ZIP integrity
