AMA

Anima PoS Reference

Anima PoS

Point of Sale, webstore, inventory, and accounting for retail and F&B — multi-store, offline-capable, and posted to a single ledger.

Anima runs your in-store cashier and your online webstore on the same data. Every sale generates a balanced journal entry; every shift opens and closes against a cash drawer; inventory moves across multiple stores via tracked transfers. Online + LAN sync keeps cashier flow uninterrupted when WiFi drops.

Who it's for

Retail and F&B operators with one to a few dozen stores who want a cashier that doesn't stop when the network does, plus a webstore, inventory, payroll, and bookkeeping all wired to the same ledger.

Key features

9 features

Quick start

4 sections

Initial setup

  1. 01.

    1. Create tenant + stores

    Sign in with Google → tenant materializes. Settings → Stores → + Add Store if you have multiple branches.

  2. 02.

    2. Add products

    Items → + Add. Each product needs a SKU, sale price, opening cost, unit, and warehouse. Bulk import via XLSX is supported.

  3. 03.

    3. Configure cash and accounts

    Cash, BCA, GoPay, OVO, ShopeePay — each gets its own CoA. Set a default cash account for the cashier.

  4. 04.

    4. Invite employees

    Employees → + Invite. Set role: cashier / admin / owner. Cashiers see only the cashier screen and their own shifts.

Daily operations

  1. 01.

    Open shift

    Before selling: Shifts → Open. Enter the starting cash in the drawer. The system records the open + timestamp.

  2. 02.

    Process a sale

    Cashier screen: scan a barcode or type a name → add to cart. Pick payment method → enter the amount → print the receipt (or display the digital receipt QR).

  3. 03.

    In-shift expense

    Cashier → In-shift Expense. Enter amount + note. Drawn from the drawer; an unrecorded variance becomes a discrepancy at shift close.

  4. 04.

    Close shift

    End of day: Shifts → Close. Count the physical drawer, enter the ending balance. Variance (over/under) records as a cash finding. Net cash from the shift journals to the store's cash account.

Webstore (simple online store)

  1. 01.

    1. Enable the webstore

    Sidebar → Webstore → Edit. Pick a theme preset, set colors and logo.

  2. 02.

    2. Add sections

    Nine types: Hero, Products (linked to the catalog), Gallery, About, Testimonials, Contact, Custom HTML, Banner, Footer. Drag to reorder, edit content inline.

  3. 03.

    3. Add ornaments

    Ornament mode: drag icons or images to any position, rotate, resize. Position is anchored to section content (no drift on browser resize).

  4. 04.

    4. Publish

    Publish button. The webstore goes live at nimafy.com/<storeSlug>. WhatsApp order capture: customer clicks a product → message auto-prefills to the store's WA number.

Day-end and month-end

  1. 01.

    Review daily reports

    Reports → Daily Sales. Verify drawer total matches shift. Investigate any variance.

  2. 02.

    Receive new stock

    Inventory → Received. Record supplier deliveries; stock rises at the new layer cost.

  3. 03.

    Close the month

    Accounting → Close Period. Transactions in that month become read-only. Owner-only re-open if a correction is needed.

Full manual

15 modules

Module-by-module reference for Anima PoS. Each module names the route inside the app, what it does, the workflow inside, the key fields, and the common mistakes we've seen in production.

Foundation: tenant, stores, items, cash

Set these up before opening the cashier. The cashier screen depends on items and cash accounts being correct.

Tenant & stores

/settings/stores

A tenant is the owner-level workspace. Inside it, one or more stores represent physical or online locations. Each store has its own cash drawer, employee roster, and reporting view. Inventory and accounting roll up to the tenant.

Workflow

  1. 01.Sign in with Google → tenant materializes on first login.
  2. 02.Settings → Stores → + Add Store for each branch. Store name, address, default cash, store slug (used for the webstore URL).
  3. 03.Assign employees to stores in HR.

Common mistakes

  • Single-store operations are fine — just keep the default store.
  • Slug collision across stores → the second store fails to publish its webstore; pick a different slug.

Items

/items

Product master. Each item has a SKU (unique within the tenant), display name, sale price, opening cost, unit (pcs / kg / ml / etc.), and a default warehouse. Bundle items decompose at checkout into their component SKUs.

