AMA

Akar ERP Reference

Akar ERP

End-to-end ERP for Indonesian SMEs — accounting, inventory, manufacturing, payroll, and marketplace settlement on a single ledger.

Akar binds purchasing, sales, multi-warehouse inventory, manufacturing, payroll, fixed-asset depreciation, and marketplace accrual reconciliation into one double-entry general ledger. Built for businesses that have outgrown spreadsheets but don't need to license enterprise software.

Who it's for

In-house accountants, owner-operators who read their own financial statements, and warehouse managers who need live stock without re-entering data. Best fit for organizations of 10–500 staff that operate across multiple warehouses, sell through marketplaces, run their own production, or manage payroll under Indonesian tax rules.

Key features

8 features

Quick start

3 sections

Initial setup

One-time at tenant creation. After this, the daily modules carry the load.

  1. 01.

    1. Create divisions

    Master Data → General → Business Unit. One division = one branch, brand, or location. Cash, warehouses, and revenue all follow the division. Set a default division on cashier users.

  2. 02.

    2. Toggle modules in use

    Master Data → General → System. Enable only the modules you actually use (e.g. Manufacturing, Marketplace). Inactive modules are hidden from the sidebar and skipped by CI smoke checks.

  3. 03.

    3. Review Chart of Accounts

    Master Data → Finance → Account Codes. The CoA is seeded at tenant creation. System-locked accounts cannot be deleted — they're wired to specific modules.

  4. 04.

    4. Add customers and suppliers

    Master Data → General → Customers / Suppliers. Required before sales or purchase entries. Bulk import via XLSX is supported.

  5. 05.

    5. Set up cash accounts

    Each bank account or e-wallet gets its own cash CoA. For foreign currencies, set the currency on the CoA — revaluation triggers wire up automatically.

Daily flow

  1. 01.

    Record a sale

    Sales → Sale tab. Pick customer, items, qty, warehouse, division. Save. Stock drops via FIFO, AR rises, journal posts. Partial payment lands in the AR tab.

  2. 02.

    Record a purchase

    Purchasing → Purchase tab. Pick supplier, items, prices, destination warehouse. Stock rises as a new FIFO layer; AP rises; journal posts. Pay later via the Payment tab (lump sum supported).

  3. 03.

    Pay expenses

    Expense Journal. Pick the source cash account and an expense account (electricity, internet, etc.). Bulk import per month is supported.

  4. 04.

    Stock count

    Item Receiving → Count tab. Variance auto-journals to inventory loss. Negative variance = recovered stock — that's intentional.

Month-end close

  1. 01.

    1. Review financial statements

    Financial Reports → Balance Sheet + P&L. Verify no negative cash, AR/AP looks reasonable, and COGS reflects movement.

  2. 02.

    2. Run asset depreciation

    Fixed Assets → Run Monthly Depreciation. A cron handles this at the start of each month, but you can also run manually.

  3. 03.

    3. Marketplace accrual

    Marketplace → Accrual. Upload XLSX or sync via API → reconcile → finalize. Admin fees, shipping, returns all hit the mapped accounts.

  4. 04.

    4. Close the period

    Accounting → Close Period. After close, transactions in that month are read-only. The owner role can reopen the period if a correction is needed.

Full manual

15 modules

The reference below is a condensed, module-by-module walkthrough of Akar's core flows. For the full manual — every module, every field, every common mistake, with screenshots from the live UI — open the on-screen manual at /manual inside the app. It's organized as a daily handbook, not just an onboarding doc.

Open the full Akar Manual

Core concepts that thread through every module

Six concepts that recur across nearly every Akar module. Internalize these first — most of the rest of the system is mechanical once these click.

Tenant

A tenant is your company's workspace. Each tenant has its own CoA, warehouses, and data. You pick a tenant after login; one user can belong to several (e.g. an owner with multiple legal entities).

Common mistakes

  • Switching tenant doesn't sign you out — use the tenant dropdown in the header.
  • Master data isn't shared across tenants. Use bulk import if you need to duplicate setup.

Business Unit (Division)

/database/general/gen_division

Splits operations within one tenant — Retail, Wholesale, Online, Factory. Warehouse access is inherited from the user's division memberships. Every cash- or stock-touching transaction names the owning division.

Common mistakes

  • User not linked to any division → login works but they see no transactions at all.
  • Deleting a division that has transactions → blocked at trigger level; deactivate instead.

Warehouse & Shelving

/database/ops/ops_inv_gudang

Physical storage. A warehouse can hold many shelves once Shelving is toggled on for that warehouse. After Shelving is on, every transaction in that warehouse must name a shelf — switching state mid-flight is painful.

Common mistakes

  • Enabling Shelving on a warehouse with existing stock → legacy lots have no shelf assignment; plan it before opening.
  • Deleting a warehouse with stock → blocked; use Stock Transfer first.

