Skip to content

Creditor Report Applet

Answer every question about money you owe suppliers: which bills are open, how old they are, what a supplier’s statement shows, and how payments settled them. Only finalised documents are read, so drafts and voided bills never appear, and the only thing this applet writes is a contra between two open supplier documents.

Overview

The Creditor Report Applet gives your finance team one place to review money the company owes to suppliers. You can list unpaid supplier documents, review aging, pull supplier statements, trace historical balances, and see how payment vouchers settled purchase invoices, without moving between the purchase and payment applets. It reads the same documents those applets create; the only thing it writes is a contra between two open supplier documents.

In plain English: a “creditor” is any supplier or vendor you owe money to. Every screen in this applet answers a question about that money: which documents are still open, how old the balances are, what a supplier’s statement looks like, and what the position was at the end of a past month.

In the product the applet is titled Creditor Report. It is the accounts-payable counterpart of the Debtor Report Applet; the Debtor and Creditor Report applet carries both sides in one menu.

Where it fits

PositionApplet / documentWhy
Upstream (documents it reads)Purchase Invoice No Stock In, Purchase GRN Stock In, Purchase Debit Note, Purchase Credit Note, Purchase ReturnEvery FINAL supplier document with an AR/AP balance is a row in the outstanding, aging, statement and historical reports. Draft or voided documents never appear.
Upstream (settlement)Payment Voucher (Internal)Payments and their settlement lines feed the Settlement tab, the AP Transaction Report and the two payment/settlement reports.
Upstream (master data)Entity, OrganisationSuppliers are entities whose AR/AP type is one of AP_TRADE, AP_OTHER, AP_MERCHANT, AP_EMPLOYEE (on the entity or on its company link); companies and branches are the filters and permission targets.
Upstream (references shown)Purchase Order, Purchase GRNThe GRN No and PO No columns link back to the source documents.
Sibling reportsDebtor Report Applet, Debtor and Creditor Report, Purchase ReportSame report engine on the receivable side; purchase analysis by document or item.
Downstream (reconciliation)Financial Report, Ledger And JournalThe supplier balances here are the sub-ledger behind the trade-creditor lines of the Balance Sheet.

Screens and menus

The left menu has eight reports. Each one opens a listing with an advanced-search bar (keyword plus filters), an AG Grid with export, and a drill-down that opens in the right-hand column.

Menu itemWhat it shows
Outstanding Document Report (default landing page)One row per open supplier document as of today, with an Aging Summary strip (one tile per aging bucket plus a total) above the grid. Rows past their due date are shown in red. Click a row to open View Outstanding Document.
Aging ReportOpen documents grouped by supplier, with bucket columns; footer totals per group. Click a row for Aging Report Transactions (Main, Outstanding Docs tabs).
Statement of AccountOne row per supplier and currency: PNS Amount, Settlement Amount, Docs Open, Contra, Balance. Click a row for Entity Report Transactions with tabs Entity Details, Subledger Report, Transaction Docs, Statement Of Account (sub-tabs Transaction and Aging, each with SEARCH, Export to PDF and Preview). The Subledger Report tab is the one tab that reads the journal line’s supplier, fixed when the document posted; every other row and tab here reads the supplier the document names today. The two disagree whenever a posted document’s supplier was changed without its journal following — an edit through the API, or a duplicate supplier tidied by hand before the merge tool existed. A Merge re-points the journals with everything else; a goods receipt’s supplier changed with Update Entity rewrites document, lines, journal and cash book lines together; anything else needs the journal re-posted from Missing Journal after the change.
Historical Transaction Aging Analysis ReportLine-level aging as at the end of the chosen month, read from the historical-ageing snapshot; grouped by branch, company and supplier. Click a row for View Document.
Historical Creditor ReportOne balance per supplier as at the end of the chosen month, six calendar-month columns plus 6 Month+. Click a row for Transaction Docs.
AP Transaction ReportAll AP movements in a date range, grouped by supplier, with Debit, Credit, Contra and a running Balance (opening balance before the start date, then each line).
Payment Details with Purchase InvoiceEach settling document and the purchase invoices it settled (settlement amount, outstanding, invoice date and amount). The settling documents are finalised payment vouchers and purchase debit notes: a debit note contra’d against an invoice is listed here as if it were a payment, so do not read the report’s total as cash paid.
Purchase Invoice with Settlement DetailsEach purchase invoice and its settlement lines (type, document, date, amount, reference).

