---
id: JNY-ACC-TRX-001
title: Bill a member and settle the resulting debt
feature: FEAT-ACC-TRX-01
product_area: accounting
module: transactions
revision: 1
status: draft
product_intent: proposed
implementation_evidence: partially-observed
supersedes:
  - ACT-ACC-0180
  - ACT-ACC-0201
  - ACT-ACC-0214
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
actor: ACT-ACC-012
goal: 'Prepare dues and event charges, deliver the bill and record full check settlement.'
capabilities:
  - CAP-ACC-TRX-001
  - CAP-ACC-TRX-005
  - CAP-ACC-TRX-009
  - CAP-ACC-TRX-016
screens:
  - '/console/{tenantId}/accounting/invoices/new'
  - '/console/{tenantId}/accounting/invoices/{invoiceId}'
  - '/console/{tenantId}/accounting/payments/receive'
  - '/console/{tenantId}/accounting/transactions'
steps:
  - 'n': 1
    surface: '/console/{tenantId}/accounting/invoices/new'
    action: 'Select the member, terms and purchase reference, enter dues and event lines, and save.'
    capability: CAP-ACC-TRX-001
    expected: 'The draft retains customer context, derived due date and calculated charges without a number.'
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/invoices/ACT-ACC-0180.spec.ts#ACT-ACC-0180'
  - 'n': 2
    surface: '/console/{tenantId}/accounting/invoices/{invoiceId}/edit'
    action: Revise event quantity and save the working bill.
    capability: CAP-ACC-TRX-001
    expected: A valid versioned replacement recalculates the draft.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/invoices/ACT-ACC-0180.spec.ts#ACT-ACC-0180'
  - 'n': 3
    surface: '/console/{tenantId}/accounting/invoices/{invoiceId}'
    action: Review the eligible batch and confirm issue.
    capability: CAP-ACC-TRX-001
    expected: The numbered invoice recognizes the charges and their applicable tax.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/invoices/ACT-ACC-0180.spec.ts#ACT-ACC-0180'
  - 'n': 4
    surface: emailInvoice
    action: Submit invoice e-mail to the contact’s primary address through the service.
    capability: CAP-ACC-TRX-005
    expected: Queued communication and its document event are retained together.
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/integration/services/invoices/email-invoice.integration.spec.js#it
      goes to the bill-to contact’s primary address, from the template, with the document attached, in the
      transaction
  - 'n': 5
    surface: '/console/{tenantId}/accounting/payments/receive'
    action: Select both billed lines in settlement and record the matching check.
    capability: CAP-ACC-TRX-009
    expected: One completed settlement links the receipt and its applications.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/payments/ACT-ACC-0301.spec.ts#ACT-ACC-0301'
  - 'n': 6
    surface: '/console/{tenantId}/accounting/invoices/{invoiceId}'
    action: Inspect the invoice and combined transaction view.
    capability: CAP-ACC-TRX-016
    expected: The paid bill has zero debt and both billing and receipt remain discoverable.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/invoices/ACT-ACC-0214.spec.ts#ACT-ACC-0214'
alternates:
  - from_step: 3
    condition: No explicit batch or assignment is available.
    path: Issue leaves the working document unissued.
    outcome: Staff can select a valid batch and retry without earlier numbering.
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/integration/services/invoices/issue.integration.spec.js#it
      refuses the issue when the unit has no assignment rules (batch_required), the draft unchanged
  - from_step: 4
    condition: The staff member uses only console screens.
    path: No document-send or print action is available there.
    outcome: Delivery requires the service path until the control is implemented.
    provenance: observed
    source: 'react-console:components/accounting/invoices/invoice-detail-screen.tsx'
failures:
  - from_step: 2
    condition: Another editor has already saved a newer draft.
    path: The obsolete version is rejected.
    outcome: The newer saved state remains until a reconciled replacement succeeds.
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/integration/services/invoices/update-draft.integration.spec.js#it
      refuses an update at a version the draft has moved past (stale)
rules_in_play:
  - BR-CAP-ACC-TRX-001-01
  - BR-CAP-ACC-TRX-001-05
  - BR-CAP-ACC-TRX-001-07
  - BR-CAP-ACC-TRX-001-13
  - BR-CAP-ACC-TRX-005-03
  - BR-CAP-ACC-TRX-009-03
  - BR-CAP-ACC-TRX-001-11
assertions:
  - id: AS-JNY-ACC-TRX-001-01
    statement: Issue retains a stable invoice reference and recognizes its billed receivable.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/invoices/ACT-ACC-0180.spec.ts#ACT-ACC-0180'
  - id: AS-JNY-ACC-TRX-001-02
    statement: Delivery records its communication event without changing invoice standing.
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/integration/services/invoices/email-invoice.integration.spec.js#it
      records the invoice’s email event, with the request and the addresses, and no change of status
  - id: AS-JNY-ACC-TRX-001-03
    statement: Completed settlement leaves the invoice paid with no balance.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/invoices/ACT-ACC-0214.spec.ts#ACT-ACC-0214'
  - id: AS-JNY-ACC-TRX-001-04
    statement: A fully allocated receipt has zero net remaining receivable value.
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/integration/services/payments/receive-offline.integration.spec.js#it
      writes the payment item’s facts: minus the whole amount, then plus each allocation, summing to minus the
      unapplied money
e2e_policy: required
e2e_reason: >-
  Browser proof exercises invoice editing and settlement; delivery requires separate service proof because the
  staff screen has no send control.
proved_by: []
---

# Bill a member and settle the resulting debt

## Story

Finance prepares dues and an event charge, saves the draft and corrects the event quantity before issuing. The resulting bill remains identifiable as staff follow delivery and collection. Sending currently uses the service because the invoice page has no delivery control. When the check arrives, staff settle the selected lines and inspect the retained invoice and receipt together. The bill is paid and its financial trail remains available.
