A AION Academy

Module · 7 min read

Accounts Receivable

Credit limits enforced at order, invoices generated from shipments, aging updated in real time, ZATCA Arabic invoices with QR codes.

Who uses this module

UserRoleHow they use it
AR ClerkPrimary userInvoice generation, receipts, cash application
CollectionsDaily userAging review, customer outreach, dispute handling
Credit ManagerApproverCredit limit overrides, new-customer approvals
Sales RepViewerCustomer balance check before taking orders
CFOViewerDSO trends, bad debt analysis

The business problem

AR is where revenue goes from “promised” to “actually in the bank” — or doesn’t. Common failures:

  • Credit limits exist but aren’t enforced. “We trust this customer” replaces real controls. Then the customer defaults and you discover they were 6× over their limit.
  • Invoices disconnect from shipments. Warehouse ships by paper pick list; AR invoices days later from memory. Quantities drift. Customer disputes follow.
  • Revenue recognition is ambiguous. Is it at shipment, at invoice, at customer acceptance? Different answers in different months. Cutoffs are a mess.
  • AR aging runs monthly. By the time a 90-day bucket shows up, it’s already 120. Collections start 60 days late.
  • Cash is applied by memory. “I think this 42,000 SAR wire was for the Panda order” — no document trail, no audit defense.
  • ZATCA/ETA non-compliance. Manual PDF invoices fail regulatory requirements. Fines follow.

Key features

Customer Master

  • Contact info, tax registration, billing + shipping addresses
  • Credit limit + terms — enforced at sales order entry
  • Price list assignment (per customer, per region, per channel)
  • Payment history and DSO per customer

Credit Management

  • Automatic credit check on SO — blocks orders over limit or with overdue invoices
  • Override workflow — credit manager approves with documented reason
  • Credit utilization alerts — triggered at 80% of limit
  • Overdue escalation — customer status moves through watchlist → hold → stop ship

Invoicing

  • Invoice generation from shipment — one click; items, quantities, lots inherited
  • ZATCA-compliant invoice — Arabic + English layout, QR code, cryptographic stamp
  • E-invoice XML export — UBL 2.1 format ready for authority submission
  • VAT calculation — automatic per invoice line, per customer tax treatment
  • Installment billing — for long projects or deferred revenue

Cash Application

  • Receipt entry — wire, check, card, cash; by customer or by reference
  • Auto-apply — if receipt references an invoice number, applies automatically
  • Manual cash application — when a lump sum covers multiple invoices
  • Partial payments — short pays, over pays, unapplied cash
  • Write-offs — with approval workflow and reason code

Collections

  • Aging report — updated in real time, by customer, by aging bucket
  • Collection priorities — worklist generated from aging + credit policy
  • Customer statement — one click, PDF or email, bilingual
  • Dunning letters — templated, auto-generated at escalation triggers
  • Dispute tracking — with resolution workflow

Customer Portal (Phase 2)

  • Customer self-service for statement, invoice, receipt history
  • Online payment integration

F&B scenario

Retail sale to Panda Retail Co. (Oasis Fresh’s largest Saudi customer). 2,000 bottles of Oasis mango juice at 8 SAR, 30-day terms.

  1. Sales rep enters the SO in AION. Credit check runs: Panda has 500,000 SAR limit, 320,000 SAR current AR, 180,000 SAR remaining — order is 16,000 SAR, passes.
  2. Warehouse picks from FIFO lot and ships. AION posts: DR COGS 4,000, CR FG Inventory 4,000 (using period average cost).
  3. AR invoice generated from shipment: 16,000 subtotal + 2,400 VAT = 18,400 SAR. AION posts: DR AR — Panda 18,400, CR Revenue 16,000, CR VAT Output 2,400.
  4. Invoice PDF generated (Arabic + English, QR code, bilingual layout). Emailed to Panda.
  5. 28 days later, Panda wires 18,400 SAR. AR clerk records the receipt, which auto-applies to the open invoice. AION posts: DR Bank 18,400, CR AR — Panda 18,400.

Panda’s AR is back to zero. Revenue recognized at shipment. DSO: 28 days. All automatic journal entries.

Integration with other modules

  • Sales — SOs drive AR invoices; credit check runs at SO save
  • Inventory — shipments post COGS via Inventory SLA
  • GL — revenue, AR, VAT posted via Receivables SLA
  • Tax — VAT output captured per invoice for return filing
  • Cash Management — receipts match against bank deposits

Reports out of the box

ReportWhat it shows
AR AgingCustomer balances by aging bucket
Customer StatementFull activity per customer
Collection WorklistRanked list for collector outreach
Revenue by CustomerTop customers by revenue, per period
DSO TrendDays Sales Outstanding over time
Bad Debt ReportWrite-offs and provisions
VAT Output ReportOutput tax liability per period
Customer Credit UtilizationWho’s close to limit

All bilingual, exportable, drillable.

Compliance

  • ZATCA (Saudi) — Phase 1 invoice generation with QR and Arabic layout today; Phase 2 API integration on roadmap
  • ETA (Egypt) — e-invoice XML generation; Phase 2 integration on roadmap
  • VAT returns — output VAT tracked and exportable
  • 6-year archive — all invoices retained per tax authority requirements
  • Audit trail — every invoice change logged

vs. alternatives

FeatureExcelOdooSAP B1AION
Credit check at SO
Invoice from shipment
Real-time aging
ZATCA Arabic invoice + QRAdd-onPartner✅ native
Auto cash applicationBasic
Arabic-native UIDependsPartialPartial

Where this module lives in the code

aion-erp/apps/api/src/modules/accounts-receivable/

Ready to see it live?

Log in with admin / Admin123 and try this module in the juice factory scenario, or reach out for a guided walkthrough.