---
id: SCR-ACC-TRX-002
title: New invoice
route: '/console/{tenantId}/accounting/invoices/new'
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: Prepare customer charges and submit billing as an invoice or quotation.
supports:
  - JNY-ACC-TRX-001
  - CAP-ACC-TRX-001
permission: accounting.invoices.create to save; accounting.invoices.adjust to issue
entry_from:
  - The financial explorer entry menu
  - Customer-record billing entry with its party preselected
exits_to:
  - '/console/{tenantId}/accounting/invoices/{invoiceId}'
displays:
  - field: >-
      Customer and accounting scope with billing date, terms, batch and exchange
      rate.
    source: 'DOM-ACC-TRX-001 header; Books configuration for units, terms and rates'
  - field: >-
      Charge rows showing product, description, quantity, unit price, discount
      and calculated value.
    source: DOM-ACC-TRX-001 lines; Products for the picker
  - field: Billing notes and the selected card-fee policy.
    source: DOM-ACC-TRX-001 descriptive details and card-fee policy
actions:
  - label: Save Draft
    operation_id: createInvoiceDraft
    permission: accounting.invoices.create
    confirm: false
  - label: Issue
    operation_id: issueInvoice (the issue action after saving)
    permission: accounting.invoices.adjust
    confirm: false
  - label: Switch business unit
    operation_id: 'none: confirmation that clears unit-specific choices'
    permission: accounting.invoices.create
    confirm: true
states:
  - loading
  - error
validation:
  - BR-CAP-ACC-TRX-001-03
  - BR-CAP-ACC-TRX-001-04
  - BR-CAP-ACC-TRX-001-05
  - BR-CAP-ACC-TRX-001-06
  - BR-CAP-ACC-TRX-001-07
patterns:
  - Standard PageLayout
  - PageHeader
  - Customer picker for contacts and organizations
  - Charge-row product picker
  - Batch select and new-batch dialog
  - EditorActionBar
  - Business-unit switch confirmation dialog
component: components/accounting/invoices/invoice-editor-screen.tsx (InvoiceEditorScreen)
evidence:
  - >-
    react-console at baf6dae3:
    app/(console)/console/[tenantId]/accounting/invoices/new/page.tsx;
    components/accounting/invoices/invoice-editor-screen.tsx, invoice-model.ts;
    lib/accounting/transactions/http/invoices.ts.
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-TEN-004, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PRV-001, TC-PRV-002]
---
# New invoice

## What the Screen Is For

Prepare customer charges and submit billing as an invoice or quotation.

## What It Shows and Lets People Do

The editor offers a draft save and an issue submission. Issue follows saving without an additional issue-confirmation dialog; switching units uses confirmation before clearing unit-specific choices.

## States and Errors

Field validation and service refusals explain unsuccessful preparation or issue. Independent number allocation means a later issue failure can leave a sequence gap.

## 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.