Workflow

  1. 01.Click + Add. Set SKU, name, sale price, opening cost, unit.
  2. 02.For bundles, add component SKUs with quantities. The bundle stock is computed from the most-constrained component at checkout time.
  3. 03.For multi-store: pick the warehouse for each store via the inventory tab.
  4. 04.Bulk import XLSX is available for first-time loads.

Key fields

SKU
Unique identifier. Used for barcode lookup, reporting, and import. Cannot be changed after sales exist.
Unit
Smallest unit for stock cards. Cannot be changed after stock movements exist.
Min Stock
Threshold for low-stock alerts on the dashboard.

Common mistakes

  • Two SKUs for the same product in different sizes → use unit conversion or bundle, not duplicate SKUs.
  • Changing unit after stock movements → blocked at trigger; create a new SKU instead.

Cash accounts & CoA

/database/finance/coa

Each tender method (cash, bank, GoPay, OVO, ShopeePay, marketplace pickup) maps to its own CoA cash account. The cashier screen offers each tender as a checkout option; the journal records to the matching account.

Workflow

  1. 01.Database → Finance → Account Codes. Add or verify cash accounts for each tender method you accept.
  2. 02.Settings → Cashier → set the default cash account for cashier shifts.
  3. 03.Set the foreign currency on the CoA if the account holds non-IDR funds.

Common mistakes

  • Tender method enabled in the cashier UI but no matching CoA → cashout fails on save.
  • Cash account in foreign currency missing the currency tag → revaluation triggers don't run; balance becomes stale.

Employees

/hr/employees

HR master. Employees can be cashiers (limited to cashier screen + own shifts), admins (full menus per store), or owners (cross-store). Inviting an employee creates the login and HR record together.

Workflow

  1. 01.+ Invite. Name, email, role, store, title.
  2. 02.On first sign-in, the HR record materializes.
  3. 03.Edit later for ID number, phone, photo, contract details.

Common mistakes

  • Cashier role assigned without a default store → cashier screen errors; assign a store first.
  • Admin promoted to owner mid-shift → permission cache refreshes on next page load, not immediately.

Cashier flow

The cashier screen is the most-used surface in Anima. These three modules cover open shift → sale → close shift.

Open shift

/shifts

Opens the cashier session against a starting cash balance. The system records the open timestamp and links subsequent sales to this shift.

Workflow

  1. 01.Shifts → Open Shift.
  2. 02.Count the physical cash in the drawer. Enter that amount as Starting Balance.
  3. 03.Confirm. The cashier screen unlocks.

Common mistakes

  • Two cashiers using the same login → only one shift open at a time per login; sign in as a different user.
  • Starting balance entered wrong → adjust via Cashier → In-shift Expense (or refund) before sales accumulate; otherwise close-shift variance is permanent.

Cashier screen (sale)

/cashier

The transactional surface. Scan or search a product → add to cart → tender → checkout. Stock drops, revenue and COGS post, cash flows to the tender's CoA. Receipts print or display as a QR.

Workflow

  1. 01.Scan barcode or type product name.
  2. 02.Adjust qty / apply line discount if needed.
  3. 03.Pick a customer (optional, for loyalty / receivable).
  4. 04.Tap Pay. Pick tender method, enter amount, get change.
  5. 05.Print or display the digital receipt.
  6. 06.Journal: Dr Tender Cash, Cr Revenue + Output VAT. Plus: Dr COGS, Cr Inventory.

Common mistakes

  • Out-of-stock SKU added → blocked at checkout; either restock via Goods Receipt or remove the line.
  • Marketplace pickup tender used for a walk-in → reconciliation later flags the mismatch; pick the right tender at sale time.
  • Bundle SKU with one component out of stock → blocked; restock the component or split the bundle into individual lines.

In-shift expense

/cashier

Records small operational expenses paid from the drawer (parking, refreshments, courier). Posts a journal and reduces the in-drawer cash so close-shift reconciles.

Workflow

  1. 01.Cashier → In-shift Expense.
  2. 02.Pick expense account, enter amount, write a note.
  3. 03.Confirm. Journal: Dr Expense, Cr Drawer Cash.

Common mistakes

  • Expense paid from drawer but not recorded → ends up as a close-shift variance; train staff to log small spends as they happen.

