Finance — Common cases
Invoice missing or stale in Invoice Manager
Check the source invoice, lock/processing state, FinanceTransaction projection freshness, and booking-number/search-key sync.
Real-world example: Finance searches by booking number but the invoice is missing from the manager. → Isolate whether the issue is source data or a stale projection. → The source record is correct but the projection is stale, so run reconcile instead of editing the invoice.
Confirmed booking edit changes money
The intended path is preview diff first, then persist real invoice/credit-note changes only when confirmation proceeds. Preview must not create schedulers, finance logs, or real credit notes.
Real-world example: Admin adds two sessions to a confirmed booking and needs to tell the parent how much more to pay. → Show the money difference before finalizing. → Preview shows the diff without writing ledger records; only Confirm creates the real invoice/credit note.
Credit note does not match invoice
Compare original invoice links, allocation, attendee/header sync, and booking number. If the source document is correct but projection is wrong, refresh/reconcile the projection.
Real-world example: After canceling one booking, the credit note amount looks different from the original invoice. → Decide whether the mismatch is real or only projection-side. → Allocation and original invoice link match, so reconcile projection and do not manually edit the credit note.
Payment is collected but invoice state lags
Payment provider state and Finance document state are separate. Read the payment record, invoice status, scheduler state, and any projection refresh errors.
Real-world example: A parent paid with PayNow, the receipt succeeded, but the invoice still says "unpaid". → Separate money collected in Payment from ledger status in Finance. → Provider is paid but the event/job has not run yet, so check scheduler/error and do not charge again.
Xero sync fails
Classify whether the issue is provider configuration, account/tax mapping, source invoice/credit-note data, or retry state. Do not mutate a correct AIMY invoice only to satisfy provider sync.
Real-world example: One invoice cannot sync to Xero because the tax code is not mapped. → Fix mapping configuration instead of distorting the accounting document. → Map account/tax correctly, then retry sync while keeping the original AIMY invoice unchanged.