Expenses troubleshooting and quick reference
Check actual saved state before repeating any financial action. Capture tenant, record IDs, action and exact non-secret message; keep private receipt/bank data out of shared support material.
| Symptom | Check and recovery |
|---|---|
| Expenses unavailable | ACCOUNTING and relevant expense permission; no separate EXPENSE capability here |
| Register empty | Active filters, pages, tenant and allowed units |
| Name not found by global search | Use dedicated User/Vendor selector; foreign-key names are not joined |
| Add/Edit/Delete missing | Exact operation authority and DRAFT eligibility |
| Account optional label but save fails | Select required actual expense account |
| Company draft rejected | Vendor required; select active Supplier |
| Vendor search absent | SUPPLIER and supplier.view; existing vendor can be retained on edit |
| Typed identity not saved | Choose an actual autocomplete result |
| Employee changed rejected | Immutable User reference after create |
| Null optional field did not clear | Merge-style update preserves saved non-null reference |
| Tax edit missing | Create-only included-tax field; obtain approved correction |
| Journal tax not split | Current builder posts full total to expense/payable |
| Manager banner persists | Correct tier decision, permission and saved amount |
| Decision approved but expense still DRAFT | Separate lifecycle Approve action required |
| Rejected after description correction | Same-amount resubmission gap; no fabricated amount changes |
| Approver unchanged after other edits | Only numeric total change resets decision in current code |
| Company POSTED action returns PAID | Current path also creates full IN_PROCESS payment; inspect saved records |
| PAID but payment IN_PROCESS | Counters/label and payment lifecycle differ |
| Company counters disagree with PAID | Current posting path does not update them there; reconcile |
| Reimbursement unit access error | Dialog currently sends ID 1; do not grant it just to pass |
| Amount exceeds due | Reload current counters and payment list |
| Cancel did not restore due | No automatic counter recalculation; support/finance review |
| Reset did not reopen full workflow | Financial-state operation is not coordinated expense rollback |
| Currency accepted but posting questionable | GBP base/rate-1 limitation; no manual FX input |
| Payment date not actual transfer date | Generated date copies expense date |
| Journal link/count disappears | Read may have failed; not proof of no financial effects |
| Company payment navigation missing | Normal PAY link is employee-only; authorised related API reads exist |
| View grant cannot reset/cancel | Separate operation permissions |
| Lost response | Inspect saved related records before retrying; no durable original-intent replay |
| Receipt/export/audit-history control missing | Not implemented as a dedicated expense workflow |
Frequently asked questions
Is Employee here the HR Employee module? No. The current references are login Users.
Does Manager selection assign a mandatory approver? No. Decision authority uses explicit permissions; independent/submitted-by restrictions are not established by that field.
Can approval thresholds be configured? Not through the reviewed workspace; current numeric limits are fixed in code.
Does included tax create recoverable-tax accounting? No automatic separate tax line is built, and current edit cannot update included tax.
Does PAID mean money settled? Not necessarily. Employee counters update at payment creation; company posting sets PAID with an IN_PROCESS payment.
Does cancelling restore due? No automatic recalculation is implemented in the reviewed wrappers.
Does Validate send a bank transfer? No. It changes the payment's internal state through the payment service.
Can we repair posted errors by resetting/reposting? The controls do not provide a coordinated expense correction/reversal workflow. Obtain approved finance review first.
Can we use any currency selected by the picker? Draft acceptance does not solve the hardcoded GBP/rate-1 generated posting limit.
Can I export a complete expense audit/receipt pack? The reviewed screens do not implement that workflow. Other accounting reports have their own separate scope and controls.
Support handover
Tenant: BHS (training example)
Expense / journal / payment IDs: verified tenant record identifiers
Action: intended operation
Expense state / approval state: observed saved values
Payment states and counters: observed values, not assumed settlement
Current permissions / unit context: approved non-secret summary
Observed message: exact error
Earlier requests that may have succeeded: describe uncertainty
Internal request: BHS-FIN-014
Do not delete, duplicate, relabel currency, lower an approval amount or broaden unit access just to remove an error. Record intended versus saved outcomes separately and preserve the evidence needed for authorised resolution.