View Outstanding Document (from Outstanding Document Report) has eight tabs in the order set under Settings → Default Selection → Details Tab Ordering: Details, Account (entity, bill-to, ship-to), Line Items (drill to View Item), Settlement (drill to View Settlement), Contra, Delivery Details, Department, Doc Link (Copied From / Copied To). The header PRINT button prints the document with the printable format registered for that document type (the one flagged default, otherwise the most recently updated; if none exists nothing is printed). The Contra tab lists existing contras, shows Total Contra, Doc Open Amount and Doc ARAP Balance, and offers a + button (only while the balance is not zero) that opens Contra Select Document — see Lifecycle and effects.

The Settings menu (group System Configuration) has Field Settings, Default Selection, Printable Format Settings and Aging Period Settings; the settings route also reaches the shared Webhook, Client Side Permission, Permission Wizard, Permission Set, User/Team/Role Permission and Release Notes screens. Personalization has one item, Default Selection.

All column and row-grouping choices are the standard AG Grid ones (columns panel, Drag here to set row groups, export from the status bar). The keyword box requires at least three characters; the two payment/settlement reports do not support keyword search at all (advanced search only).

Configuration

Before you can use it

  • Supplier documents must be FINAL. Every report in this applet reads only finalised, active documents. Finalise purchase invoices, GRN stock-ins, debit/credit notes and returns in their own applets first.
  • Suppliers need an AP type. Rows are restricted to entities whose default AR/AP type, or whose company link, is AP_TRADE, AP_OTHER, AP_MERCHANT or AP_EMPLOYEE. Set it in the Entity Applet or on the company link.
  • Companies and branches come from the Organisation Applet. Two reports require a choice before searching: AP Transaction Report and Payment Details with Purchase Invoice require Company; Purchase Invoice with Settlement Details requires Branch.
  • Server-side read permissions for each report (see Feature visibility / permissions). For users who are not tenant admin or owner, the company dropdowns and the default company scope are limited to the companies targeted by the report’s READ permission, so assign the permission with company targets in Settings → Permission Set / User Permission.
  • A .jrxml printable format of type STATEMENT_OF_ACCOUNT_TRANSACTION and/or STATEMENT_OF_ACCOUNT_AGING, flagged Default, before anyone uses Export to PDF / Preview on a statement (below).
  • An aging period (optional) if you want day-range buckets instead of calendar months (below).

Applet settings

Where settings live: this applet has its own small Field Settings screen, its own Default Selection screen, the shared Aging Period module, and a Printable Format Settings screen that also writes two settings keys. All of them are stored together as this applet’s settings, and a save merges the keys you save with the keys already stored, so saving one screen never wipes another. The Personalization → Default Selection screen renders but does not persist anything (below).

Who can change them: anyone who can open the applet’s Settings menu. There are no client-side permission definitions for this applet, so the menu is not hidden per role; if the server refuses a save for lack of permission, the screen shows no error.

Settings → Field Settings (SAVE sends the whole form)