Journal & Entry

Every financial movement lands in the journal table. Each transaction (sale, purchase, production, cash transfer, payroll) emits balanced debit and credit entries. Akar refuses unbalanced journals — DB triggers reject them.

Common mistakes

  • Trying to edit an existing journal entry → blocked; create a reversal entry via Journal Adjustment.
  • Using Journal Adjustment for a transaction that has its own dedicated module → the sub-ledger goes out of sync.

FIFO Inventory

Outbound cost follows inbound order: First In, First Out. Every purchase creates a new FIFO layer at the acquisition cost. On sale or consumption, the system pulls from the oldest layer first. There's no bypass — fifo_out is enforced at the database trigger.

Key fields

fifo_layer
Active layers per (item, warehouse). Holds qty, acquisition cost, and entry date.
fifo_out
Trigger fired on every stock-out. Allocates from the oldest layer; refuses to make stock negative.
fifo_transfer
Inter-warehouse trigger. Moves layers without changing acquisition cost.

Common mistakes

  • Negative stock from out-of-order entry (sell before buy) → blocked at trigger; backdate the purchase or fix the sequence.
  • Landing costs (freight, import duty) not recorded via Cost Allocation → COGS underreports, margin overstates.

Functional vs Monetary Currency (FC / MC)

/database/finance/currency

FC is the currency a transaction was struck in (USD on an import, IDR on a local sale). MC is the tenant's reporting currency, almost always IDR. FC↔MC conversion happens at exactly one place: Cash Transfer. FX gain/loss posts to P&L automatically.

Common mistakes

  • Paying an FC invoice from an IDR cash account directly → blocked; route through Cash Transfer first.
  • Changing the tenant's MC after transactions exist → not allowed; history is bound to the original MC.

Core transaction flow

These seven modules cover the bulk of daily Akar usage. They are listed in the natural order goods move: Purchase → Receive → Stock → Sell → Pay.

Purchasing

/jurnal-purchasing

Records supplier invoices. Each entry creates a payable to the supplier and Goods-in-Transit (for physical items). Payment can be immediate (Pay Now) or deferred to the Payment tab.

Workflow

  1. 01.Click Add Purchase. Select supplier — their default FC auto-fills.
  2. 02.Invoice Date = the date on the supplier's document (not entry date). It drives AP aging.
  3. 03.Add line items: Item, Qty, Price (FC), per-line VAT if applicable. Pick a destination warehouse per line.
  4. 04.Freight, import duty, and handling go in the Cost Allocation section, not as separate lines — that's how they land into FIFO cost.
  5. 05.Save. Journal: Dr Inventory-in-Transit + Input VAT, Cr AP (or Cash if Pay Now).

Key fields

Invoice Number
Supplier's document number. Used for duplicate detection. Keep it unique per supplier.
Destination Warehouse
Required to enable Goods Receipt. Without it, receipt is blocked.
Cost Allocation
Freight / duty / handling distributed proportionally across lines and absorbed into FIFO layer cost.

Common mistakes

  • Using entry date instead of invoice date → AP aging is wrong; aging buckets shift.
  • Forgetting destination warehouse → Goods Receipt cannot be processed.
  • Treating freight as a separate expense line → COGS underreports, margins look better than they are.

Goods Receipt

/item-receiving

Moves goods from in-transit to actual stock. A new FIFO layer forms with acquisition cost plus landing cost from the parent purchase. Same module hosts physical stock counts.

Workflow

  1. 01.Receive tab: pick an outstanding purchase, tick lines that physically arrived.
  2. 02.Adjust Received Qty if it differs from invoice (short shipment, damage). The difference stays as an outstanding receipt.
  3. 03.Pick a shelf per line if the destination warehouse uses Shelving.
  4. 04.Save. Stock rises in the FIFO ledger; journal: Dr Inventory, Cr Inventory-in-Transit.

Common mistakes

  • Receiving more than the invoice qty → blocked; revise the invoice first.
  • Skipping the Count tab → physical and book diverge over time; do at minimum a monthly count.

Sales

/jurnal-sales

Records sales invoices. Stock leaves via the fifo_out trigger — COGS forms from the oldest layers. AR rises (or Cash if Pay Now). Revenue is recognized in full when the invoice posts.

Workflow

  1. 01.Add Sale: pick Customer, items, Qty, Sale Price, source warehouse per line.
  2. 02.The form shows a live margin (Sale Price − FIFO COGS) as you type.
  3. 03.Tick Pay Now if cash, or leave it for AR.
  4. 04.Save. Journal: Dr AR/Cash, Cr Revenue + Output VAT. Plus: Dr COGS, Cr Inventory.

