Air-M Help

Help centre

Air-M ERP User Manual

Every article on one page. Use the button below to print it or save it as a PDF.

Getting started with Air-M

Create a company account, sign in, find your way around the main screen, search, and understand user roles.

Air-M ERP runs in your browser at app.air-m.online. There is nothing to install. The app is shown in Bahasa Indonesia by default; click EN at the top right to switch to English. This manual writes button and menu names exactly as they appear in the English screens, in bold.

Creating a company account

  1. Open app.air-m.online and click Create a company account.
  2. Enter the company name, the company NPWP (it can be added later), your full name, email and a password of at least 10 characters.
  3. Click Create company.

You automatically become the owner of that company. Air-M immediately sets up a standard PSAK chart of accounts with Indonesian account names, so you can start recording transactions or importing your old data straight away.

Signing in

Open app.air-m.online, enter your email and password, and click Sign in. If two-step login is on, Air-M also asks for the 6-digit code from your authenticator app. A session lasts 8 hours; after that Air-M asks you to sign in again ("Your session has expired").

Forgot your password? For now, ask your company's owner or admin to set a temporary password for you, or contact the Air-M team (see Help and support).

The main screen

  • Workbench: the first page after signing in. It shows live figures from the ledger (revenue this year, open receivables, inventory value, cash and bank), the approvals waiting for you, a monthly revenue and expense chart, supply chain alerts and receivables aging. Owners and admins also see Download all data and Backup Data at the top right.
  • Left menu: the Portal section (Workbench, Platform map, Approvals, Import data, Team & settings) and Business apps (Finance, Supply Chain, AI + Supply Chain, Sales & Marketing, Manufacturing, Human Capital, Project, Asset, R&D, Collaboration).
  • User manual at the top right: opens this manual (English or Bahasa Indonesia, following your language choice) in a new tab.
  • Language: click ID / EN at the top right (or on the sign-in page). Your choice is remembered in your browser.
  • Search box at the top: type at least 2 letters to search invoices, item SKUs, customers, sales orders or purchase orders across all modules. Press Esc to close.
  • Approvals with a red number: how many requests are waiting for your decision.

User roles

Each person has one role in each company. The role decides what they can see and do.

RoleCanApproves
OwnerEverything, including the team, other owners and company settingsEvery kind of request
AdminEverything except adding or changing ownersEvery kind of request
FinanceLedger, payments, bank reconciliation, tax, payroll (posting and paying), projects, assets; can view sales, inventory, purchasing and manufacturingPurchase orders above the limit, credit limits
HREmployees, leave, payroll (posting and paying salaries)Leave
PurchasingVendors, purchase orders, items, stock; can view finance–
SalesCustomers, sales orders, projects–
WarehouseItems, stock counts, receiving goods, delivering orders, manufacturing, assets; raising and releasing engineering changes–
EngineeringR&D projects and stage-gate decisions; can view manufacturing, inventory and purchasingEngineering changes (ECN)
ViewerCan see data, cannot change anything–

If you see "Your role does not allow this action", your role does not include that action. Ask an owner or admin to change your role in Team & settings. See also Approvals.

Salaries and employee ID numbers are only visible to the roles that handle payroll (Owner, Admin, Finance, HR). HR posts and pays salaries, but cannot post other journals, pay vendors or book bank statement lines.

Free 48-hour trial

How the free trial works, what you should and should not enter, what happens after 48 hours, and how to subscribe.

The trial gives you a demo company already filled with sample data from your industry, so you can try every module straight away without setting anything up.

How to start

  1. Open air-m.online and fill in the Mulai uji coba gratis (start a free trial) form: name, company, work email, a password (at least 10 characters) and industry.
  2. Tick the consent box, then click Cobain gratis 48 jam.
  3. You are signed straight in to demo.air-m.online as the owner of a demo company called "Company name (Demo)".

Free, no credit card, nothing to install. One email can only be used for one account.

Sample data only

Demo companies run on a separate trial server (demo.air-m.online), not on the production service for paying customers. Do not enter real company data (employee records, salaries, NIK, bank accounts, customers). Change, add and delete the sample data as much as you like, and invite colleagues to try it with you.

Because a demo company holds sample data, it does not use daily backups.

After 48 hours

  • A blue banner at the top of the page shows the time left.
  • After 48 hours, access stops and the sign-in screen says the trial has ended.
  • One day later the demo company, all its data and its user accounts are permanently deleted and cannot be recovered.
  • Your sign-up details (name, company, email, WhatsApp number) are kept separately so the Air-M team can contact you, for at most 6 months, and then deleted. Ask for earlier deletion at support@air-m.online.

Subscribing

Click Start subscription in the trial banner, or contact support@air-m.online. A paid company is created fresh on the production service (Google Cloud, Jakarta region, with daily backups to storage you own), and you then bring in your real data with Import data. Demo data is not carried over. See also Your data, exports and daily backups.

Moving to Air-M and importing data

Import your chart of accounts, vendors, customers, items and opening balances from Excel (CSV), and how to read import errors.

Open Import data in the Portal menu. This page moves your data from spreadsheets into Air-M in five steps. Follow the order, because each step uses data from the steps before it.

How each step works

  1. Click Download template. The sample CSV file has the right column names and one example row.
  2. Fill it in with Excel or Google Sheets, then save it as CSV. Comma and semicolon separators both work.
  3. Choose the file. Air-M shows the number of rows and a preview of the first 5.
  4. Click Import n rows.

Formats Air-M understands:

  • Money can be written the Indonesian way: 1.500.000 or 1.500.000,50.
  • Dates can be 2026-09-30 or 30/09/2026.
  • Records are matched by code (or SKU for items). Importing the same file again updates existing records instead of creating duplicates. The result shows as "x added, y updated".

If even one row has a problem, the whole file is rejected and nothing is saved. Air-M lists every problem by row number ("Row 14: ..."). Fix those rows and upload again. If Missing column appears, a required column name in your file does not match the template; copy the header row from the template.

