Issuing an invoice is easy. Fixing one after it has been delivered and reported is where systems show their cracks.
Never edit, always reference
A sent invoice is a fact. To correct it you issue a credit note that points at the original, then issue a new invoice if needed. This keeps the audit trail intact and is accepted nearly everywhere.
Model it explicitly
- Store the reference to the original invoice number and date
- Use negative or positive amounts consistently, as the format requires
- Keep a reason code so finance can report on corrections
- Send the credit note through the same workflow as the invoice
When corrections are first-class objects in your data model, month-end reconciliation stops being a spreadsheet exercise.