CASH COLLECTION CONTROL

Turn overdue invoices into collected cash, not spreadsheet guesswork

Enfinity ERP tracks every customer and supplier balance from invoice to receipt, applies credit limits before exposure grows, ages the book automatically and hands your credit controller a ranked chase list — so collection is a daily habit, not a month-end scramble.

Most SMB finance teams discover a customer is over their credit limit only after the next order ships, and they find out an invoice is 90 days overdue only when a bank balance looks thin. Statements go out late or not at all, cash received sits unmatched against no invoice in particular, and nobody can say — without opening three spreadsheets — exactly who owes what, since when, and who is supposed to chase it next.

How it works
  1. Set the limit

    A credit limit is set per customer, checked automatically at order and invoice entry, so exposure is capped before it happens rather than discovered afterwards.

  2. Invoice and match

    Sales invoices post and feed a settlement matching engine that ties every receipt and payment back to the specific document it clears.

  3. Age the book

    Open balances for customers and suppliers age automatically into configurable buckets, refreshed continuously rather than assembled by hand at month end.

  4. Escalate and chase

    Overdue balances move through staged dunning on a schedule, statements go out by email, and the AI-ranked chase list tells the credit controller who to call first.

  5. Receive and clear

    Receipts, advances and credit notes apply against open invoices with an audited unpost path, and anything received but not yet matched is surfaced, not lost.

  6. Close and report

    Ageing and unapplied cash feed month-end close readiness, and dunning, ageing and collection performance are visible through report builder, analytics and saved views.

Capabilities

Customer receipts with an audited unpost

Receipts are recorded against the specific invoices they clear, not just dumped into a balance. If a receipt was entered wrong, it can be unposted and amended through an audited path rather than silently deleted and re-keyed.

Settlement matching engine

A ledger matching engine underneath receivables and payables ties every receipt and payment back to its originating document, so a customer's or supplier's position is always the sum of matched, real transactions rather than a running total nobody can trace.

Party ageing with configurable buckets

Customer and supplier balances age into buckets you define — 30/60/90 or a scheme that fits your terms — with a standing ageing report that refreshes continuously instead of being rebuilt by hand each month.

Credit limits enforced at entry

Credit control applies at order and invoice entry for both customers and suppliers, so a limit breach is caught before the document is created, not discovered when it is already too late to act.

Staged dunning on a schedule

Overdue balances escalate through defined dunning stages, and a scheduled communication sweep runs that escalation automatically so no overdue customer sits forgotten simply because nobody remembered to look.

Emailed customer and supplier statements

Statements go out by email for both sides of the ledger, so a customer or supplier can reconcile their position with you without a manual export and a phone call every time.

Advances, credit notes and write-offs

Customer and supplier advances apply against later documents, customer credit notes and supplier debit notes correct amounts cleanly, and a balance that genuinely will not be collected is written off — recorded with a reason, never simply deleted.

Due bills, cash-flow schedule and payment proposals

A payables cash-flow schedule shows what falls due and when, and a payment proposal assembles which bills to pay next — so cash out is planned rather than reactive.

Unapplied cash report

Money received but not yet matched to an invoice is surfaced in a standing report, so it stays visible and actionable instead of quietly sitting unresolved in a suspense balance.

Opening balances and direct debit

Party opening balances load cleanly at go-live so history is not lost switching systems, and direct debit collection lets recurring receipts pull automatically rather than waiting on a manual entry every cycle.

AI. You decide.

AI-assisted collection prioritisation

Every open receivable and its days overdue are examined and turned into a ranked chase list with a stated reason per customer, so the credit controller starts the day knowing who matters most instead of scrolling an ageing report top to bottom.

The ranking is computed deterministically from ageing data first; the AI model only adds the explanatory reason. The feature works with no AI provider configured, every ranking is logged to an advisory ledger with an audit event, and the credit controller decides who to actually contact.

AI-assisted collection reminder draft

For one customer's overdue invoices, a subject line and message body are drafted for the credit clerk to review, edit and send through their own channel — removing the blank-page problem of writing a reminder from scratch every time.

Nothing is sent, queued or dispatched by the service itself — it only produces a draft. The draft works with no AI provider configured (falling back to a template), every draft is logged to an advisory ledger with an audit event, and the credit clerk reviews and sends it, or does not, from their own channel.

AI-assisted ageing risk advisory

Looking at a party's already-computed ageing buckets, the riskiest positions are flagged with a plain-language reason, giving finance a shortlist of accounts that deserve a closer look rather than an undifferentiated wall of numbers.

The flag is computed from the deterministic ageing report first; the model only adds the reason text. It works with no AI provider configured, every advisory is logged to an advisory ledger with an audit event, and a person decides what action, if any, follows.

Deterministic ageing insight radar

A radar view of ageing insight is computed without any model call at all, giving a always-on, provider-independent read on the state of the book that never depends on AI being configured or available.