The steps in order

  1. Chart of accounts (optional). Air-M already has a PSAK chart of accounts. Use this step to add accounts (for example 1103 Bank Mandiri) or rename them. The type column takes asset, contra_asset, liability, equity, revenue or expense.
  2. Vendors: code, name, NPWP, city and payment terms (days). Import vendors before items.
  3. Customers: code, name, NPWP or NIK, channel (Modern Trade, General Trade, E-commerce, HoReCa, Project), city, credit limit and payment terms. An NPWP or NIK is required before a tax invoice can be exported.
  4. Items: products and materials, matched by SKU. The type column: FG (finished good), RM (raw material or packaging) or SV (service). Also fill in lead time (weeks) and minimum order so AI + Supply Chain can work out reorder points. vendorCode sets the item's default vendor.
  5. Opening balances. See the next section.

Opening balances

Opening balances are posted only once, as one journal, on the day before you start using Air-M (Opening date, by default the end of last month).

Prepare four files:

FileContents
Stock on handSKU, quantity and unit cost on the opening date
Open customer invoicesUnpaid customer invoices: number, customer code, date, due date, amount still owed including PPN
Open vendor billsUnpaid vendor bills, the same as above
Other balancesEvery other account from your old trial balance: bank, cash, fixed assets, taxes, equity. Do not include inventory, receivables or payables, because those three come from the files above

Then:

  1. Click Check. Air-M adds up stock, receivables and payables and checks that total debits equal total credits. Nothing is saved yet.
  2. If it shows Balanced, click Post opening balances.
  3. If there is a Difference, check your files again. Differences usually come from rounding or a missing account. If the difference is small and you are sure, choose Post the difference to 3201 Laba Ditahan under If the totals differ by a small amount, then post.

This way the ledger and the sub-ledgers (stock per item, receivables per customer, payables per vendor) start from the same figures.

If you see "Opening balances were already posted", this company's opening balances have already been posted. Make later corrections with an ordinary journal in Finance → Journals → Post journal.

Team, settings and your account

Adding colleagues, changing roles, removing access, the PO approval limit, data access for the AI assistant, two-step login, and changing your password.

Open Team & settings in the Portal menu.

Team (owners and admins)

Adding a colleague: click Add colleague and enter the name, email, role and a temporary password (at least 10 characters). Give that password to your colleague privately and ask them to change it straight away in Team & settings → Change my password. If the email already has an Air-M account at another company, they simply sign in with their existing password.

Changing a role: choose the new role in the team list. There are nine roles: Owner, Admin, Finance, HR, Purchasing, Sales, Warehouse, Engineering and Viewer. See what each role means in Getting started and who approves what in Approvals. The change applies from that person's next request.

Reset password: for a colleague who forgot their password. See My account below.

Removing access: click Remove. That person immediately loses access to the company's data ("You no longer have access to this company"). Everything they recorded stays, together with its audit trail.

Safety rules:

  • Only an owner can add, change or remove another owner.
  • A company always has at least one owner.
  • You cannot remove your own access.

Company settings (owners and admins)

  • Company name and Company NPWP (used on tax invoices).
  • Approval needed for POs above (Rp, incl. PPN): purchase orders above this value need approval. The default is Rp 5,000,000.
  • Assistant may look up company records (in the Ask Air-M assistant panel): when on, the assistant can check your data (for example an invoice's status) to answer questions, limited to what the person asking is allowed to see. When off, the assistant only answers from this manual. See AI assistant and privacy.

Data and backups (owners and admins)

Your data and backups has the Download all data button and the setting for daily backups to a Google Cloud bucket owned by your company. See Your data, exports and daily backups.

Two-step login

Two-step login protects your account even if your password leaks: every sign-in needs your password and a 6-digit code from your phone. Owners, admins and Finance users should always turn it on.

  1. Install a free authenticator app on your phone: Google Authenticator (by Google LLC), Microsoft Authenticator (by Microsoft Corporation) or the built-in Passwords app on iPhone. Avoid look-alike apps that ask for a paid subscription.
  2. In Team & settings → Two-step login, click Turn on.
  3. Open the authenticator app, tap +, then Scan a QR code. Do not scan with the normal phone camera or another QR scanner app: the code is not a website address, and other scanners may open adverts or strange sites.
  4. Can't scan? In the app choose Enter a setup key and type the key shown on screen (not into Air-M's code box).
  5. Type the 6-digit code the app shows into the code box, then save.

If the code is rejected, make sure the phone's clock is set automatically and use the newest code (it changes every 30 seconds).

Lost or changed your phone? An owner or admin clicks Reset two-step on your name in the team list, and you can set it up again after signing in. Never share the QR code, the setup key or a 6-digit code with anyone, including the Air-M team.

Required two-step login (owners and admins)

In the Required two-step login panel, click Change and tick the roles that must use two-step login, for example Owner, Admin and Finance. Then save.

  • People in those roles who have not set it up can still sign in with their password, but they go straight to a Two-step login required screen and cannot open anything until they set it up. Anyone already using the app is asked to set it up at their next action.
  • In the team list, people who have not set it up yet are marked Two-step required, not set up yet, and the panel shows how many still need to do it.
  • If your own role is ticked, turn on two-step login for your own account first. Air-M will not save the setting before that, so you cannot lock yourself out.
  • While it is required, people cannot turn two-step login off themselves. If a phone is lost, an owner or admin can still use Reset two-step; the person then sets it up again at their next sign-in.

My account

Changing your password: enter your current password and a new one (at least 10 characters), then save. All older sessions on other devices are signed out automatically.

Locked out: after 5 wrong passwords the account is locked for 15 minutes. An owner or admin can unlock it sooner with Reset password.

Forgot your password: ask your company's owner or admin to open Team & settings and click Reset password on your name. They set a temporary password; sign in with it and change it straight away. If your account is also used for another company on Air-M, for security the reset has to go through the Air-M team. Resetting your own password by email is being prepared.

Your data, exports and daily backups

Download all your data at any time, set up daily backups to your company's own Google Cloud account, and recover data without Air-M.

Your data belongs entirely to your company. Air-M gives you two ways to always have it in your own hands, even if Air-M cannot be reached.

Download all data at any time

An owner or admin opens Team & settings → Your data and backups and clicks Download all data. The result is one ZIP file containing:

