Skip to main content

Customer Transactions

Customer transactions are the financial documents at the heart of accounts receivable — invoices, credit memos, and debit memos. FAR models these using a header/line pattern: a transaction header carries document-level details, while transaction lines hold the individual line items.

Transaction headers​

A Transaction Header represents a single financial document. Each header records:

  • Transaction code — an auto-generated, human-readable identifier
  • Transaction type — defaults to INVOICE; also supports credit and debit memos
  • Transaction status — defaults to DRAFT, progressing through the document lifecycle
  • Transaction date — when the document was issued
  • Transaction currency — the currency for all amounts on the document

Party references​

Each transaction distinguishes two parties:

  • Sold-to — the customer being billed, referenced by customer ID, customer site ID, and contact point ID
  • Ship-to — the party receiving goods or services, referenced by party ID, party site ID, and contact point ID

The sold-to and ship-to can be the same customer or different parties, supporting scenarios like drop-shipping or third-party billing.

Payment information​

Transaction headers also carry:

  • Payment term — defines when the transaction amount is due
  • Payment method — how the customer will pay
  • Customer PO number — the customer's purchase order reference
  • Customer reference — any additional reference the customer provides
  • Salesperson — the person responsible for the sale

Transaction lifecycle​

Transaction headers move through the following lifecycle:

StatusMeaning
DRAFTThe transaction has been entered but not yet opened
OPENThe transaction is open and awaiting confirmation or finalisation
MANUAL_REVIEWThe transaction has been flagged for manual review
CUSTOMER_CONFIRMEDThe transaction has been confirmed by the customer
SUPPLIER_CONFIRMEDThe transaction has been confirmed by the supplier
FINALThe transaction has been finalised; tax is calculated and accounting is raised
CLOSEDThe transaction has been closed

Status changes follow a fixed set of transitions:

FromAllowed next statuses
DRAFTOPEN
OPENMANUAL_REVIEW, CUSTOMER_CONFIRMED, SUPPLIER_CONFIRMED, FINAL
MANUAL_REVIEWOPEN
CUSTOMER_CONFIRMED, SUPPLIER_CONFIRMEDFINAL
FINALCLOSED

Transitions are made using the transition action on the transaction rather than by editing the status field directly.

Update controls​

As a transaction progresses, header fields are progressively restricted to protect data integrity:

FieldsEditable in
Transaction code, transaction type, transaction date, currency, start and end dates, organisationDRAFT only
Sold-to and ship-to party, site and contact point; salesperson; payment term; payment methodDRAFT, OPEN, MANUAL_REVIEW, CUSTOMER_CONFIRMED, SUPPLIER_CONFIRMED
Customer PO number, customer referenceAll of the above, plus FINAL and CLOSED

Metadata updates are permitted in any status.

Transaction lines​

Transaction Lines hold the individual items on a financial document. Each line records:

FieldPurpose
Line numberAuto-generated sequence within the transaction
Line statusTracks the line's lifecycle independently of the header
Item IDOptional reference to an inventory item
Item descriptionFree-text description of the goods or services
Line referenceOptional reference for the line item
QuantityNumber of units
Unit of measureHow the quantity is measured
Unit list priceStandard price per unit
Unit transaction priceActual price per unit on this transaction (may differ from list)
Extended list priceList price × quantity
Extended transaction priceTransaction price × quantity
Tax classification codeControls the tax rate applied to this line (see below)

Tax classification​

Each transaction line can carry a tax_classification_code that determines which tax rate is applied when tax is calculated. Common values are STANDARD, ZERO, and EXEMPT. When left blank, the default rate for the organisation's tax regime is used (typically STANDARD).

Tax is calculated automatically when the transaction status moves to FINAL. The result is a set of tax lines — one per transaction line — that record the taxable amount and calculated tax. Tax lines are visible as a child grid on the transaction.

See Tax Calculation for details on how tax rates are resolved and applied.

Accounting events​

When a transaction reaches FINAL status, the subledger automatically raises an accounting event:

  • Invoices and debit memos raise an AR_INVOICE event — debiting the receivable and crediting revenue and tax liability
  • Credit memos raise an AR_CREDIT_MEMO event — crediting the receivable and debiting revenue and tax liability

These events are processed by fsl_create_accounting into balanced subledger journal entries. See Accounting Events for the full lifecycle.

Authorisation​

Transaction headers and lines follow the standard authorisation pattern. Access to a customer implicitly provides access to that customer's transactions.

Further reading​