This insight is fully deterministic and does not call an AI model at all, so it works identically with or without a provider configured; it is still logged to an advisory ledger with an audit event, and a person acts on it.

Ageing feeds month-end close readiness

Receivable and payable ageing rolls up into a month-end close readiness signal, so finance knows in advance whether the receivables position is clean enough to close on schedule instead of finding out on closing day.

The readiness signal is computed deterministically from posted ageing data; any narrative the model adds is explanatory only. It works with no AI provider configured, is logged to an advisory ledger with an audit event, and the controller decides whether to actually close the period.

Deterministic first, model second, always ledgered

Across every AI-assisted feature in receivables, the same base service applies: compute the real answer without a model, let the model add explanation on top, and never let AI absence break the feature — a single insights view shows every advisory issued.

Every advisory across this module is computed deterministically first, the model adds explanation only, the feature degrades gracefully with no AI provider configured, each advisory is logged to an advisory ledger with an audit event, and a named finance role reviews and decides before any action follows.
Region-native
Saudi ArabiaUAE

Withholding tax certificates on supplier payments

A rate table by supplier category drives withholding, and a certificate is issued against an already-booked payment recording gross, withheld and net amounts. The certificate proves tax was withheld; it does not itself reduce the cash you remit — that deduction is applied when the payment is booked.

Saudi ArabiaUAEBahrainOmanKuwaitQatar

Post-dated cheque register

Post-dated cheques received from customers and issued to suppliers are tracked with maturity alerts and an ageing schedule — the settlement instrument much regional trade still runs on. This is a simple register and status view, not custody tracking, deposit batching or a resubmission workflow, in keeping with an SMB-first design.

Multi-currency receivables and payables

Balances in a foreign currency resolve exchange rates automatically and revalue as rates move, so a receivable booked in one currency and collected against another still reconciles cleanly rather than leaving an unexplained gain or loss.

Bilingual statements with right-to-left rendering

Customer and supplier names carry an Arabic secondary field, and statements and reminders render correctly right-to-left, so a bilingual customer receives a document they can actually read in their own language, not a transliterated approximation.

Editions
SmallStandardProfessional
Core receipts, ageing and statementsIncludedIncluded
Works with
  • Enfinity CRM

    A CRM deal marked won becomes the customer record that receivables invoices, ages and chases through the same collection workflow — no re-keying a customer that already exists in CRM.

  • Enfinity Billing

    Recurring subscription invoices generated in Billing land in the same receivables ageing, credit-limit and dunning pipeline as one-off sales invoices, so a subscription customer is chased with the same discipline as any other.

  • Enfinity Commerce

    Online orders that convert to invoiced customers flow straight into the same credit-control and receipt-matching pipeline, so a webstore sale is collected and aged exactly like a counter or B2B sale.

The Enfinity platform
  • Company dimension & multi-entity

    Receivables, credit limits and ageing are scoped per legal entity so a group with several companies sees exposure and collection performance company by company, not blended into one number.

  • Workflow & approvals

    Sales invoice approval before posting and credit-limit overrides route through the shared workflow engine, so exceptions get a named approver rather than a silent bypass.

  • Notifications & WhatsApp

    Statement and reminder delivery, including a WhatsApp message on invoice issue, runs through the platform's shared notification channels — a human still decides the content of any dunning escalation before it goes out.

FAQ

We currently track receivables in Excel — what actually changes?

Ageing, credit limits and dunning stop being manual exports and become live, always-current views tied to real invoices and receipts, with an audit trail Excel cannot give you.

We're moving off QuickBooks or Zoho Books — is customer history preserved?

Yes — party opening balances load at go-live so prior invoice and payment history is not lost, and statements continue from where the old system left off.

Is the AI collection assistant mandatory?

No. Every AI feature here is opt-in and degrades to its deterministic result with no AI provider configured — ageing, credit limits and dunning all work fully without AI turned on.

Can our customers see their own statement without calling us?

Yes — a customer portal statement shows their own position, and a supplier portal shows statement and payment status read-only, with isolation so one party never sees another's data.

How do post-dated cheques work in the GCC context?

Post-dated cheques received and issued are registered with maturity alerts and an ageing schedule. This is a simple status register by design — no custody tracking, deposit batches or resubmission workflow.

Does this module handle Arabic customer names and RTL statements?

Yes — every party carries a bilingual name field, and statements and reminders render right-to-left correctly for Arabic-first customers.

How does receivables connect to Sales and Banking?

Sales invoices flow straight into ageing and credit control the moment they post, and every receipt or payment matched here posts to the ledger through the shared GL posting service — no double entry between modules.

What happens to money we receive but can't match to an invoice?

It appears on the standing unapplied cash report rather than sitting hidden in a suspense balance, so someone is always accountable for resolving it.