Folder / fileContents
excel/One Excel workbook per module, one sheet per table, money in Rupiah
reports/laporan.xlsxTrial balance, open receivables, open payables, stock, customer balances
data/An exact copy of every table (CSV, money in cents) for recovery and migration
restore/schema.sql, restore.sql, restore.sh to rebuild the database on PostgreSQL 13+
data-dictionaryWhat every table and column means, and how records link together
manifest.json, checksums.sha256Row counts and the SHA-256 fingerprint of every file, to check nothing is damaged
BACA-SAYA.txtA guide to using the export without Air-M

Owners and admins can also press Download all data or Backup Data at the top right of the Workbench. Backup Data sends a backup to the company bucket straight away; if no bucket is connected yet, it opens the setup guide.

Passwords and two-step login secrets are never exported. The file contains sensitive data (salaries, NIK, bank accounts), so store it with restricted access.

Daily backups to your own Google Cloud account

Before a service is activated, every company must connect backup storage it owns. Air-M then sends a full export every night at around 01:30 WIB.

  1. Create a Google Cloud project in your company's name, with your own billing account.
  2. In that project's Cloud Shell, run the three commands from the Setup guide on the Your data and backups page. They create a private bucket in Jakarta, hold every backup for at least 30 days so it cannot be deleted early, and give Air-M permission to add files only.
  3. Enter the bucket name, click Save, then Test connection.
  4. Click Back up now for the first backup. The history of every backup is shown below it.

Air-M cannot read, list, change or delete what is in your bucket. Storage costs are billed by Google directly to your company, based on use.

Air-M pages show a yellow Daily backup is not set up reminder until a bucket is connected. Demo companies (the free trial) do not use daily backups.

If Air-M cannot be reached

  1. Sign in to your company's Google Cloud console → Cloud Storage → the backup bucket → the airm-backup/ folder, and download the latest ZIP.
  2. Open reports/laporan.xlsx to see receivables, payables and stock at that moment, and excel/ for all the details.
  3. Record new transactions in a spreadsheet for the time being.
  4. Restore the system: on a PostgreSQL 13+ server run bash restore/restore.sh database_name. The result is a complete database with the same structure, ready to use again or to import into another ERP with the help of the data dictionary.

Test a recovery

Every three months, download one backup and check that the files open and the figures match the reports in Air-M. The Air-M team can go through this test with you. See also Help and support.

Approvals

What needs approval, who can approve each kind of request, and how to approve or reject.

Every request that needs a decision, from every module, comes together in one place: Approvals in the Portal menu. The red number in the menu shows how many are waiting for you. The same requests also appear on the Workbench in the Waiting for approval panel.

What needs approval

RequestWhen
Purchase orderWhen the PO total (including PPN) is above the company's approval limit. The default is Rp 5,000,000; an owner or admin can change it in Team & settings. POs below the limit are approved straight away.
Customer credit limitEvery credit limit increase, whatever the amount
Employee leaveEvery leave request
Engineering changeEvery R&D change before it can be released

Who can approve

Each kind of request is decided by the matching roles:

RequestWho can approve
Purchase order above the limitFinance, Admin, Owner
Customer credit limit increaseFinance, Admin, Owner
Employee leaveHR, Admin, Owner
Engineering change (ECN)Engineering, Admin, Owner

Requests that are not yours to decide are still visible under Waiting for others, together with who can decide them, but without Approve/Reject buttons. A person cannot approve their own request, except the owner. Ask another colleague with the right role to decide.

HR posts and pays payroll, but cannot post manual journals, pay vendors, record customer receipts or book bank statement lines; those belong to Finance.

How to decide

In Approvals, under Waiting for you, click Approve or Reject on the request. The decision takes effect immediately:

  • An approved PO is ready for its goods to be received (Receive goods); a rejected one stops.
  • An approved credit limit applies from the next delivery.
  • Approved leave is taken from the leave balance; rejected leave gives it back.
  • An approved engineering change can be released (Release).

The latest decisions appear under Recently decided, and all of them are kept in the audit trail with who decided and when. A request that has already been decided cannot be decided again ("This request was already approved").

Air-M on your phone (Android)

Approve requests, check and scan stock, and see your own payslips from an Android phone.

Status: the Android app is being prepared for Google Play. This page will link to the download as soon as it is available.

The Air-M phone app uses the same account as Air-M on a computer. Your role decides what you can see, exactly as on the web.

Signing in

  1. Choose Customer (the paid service) or 48-hour trial (a demo company).
  2. Enter your Air-M email and password, then Sign in.
  3. If two-step login is on, enter the 6-digit code from your authenticator app.

Two-step login is set up in Air-M on a computer (Team & settings), because it needs a QR code to be scanned. If your company requires it for your role and you have not set it up, the app asks you to do that on a computer first.

Four tabs

TabWhat it has
ApprovalsRequests waiting for your decision (POs, credit limits, leave, engineering changes) with Approve and Reject, plus requests waiting for others. The rules are the same as in Approvals.
StockSearch items by name, SKU or barcode, or press Scan and point the camera at a barcode. Shows stock on hand, stock value and stock per warehouse. Only for roles that may see inventory.
My payslipsYour own posted payslips with the breakdown (base salary, allowance, overtime, PPh 21, BPJS, take-home pay).
AccountLanguage (ID/EN), this manual, contact support, and Sign out.

Payslips not showing?

Payslips are matched by the email on your employee record. Ask HR to open Human Capital → Employees → Edit and enter the same email as your Air-M login. Only posted payslips are shown; drafts are never visible.

Still done on a computer

Managing the team and two-step login, counting or moving stock, creating documents, and all other modules.

Security

  • The session is kept in the phone's secure storage and ends after 8 hours, as on the web.
  • The camera is only used to read barcodes; no photo or video is stored or sent.
  • Lost your phone? An owner or admin can Reset password for you in Team & settings; every old session, including on the phone, ends at once.

Finance

Receivables and customer payments, payables and vendor payments, manual journals, trial balance, profit and loss, PPN, and Coretax tax invoice export.

The Finance module (tabs Receivables, Payables, Journals, Trial balance, Profit & loss, PPN) is one general ledger filled automatically by sales, purchasing, stock, manufacturing, payroll, projects and assets. You will rarely need to write journals yourself. Every journal is checked: debits must equal credits, or it is rejected.

Who can change finance data: Owner, Admin and Finance. HR only posts and pays payroll. Other roles can at most view.

Receivables

The list of customer invoices with the amount still owed and the due date. Invoices are created automatically when a sales order is delivered (Deliver & invoice) or when a project milestone is billed.

