Skip to content

CAP-ACC-BKS-003Set a unit’s accounting and tender-fee policies

Markdown

CAP-ACC-BKS-003

Set a unit’s accounting and tender-fee policies

Markdown
  • DocumentDraft
  • Product intentConfirmed
  • ImplementationPartially observed

KindCapabilityProduct areaAccountingModuleBooks, Business Units and Chart of AccountsRevision1

Read atservices-accounting f47cb263react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
Current-period posted activity prevents accounting-method changes.Posting uses the write-off policy currently in force.Each tender receives one consistently calculated unit fee.
Surfaces
consoleapi
Intent sources
services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D12services-accounting:docs/architecture/accounting-2.0/02-decisions.md#A-2services-accounting:docs/architecture/accounting-2.0/02-decisions.md#A-17

Controls

25 controls apply, from the corpus control catalogue.

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-005 TC-AZ-006 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-TEN-004 TC-DAT-001 TC-DAT-002 TC-DAT-005 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-PI-001 TC-PI-003 TC-PI-005

Permissions

KeyChecked atScope
accounting.business-units.updateapitenant

Business Rules

9 rules, 7 to be proved before approval. A rule's product intent is derived from its origin: 9 confirmed by a product decision, the rest inheriting this capability's confirmed.

IdRuleKindEnforced atProvenance
01must prove
Confirmed
Accounting defaults to accrual and may be changed to cash or back unless the current open period has posted or downloaded batches, when the refusal names the period and count; no open period permits the change.
lifecycleservicetest
services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#refuses the change 409 naming the period and the count when a batch of the open period is posted, leaving the method
02must prove
Confirmed
The unit defaults to direct write-offs and bad-debt expense, permits allowance or revenue-reversal choices, and supplies the policy effective at posting rather than at write-off creation.
policyservice, databasetest
03must prove
Confirmed
A card-fee rule requires a product and a percentage, fixed amount or both, with an optional minimum; percentages range from 0 to 100 with four decimal places and base-currency minor-unit amounts are nonnegative.
validationapi, service, databasetest
services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#refuses a rule that is not whole (a percent without a product, a product without an amount, a minimum alone) by the database’s rule
04must prove
Confirmed
The fee product must be active and belong to the same unit.
validationservicetest
services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#refuses a fee product of another unit, an inactive one and one the tenant does not have, naming card_fee_product_id
05must prove
Confirmed
The tender fee combines the half-up-rounded percentage with a fixed amount and minimum in base currency, uses only the percentage for other currencies, and is calculated once then distributed across the invoices.
✓ A valid configuration completes the stated operation.
calculationservicetest
services-accounting:modules/books/tests/unit/rules/card-fee-rules.spec.js#adds the fixed amount in the base currency: 2.9% + 30 on 10000 is 320
06must prove
Confirmed
A configured fee applies to cards, applies to bank debits only when electronic-check charging is enabled, and never applies to offline methods.
policyservicetest
services-accounting:modules/books/tests/unit/rules/card-fee-rules.spec.js#charges a card behaviour always, a bank debit only when the rule says so, and never an offline method or without a rule
07
Confirmed
A new invoice takes the unit’s default fee policy when no policy is supplied, choosing none, required or optional with none as the default.
policyservicedocumented
08
Confirmed
The unit stores download detail, financial-software choice and receivable project inheritance for posting and exports to read.
policyservice, databaseobserved
09must prove
Confirmed
Zero and negative tender amounts calculate a zero fee even when fixed or minimum charges are configured.
calculationserviceobserved

Scenarios

IdGivenWhenThenProvenance
01The configured tender rule charges 2.9 percent plus 30 cents, with a dollar minimum.A single card tender settles two invoices.The total fee is calculated once and allocated between the invoices.test
02A pending write-off was entered under bad-debt-expense treatment.The controller selects revenue reversal before posting its batch.Posting uses the revenue account rather than the creation-time treatment.test

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.