---
id: ATS-ACC-BAT-015
scope: CAP-ACC-BAT-015
product_area: accounting
module: batches
revision: 2
status: proposed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  rhythm-v2-docs: 37405d50d1465ea0571a66095d98ebec4db04175
scenarios:
  - id: ATS-ACC-BAT-015-01
    title: Live documents produce the applicable entries
    level: api
    proves:
      - BR-CAP-ACC-BAT-015-01
    preconditions: >-
      The batch contains live documents alongside voided invoices, memos and
      checks.
    steps: Complete accounting for the selected collection.
    expected: >-
      Applicable live documents receive entries; voided documents receive none
      and do not cause errors.
    negative: false
    data_needs: Provide rebuilt document fixtures.
    bound_to:
      - TST-ACC-BAT-105
      - TST-ACC-BAT-106
      - TST-ACC-BAT-135
      - TST-ACC-BAT-031
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#writes
      one entry per live document, none for the void invoice
    category: rule
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#writes
        one entry per live document, none for the void invoice
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#writes
        no entry for the check voided before the posting (a payment that is not
        live posts nothing)
      - >-
        services-accounting:modules/batches/tests/unit/rules/voided-documents-posting.spec.js#posts
        nothing when it was voided, and does not error the batch
      - >-
        react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0552.spec.ts#ACT-ACC-0552
  - id: ATS-ACC-BAT-015-02
    title: Entries use batch fiscal placement
    level: browser
    proves:
      - BR-CAP-ACC-BAT-015-02
    preconditions: >-
      A September document belongs to an October batch and an October document
      to a backdated September batch.
    steps: Post both and inspect the ledger.
    expected: >-
      Each entry uses its batch date and period while retaining the document
      date separately.
    negative: false
    data_needs: Provide two open periods.
    bound_to:
      - TST-ACC-BAT-030
      - TST-ACC-BAT-130
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0550.spec.ts#ACT-ACC-0550
    category: rule
    test_evidence:
      - >-
        react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0550.spec.ts#ACT-ACC-0550
      - >-
        services-accounting:modules/batches/tests/unit/rules/reconciliation-entry-rules.spec.js#is
        a reconciliation entry of the request, dated on the batch with the
        request’s document date
  - id: ATS-ACC-BAT-015-03
    title: Document kinds determine ledger sides
    level: browser
    proves:
      - BR-CAP-ACC-BAT-015-03
      - BR-CAP-ACC-BAT-015-04
    preconditions: A taxed invoice has both credit and debit memos.
    steps: Post and expand their entries.
    expected: >-
      Each kind uses its specified debit and credit pattern, including tax
      lines.
    negative: false
    data_needs: Provide tax rates and products.
    bound_to:
      - TST-ACC-BAT-110
      - TST-ACC-BAT-105
      - TST-ACC-BAT-007
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-tax.integration.spec.js#posts
      the invoice per line: the receivable debited the total with the tax,
      revenue credited the net, and a tax credit per tax line to its account
    category: rule
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-tax.integration.spec.js#posts
        the invoice per line: the receivable debited the total with the tax,
        revenue credited the net, and a tax credit per tax line to its account
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-tax.integration.spec.js#posts
        the credit memo with the tax it reverses debited to the tax accounts,
        revenue debited the net alone
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-tax.integration.spec.js#posts
        the debit memo with the added line’s tax credited to the tax accounts,
        revenue credited the amount requested
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#posts
        the credit memo against the invoice line it reduces: the receivable
        credited, the revenue debited
      - >-
        react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0517.spec.ts#ACT-ACC-0517
  - id: ATS-ACC-BAT-015-04
    title: Corrections split recognised and deferred balances
    level: api
    proves:
      - BR-CAP-ACC-BAT-015-05
    preconditions: Half of a one-hundred-twenty-dollar deferred line is recognised.
    steps: Post a sixty-dollar credit memo and write-off.
    expected: >-
      Each credits receivable by sixty and debits revenue and deferred revenue
      by thirty apiece.
    negative: false
    data_needs: Provide a recognised period.
    bound_to:
      - TST-ACC-BAT-103
      - TST-ACC-BAT-129
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/memo-split-by-schedule.integration.spec.js#posts
      the credit memo of 60.00 as Cr receivable 6000, Dr deferred revenue 3000
      and Dr revenue 3000
    category: interaction
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/memo-split-by-schedule.integration.spec.js#posts
        the credit memo of 60.00 as Cr receivable 6000, Dr deferred revenue 3000
        and Dr revenue 3000
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/memo-split-by-schedule.integration.spec.js#posts
        the write-off of 60.00 as Cr receivable 6000, Dr deferred revenue 3000
        and Dr revenue 3000, its schedule −30.00
      - >-
        services-accounting:modules/batches/tests/unit/rules/memo-split-by-schedule.spec.js#with
        3 of 12 months recognised debits deferred revenue 45.00 and revenue
        15.00, crediting receivable 60.00
  - id: ATS-ACC-BAT-015-05
    title: Money movements retain their source dependencies
    level: browser
    proves:
      - BR-CAP-ACC-BAT-015-06
      - BR-CAP-ACC-BAT-015-07
      - BR-CAP-ACC-BAT-015-08
      - BR-CAP-ACC-BAT-015-09
    preconditions: >-
      Payments and credits precede later allocations, refunds and a bounced
      check.
    steps: Post the three months in order.
    expected: >-
      Each document uses its ledger pattern and later outflows retain
      dependencies on the originating and allocation batches.
    negative: false
    data_needs: Provide rebuilt payment fixtures.
    bound_to:
      - TST-ACC-BAT-106
      - TST-ACC-BAT-108
      - TST-ACC-BAT-127
      - TST-ACC-BAT-014
      - TST-ACC-BAT-015
      - TST-ACC-BAT-032
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
      the payment: cash debited its total, the invoice line's receivable
      credited the allocation, unapplied cash credited the rest
    category: rule
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
        the payment: cash debited its total, the invoice line's receivable
        credited the allocation, unapplied cash credited the rest
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
        the order the tender named on the payment entry, and none on a payment
        with no order (DEF-ACT-0528)
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
        the row as a payment allocation: unapplied cash debited, the line's
        receivable (the gala line's, the unit's default) credited, naming its
        payment
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
        the manual credit: its expense debited, its liability credited
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
        the application: the credit's posted liability debited, the invoice
        line's receivable credited
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
        the bounced check as the money leaving: the bank account credited its
        total, unapplied cash debited
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-refunds.integration.spec.js#posts
        the credit's refund: the bank account credited 30.00, the credit's
        liability debited
      - >-
        services-accounting:modules/batches/tests/unit/rules/credit-application-entry-rules.spec.js#posts
        the mirror image in its own entry: debits each receivable and credits
        the liability
      - >-
        react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0524.spec.ts#ACT-ACC-0524
      - >-
        react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0525.spec.ts#ACT-ACC-0525
      - >-
        react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0553.spec.ts#ACT-ACC-0553
  - id: ATS-ACC-BAT-015-06
    title: Dependencies can post in the same request
    level: browser
    proves:
      - BR-CAP-ACC-BAT-015-10
    preconditions: November’s memo refers to an invoice in an Open October batch.
    steps: Post November alone and then both batches together.
    expected: >-
      The isolated attempt names the source invoice and batch status; the
      combined attempt posts both and records November downstream of October.
    negative: true
    data_needs: Provide no fixtures beyond the stated setup.
    bound_to:
      - TST-ACC-BAT-105
      - TST-ACC-BAT-127
      - TST-ACC-BAT-016
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#refuses
      November alone while October is open: November in error, naming the memo's
      invoice and October's status
    category: interaction
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#refuses
        November alone while October is open: November in error, naming the
        memo's invoice and October's status
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#records
        the dependency on October (DEF-ACT-0515): October names November as its
        dependent, and the dependents route answers it
      - >-
        services-accounting:modules/batches/tests/unit/rules/credit-application-entry-rules.spec.js#registers
        the application’s batch as a dependent of its credit’s posted batch and
        of its invoice’s
      - >-
        react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0526.spec.ts#ACT-ACC-0526
  - id: ATS-ACC-BAT-015-07
    title: Exchange rates govern foreign-currency posting
    level: api
    proves:
      - BR-CAP-ACC-BAT-015-11
    preconditions: >-
      Foreign invoices include one with a stored rate and one without, plus
      payments, credits and refunds.
    steps: Submit accounting work for the containing collections.
    expected: >-
      Stored-rate documents balance in both currencies with final-line
      residuals; the rate-less invoice fails its batch with an identifying
      reason.
    negative: true
    data_needs: Provide exchange rates.
    bound_to:
      - TST-ACC-BAT-098
      - TST-ACC-BAT-099
      - TST-ACC-BAT-100
      - TST-ACC-BAT-023
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/foreign-currency-invoice.integration.spec.js#marks
      the batch in error with the same sentence when posted, and writes no entry
    category: boundary
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/foreign-currency-invoice.integration.spec.js#balances
        the entry in the transaction currency and in the base currency
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/foreign-currency-invoice.integration.spec.js#gives
        the last line the difference, so the lines sum to the document total and
        the entry balances
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/foreign-currency-invoice.integration.spec.js#marks
        the batch in error with the same sentence when posted, and writes no
        entry
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/foreign-currency-payment-credit.integration.spec.js#posts
        the payment as 32.00 USD for 40.00 EUR: the bank account against
        unapplied cash
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/foreign-currency-refund.integration.spec.js#posts
        the refund’s batch instead of ending in error
      - >-
        react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0535.spec.ts#ACT-ACC-0535
  - id: ATS-ACC-BAT-015-08
    title: Cash accounting recognises receipt
    level: api
    proves:
      - BR-CAP-ACC-BAT-015-12
    preconditions: The unit uses cash accounting.
    steps: Post an invoice and its allocated payment.
    expected: The invoice creates no entry; the payment debits cash and credits revenue.
    negative: false
    data_needs: Provide a cash-basis unit.
    bound_to:
      - TST-ACC-BAT-107
      - TST-ACC-BAT-127
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-posting-edges.integration.spec.js#posts
      nothing for the invoice, and the payment as cash against the revenue of
      the line it pays (the frozen account), no receivable
    category: rule
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-posting-edges.integration.spec.js#posts
        nothing for the invoice, and the payment as cash against the revenue of
        the line it pays (the frozen account), no receivable
      - >-
        services-accounting:modules/batches/tests/unit/rules/credit-application-entry-rules.spec.js#credits
        the line’s revenue account instead of the receivable
  - id: ATS-ACC-BAT-015-09
    title: Reconciliation requests create ledger entries
    level: unit
    proves:
      - BR-CAP-ACC-BAT-015-13
    preconditions: 'The batch holds transfer, fee, reserve, adjustment and write-off requests.'
    steps: Generate posting.
    expected: >-
      Every request produces its applicable cash and request lines; request-only
      batches remain and statistics include them.
    negative: false
    data_needs: Provide no fixtures beyond the stated setup.
    bound_to:
      - TST-ACC-BAT-130
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/unit/rules/reconciliation-entry-rules.spec.js#posts
      a bank line and a clearing line as cash lines naming their accounts,
      debits and credits as stored
    category: rule
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/unit/rules/reconciliation-entry-rules.spec.js#posts
        a bank line and a clearing line as cash lines naming their accounts,
        debits and credits as stored
      - >-
        services-accounting:modules/batches/tests/unit/rules/reconciliation-entry-rules.spec.js#gives
        a fee, a reserve, an adjustment and a write-off a line type of their own
      - >-
        services-accounting:modules/batches/tests/unit/rules/reconciliation-entry-rules.spec.js#leaves
        a batch holding only requests out of the batches to delete
  - id: ATS-ACC-BAT-015-10
    title: Entries balance and retain traceability
    level: api
    proves:
      - BR-CAP-ACC-BAT-015-14
      - INV-DOM-ACC-BAT-004-01
    preconditions: A posted batch contains every supported document kind.
    steps: Total entry lines and trace them to their originating documents.
    expected: >-
      Debit and credit totals agree in each currency and every line retains its
      document reference.
    negative: false
    data_needs: Provide no fixtures beyond the stated setup.
    bound_to:
      - TST-ACC-BAT-105
    provenance: test
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#traces
      every line of every entry to a line of a document in the batch
    category: invariant
    test_evidence:
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#balances
        every entry in the base currency and in its transaction currency
      - >-
        services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#traces
        every line of every entry to a line of a document in the batch
  - id: ATS-ACC-BAT-015-11
    title: Dependency failure differs from whole-job failure
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-BAT-013-10
      - BR-CAP-ACC-BAT-015-10
    exercises:
      - CAP-ACC-BAT-015
      - CAP-ACC-BAT-013
    workflows:
      - WF-ACC-BAT-005
    preconditions: >-
      January is valid, April depends on an unposted credit and May depends on
      April.
    steps: 'Submit all three and inspect job, batch states and entries.'
    expected: >-
      January is Posted; April and May are Error without entries, with their
      respective reasons.
    negative: false
    data_needs: >-
      An isolated workspace with the stated business-unit calendar, documents
      and configuration.
    bound_to: []
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-posting-edges.integration.spec.js#posts
      January, puts April in error naming the application whose credit's batch
      is not posted, and May in error as April's dependent;
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#refuses
      November alone while October is open: November in error, naming the memo's
      invoice and October's status
  - id: ATS-ACC-BAT-015-12
    title: Resolved destinations drive generated entries
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-BAT-014-02
      - BR-CAP-ACC-BAT-015-03
    exercises:
      - CAP-ACC-BAT-015
      - CAP-ACC-BAT-014
    workflows:
      - WF-ACC-BAT-005
    preconditions: >-
      An issued invoice line lacks product accounting but the unit has its
      revenue default.
    steps: Post the batch and inspect the line snapshot and revenue ledger line.
    expected: Both identify the unit’s resolved revenue account.
    negative: false
    data_needs: >-
      An isolated workspace with the stated business-unit calendar, documents
      and configuration.
    bound_to: []
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/gl-resolution-at-posting.integration.spec.js#posts
      the invoice to the resolved accounts: the receivable from the unit’s
      default, the revenue from the product’s setup, the discounted line net of
      its discount;
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-tax.integration.spec.js#posts
      the invoice per line: the receivable debited the total with the tax,
      revenue credited the net, and a tax credit per tax line to its account
  - id: ATS-ACC-BAT-015-13
    title: Generated balances survive storage enforcement
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-BAT-015-14
      - BR-CAP-ACC-BAT-017-01
    exercises:
      - CAP-ACC-BAT-015
      - CAP-ACC-BAT-017
    workflows: []
    preconditions: A taxed invoice and its memo are eligible for posting.
    steps: Post them and sum stored debit and credit lines per entry.
    expected: >-
      Each stored entry balances and its document-line references remain
      readable.
    negative: false
    data_needs: >-
      An isolated workspace with the stated business-unit calendar, documents
      and configuration.
    bound_to: []
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#traces
      every line of every entry to a line of a document in the batch;
      services-accounting:modules/batches/tests/integration/services/persistence/subledger-entries.integration.spec.js#refuses
      an entry whose debits and credits differ, at commit, by the balance
      constraint
  - id: ATS-ACC-BAT-015-14
    title: Correction entries agree with remaining releases
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-BAT-015-05
      - BR-CAP-ACC-BAT-019-08
    exercises:
      - CAP-ACC-BAT-015
      - CAP-ACC-BAT-019
    workflows:
      - WF-ACC-BAT-005
    preconditions: Half of a deferred invoice line’s revenue is recognised.
    steps: >-
      Post a sixty-dollar credit memo and inspect its ledger entry and
      adjustment schedule.
    expected: >-
      The entry divides thirty dollars each between revenue and deferred
      revenue; future schedule adjustments total the deferred share.
    negative: false
    data_needs: >-
      An isolated workspace with the stated business-unit calendar, documents
      and configuration.
    bound_to: []
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/memo-split-by-schedule.integration.spec.js#posts
      the credit memo of 60.00 as Cr receivable 6000, Dr deferred revenue 3000
      and Dr revenue 3000;
      services-accounting:modules/batches/tests/unit/rules/schedule-truncation.spec.js#inverts
      the nine unrecognised months at half each on their own dates and nothing
      for the recognised three
  - id: ATS-ACC-BAT-015-15
    title: Generation exceptions preserve the transaction
    category: failure
    level: api
    proves:
      - BR-CAP-ACC-BAT-015-14
    preconditions: >-
      A valid invoice batch uses a controlled generator that throws during
      accounting work.
    steps: >-
      Invoke the posting task and inspect persisted entries, batch status and
      the failed job.
    expected: >-
      The transaction writes no partial entries; the job records the exception
      and preserves the previous batch state.
    negative: true
    data_needs: >-
      Owned records in an isolated workspace with the stated calendar and
      accounting setup.
    bound_to: []
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#traces
      every line of every entry to a line of a document in the batch