SettingKeyWhat it controlsDefaultEffect when changed
Aging Period Type (MONTH (DEFAULT) / DAY)AGING_PERIOD_TYPEHow bucket columns are built on Outstanding Document Report, Aging Report and Historical Transaction Aging Analysis Report. MONTH: one column per calendar month counting back from the report date (six, or the number of months of the selected MONTH aging period) plus 6M+. DAY: one column per range of the selected DAY aging period (0-30 Days, 31-60 Days, …) plus >N Days. The Aging Summary tiles follow the same choice.Control starts empty; anything other than DAY is treated as month buckets.Takes effect on the next search. Note that ticking a period under Aging Period Settings overwrites this key with that period’s type (see below). DAY with no DAY aging period selected produces no bucket columns at all and a summary that only fills the >120 fallback. In DAY mode the two reports put different amounts in the day columns — see Which amount lands in a bucket under Lifecycle and effects.
Document Types to Exclude → Document Type (multi-select of INTERNAL_SALES_INVOICE, INTERNAL_SALES_RETURN, INTERNAL_RECEIPT_VOUCHER, INTERNAL_PURCHASE_GOODS_RECEIVED_NOTE, INTERNAL_PURCHASE_GRN_STOCK_IN)CREDITOR_EXCLUDE_SERVER_DOC_TYPESApplied to six of the eight reports (Outstanding Document, Aging, Statement of Account, Historical Transaction Aging Analysis, Historical Creditor, AP Transaction), the statement tabs and the transaction-docs drill-down. Payment Details with Purchase Invoice and Purchase Invoice with Settlement Details do not send it, so those two still list the excluded types.None.Rows of those document types disappear from those six reports and from statements immediately. Typical use: exclude INTERNAL_PURCHASE_GRN_STOCK_IN once GRN stock-ins are always converted to purchase invoices, so a bill is not listed twice.
External Documents → Hide External Quotation / Order / Delivery Order / Invoice / Others (five toggles)HIDE_EXTERNAL_QUOTATION, HIDE_EXTERNAL_ORDER, HIDE_EXTERNAL_DELIVERY_ORDER, HIDE_EXTERNAL_INVOICE, HIDE_EXTERNAL_OTHERSVisibility of the external reference columns (Quotation, Order, Delivery Order No., Invoice Number, Others, and their dates) on Outstanding Document, Aging, Historical Transaction Aging Analysis, AP Transaction and the two payment/settlement reports.true (hidden) in the form; a key that has never been saved also counts as hidden.A column appears only when its key is stored as false, so on a fresh tenant you must open Field Settings, switch the toggle off and SAVE once. The matching External … Date range filters are always present in advanced search regardless of the toggle.
Misc → Enable Portrait - Historical Transaction Aging Analysis ReportENABLE_PORTRAIT_HISTORICAL_TRANSACTION_AGING_ANALYSIS_REPORTPage orientation of the print/export of that one report.Off → landscape.On → portrait.

Settings → Default Selection

SettingKeyWhat it controlsDefaultEffect when changed
Default BranchDEFAULT_BRANCHSaved, but pre-selects nothing in this applet. The Branch and Cashbook filters look only for a personal default branch, and the personal Default Selection screen of this applet saves nothing (below), so every report opens with the Branch filter empty.Empty.No visible effect. Picking a branch copies the branch’s main location into Default Location, which has no effect either. If your team always works one branch, pick it in the filter and keep the browser tab open.
Default LocationDEFAULT_LOCATIONStored for the shared location dropdown.Empty.No effect in this applet — none of the eight reports has a location filter.
Details Tab Ordering (drag-and-drop list)OUTSTANDING_DOCUMENT_REPORT_DETAILS_TAB_ORDEROrder of the eight tabs on View Outstanding Document.Details, Account, Line Items, Settlement, Contra, Delivery Details, Department, Doc Link.Saved order is applied to every user; tabs added in later versions are appended at the end.

Settings → Aging Period Settings

ActionKeys writtenWhat it controlsDefaultEffect when changed
Create / edit a period: Name, Type DAY or MONTH; MONTH asks Specify Number of Month; DAY has a line table of Start / End day ranges (overlapping ranges are refused with “The new period range overlaps with an existing range”).noneDefines the buckets. A period is one record for the whole tenant, not this applet’s own: the same list appears in the Debtor Report and in any other report that offers this screen, so changing a period’s ranges here changes every report that has it ticked as its default. Make a new period rather than editing one another team relies on. A MONTH period saved with Specify Number of Month left empty is accepted, and ages in six months.No periods.Nothing until a period is selected.
Tick the Default Selection checkbox on a row in the listingAGING_PERIOD_HDR_GUID, AGING_PERIOD_TYPE (set to the row’s type)Which period the three aging listings load their ranges / month count from. Unticking writes both keys as null.None.Immediate. Because it also rewrites AGING_PERIOD_TYPE, the type shown under Field Settings changes with it; choose the period first and the type second if they must differ.