Recording a customer payment: click Record payment on the invoice, enter the amount (part payments are fine), the date and the cash or bank account that received it, then save. Air-M posts Dr Bank / Cr Accounts Receivable and reduces the amount owed. Fully paid invoices drop off the open invoice list.

Receivables aging is shown on the Workbench: not yet due, 1–30 days late, 31–60 days and more than 60 days.

Payables

Vendor bills, created automatically when goods from a purchase order are received. Click Pay vendor to record a payment (Dr Accounts Payable / Cr Bank).

Journals

All journals, newest first, numbered JV-2026-0001, with where they came from (sales, purchasing, payroll and so on).

Manual journal: click Post journal, enter the date and description, then account lines with a debit or credit. Post only works when total debits equal total credits. Use it for corrections, expenses paid directly or month-end adjustments.

Posted journals are never deleted. To cancel one, post the reverse journal. That keeps the audit trail intact.

Trial balance

The balance of every account. Total debits always equal total credits. The Inventory account balance equals the stock value in Supply Chain, Accounts Receivable equals the total of open invoices, and Accounts Payable equals the total of open vendor bills.

Profit & loss

Choose the From and To dates. Revenue, cost of goods sold and expenses are calculated directly from the ledger for that period.

PPN

Choose the Tax period (month). Air-M shows Output VAT (from sales invoices), Input VAT (from goods received) and the difference for that month.

PPN rate: since 2025 the rate is 12% on a "DPP nilai lain" tax base of 11/12 for non-luxury goods, so the effective charge is 11%. Air-M records PPN at the effective 11% and shows the DPP and the 12% rate in the Coretax export.

Coretax tax invoices (XML)

Click Coretax XML on an invoice to download a tax invoice import file in the DJP Coretax XML format.

  • The customer must have an NPWP or NIK. If not, add it first in Sales & Marketing → Customers.
  • The file is a draft: check it in Coretax before uploading it the first time. Sending directly to DJP through a PJAP is not available yet.

See also Tax and BPJS rules.

Bank reconciliation

Import bank statements (CSV) from BCA, Mandiri, BRI, BNI and other banks, match them automatically with the ledger, and book bank charges.

Open Finance → Bank reconciliation.