Common mistakes

  • Selling more than available stock → blocked; check stock or split the invoice.
  • Receiving payment via Journal Adjustment → AR sub-ledger goes stale; use AR/AP → AR.

Manufacturing (SPK + BoM)

/manufaktur

An SPK (production order) drives N units of a finished good through the line. The system reads the BoM to compute material consumption + labor + overhead. On close, finished-good stock rises with COGS = sum of (materials + labor + overhead) ÷ output qty.

Key fields

BoM
Three-layer recipe: Raw Material, Labor, Overhead, plus optional Machine/Batch.
Standard Recipe
Recipe variants per product (per machine, per formulation). SPK picks one; history is preserved even if the recipe changes.
Yield ratio
100 kg in = 95 kg out → the 5% shrinkage absorbs into production cost.

Common mistakes

  • Over-producing (output > BoM × qty) is intentional — costs spread proportionally over actual output.
  • Editing the BoM mid-SPK → active SPKs use the BoM as it was at SPK creation (snapshot).
  • Skipping actual material consumption entry → COGS uses theoretical BoM; variance is invisible.

Marketplace Accrual

/marketplace-akrual

Marketplaces (Shopee, TikTok, Tokopedia, Lazada) settle weekly to a marketplace cash account. This module reconciles every line: gross sale − returns − admin fee − shipping + voucher = net deposit. Output: an accrual journal that ties to within 0.01% of the shop's settlement.

Workflow

  1. 01.Pull via API or upload the settlement XLSX.
  2. 02.Auto-match against local orders by order_id; unmatched rows park in the Unmatched tab.
  3. 03.Manually match the remainder (usually returns where order_id is missing).
  4. 04.Click Finalize. Journal posts: Dr Marketplace Cash, Cr Sales Revenue + Admin Expense + Shipping Expense per the CoA mapping.

Common mistakes

  • Changing the marketplace CoA mapping after a period closes → historic reports won't follow the new mapping; don't edit retroactively.
  • Mapping marketplace admin fee to COGS instead of Selling Expense → distorts gross margin.

Payroll

/penggajian

Monthly payroll: compute take-home per employee from Contract + Components + Attendance + Overtime. PPh 21 deducts automatically per each employee's PTKP. Payslips render per employee; the payroll expense journal posts once per run.

Key fields

Contract
Period + base salary + active components. Exactly one active contract per employee at a time.
Salary Component
Allowance / deduction with a CoA, calculation method (fixed / percent / formula), and pre-tax vs post-tax flag.
Overtime Rule
Rate per hour for first stretch (1.5x), beyond that (2x), plus pro-rate attendance penalties.

Common mistakes

  • Resigned employee's contract not closed → still appears in the next month's payroll.
  • PPh 21 component mapped as an Expense → wrong; should be Dr Salary Expense, Cr PPh Payable, Cr Cash.
  • Running payroll twice for the same month → blocked by an idempotency key on (tenant, year, month).

Fixed Assets

/jurnal-aset

Capital assets (laptops, machines, vehicles) tracked with acquisition cost, useful-life months, and salvage %. Straight-line depreciation runs monthly via a button on the Depreciation tab (or via cron). Disposal removes the asset + accumulated depreciation; the residual posts as gain or loss.

Common mistakes

  • Useful life entered in years instead of months → field expects months; depreciation is wildly off.
  • Skipping a month or two of depreciation → don't leapfrog; run sequentially.
  • Adding an asset directly via Journal Adjustment without going through Purchasing → it never appears in the Asset Register; always create from a Purchase with the Fixed Asset flag.

Period close

Month-end and year-end have their own checklists. Akar refuses to close a period with hanging conditions; follow the order below.

Monthly Close

/akuntansi/tutup-periode

After close, transactions in that month become read-only. The owner role can reopen if a correction is needed.

Workflow

  1. 01.Review Balance Sheet + P&L: no negative cash, AR/AP reasonable, COGS dropped through correctly.
  2. 02.Run depreciation for that month if cron didn't.
  3. 03.Marketplace → Accrual: upload + reconcile + finalize for that month.
  4. 04.Open /akuntansi/tutup-periode → pick the month → confirm.

Common mistakes

  • Closing while drafts exist → blocked; find drafts in /jurnal-umum.
  • Closing before marketplace finalize → accrual lands in the next month and distorts P&L.

Financial Reports

/laporan-keuangan

Balance sheet, P&L, cash flow, general ledger, plus inventory and marketplace reports. Every report paginates server-side and exports to PDF/Excel. Drill-down to the underlying journal is available on every line.

Common mistakes

  • Date range doesn't match the closed period → reports look 'odd'; verify the range.
  • Excel export with active filters showing different totals from PDF → check whether pivot / group adds or hides rows.

Other apps

Questions or feature requests for Akar ERP? Post on the forum — we read everything.