Settings → Printable Format Settings (applet-local; .jrxml only — ADD / SAVE stay disabled until a .jrxml file is attached)

SettingKeyWhat it controlsDefaultEffect when changed
Type STATEMENT_OF_ACCOUNT_TRANSACTION + Default tickedPRINTABLE_STATEMENT_OF_ACCOUNT_TRANSACTION (format GUID)The template used by Export to PDF / Preview on the Statement Of Account → Transaction tab.Empty → the buttons show “The default print preferences have not been configured”.Deleting the default format clears the key again.
Type STATEMENT_OF_ACCOUNT_AGING + Default tickedPRINTABLE_STATEMENT_OF_ACCOUNT_AGINGSame for the Aging tab.Empty → same message.Same.

The listing shows Format Code, Format Name, File Name, File Size, Uploaded Date, Uploaded By; edit offers download and delete (delete asks for a second click within three seconds).

Personalization → Default Selection — renders User Default Settings (Default Branch, Default Location, “This will override Applet Default Settings”) but the screen neither loads the stored values nor saves anything. Nothing is persisted; per-user branch defaults are not available in this applet.

Keys read at runtime that have no settings control in this applet (no screen here sets the first two; the third is written by the listings’ own layout toggle):

  • ENABLE_BRANCH_FILTER_PERMISSION — on Historical Transaction Aging Analysis Report switches the Branch filter from the company-permission-filtered list (the default) to the plain branch list. The Outstanding Document Report reads it too, with no visible change (its Branch filter is already the plain list). On the Aging Report, which has no Branch filter of its own, it adds a Branch filter to the search panel — but the report never sends that choice, so the Aging Report is not narrowed by branch whatever you pick there. To see one branch’s aging, use the Outstanding Document Report with its Branch filter and the same bucket settings.
  • SHOW_DOCUMENTS_WITH_ZERO_ARAP_BAL — in Contra Select Document, include documents whose balance is already zero.
  • DEFAULT_TOGGLE_COLUMN (personal settings, written automatically) — remembers the single/double column layout per user.

Document behaviour settings

Not applicable — this is a report applet; the only write action (contra) has no settings.

Feature visibility / permissions

No client-side permission definitions exist for this applet, so nothing in the menu or on the screens is hidden per role. Access is enforced by the server per report, against these permissions: API_TNT_DM_ERP_ENTITY_AR_AP_REPORT_CREDITOR_OUTSTANDING_DOCUMENT_READ, …_CREDITOR_OUTSTANDING_ENTITY_READ, …_CREDITOR_OUTSTANDING_AGING_READ, …_DEBTOR_OUTSTANDING_ENTITY_READ, API_TNT_DM_ERP_CREDITOR_TRANSATION_HISTORY_REPORT_READ, API_TNT_DM_ERP_PURCHASE_INVOICE_SETTLEMENT_DETAIL_REPORT_READ, API_TNT_DM_ERP_PAYMENT_DETAIL_PURCHASE_INVOICE_REPORT_READ, API_TNT_DM_ERP_ARAP_TRANSACTION_READ, TNT_TENANT_ADMIN, TNT_TENANT_OWNER.