Importing a statement

  1. Download the account statement in CSV format from internet banking (KlikBCA Bisnis, Livin' by Mandiri/MCM, BRImo/QLola, BNIdirect and others).
  2. Click Import statement and choose the file. Air-M recognises the date, description and amount columns automatically. Check the column choices:
    • Banks with separate Credit and Debit columns: fill in both.
    • Banks with one amount column and a DB/CR marker: fill in the amount column and the marker column.
  3. Choose the bank account in the ledger (usually 1102 Bank – Operasional). Enter the statement's closing balance if you want it compared with the book balance.

Matching

  • Automatic: each statement line is matched with an entry in the bank account with the same amount and the closest date (at most 5 days apart). Each book entry is used only once.
  • Match: choose the right book entry from the list. Only exactly equal amounts can be matched.
  • Book: for transactions not recorded yet, for example admin fees, interest or tax on interest. Choose the other account; Air-M posts the journal and matches it straight away.
  • Ignore: for lines that do not need recording. Undo reverses a match.
  • Customer receipts and vendor payments are best recorded on the invoice or bill, then click Match again.

The statement is fully reconciled when every line is matched and the book balance equals the statement's closing balance.

Supply chain and purchasing

Items, stock counts, purchase orders from creation to receiving goods, and vendors.

The Supply Chain module has three tabs: Inventory, Purchase orders and Vendors.

Inventory

The list of all items with stock on hand, unit, average cost and stock value.

New item: click New item and enter the SKU, name, type (finished good, raw material/packaging or service), unit, selling price excluding PPN, lead time (weeks), minimum order and default vendor. For many items at once, use Import data.

How stock is calculated:

  • Stock only changes through transactions: goods received, orders delivered, materials used in production, production output and stock counts. Every item's full history is kept.
  • Cost uses a moving average. Each receipt at a different price adjusts the average cost.
  • Stock can never go negative. If there is not enough stock, the transaction is rejected with "Not enough item in warehouse: x there, y needed". Check whether the stock is in another warehouse (see Multiple warehouses and barcodes), whether a goods receipt has not been recorded yet, or do a stock count.
  • Stock value always equals the Inventory account balance in the ledger.

Stock count: click Count on the item, enter the physically counted quantity and the reason, then Post count. The difference is posted as an inventory adjustment.

Purchase orders

Creating a PO: click New purchase order, choose the vendor, item, quantity and unit price excluding PPN, then save. The quantity cannot be below the item's minimum order ("Minimum order for ... is ..."). Air-M adds Input VAT and submits the PO straight away:

  • Total below the approval limit: the PO is approved immediately.
  • Total above the limit: the PO is awaiting approval and appears in Approvals.

POs created from an AI suggestion (marked "from AI suggestion") or from the Material plan are submitted the same way. If a PO is still a draft, click Submit to send it.

Receiving goods: when the goods arrive, click Receive goods on an approved PO. In one step Air-M adds the stock, records the vendor bill in Finance → Payables and posts Input VAT. The message "still waiting for approval" means the PO has not been approved yet.

PO statuses: Draft → Awaiting approval → Approved → Received (or Rejected).

Vendors

Click New vendor to add a vendor: code, name, NPWP, city and payment terms (days). The terms set the bill's due date.

For automatic purchase suggestions, see AI + Supply Chain.

Multiple warehouses and barcodes

Stock per warehouse, transfers between warehouses, stock counts per warehouse, and scanning barcodes with a phone camera or USB scanner.

Warehouses

Every company starts with a Gudang Utama (main warehouse). Add more in Supply Chain → New warehouse (for example a Surabaya warehouse or a shop stockroom).

  • The Warehouses tab shows the number of items and the stock value per warehouse. Make default chooses the warehouse used automatically; Close closes a warehouse that is already empty.
  • On the Inventory tab, choose a warehouse in the Warehouse box to see only that warehouse's stock. Without a filter, the stock column shows a breakdown by warehouse code.
  • Cost stays a moving average for the whole company, so the inventory value in the ledger always equals the total stock value of all warehouses.

Stock transfer: click Transfer on the item row, choose the source and destination warehouses and enter the quantity. Transfers use the average cost, so the total stock value and the ledger do not change and no journal is posted.

Receiving and delivering: when there is more than one warehouse, Air-M asks for the destination warehouse on Receive goods and the source warehouse on Deliver & invoice. A delivery is rejected if that warehouse does not have enough stock, even if another warehouse does. Transfer the stock first.

Stock count per warehouse: click Count, choose the warehouse and enter the counted quantity. The difference is posted to Inventory Differences at average cost.

Barcodes

  • Enter an item's barcode in New item or Edit (the Barcode field). Each barcode can only belong to one item. Barcodes can also be imported with the barcode column of the items template.
  • Click Scan barcode in Supply Chain, then:
    • USB or Bluetooth scanner: put the cursor in the input box and scan; the scanner types the code and presses Enter.
    • Phone or laptop camera: click Camera and point it at the barcode. Allow camera access when asked.
    • Type it: the barcode or SKU, then Enter.
  • The result shows the stock in every warehouse, with Count this item and Transfer buttons to act straight away.

AI + Supply Chain

Stock health score, dynamic safety stock, reorder points, automatic purchase suggestions and demand anomaly detection.

The AI + Supply Chain page recalculates everything from stock history every time it opens. Nothing needs setting up apart from the lead time and minimum order on each item.

What is calculated

  • Demand is read from stock issued over the last 12 weeks.
  • Dynamic safety stock = 1.65 × standard deviation of demand over the last 8 weeks × √lead time. That is a 95% service level: enough stock in 95% of weeks.
  • Reorder point = average weekly demand × lead time + safety stock.
  • Stock health: every item is grouped as stock-out risk, needs reordering, overstock (enough for more than 16 weeks) or healthy. The health score is the percentage of healthy items.
  • Demand anomalies: last week is flagged if it is more than 2.5 standard deviations away from the 11 weeks before. The change is broken down by sales channel (Modern Trade, E-commerce and so on) so you can see where it came from.

Purchase suggestions

When stock on hand plus stock on order falls below the reorder point, Air-M suggests a quantity that covers the lead time plus one week, rounded up to the vendor's minimum order.

  • Click Order n on one suggestion to create a PO for that item only, or Act on n suggestions for all of them at once. Air-M creates one PO per vendor and submits it straight away: below the approval limit it is approved immediately, above the limit it waits for approval.
  • For finished goods that have a bill of material, the button is Plan production n and the result is a production work order, not a PO.
  • POs and work orders created from AI suggestions can be found in Supply Chain and Manufacturing.

If the numbers look odd

  • Items with no sales history cannot be calculated yet; wait for a few weeks of data.
  • A wrong lead time or minimum order gives wrong suggestions. Check the item data.
  • Physical stock differs from the system: do a stock count first.

Sales and customers

Customers, credit limits, sales orders, and delivery and invoicing in one step.

The Sales & Marketing module has two tabs: Sales orders and Customers.

Customers

Click New customer and enter the code, name, channel (Modern Trade, General Trade, E-commerce, HoReCa, Project), city, NPWP or NIK, credit limit and payment terms.

  • An NPWP or NIK is required before a Coretax tax invoice can be exported. Customers without one are marked Missing.
  • Credit limit = the maximum total of open receivables. Enter 0 for no limit.
  • Raising a credit limit: click Change limit, enter the new limit, then Request approval. The new limit applies once it is approved in Approvals.

Sales orders

  1. Click New sales order, choose the customer, and add items and quantities. Prices come from each item's selling price; PPN is added automatically.
  2. Click Create and confirm. The order is Confirmed.
  3. When the goods ship, click Deliver & invoice. In one step Air-M:
    • checks the customer's credit limit,
    • takes the stock out at average cost,
    • issues the invoice (INV-2026-0001) with a due date based on the payment terms,
    • posts revenue, Output VAT, receivables and cost of goods sold.

Statuses: Draft → Confirmed → Invoiced. A Draft order needs Confirm first.

Delivery rejected?

  • "... would exceed the credit limit": open receivables plus this order are over the credit limit. Collect payment first (record it in Finance → Receivables) or request a higher limit.
  • "Not enough ...": not enough stock. Receive goods that have arrived, finish production, or do a stock count.

Customer payments are recorded in Finance.

Printing documents and sending them by WhatsApp

Quotations, sales orders, delivery notes, invoices and purchase orders as A4 PDFs you can send by WhatsApp.

Air-M produces A4 documents in the Indonesian format your customers and vendors expect, with your company letterhead, the "DPP nilai lain" tax base (11/12), PPN 12%, totals and the amount in words (terbilang) on invoices. The printed documents stay in Bahasa Indonesia even when the app is in English.

DocumentWhere
QuotationSales & Marketing → Print / WhatsApp… → Quotation
Sales orderSales & Marketing → Print / WhatsApp… → Sales order
Delivery note (surat jalan; no prices, with signature boxes for sender, driver and recipient)A delivered order → Delivery note
Sales invoiceA delivered order → Invoice, or Finance → Receivables → Print / WhatsApp
Purchase orderSupply Chain → Purchase orders → Print / send

Printing or saving a PDF: click Print / save as PDF, then choose a printer or "Save as PDF".

Sending by WhatsApp: click Send via WhatsApp. WhatsApp opens with a ready-made message (document number, date, amount, list of items) to the customer's number. Save the PDF first, then attach it in the chat that opens. On a phone you can also use Share….

For complete documents:

  • Fill in your company's address and phone in Team & settings → Company → Edit.
  • Fill in the customer's WhatsApp number, address and NPWP in Sales & Marketing → Customers → Contact. Without a number, WhatsApp asks you to choose a contact.

Manufacturing

Bills of material, work orders from plan to completion, reporting production output, and material planning.

The Manufacturing module has three tabs: Work orders, Bills of material and Material plan.

Bills of material (BOM)

A BOM is the recipe for a finished good: its components and quantities per unit, the scrap percentage, and the conversion cost per unit (labour and factory overhead). Click Create or Edit on a finished good in the Bills of material tab.

Work orders

  1. New work order: choose the product, quantity, production line, start date and due date. The status is Planned.
  2. Release: the work order is ready to be worked on.
  3. Report output: enter the number of good units finished. You can report in stages. Each report:
    • takes the components out of stock according to the BOM at average cost (Dr Work in Progress / Cr Inventory),
    • puts the finished goods into stock at material cost plus conversion cost (Dr Inventory / Cr Work in Progress / Cr Applied Production Overhead). The work in progress balance returns to zero after every report. When the reported quantity reaches the target, the work order is Completed.
  4. Close order closes a work order that has produced part of its quantity; Cancel order cancels a work order that has produced nothing yet.

If even one component is short, nothing is posted and Air-M lists every shortage ("Not enough material: ..."). Buy or receive the materials first, then report again. The message "Release work order ... before reporting output" means the work order is still Planned.

Material plan

The material needs of all open work orders, compared with stock and orders already on the way. Short materials are marked Short with their value. Click Buy to create purchase orders for the shortfall straight away.

Human Capital, leave and payroll

Employee records, leave requests and balances, the monthly payroll steps with BPJS and PPh 21, payslips and the bank transfer file.

The Human Capital module has four tabs: Employees, Leave, Payroll and Payroll settings. Salaries and ID numbers are only visible to Owner, Admin, Finance and HR. HR and Finance can post and pay payroll.

Employees

Click Add employee (or Edit on an employee) and fill in:

  • Employee ID, full name, department, position, start date, email. Use the same email as the employee's Air-M login so they can see their own payslips in the phone app.
  • PTKP status: TK/0 to K/3. It sets the TER category and the annual PTKP.
  • NIK (16 digits) and NPWP if it differs from the NIK.
  • Base salary and fixed allowance per month.
  • Bank and account number for the salary transfer file.
  • BPJS Ketenagakerjaan and BPJS Kesehatan membership.

Leaving employees: fill in Last working day. Payroll for their last month automatically uses the full-year calculation (Article 17), and they are left out of payroll after that.

The summary on the Employees tab counts employees without an NPWP/NIK (NPWP/NIK missing). Complete them before running payroll.

Leave

Click Request leave, choose the employee, the type (annual, sick, important, unpaid), first day, last day and reason, then Send for approval.

  • Leave days are counted as Monday–Friday working days. Public holidays are not deducted automatically yet.
  • Annual leave is 12 days a year, from 12 months of service. Requests waiting for approval already reduce the balance.
  • The message "becomes entitled to annual leave after 12 months of service" means the employee has not completed a year; "has x annual leave days left" means the balance is not enough.

Every leave request is decided in Approvals.

Monthly payroll

  1. On the Payroll tab, choose the Month and click Start payroll. Air-M creates draft payslips for every active employee and calculates BPJS and PPh 21.
  2. For overtime, bonus/THR or deductions (for example loan instalments), click Adjust on that employee's payslip.
  3. If employee records have just changed, click Recalculate.
  4. Check the totals, then click Post payroll. Journal: Dr Salary Expense / Cr BPJS Payable, PPh 21 Payable, Employee Receivables, Salaries Payable. Posted payslips cannot be changed.
  5. Click Bank transfer file to download the salary transfer CSV (employee code and name, bank, account, net pay, description "Gaji month") for internet banking.
  6. After transferring, click Mark salaries paid (Dr Salaries Payable / Cr Bank).

A wrong draft can be removed with Delete draft. Only one draft can be open at a time: "Post or delete the ... draft before starting another payroll". Payroll for the same month cannot be created twice.

Click Payslip to see an employee's payslip; print it from the browser if needed.

Payroll settings

Set the JKK risk group shown on your company's BPJS Ketenagakerjaan registration (0.24% to 1.74%). Other rates follow the current rules; see Tax and BPJS rules.

Projects

The project flow from opportunity to closing, milestones billed as invoices, direct costs, and budget versus actual.

The Project module follows a project from opportunity until it is paid. Milestones and costs are posted to the ledger, so billed and collected figures always match Finance.

Stages

Opportunity → Initiation → Contract → Delivery → Collection → Closed

  1. New project: name, customer, project manager, contract value excluding PPN, cost budget, start and end dates. The project starts as an Opportunity.
  2. Click Move to next stage to move the project forward. The conditions:
    • to Initiation: the project must have a customer ("Link a customer before initiating the project");
    • to Contract: the contract value and cost budget must be filled in ("Set the contract value and cost budget before signing the contract").
  3. Mark lost is only for projects at Opportunity or Initiation that did not go ahead.
  4. Use Edit to change the details and the progress percentage.

Milestones and billing

  • Add milestone: milestone name, amount excluding PPN and due date. Milestones cannot add up to more than the contract value ("Milestones would exceed the contract value").
  • Bill issues the milestone invoice with PPN, which goes straight into receivables. Billing is only possible at the Delivery or Collection stage. A billed milestone cannot be billed again.
  • Customer payments are recorded in Finance → Receivables → Record payment.

Project costs

Add cost records a direct cost (date, description, amount, paid from 1101 Kas or 1102 Bank). Vendor bills for a project are recorded through a purchase order, not here. Costs can be recorded from Initiation until the project is closed. Air-M compares the share of the budget used with the project's progress percentage. If the budget used is 15 points or more ahead of progress (for example costs at 60% of budget while progress is only 40%), the project is flagged Cost overrun risk. Keep progress up to date with Edit so the warning stays accurate.

Closing a project

A project can only be closed when every milestone invoice has been paid ("Collect the remaining Rp ... before closing ..."). Projects that are Closed or Lost cannot be changed any more.

Fixed assets

The asset register, monthly straight-line depreciation, maintenance schedules, and disposals with a gain or loss.

The Asset module keeps the asset register. The register and the ledger always agree.

Adding an asset

Click Add asset and enter the code, name, category (Machinery, Equipment, Vehicle, IT, Building, Furniture), location, acquisition date, cost, salvage value and useful life (years). Choose how it was acquired:

  • Bought now, paid from bank: a newly bought asset. Air-M posts Dr Fixed Assets / Cr Bank.
  • Already owned (in opening balances): an asset you had before using Air-M. Its value already came in through the opening balances, so Air-M only registers it (with depreciation accumulated to date) without posting a new journal.

Monthly depreciation

Click Run depreciation, choose the month, then Post depreciation. Air-M calculates straight-line depreciation, (cost − salvage value) ÷ useful life ÷ 12, for every active asset, starting the month after acquisition. Each asset is depreciated only once per month, so running the same month again is safe.

Maintenance

  • Schedule: plan a maintenance job with a date. Maintenance due within 14 days shows in the summary.
  • When it is done, click Record as done: the date, the cost and (optionally) the next one.

Disposal (sold or scrapped)

Click Dispose and enter the date and the sale proceeds received in the bank (0 if scrapped). Air-M removes the asset and its accumulated depreciation and records the gain or loss on disposal. A disposed asset cannot be changed ("... has been disposed").

R&D and collaboration

Product projects with stage gates, R&D spend, engineering changes, announcements and team tasks.

Product projects (R&D)

Every product idea goes through the stages: Concept → Feasibility → Pilot → Validation → Launch.

Who can create product projects and raise engineering changes: Owner, Admin, Engineering and Warehouse. Stage decisions (Gate review) are made only by Owner, Admin and Engineering. R&D spend is booked by Finance, Admin or Owner.

  1. New product project: the product idea, lead, budget and target launch.
  2. Gate review: write the decision and the evidence ("What was proven at this stage?"), then Pass to next stage. The decision is required. Tick Stop the project instead to stop the project. Every decision is kept as history.
  3. Book spend: record R&D spend paid from the bank, compared against the budget.

Projects that have launched or stopped cannot be changed.

Engineering changes

Click Raise engineering change: the item affected, the change and the reason, then Send for approval. Engineering changes are approved by Engineering, Admin or Owner in Approvals. Once approved, click Release to put it into effect. A change that has not been approved cannot be released.

Collaboration

The Collaboration module:

  • New announcement: an announcement for the whole company. Owners and admins can keep it at the top (tick Pin to the top).
  • New task: a task with an owner and a due date. Tick it to mark it done. Only mine shows just your tasks. Tasks past their due date are marked Overdue.

Every role, including Viewer, can create announcements and tasks.

Tax and BPJS rules

How Air-M calculates PPN, PPh 21 with the TER method and Article 17, and BPJS contributions, with the legal basis and what is not covered yet.

Rates are stored as settings in Air-M so they can be updated when the rules change. The figures on this page are the ones Air-M used when this manual was written.

PPN (VAT)

  • 12% on a "DPP nilai lain" tax base of 11/12 for non-luxury goods and services, so the effective PPN is 11% of the selling price.
  • Output VAT comes from every sales invoice, Input VAT from every goods receipt. The monthly summary is in Finance → PPN.
  • Tax invoices can be exported as XML for Coretax (a draft; check it before the first upload). The customer must have an NPWP or NIK.

PPh 21 (employee income tax)

  • January to November (and the months before an employee leaves): the monthly average effective rate (TER) under PP 58/2023.
    • Category A: TK/0, TK/1, K/0
    • Category B: TK/2, TK/3, K/1, K/2
    • Category C: K/3
  • Gross income for TER = salary and allowances + the JKK, JKM and BPJS Kesehatan contributions paid by the company. The company's JHT and JP contributions are not income.
  • December, or the last month of a leaving employee: recalculated for the full year at Article 17 rates. The 5% position allowance (max. Rp 500,000 per month) and the employee's JHT and JP contributions are deducted, then PTKP. Taxable income is rounded down to the thousand. The difference from the PPh already withheld January–November becomes December's PPh (it can be smaller, even zero).

BPJS

ProgrammeCompanyEmployeeWage cap
Kesehatan (health)4%1%Rp 12,000,000
JHT (old age)3.7%2%—
JP (pension)2%1%Rp 11,086,300 (from March 2026)
JKK (work accident)0.24–1.74% by risk group——
JKM (death)0.3%——

Not covered yet

  • Public holidays in leave day counts.
  • Pro-rata THR for less than 12 months of service (enter the amount yourself with Adjust).
  • The 20% higher rate for employees without an NPWP/NIK.
  • Exporting 1721-A1 withholding slips and reporting directly to DJP.

For tax decisions, keep consulting your tax adviser. Air-M helps with the calculations, but reporting remains the company's responsibility.

Error messages and common problems

What Air-M's most common error messages mean and how to fix them.

Air-M shows its messages in the language you chose (ID/EN at the top right). Find part of the message below. The Bahasa Indonesia version of every message is on the Bahasa Indonesia page (button at the top).

Signing in and access

MessageMeaningWhat to do
Email or password is incorrectWrong email or passwordCheck upper/lower case. Forgot it? See Team and account
Your session has expired. Sign in again.The 8-hour session has endedSign in again
Your session has ended. Sign in again.The password or two-step login was changed, so old sessions were closedSign in again
Too many failed sign-in attemptsThe account is locked for 15 minutes after 5 wrong attemptsWait, or ask an admin to Reset password
Enter the 6-digit code from your authenticator appTwo-step login is onType the code from the app on your phone
Your company requires two-step login for your roleYour company requires it and you have not set it upClick Set up two-step login and follow the steps. See Team and account
Turn on two-step login for your own account firstYou are requiring it for your own roleTurn it on for your account first, then save again
That code is not rightWrong code, or the phone's clock is offUse the newest code; turn on automatic time on the phone
Your role does not allow this actionYour role does not include that actionAsk an owner/admin to change your role
You no longer have access to this companyYour access was removedContact the company's owner/admin
Could not reach the Air-M serverThe internet connection droppedCheck the connection and try again. Unsaved data needs to be entered again

Stock and purchasing

MessageMeaningWhat to do
Not enough item in warehouse: x there, y neededNot enough stock; stock cannot go negativeReceive goods that have arrived, transfer from another warehouse, finish production, or do a stock count
Minimum order for SKU is ...The PO quantity is below the minimum orderRaise the quantity or change the item's minimum order
Purchase order ... is still waiting for approvalThe PO has not been approvedGet it approved in Approvals
Not enough material: ...Production components are shortOpen Material plan, click Buy
Release work order ... before reporting outputThe work order is still PlannedClick Release first

Sales and finance

MessageMeaningWhat to do
... would exceed the credit limitReceivables + this order are over the credit limitCollect payment or request a higher limit
Confirm order ... before delivering itThe order is still a DraftClick Confirm
Order ... is already invoicedThe order has been delivered and invoicedNothing to do
Debits (...) and credits (...) must be equalThe journal does not balanceMake total debits equal total credits
A journal line is either a debit or a credit, not bothOne line has both a debit and a creditSplit it into two lines
Account ... does not exist or is inactiveWrong account codeCheck the code in Trial balance, or add the account with the chart of accounts import
Account ... is not a cash or bank accountPayments must come from/go to a cash or bank accountChoose a cash/bank account
Opening balances are out by Rp ...The opening balances do not balanceCheck the files, or choose to post the difference to 3201 Laba Ditahan
Opening balances were already postedOpening balances are posted only onceCorrect them with a manual journal

Manufacturing, projects and assets

MessageMeaningWhat to do
... has no bill of material yetThe finished good has no BOMCreate one in Manufacturing → Bills of material
Report between 1 and n unitsThe output is more than what is left on the work orderReport up to the remaining quantity
Link a customer before initiating the projectThe project has no customerEdit the project and choose a customer
Set the contract value and cost budget before signing the contractContract value/budget is emptyEdit the project and fill in both
Milestones would exceed the contract valueMilestones add up to more than the contractReduce the milestones or update the contract value
Bill milestones during delivery or collectionThe project is not at Delivery yetMove the project forward
Depreciation cannot be run for a future monthThe depreciation month is in the futureChoose the current or an earlier month
Residual value cannot exceed costSalvage value is higher than costCorrect the figures

Human Capital and payroll

MessageMeaningWhat to do
Those dates fall on a weekendThe leave dates are only Saturday/SundayChoose working days
... becomes entitled to annual leave after 12 months of serviceLess than a year of serviceUse another leave type if it fits
... has x annual leave days leftNot enough leave balanceRequest fewer days
Post or delete the ... draft before starting another payrollA draft payroll is still openPost or delete that draft
Payroll for ... already existsPayroll for that month has been createdOpen the existing payroll
Payroll ... is already posted and cannot changeThe payroll has been postedCorrect it next month with Adjust
Deductions are larger than ...'s pay for the monthDeductions exceed that month's payReduce the deductions
No employees are active in that monthNo active employees in that monthCheck the employees' start dates
Give the last working day when an employee leavesLeaving status without a dateFill in Last working day

Approvals

MessageMeaningWhat to do
You cannot approve your own requestYou cannot approve your own requestAsk another colleague with the right role
This request was already approved / rejectedAlready decidedNothing to do
No Approve/Reject buttonsThe request is not your role's to decide; it shows under Waiting for othersSee who can decide it in Approvals

Other

  • "Something went wrong on our side": an error on the Air-M server, which is recorded in our logs. Try again in a few minutes; if it keeps happening, contact us and say what you were doing.
  • The screen still shows the old version after an update: do a full reload with Ctrl+Shift+R (Mac: Cmd+Shift+R).
  • Workbench figures do not change: reload the page (F5). Figures are calculated when the page opens.
  • Data does not show in search: type at least 2 letters. Search covers invoices, SKUs, customers, sales orders and purchase orders.
  • I cannot see employee salaries: only Owner, Admin, Finance and HR can see salaries.
  • The two-step login QR code opens a strange website: do not scan it with the normal camera or a QR scanner app. Scan it from inside the authenticator app (see Team and account).

AI assistant and data privacy

What the Air-M AI assistant can and cannot do, which data it reads, where data is stored, and how to switch off data access.

Ask Air-M

Click Ask Air-M at the bottom right of the app to ask a question at any time, in English or Bahasa Indonesia. The assistant answers from this manual and, if your company allows it, from your own data. For example:

  • "Why is invoice INV-2026-0041 not in the report yet?"
  • "How much Kopi Toraja 250 g is in stock, and does it need reordering?"
  • "How do I add overtime to this month's payroll?"
  • "What does 'would exceed the credit limit' mean?"

What the assistant does not do: change data. It does not create, change, approve or delete anything. It explains the steps and you carry them out, so the audit trail always shows clearly who did what.

The assistant only sees what you are allowed to see. A user with the Sales role cannot get the assistant to open salary data, for example.

AI answers can be wrong. For important decisions, especially tax and finance, check the figures in the module concerned.

Talk to the team

If the assistant cannot solve your problem, click Talk to the team in the assistant window. Air-M creates a ticket containing the whole conversation and the page you are on, so you do not need to explain again. See Help and support.

Where your data is

  • Paying customers' data is stored in Google Cloud, Jakarta region, with daily backups kept for 30 days, also in Jakarta, plus daily backups to a bucket your company owns (see Your data).
  • Demo companies (the 48-hour trial) run on a separate trial server, without daily backups, and are deleted after the trial. Do not enter real data there.
  • Every company is kept separate: every record belongs to one company and every request is checked for access.
  • Every change is recorded in the audit trail: who, what and when.

AI and your data

The AI model behind the assistant runs on the AI provider's servers outside Indonesia. When the assistant reads data to answer a question, the relevant pieces of data are processed briefly outside Indonesia and are not kept by the assistant outside the conversation. Your main data stays stored in Jakarta.

To keep this to a minimum:

  • The assistant only fetches the data needed for that question.
  • An owner or admin can switch off data access in Team & settings. The assistant can still answer how-to questions from the manual, without reading company data.

Help and support

How to get help from the AI assistant and the Air-M team, what to include, and what the subscription covers.

The quickest route

  1. Search this manual. Most how-to questions and error messages are covered here. The User manual link at the top of the app opens it in your language.
  2. Ask Air-M in the app, 24 hours a day. The assistant can check your data to explain what happened.
  3. Talk to the team from the assistant window. The ticket already includes your conversation and page.
  4. Email support@air-m.online if you cannot sign in to the app.

When you need the Air-M team

  • Something looks like a bug: figures do not match, a button does not work, or "Something went wrong on our side" keeps appearing.
  • Data corrections you cannot make yourself.
  • An account used at several companies with a forgotten password.
  • Billing and subscription questions.

To get it solved quickly, include

  • What you wanted to do, and what happened.
  • Document numbers (for example INV-2026-0041, PO-2026-0007) and the exact error message.
  • A screenshot if you have one.

Never send your password to anyone, including the Air-M team. We will never ask for it.

What the subscription covers

All modules, updates, daily data backups and support. Implementation and training are offered separately. Prices are on Air-M.online and exclude PPN.