evidence:
  - services-accounting at f47cb263: 'Inspected references: scenario-bound tests in modules/batches/tests.'
  - react-console at baf6dae3: >-
      Inspected references:
      acceptance/accounting/playwright/journeys/batches-posting (ACT-ACC-0517,
      0524, 0525, 0526, 0535, 0550, 0552).
  - >-
    Pinned design objects, state models and workflows identify invariant and
    interaction obligations; scenario test anchors remain in test_evidence.
product_intent: proposed
coverage:
  rule: covered
  transition: not-applicable
  validation: 'gap: FND-ACC-BAT-069'
  permission: not-applicable
  edge: 'gap: FND-ACC-BAT-069'
  failure: covered
  boundary: covered
  concurrency: 'gap: FND-ACC-BAT-069'
  invariant: covered
  interaction: covered
coverage_notes:
  transition: >-
    Document-entry generation occurs within posting and defines no independent
    entry lifecycle transition.
  validation: >-
    Engine exception paths, concurrent source-document changes, stored-rate
    absence and residual boundaries need proof across the relevant generation
    kinds.
  permission: Generation is an internal posting operation with no separate public grant.
  edge: >-
    Engine exception paths, concurrent source-document changes, stored-rate
    absence and residual boundaries need proof across the relevant generation
    kinds.
  failure: >-
    Engine exception paths, concurrent source-document changes, stored-rate
    absence and residual boundaries need proof across the relevant generation
    kinds.
  concurrency: >-
    Engine exception paths, concurrent source-document changes, stored-rate
    absence and residual boundaries need proof across the relevant generation
    kinds.