ReportBackend permission checked (READ, or the matching ADMIN/OWNER)Company scope in the UI
Outstanding Document ReportAPI_TNT_DM_ERP_ENTITY_AR_AP_REPORT_OUTSTANDING_DOCUMENT_READtargets of …_CREDITOR_OUTSTANDING_DOCUMENT_READ
Aging ReportAPI_TNT_DM_ERP_ENTITY_AR_AP_REPORT_OUTSTANDING_AGING_READtargets of …_CREDITOR_OUTSTANDING_AGING_READ
Statement of Account (listing)API_TNT_DM_ERP_ENTITY_AR_AP_REPORT_DEBTOR_OUTSTANDING_ENTITY_READ — note the debtor nametargets of the same debtor-named permission
Statement tabs, Export/PreviewAPI_TNT_DM_ERP_STATEMENT_OF_ACCOUNT_READ—
Historical Transaction Aging Analysis ReportAPI_TNT_DM_ERP_CREDITOR_TRANSATION_HISTORY_REPORT_READtargets of the same
Historical Creditor ReportAPI_TNT_DM_ERP_ENTITY_AR_AP_HISTORICAL_DEBTOR_READ — note the debtor nametargets of …_DEBTOR_OUTSTANDING_ENTITY_READ
AP Transaction ReportAPI_TNT_DM_ERP_ARAP_TRANSACTION_READtargets of the same
Payment Details with Purchase InvoiceAPI_TNT_DM_ERP_PAYMENT_DETAIL_PURCHASE_INVOICE_REPORT_READtargets of the same
Purchase Invoice with Settlement DetailsAPI_TNT_DM_ERP_PURCHASE_INVOICE_SETTLEMENT_DETAIL_REPORT_READtargets of the same
Contra (create)API_TNT_DM_ERP_FI_GENERIC_DOC_ARAP_CONTRA_UPDATE—

“Company scope”: a user with TNT_TENANT_ADMIN or TNT_TENANT_OWNER sees all companies; anyone else gets the company dropdown, and the implicit company scope applied when no company is chosen, limited to the companies targeted by the permission named in the last column.

Fields

There is no create/edit form; the fields are the advanced-search filters of each report, the two statement tabs and the contra picker.

Report filters (✓ = present, R = required before search)

FilterOutstanding DocumentAgingStatement of AccountHistorical Txn AgingHistorical CreditorAP TransactionPayment Details w/ PIPI w/ SettlementNotes
Entity (supplier, multi)✓✓✓✓✓✓✓✓Supplier entities only.
Supplier Category (multi)✓✓✓✓✓✓––
Company (multi)✓✓✓✓✓R (single)R (single)–Missing company → “Please select company.” on the two single-company reports.
Branch (multi, filtered by company)✓–✓✓–✓✓RMissing branch → “Please select branch.”. Historical Txn Aging uses the company-permission-filtered list unless ENABLE_BRANCH_FILTER_PERMISSION is set.
Currency (single)✓–✓✓––––MYR is treated as “no filter”; any other currency shows document-currency amounts instead of base-currency amounts.
Cashbook (single)––––––✓–
As Of Date (month picker)–––RR–––Month end is the cut-off. The Aging Report and the Subledger Report tab of Entity Report Transactions render each document’s date in the server’s own clock (UTC): a supplier invoice keyed at midnight Malaysia on the 1st shows the 30th there and the 1st on the statement, which converts to Malaysia time.
Transaction Date (from/to)–––––✓✓✓Defaults to today–today; empty ends fall back to 2000-01-01 / 2099-12-31.
Outstanding Only (checkbox)–✓ (on, informational)––✓ (on)–––Historical Creditor: suppliers whose balance sums to zero are dropped.
Sort By–––––✓ (DATE_TXN)––
Show purchase invoice without settlement details–––––––✓ (off)Off = only invoices with settlement lines.
External Quotation / Order / Delivery Order / Invoice / Others Date (from/to, each with a tick box)✓✓–✓–✓✓✓Applied only when the tick box is on.
Keyword (search box)✓✓✓✓✓✓––Minimum three characters. The two payment/settlement reports reject any keyword.

Statement Of Account tabs (inside Entity Report Transactions)

