Journey · paid Invoice
Keep the existing Invoices list. Its row menu opens Record adjustment. There is no additional service list.
Review this state → · Clean view18 October 2026 · Minimal UI review · fictional data
Open a paid Invoice → Record adjustment → enter the agreed amount → choose Money returned or Keep as credit. A service link is optional, including services that already happened.
The Invoice list uses the real Odia table and dropdown components. Opening … keeps the row fixed. No new Journey Revenue cards, duplicate services list or Analytics view. Existing Include / Exclude choices stay unchanged. Mapping adjustments into margins and Analytics comes after UI agreement.
Application buttons continue the example. Review selectors load independent scenarios and reset their fictional records. Reload also resets. No money moves and no app data is saved.
Keep the existing Invoices list. Its row menu opens Record adjustment. There is no additional service list.
Review this state → · Clean viewAdd one compact Client adjustments section with one Record adjustment action and dated records.
Review this state → · Clean viewA short form records a refund already made outside Odia. Contact and currency come from this Invoice.
Review this state → · Clean viewUse the full remaining amount with one click. The date and reason remain explicit.
Review this state → · Clean viewKeep controls disabled while the adjustment saves.
Review this state → · Clean viewKeep entered values and show an inline error with the same Save action available for retry.
Review this state → · Clean viewShow the dated refund beside original payment history. Preserve the original Invoice and receipt.
Review this state → · Clean viewOpen the record to read its amount, source, reason and author.
Review this state → · Clean viewSwitch to credit in the same form. The preview shows how much Alex will have available.
Review this state → · Clean viewShow the credit note on its source Invoice with a direct route to the contact.
Review this state → · Clean viewShow available Client credit in the existing contact Overview, with access to each note and its history.
Review this state → · Clean viewShow available Client credit in the existing contact Overview, with access to each note and its history.
Review this state → · Clean viewShow available Client credit in the existing contact Overview, with access to each note and its history.
Review this state → · Clean viewShow issued, used and available values, with the source Invoice and reason.
Review this state → · Clean viewShow a €400 application and the €200 remaining from the same €600 note.
Review this state → · Clean viewKeep the note in history after its full amount has been applied.
Review this state → · Clean viewOffer available credit in the right rail of the current Invoice editor. Applying it is an explicit choice.
Review this state → · Clean viewShow the credit source and prefill the smaller of available credit and amount due.
Review this state → · Clean viewChoose which available note to apply. Each note keeps its own remaining amount.
Review this state → · Clean viewChange the amount to €400 and preview both the Invoice balance and remaining credit.
Review this state → · Clean viewShow Applying credit… and keep the dialog open until success.
Review this state → · Clean viewShow Invoice total, credit applied and amount to pay separately.
Review this state → · Clean viewA €400 Invoice is settled by €400 credit and leaves €200 available.
Review this state → · Clean viewConfirm that removing the application restores credit and increases the Invoice balance.
Review this state → · Clean viewShow the restored €600 credit and the Invoice balance returning to €3,000.
Review this state → · Clean viewConfirm cancellation and return applied credit to the contact.
Review this state → · Clean viewKeep the canceled Invoice and its reversed credit application in history.
Review this state → · Clean viewKeep the proposed amount and explain that nothing was applied.
Review this state → · Clean viewShow the €200 now available after another user applied €400 elsewhere. Require the user to review the new amount.
Review this state → · Clean viewShow that this EUR credit cannot be applied to a USD Invoice.
Review this state → · Clean viewAn Invoice billed to Jamie does not offer Alex’s credit.
Review this state → · Clean viewCorrect the tracking record and remove its unused available credit. Keep its history.
Review this state → · Clean viewKeep the voided note visible with zero available credit and its history.
Review this state → · Clean viewExplain that linked Invoice applications must be removed first. Link to the receiving Invoice.
Review this state → · Clean viewVoid an incorrectly recorded refund. This changes the Odia record only.
Review this state → · Clean viewKeep the record in history and remove it from the active recorded adjustment balance.
Review this state → · Clean viewAllow viewing the record while making the permission needed for changes explicit.
Review this state → · Clean viewKeep Revenue and its current service controls unchanged. The adjustment is recorded on the source Invoice.
Review this state → · Clean viewA full refund is recorded on the Invoice. This prototype does not yet apply it to Journey metrics.
Review this state → · Clean viewReview the dated records on the source Invoice. No new Analytics view is proposed in this UI phase.
Review this state → · Clean viewKeep the existing Include / Exclude selector. Use the Invoices lens to record an adjustment.
Review this state → · Clean viewKeep the existing Exclude choice. Switch to Invoices to record the agreed amount.
Review this state → · Clean viewUse one Client adjustment form and show its dated outcome on the source Invoice. Service status and existing financial controls stay unchanged.
Review this state → · Clean viewUse one Client adjustment form and show its dated outcome on the source Invoice. Service status and existing financial controls stay unchanged.
Review this state → · Clean viewRecord the agreed amount without restoring or otherwise changing the current financial treatment.
Review this state → · Clean viewAfter a €600 adjustment against a €900 service, limit the next refund or credit to €300.
Review this state → · Clean viewShow the linked refund in Client adjustments on its source Invoice.
Review this state → · Clean viewShow the linked credit on the source Invoice, with access to available contact credit.
Review this state → · Clean viewShow the full billed service amount as a recorded refund without changing service status or existing controls.
Review this state → · Clean viewExisting Include / Exclude remains unchanged and editable. Financial integration is a later design decision.
Review this state → · Clean viewVoiding a record does not change the existing financial treatment.
Review this state → · Clean viewKeep the adjustment on the source Invoice without inventing a service allocation.
Review this state → · Clean viewKeep the source visible and explain why recording is unavailable until a paid client Invoice is identified.
Review this state → · Clean viewRecord the agreed amount without changing the existing Include / Exclude choice. A failed save retains all inputs.
Review this state → · Clean viewBlock the ambiguous adjustment and route back to the source Invoice for reconciliation.
Review this state → · Clean viewKeep the existing Invoices list. Its row menu opens Record adjustment. There is no additional service list.
Review this state → · Clean viewUse one Client adjustment form and show its dated outcome on the source Invoice. Service status and existing financial controls stay unchanged.
Review this state → · Clean viewUse one Client adjustment form and show its dated outcome on the source Invoice. Service status and existing financial controls stay unchanged.
Review this state → · Clean viewSave the same adjustment record while preserving service status.
Review this state → · Clean viewKeep the service, amount, date and reason after a simulated save failure.
Review this state → · Clean viewUse one Client adjustment form and show its dated outcome on the source Invoice. Service status and existing financial controls stay unchanged.
Review this state → · Clean viewUse one Client adjustment form and show its dated outcome on the source Invoice. Service status and existing financial controls stay unchanged.
Review this state → · Clean viewShow the previous €200 refund and cap any further refund or credit at €700.
Review this state → · Clean viewUse one Client adjustment form and show its dated outcome on the source Invoice. Service status and existing financial controls stay unchanged.
Review this state → · Clean viewShow the linked service, current status, status when recorded and the complaint reason.
Review this state → · Clean viewShow the same completed-service provenance on the contact credit note.
Review this state → · Clean viewApply €150 from the €200 credit to a €3,000 Invoice. Show €2,850 to pay and €50 credit remaining.
Review this state → · Clean viewVoid the mistaken record, keep its history and leave the service Completed.
Review this state → · Clean viewVoid an unused mistaken credit note, preserve history and keep the service Completed.
Review this state → · Clean viewReview the dated records on the source Invoice. No new Analytics view is proposed in this UI phase.
Review this state → · Clean viewExplain that completion alone does not establish an eligible paid source Invoice.
Review this state → · Clean viewBlock recording against a selling price already changed from the saved billed value.
Review this state → · Clean viewSelect the confirmed hotel service and record an agreed €200 adjustment without canceling it.
Review this state → · Clean view