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
| What | Where | If it is missing |
|---|---|---|
| Company, branch, location | Organization | Documents cannot be created — company, branch and location are required fields |
| Fiscal periods open for the transaction date | Chart of Account | FINAL 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.
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
| What | Where | If it is missing |
|---|---|---|
| Tax codes for the rates you charge | Tax Configuration | Tax lines cannot be built; MISSING_DEFAULT_GL_CODE: OUTPUT_TAX at posting |
4. What you sell, and who you sell it to
| What | Where | Note |
|---|---|---|
| Items, with serial / batch / bin tracking where used | Doc Item Maintenance | Serial validation at FINAL is a setting; when on, a serial not in stock at the location is rejected |
| Customers, with entity type and currency | Customer Maintenance | The invoice has nobody to bill |
| Customer credit terms, and credit limits if you use them | Customer Maintenance | Credit limit is displayed, never enforced. The blacklist is the only hard stop |
| Pricing scheme, and a pricebook if you price by customer or branch | Pricebook | |
| Return reasons | Sales Return applet → Settings → Return Reasons | The 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:
- The invoice has a document number.
- The stock report for that item at that branch is one lower.
- 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
| Mistake | Symptom |
|---|---|
SALES or COGS not mapped | Invoice is FINAL, no journal — the posting job failed; see Trace Document |
DEBTOR not mapped | Invoice is FINAL, no journal — the posting job failed with MISSING_DEFAULT_GL_CODE: DEBTOR |
| Fiscal period closed for the transaction date | FISCAL_PERIOD_LOCKED |
| Sales Report permission granted without branch targets | Branch drop-down empty; the report looks broken |
| Expecting a credit note to put stock back | It does not — its quantity signum is 0. Raise a Sales Return as well |
| Designing a process around the Sales GIN | It moves nothing. The invoice moves the stock |