TabFieldRequiredNotes
TransactionMonth From, Month ToYesOpening balance before Month From, one line per document, closing balance; Export to PDF / Preview need the default STATEMENT_OF_ACCOUNT_TRANSACTION format.
AgingMonth ToYesMonth From is not used (the aging always counts from the earliest document); Export to PDF / Preview need the default STATEMENT_OF_ACCOUNT_AGING format.

Contra Select Document (opened from the Contra tab of View Outstanding Document)

FieldMeaningRequiredNotes / validation
Doc No, Reference, External Doc No (text); Document Type (select); Created Date, Transaction Date (ranges with tick boxes)Filters for the candidate documents of the same supplier and company.NoCandidates are documents whose balance has the opposite sign to the open document; zero-balance documents only when SHOW_DOCUMENTS_WITH_ZERO_ARAP_BAL is set.
Row selection + Amount Contra (editable per row)Amount to offset against the open document.YesSelecting a row proposes the smaller of the row’s balance and the remaining open amount; ADD is disabled while nothing is selected, while the total contra is 0, or while the total exceeds the open amount (the total turns red).

Lifecycle and effects

What the reports read. Only finalised, active documents of AP entity types (the Outstanding Document Report additionally requires the entity to be flagged as a supplier), after the excluded document types are removed. A document’s balance is its open amount plus its contras, as stored on the document itself; when no currency filter is set, foreign-currency documents are converted to base currency at the document’s own exchange rate. “As of today” reports (Outstanding Document, Aging, Statement of Account, AP Transaction) read the live documents. The two historical reports read a historical-ageing snapshot up to the chosen month end. That snapshot is not maintained as documents are finalised: a monthly clock in the Scheduler writes it, at 01:00 on the 1st, from the balances at that moment, so a document finalised this month has no row until next month’s run. That clock is set per tenant, and yours may not have it. It is installed as a default only on tenants created after it joined the defaults (late August 2025), and it can be switched off. Open the Scheduler and look for the monthly historical-aging clock (MONTHLY_GENERIC_DOC_HISTORICAL_AGING_PROCESSOR): if it is missing or not Active, no new month-end is ever photographed, and the two historical reports come back empty for those months — or show only a back-dated contra’s correction, never a full month. Ask support to install it, then let it run once on the 1st. Two things correct an existing month afterwards — a back-dated contra, and, only where your tenant subscribes to the back-dated aging step, finalising a document dated in a month already photographed. See The aging shows an invoice already paid.

The statement and the “today” reports can disagree about a contra. The statement’s opening balance and its aging count a contra on its contra date. The Outstanding Document and Aging reports show the document’s balance as it stands today, whatever the contra date. So a contra dated into an earlier month moves the statement’s opening balance for that month, while the two “today” reports simply show the reduced balance.

Which amount lands in a bucket. In month mode both aging listings, and the Aging Summary tiles, put each document’s balance (open amount plus contras, converted to base currency) into its month column. In day mode they differ. The Outstanding Document Report puts the balance into the day-range columns. The Aging Report puts the document’s original open amount into its day-range columns — before any contra — while its Balance column uses the balance. On both reports a foreign-currency document’s day-range amount is left in the document’s own currency rather than converted, so in day mode with foreign-currency suppliers use the Currency filter or month mode. A partly settled bill therefore shows its full amount in the Aging Report’s day columns and its remaining balance on the Outstanding Document Report. When you reconcile to the ledger in day mode, total the Balance column (or use the Outstanding Document Report), not the day columns of the Aging Report; month mode does not have this difference.

What this applet changes. The eight reports only read. The one write is the contra (below), and a contra changes the balance and contra total of both documents and, for a pair at different exchange rates, posts an exchange-difference journal. No document’s status or posting status changes.

Contra — the one write path. View Outstanding Document → Contra → + → Contra Select Document → ADD creates a contra between the open document and each selected document.