rule_coverage:
  - rule: BR-CAP-ACC-BAT-015-01
    scenarios:
      - ATS-ACC-BAT-015-01
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#writes
      one entry per live document, none for the void invoice
  - rule: BR-CAP-ACC-BAT-015-02
    scenarios:
      - ATS-ACC-BAT-015-02
    provenance: proposed
    source: >-
      react-console:acceptance/accounting/playwright/journeys/batches-posting/ACT-ACC-0550.spec.ts#ACT-ACC-0550
  - rule: BR-CAP-ACC-BAT-015-03
    scenarios:
      - ATS-ACC-BAT-015-03
      - ATS-ACC-BAT-015-12
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-tax.integration.spec.js#posts
      the invoice per line: the receivable debited the total with the tax,
      revenue credited the net, and a tax credit per tax line to its account
  - rule: BR-CAP-ACC-BAT-015-04
    scenarios:
      - ATS-ACC-BAT-015-03
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#posts
      the credit memo against the invoice line it reduces: the receivable
      credited, the revenue debited
  - rule: BR-CAP-ACC-BAT-015-05
    scenarios:
      - ATS-ACC-BAT-015-04
      - ATS-ACC-BAT-015-14
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/memo-split-by-schedule.integration.spec.js#posts
      the credit memo of 60.00 as Cr receivable 6000, Dr deferred revenue 3000
      and Dr revenue 3000
  - rule: BR-CAP-ACC-BAT-015-06
    scenarios:
      - ATS-ACC-BAT-015-05
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
      the payment: cash debited its total, the invoice line's receivable
      credited the allocation, unapplied cash credited the rest
  - rule: BR-CAP-ACC-BAT-015-07
    scenarios:
      - ATS-ACC-BAT-015-05
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
      the row as a payment allocation: unapplied cash debited, the line's
      receivable (the gala line's, the unit's default) credited, naming its
      payment
  - rule: BR-CAP-ACC-BAT-015-08
    scenarios:
      - ATS-ACC-BAT-015-05
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/unit/rules/credit-application-entry-rules.spec.js#debits
      the credit liability for the total and credits each invoice line’s
      receivable, in one entry naming the application
  - rule: BR-CAP-ACC-BAT-015-09
    scenarios:
      - ATS-ACC-BAT-015-05
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-payments.integration.spec.js#posts
      the bounced check as the money leaving: the bank account credited its
      total, unapplied cash debited
  - rule: BR-CAP-ACC-BAT-015-10
    scenarios:
      - ATS-ACC-BAT-015-06
      - ATS-ACC-BAT-015-11
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#refuses
      November alone while October is open: November in error, naming the memo's
      invoice and October's status
  - rule: BR-CAP-ACC-BAT-015-11
    scenarios:
      - ATS-ACC-BAT-015-07
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/foreign-currency-invoice.integration.spec.js#marks
      the batch in error with the same sentence when posted, and writes no entry
  - rule: BR-CAP-ACC-BAT-015-12
    scenarios:
      - ATS-ACC-BAT-015-08
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-posting-edges.integration.spec.js#posts
      nothing for the invoice, and the payment as cash against the revenue of
      the line it pays (the frozen account), no receivable
  - rule: BR-CAP-ACC-BAT-015-13
    scenarios:
      - ATS-ACC-BAT-015-09
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/unit/rules/reconciliation-entry-rules.spec.js#posts
      a bank line and a clearing line as cash lines naming their accounts,
      debits and credits as stored
  - rule: BR-CAP-ACC-BAT-015-14
    scenarios:
      - ATS-ACC-BAT-015-10
      - ATS-ACC-BAT-015-13
      - ATS-ACC-BAT-015-15
    provenance: proposed
    source: >-
      services-accounting:modules/batches/tests/integration/services/posting/rebuilt-documents.integration.spec.js#traces
      every line of every entry to a line of a document in the batch
