---
id: TST-COM-ORD-019
title: Tax through Accounting
kind: api-lifecycle
product_area: commerce
module: orders
revision: 1
status: draft
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
repository: services-commerce
files:
  - modules/checkout/tests/e2e/accounting-tax.e2e.spec.js
implements:
  - ATS-COM-ORD-006-08
environment: local
implementation_state: implemented
latest_result: not-run
latest_run_at: null
latest_run_ref: null
conformance: not-verified
estimated_minutes: 2
isolation: The suite creates its own test workspace records and removes them using the fixture cleanup.
evidence:
  - provenance: test
    source: 'services-commerce:modules/checkout/tests/e2e/accounting-tax.e2e.spec.js'
    test_cases:
      - 'taxes the shirt at the ship-to (Texas) and the T-shirt at the bill-to (New York), through Accounting'
      - 'asked Accounting with the unit, the bill-to party, both addresses, ships per line and no tax class'
      - >-
        freezes the lines’ tax on the order, writes no tax line, and bills it with Accounting’s tax at issue
        beside the quote
      - >-
        refuses the first tender 409 invoice_tax_mismatch, naming both figures, the new total and the shipped
        line as the cause
      - 're-priced the order to the invoice: the header, each line, the event, no tender recorded'
      - 'accepts the second tender, of the new total, first time: one refusal, no loop'
      - 'quotes zero with the exemption said, in the zone the address matches'
      - bills at zero tax and the tender passes the guard first time
      - 'is a tax_quote_refused problem on the preview and refuses the placement, placing nothing'
scenario_coverage:
  - scenario: ATS-COM-ORD-006-08
    test_cases:
      - >-
        refuses the first tender 409 invoice_tax_mismatch, naming both figures, the new total and the shipped
        line as the cause
      - 're-priced the order to the invoice: the header, each line, the event, no tender recorded'
      - 'accepts the second tender, of the new total, first time: one refusal, no loop'
    scope: >-
      The cited cases exercise the scenario’s listed fixture outcomes; this register makes no verified
      conformance claim.
dependency_evidence:
  provenance: test
  source: 'services-commerce:modules/checkout/tests/e2e/accounting-tax.e2e.spec.js'
  declared_by_test: >-
    the composed handler, the routes, the workflows, the tax port and its accounting-tax adapter, the billing
    and tender workflows, the persistence services and PostgreSQL. Doubled: the signing key pair, the other
    services' tables (local stand-ins, CRM's addresses among them), Accounting (the fixture, with the
    contract's strict shapes).
---

# Tax through Accounting

## Verification Boundary

The suite drives the composed local API dispatcher and its registered routes.

## What This Suite Proves

The registered cases check tax through Accounting with their fixture records and assertions. Scenario bindings name only the examples those cases exercise.

## What It Does Not Prove

A registered file supplies no run result or verified conformance by itself. Local fixtures do not establish deployed cross-service behavior or complete browser journeys.

## Real Dependencies and Test Doubles

PostgreSQL and the exercised Commerce persistence or workflow code are real. Remote service records, clocks and transports follow the suite’s fixtures.

## Must Not Be Doubled

The database constraints, role restrictions, locks and transactions exercised by this suite must use PostgreSQL.