ItemValue
Server document typenone — a contra is its own record, written once for each side of the pair and linked together. Its record status is ACTIVE. A separate journal-posting flag on the same record says POSTED only when an exchange-difference journal was written for it. The two are different things: an ACTIVE contra may have no journal.
Amount signumThe Amount Contra takes the sign of the selected document’s balance (negative when that balance is negative), rounded to two decimals; the server re-rounds to two decimals and silently drops zero amounts.
Quantity signumnone.
Dr/Cr equationnone, except an exchange-difference journal when a foreign-currency document is settled at a different exchange rate from the document it is contra’d with. The difference is the contra amount at one document’s rate less the same amount at the other’s. It posts on the company’s primary ledger, dated with the document’s transaction date, from the company’s default GL links: the gain to the FOREX_GAIN account (credit) or the loss to FOREX_LOSS (debit), balanced against the supplier control account (CREDITOR, or DEBTOR where the entity is a customer type). One journal is written for each side of the pair.
GL precedencethe company’s default GL links only; nothing on the contra or the supplier overrides them. Map FOREX_GAIN, FOREX_LOSS and CREDITOR before anyone contras foreign-currency bills — see the next row and Troubleshooting.
Stock processornone.
What it updatesOn both documents, immediately in the same request — not through a queue: the contra total becomes the sum of active contras and the balance becomes open amount plus contra total. The contra rows are saved before this refresh, so if the refresh fails the contra is kept and the screen reports the failure — reopen the Contra tab to see what was saved. Then the exchange-difference journal, if any, is written; after it, a contra dated in the past rebuilds the month-end aging snapshots behind it, so the historical reports for those months are corrected. A contra can never pre-date its documents: if you date it before the later of the two documents, the server moves it to that document’s date first. There is no queued step to wait for, and scheduling the contra balance-recalculation processor in the Scheduler applet does nothing for this — see the knock-off page.
Backend validationThe server checks only that both documents exist and an amount is given. Keeping a contra within the open balance is the job of the screen’s ADD button, which this applet does for you; an integration posting contras through the API must check the balance itself.
When the journal fails to buildThe contra rows and both documents’ balances are saved first; the journal comes after. If the company’s primary ledger or a needed default GL link is missing, the journal step fails, the screen shows “Documents contra unsuccessfully” — and the contra exists anyway, with both balances already reduced, no exchange-difference journal and, for a back-dated contra, the month-end snapshots not rebuilt. Do not press ADD again. Reopen the document’s Contra tab: if the new rows are there, map the missing default GL codes. The contra does not retry its own journal, and this applet has no button for it; the platform has a separate gain/loss posting step that posts the journal for a document’s contras whose journal-posting flag is not yet POSTED — ask support to run it once the codes are mapped.
PermissionAPI_TNT_DM_ERP_FI_GENERIC_DOC_ARAP_CONTRA_UPDATE (403 → the applet shows “Documents contra unsuccessfully”).
VOID / deleteNot available in this applet; the Contra tab lists rows with their status but has no delete action.

Related applets

Troubleshooting