transition_coverage: []
permission_coverage: []
executable_coverage:
  bound_scenarios: 10
  unbound_scenarios:
    - ATS-ACC-BAT-015-11
    - ATS-ACC-BAT-015-12
    - ATS-ACC-BAT-015-13
    - ATS-ACC-BAT-015-14
    - ATS-ACC-BAT-015-15
  gap: FND-ACC-BAT-069
---

# Produce document entries using the applicable accounting method: Capability Test Specification

## Coverage

The scenarios define focused checks for this outcome. The coverage map distinguishes specified checks from unresolved proof; executable bindings identify inspected assertions and carry no execution result.

| Rule | Proof Specification or Gap |
|---|---|
| `BR-CAP-ACC-BAT-015-01` | `ATS-ACC-BAT-015-01` |
| `BR-CAP-ACC-BAT-015-02` | `ATS-ACC-BAT-015-02` |
| `BR-CAP-ACC-BAT-015-03` | `ATS-ACC-BAT-015-03`, `ATS-ACC-BAT-015-12` |
| `BR-CAP-ACC-BAT-015-04` | `ATS-ACC-BAT-015-03` |
| `BR-CAP-ACC-BAT-015-05` | `ATS-ACC-BAT-015-04`, `ATS-ACC-BAT-015-14` |
| `BR-CAP-ACC-BAT-015-06` | `ATS-ACC-BAT-015-05` |
| `BR-CAP-ACC-BAT-015-07` | `ATS-ACC-BAT-015-05` |
| `BR-CAP-ACC-BAT-015-08` | `ATS-ACC-BAT-015-05` |
| `BR-CAP-ACC-BAT-015-09` | `ATS-ACC-BAT-015-05` |
| `BR-CAP-ACC-BAT-015-10` | `ATS-ACC-BAT-015-06`, `ATS-ACC-BAT-015-11` |
| `BR-CAP-ACC-BAT-015-11` | `ATS-ACC-BAT-015-07` |
| `BR-CAP-ACC-BAT-015-12` | `ATS-ACC-BAT-015-08` |
| `BR-CAP-ACC-BAT-015-13` | `ATS-ACC-BAT-015-09` |
| `BR-CAP-ACC-BAT-015-14` | `ATS-ACC-BAT-015-10`, `ATS-ACC-BAT-015-13`, `ATS-ACC-BAT-015-15` |

## Interactions With Related Capabilities

Dependency failure differs from whole-job failure. Resolved destinations drive generated entries. Generated balances survive storage enforcement. Correction entries agree with remaining releases. These checks use the related capability’s outcome as part of the setup or verification. Unbound interactions remain proposed until a suite executes the complete chain.