Close shift

/shifts

Closes the cashier session. Cashier counts the drawer, enters the ending balance, and the system computes variance against (start + sales tendered as cash − in-shift cash expenses). Net drawer cash journals to the store's cash account.

Workflow

  1. 01.Shifts → Close Shift.
  2. 02.Count the drawer physically. Enter the ending balance.
  3. 03.Variance (over/under) records as a cash finding line on the journal.
  4. 04.Save. Net cash from the shift posts to the store's cash account.

Common mistakes

  • Persistent variance across days → audit the cashier; consider locking the in-shift expense feature for that role.
  • Closing without counting (entering computed balance) → defeats the variance check; insist on physical count.

Inventory

Goods Receipt

/inventory/received

Records inbound stock from suppliers. Stock rises at the new layer cost; if the goods originated from a Purchase, landing costs (freight, duty) absorb proportionally.

Workflow

  1. 01.Inventory → Received → + Add.
  2. 02.Pick supplier (or 'no supplier' for adjustments).
  3. 03.Add lines: SKU, qty, unit cost.
  4. 04.Save. Journal: Dr Inventory, Cr AP (or Cash if Pay Now).

Common mistakes

  • Unit cost left at 0 → COGS becomes 0 on subsequent sales; always enter cost.
  • Receiving stock against the wrong warehouse → use Stock Transfer to fix, not delete and re-create.

Stock Transfer

/inventory/transfer

Moves stock between warehouses (typically central → store, or store → store). The FIFO layers move with the stock — acquisition cost is preserved; only location changes.

Workflow

  1. 01.Inventory → Transfer → + New.
  2. 02.Pick source warehouse, destination warehouse, items, qty.
  3. 03.Save. Stock cards in source decrement, destination increments. No journal — both warehouses are inventory accounts that net to zero.

Common mistakes

  • Transfer to a warehouse you don't have access to → blocked; ask an admin.
  • Transfer flagged in transit but never received at destination → stock sits in a transit ghost; reconcile via the Transit tab.

Stock count

/inventory/count

Periodic physical count to align book stock with reality. Variance auto-journals to inventory loss/gain.

Common mistakes

  • Count entered against the wrong warehouse → immediate variance ghost; double-check the warehouse selector before saving.
  • Skipping count for months → variance accumulates and traces become hard; do at minimum monthly counts.

Webstore

Webstore editor

/webstore

The store's public-facing micro-site. Built from nine section types (hero, products, gallery, testimonials, contact, etc.) plus draggable ornaments. Renders on container queries so the layout is stable across screen sizes.

Workflow

  1. 01.Webstore → Edit.
  2. 02.Pick a theme preset and set the brand color + logo.
  3. 03.Add sections; drag to reorder; edit content inline.
  4. 04.Optional: ornament mode for decorative drag-able images.
  5. 05.Preview in the right-side device frame.
  6. 06.Publish. The store goes live at nimafy.com/<storeSlug>.

Common mistakes

  • Products section linked to a warehouse with zero stock → the storefront shows an empty grid; check inventory.
  • Custom HTML section with broken script → blocks the page render; revert to known-good HTML.

Order capture (WhatsApp prefill)

When a customer clicks a product on the webstore, a WhatsApp message prefills with product details and the store's WA number. The order conversation happens in WhatsApp; capture it back in the cashier as a sale.

Common mistakes

  • Store WA number not configured → click does nothing; set it in webstore settings.
  • Multi-store tenant routing all WhatsApp leads to one number → split numbers per store via the per-store webstore settings.

Reporting & period close

Daily reports

/reports/daily

Sales by store, by cashier, by product, by tender, by hour. Export to Excel or PDF. Used at end-of-day to verify drawer closure and identify outliers.

Monthly close

/accounting/close

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

Workflow

  1. 01.Verify Balance Sheet + P&L for the month.
  2. 02.Run any pending depreciation.
  3. 03.Close shifts that are still open from late-night sessions.
  4. 04.Accounting → Close → pick the month → confirm.

Common mistakes

  • Open shifts at month-end → blocked from close; close them or void if abandoned.
  • Reopening a closed period → only owner role; staff escalate via bug report.

Other apps

Questions or feature requests for Anima PoS? Post on the forum — we read everything.