SymptomCauseFix
“Search keyword must more than 2 characters.”Keyword shorter than three characters.Type at least three characters or use the filters.
“Fuzzy search is not supported. Please use Advanced Search”Keyword typed on Payment Details with Purchase Invoice or Purchase Invoice with Settlement Details.Those two reports accept filters only.
“Please select company.” / “Please select branch.”Company (AP Transaction, Payment Details) or Branch (Purchase Invoice with Settlement) left empty.Choose one; the search is not sent otherwise.
Company dropdown is empty for a user on the historical reports (reported by a customer in early 2026).The user is not tenant admin/owner and the report’s READ permission was granted without company targets.Grant the READ permission for that report with the companies as targets (Permission Set / User Permission). Fixed in the applet by using company-permission dropdowns (March 2026).
Statement of Account or Historical Creditor Report returns not authorised although the user has every CREDITOR_* permission.Those two listings check the debtor-named permissions.Add API_TNT_DM_ERP_ENTITY_AR_AP_REPORT_DEBTOR_OUTSTANDING_ENTITY_READ and API_TNT_DM_ERP_ENTITY_AR_AP_HISTORICAL_DEBTOR_READ to the AP role.
A bill appears twice: once as a GRN stock-in and once as the purchase invoice it was converted to (customer report, April 2026).Both documents are FINAL and both carry an AP balance.Add INTERNAL_PURCHASE_GRN_STOCK_IN under Field Settings → Document Types to Exclude (the option was added for exactly this case), or void the superseded document.
Aging Report / Outstanding Document Report shows no bucket columns.AGING_PERIOD_TYPE is DAY but no DAY aging period is ticked as default (or the period has no lines).Create a DAY period with ranges under Aging Period Settings and tick it, or set the type back to MONTH.
Aging Period Type keeps changing back after saving Field Settings.Ticking a period in Aging Period Settings rewrites AGING_PERIOD_TYPE with the period’s type.Select the period first, then set the type in Field Settings.
A supplier invoice keyed on the 1st shows the 30th on the Aging Report or on the Subledger Report tab, and the 1st on the statement.Those two grids render the stored date in the server’s clock (UTC), not Malaysia time, so a document dated before 08:00 Malaysia — one keyed at midnight by an import or the API — moves back a day there. The statement converts to Malaysia time.The document itself is dated correctly; read the date off the statement or the document. Nothing to fix on the record.
External reference columns (Quotation, Order, Delivery Order, Invoice, Others) never show, even though the toggles look “off”.The keys have never been saved; an unsaved key is treated as hidden.Open Field Settings, switch the toggle off and click SAVE once.
“The default print preferences have not been configured” on Export to PDF / Preview.No .jrxml format of the matching type is flagged Default.Settings → Printable Format Settings: add or edit the format with the right Type and tick Default.
Neither Default Selection pre-selects a branch.The personal screen saves nothing, and the filters read only a personal default, so the applet-wide Default Branch has no effect either (see Configuration).Choose the branch in the filter each time.
Creditor total does not agree with the Balance Sheet trade-creditor line (recurring customer question).The reports show document balances of FINAL supplier documents after excluded types, contras and forex conversion at the document rate; the Balance Sheet shows GL journal balances, which include manual journals and documents posted to other creditor accounts.Compare AP Transaction Report for the period with the GL account in Ledger And Journal; check Document Types to Exclude and any non-FINAL documents.
Foreign-currency rows showed the wrong currency or a doubled amount on Transaction Docs / Historical Transaction Aging Analysis (customer reports, July 2026).Base/document currency handling in the listings.Fixed in the applet in July 2026; if it recurs, apply the Currency filter to see document-currency amounts.
A purchase invoice is missing from a supplier’s statement (customer report, May 2026).The statement’s Month From / Month To window did not include the document, or the document was not FINAL.Widen the months; confirm the document is FINAL. The month-window handling was corrected in May 2026.
“Documents contra unsuccessfully”Either the server refused the contra — most often a missing API_TNT_DM_ERP_FI_GENERIC_DOC_ARAP_CONTRA_UPDATE permission, and then nothing was saved — or, for documents at different exchange rates, the contra was saved and the exchange-difference journal after it failed because the company’s primary ledger or its FOREX_GAIN / FOREX_LOSS / CREDITOR default GL link is missing.Reopen the Contra tab before retrying. No new rows: grant the permission and retry. New rows present: do not retry (you would contra twice); map the default GL codes, then ask support to post the missing exchange-difference journal.
The Aging Report’s day columns do not add up to its Balance, or disagree with the Outstanding Document Report.In day mode the Aging Report fills the day-range columns with each document’s original open amount (before contras, unconverted), not its balance.Reconcile on the Balance column or on the Outstanding Document Report; or use month mode, where both reports bucket the balance.
The historical reports show nothing for recent month-ends.The monthly historical-aging clock is not installed or not Active on your tenant, so those months were never photographed.Check the Scheduler; ask support to install the clock. Months that were missed are not back-filled by the clock itself.

Related documentation

Last updated on