Skip to content

Configuration

Nothing in this module is configured in this module. A sales invoice draws on company structure, GL defaults, items, customers, tax codes and printable formats that all live elsewhere — and it fails at FINAL when one of them is missing. This page lists what must exist, where it is set, and what the failure looks like, so you can recognise a gap from its error message.

The order below is a dependency order, not a rule the product enforces. Nothing stops you doing it out of sequence; you will simply hit the failures later.

1. Company structure

WhatWhereIf it is missing
Company, branch, locationOrganizationDocuments cannot be created — company, branch and location are required fields
Fiscal periods open for the transaction dateChart of AccountFINAL is refused with FISCAL_PERIOD_LOCKED — this one is checked before FINAL

2. General ledger defaults

The company default GL mapping is where every posting resolves when a line and a header carry no code of their own. For this module you need, at minimum:

DEBTOR (and DEBTOR_NON_TRADE if you invoice non-trade customers) · SALES · SALES_DISCOUNT · SALES_RETURN · OUTPUT_TAX · COGS · FOREX_GAIN · FOREX_LOSS

Set in Chart of Account.

A missing mapping does not stop FINAL — it fails the posting job afterwards. FINAL enqueues the posting processor and returns; the journal is written by that job a moment later. An unmapped DEBTOR fails the job with MISSING_DEFAULT_GL_CODE: DEBTOR. An unmapped SALES, OUTPUT_TAX or COGS is worse: the line is silently left out of the journal, and the job fails because debits and credits no longer balance. Either way the invoice sits at FINAL with no journal behind it and the screen says nothing. Where you find it: Financial Report → Error Checking → Trace Document. If a finalised invoice has no journal, check these mappings first.

3. Tax

WhatWhereIf it is missing
Tax codes for the rates you chargeTax ConfigurationTax lines cannot be built; MISSING_DEFAULT_GL_CODE: OUTPUT_TAX at posting

4. What you sell, and who you sell it to

WhatWhereNote
Items, with serial / batch / bin tracking where usedDoc Item MaintenanceSerial validation at FINAL is a setting; when on, a serial not in stock at the location is rejected
Customers, with entity type and currencyCustomer MaintenanceThe invoice has nobody to bill
Customer credit terms, and credit limits if you use themCustomer MaintenanceCredit limit is displayed, never enforced. The blacklist is the only hard stop
Pricing scheme, and a pricebook if you price by customer or branchPricebook
Return reasonsSales Return applet → Settings → Return ReasonsThe Reason drop-down is empty until you add codes

5. Permissions

Each document type needs its four API permissions (TNT_API_DOC_INTERNAL_SALES_INVOICE_CREATE / READ / UPDATE / DELETE, and the equivalents for quotation, order, return, credit note, debit note and refund note). Each applet’s reference page names its four.

The Sales Report’s API read permission is granted with branch targets. Granted without a branch, the permission exists and the branch drop-down is empty — it is a filter, not a yes/no.

What success looks like

Raise one invoice for one item to a customer on terms, finalise it, then check all three in five minutes:

  1. The invoice has a document number.
  2. The stock report for that item at that branch is one lower.
  3. The ledger shows a debit to the customer’s debtor account and a credit to Sales, with output tax split out, and a cost-of-sales entry against inventory.

If any one of the three is missing, the failure is in the section above that supplies it.

Common mistakes

MistakeSymptom
SALES or COGS not mappedInvoice is FINAL, no journal — the posting job failed; see Trace Document
DEBTOR not mappedInvoice is FINAL, no journal — the posting job failed with MISSING_DEFAULT_GL_CODE: DEBTOR
Fiscal period closed for the transaction dateFISCAL_PERIOD_LOCKED
Sales Report permission granted without branch targetsBranch drop-down empty; the report looks broken
Expecting a credit note to put stock backIt does not — its quantity signum is 0. Raise a Sales Return as well
Designing a process around the Sales GINIt moves nothing. The invoice moves the stock