---
id: SCR-ACC-TRX-004
title: Edit invoice
route: '/console/{tenantId}/accounting/invoices/{invoiceId}/edit'
surface: console
product_area: accounting
module: transactions
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
purpose: Correct prepared invoice content or the permitted details of issued billing.
supports:
  - CAP-ACC-TRX-001
  - CAP-ACC-TRX-002
permission: >-
  accounting.invoices.create for drafts; accounting.invoices.update for issued
  details
entry_from:
  - '/console/{tenantId}/accounting/invoices/{invoiceId}'
exits_to:
  - '/console/{tenantId}/accounting/invoices/{invoiceId}'
  - '/console/{tenantId}/accounting/invoices/{invoiceId}/adjust'
displays:
  - field: >-
      Prepared header and charges, or issued descriptions with financial charge
      controls locked.
    source: getInvoice (DOM-ACC-TRX-001)
actions:
  - label: Save (draft)
    operation_id: updateInvoiceDraft
    permission: accounting.invoices.create
    confirm: false
  - label: Save (issued details)
    operation_id: updateInvoiceDetails
    permission: accounting.invoices.update
    confirm: false
  - label: Use Adjust Invoice
    operation_id: 'none: link to SCR-ACC-TRX-005'
    permission: accounting.invoices.adjust
    confirm: false
states:
  - loading
  - error
  - read-only
validation:
  - BR-CAP-ACC-TRX-001-01
  - BR-CAP-ACC-TRX-001-02
  - BR-CAP-ACC-TRX-002-05
  - BR-CAP-ACC-TRX-002-06
patterns:
  - Standard PageLayout
  - PageHeader
  - Customer and product pickers
  - EditorActionBar
  - Issued-amount adjustment callout
component: components/accounting/invoices/invoice-editor-screen.tsx (InvoiceEditorScreen)
evidence:
  - >-
    react-console at baf6dae3:
    components/accounting/invoices/invoice-editor-screen.tsx;
    lib/accounting/transactions/http/invoices.ts (updateDraft, updateDetails).
controls: [TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PRV-001, TC-PRV-002]
---
# Edit invoice

## What the Screen Is For

Correct prepared invoice content or the permitted details of issued billing.

## What It Shows and Lets People Do

Draft editing submits a versioned whole replacement. Issued editing submits descriptions, terms and due date, with a callout directing amount changes to the disconnected adjustment surface.

## States and Errors

Stale preparation and invalid details reject the complete save rather than merging selected fields.

## Patterns It Must Respect

The frontmatter names the components and layout actually used. Confirmation behavior is action-specific, including inline review and direct submission where implemented. The contract records the current console behavior without declaring an approved visual baseline.
