OWN ERP is funded by its users, not by a licence fee. Choose the tier that matches how you work and keep it going with a monthly donation — it pays for hosting, Indonesian tax-rule updates and support.
For a single company getting its books, till and storefront in order.
For companies running stock, production, people and a sales pipeline.
For groups that need their own branding, deployment or support terms.
Amounts in IDR, donated monthly. Every new workspace starts with a free month, and nothing ever expires — we send the account to transfer to once you are up and running.
Try it for a full month before you donate anything. No card, no payment step, nothing charged automatically — and your workspace never expires.
Request your workspace
Tell us your company name and the email that should own the account.
We email your admin login
You get a tenant sign-in link and a temporary password for the administrator account. Change it on first sign-in.
Use it free for one month
The full tier is open — import your data, run your books, put it in front of your team. Access does not switch off at the end of the month.
We send the donation details
After the first month we email the account to transfer to, with a reference for your workspace. Donate monthly if it earns its keep — keep going, change tier, or pause. Your data and your access stay either way.
Not sure which tier you need? Standard covers the books, the till and the storefront; Pro adds everything to do with stock, production and people. Ask us and we will tell you honestly which one fits.
Search, or filter by topic.
Create your workspace and sign in — it is free to use, with no credit card and no sales call required. You can also browse the marketplace to see live storefronts running on the platform before you sign up.
Minutes, not weeks. Every new workspace is provisioned with a starter chart of accounts, journals, PPN tax codes, a fiscal period and a bank account, so you can raise your first invoice the same day and adjust the setup as you go.
Yes. Chart of accounts, customers & vendors, products, categories, opening stock and employees all import from Excel, with per-row validation that reports problems instead of importing them silently. Every sheet also ships a filled-in sample, so you can rehearse the whole migration before touching your own data.
Yes — request a demo and we'll tailor a walkthrough to your business and, if you'd like, load a sample of your own data so you're looking at your numbers rather than ours.
Yes — it's a responsive web app, so there's nothing to install and no app-store approval to wait for. Staff can clock in with face + GPS attendance from their own phone, and the POS customer display runs on any tablet, spare monitor or the shopper's own phone by scanning a pairing QR.
There is no licence fee — the project runs on donations. Pick the tier that matches how you work and donate that amount monthly: Standard (Rp 289rb) covers accounting, reports, Indonesian compliance, POS and the online store; Pro (Rp 989rb) adds inventory, manufacturing, HR & payroll, CRM, sales and purchasing across multiple companies; Enterprise is by agreement and adds white-label branding and a dedicated deployment.
No. There is no card on file, no direct debit and nothing charged automatically — create your workspace and sign in. Every workspace gets a free month first. Near the end of it we email the donation account and a reference for your workspace — the details are never posted publicly, and you can ask for them any time from Settings → Organization.
Tell us. Nothing is deleted and nothing is switched off behind your back — we would rather keep you running and sort it out than lose you over a lean month. Give more than your tier if it is worth more to you.
Hosting and database costs, keeping Indonesian tax rules current (e-Faktur CoReTax, PPh 21 TER, PPh 22/23, BPJS) as they change, and the time to build and support the thing. There is no investor to pay back and no per-seat licence — donations are what decide whether it keeps being developed. Everything in the tier you pick is already switched on, so donating is a choice to keep it alive rather than a payment to unlock a feature.
Standard is aimed at a single company; Pro adds multi-company and multi-branch with consolidated reporting across them. Branches inside a company do not count as extra companies. Very large groups that want a dedicated database, self-hosting or white-label branding are on Enterprise.
Yes. CoReTax e-Faktur export (FK/FM, with NPWP/NIK/NITKU handling), PPh 21 with TER rates, and BPJS are built in — not bolted on. Reports and number formats follow Indonesian conventions out of the box.
Yes — multiple legal entities and branches, each with its own chart of accounts and currency, plus consolidated reporting across them with period-over-period comparison. Business covers multi-company; Enterprise is unlimited.
Yes, line by line. Accounting → Accrued Revenue lists every sales-order line delivered but not yet invoiced as of the date you pick; Accrued Expenses does the same for purchase-order lines received but not yet billed. Tick the lines, choose the accrual account, and one journal entry (or one per order) is posted with its reversal dated the next day — so when the real invoice or bill arrives nothing is counted twice. A line cannot be accrued twice for the same date.
Use Accounting → Deferred Revenue & Expenses, or press Defer… on the line of a posted invoice or bill. Enter the period (for example 15 Aug 2026 – 14 Aug 2027 for Rp 12.000.000 of rent) and the schedule is built for you: equal per month with the first and last month prorated (548.387 · 11 × 1.000.000 · 451.613), or strictly by days. Confirming posts every monthly entry — Dr Pendapatan Diterima Dimuka / Cr Pendapatan for revenue, Dr Beban / Cr Biaya Dibayar Dimuka for a prepaid cost — each dated at its month end, so any report as of any date shows exactly what was earned or used by then. A contract that ends early can be stopped on a date.
That's the point of it. The in-store register, the online storefront with cart, bank-transfer checkout, promo codes and ratings, and the back-office ledger are one system — a sale rings up, moves stock and posts to the general ledger without an export or a nightly sync.
By bank transfer to your own account — you set the bank, number and account name once, and they are shown in the cart before the buyer submits, then again on their order. The buyer uploads the transfer receipt, you see it beside the Confirm button and confirm once you recognise the payment. You can also attach the receipt yourself when the transfer is in your statement but the buyer never uploaded one.
A window you set per company — 30 minutes by default. An order that is not paid within it releases the stock it was holding immediately and is then cancelled automatically, and a customer can only hold one unpaid order at a time. An order that already carries a payment receipt is never auto-cancelled, and you can reopen a cancelled one if a payment turns up late.
Yes. Set your pickup point, how many kilometres you deliver free and the rate per kilometre beyond that. The buyer drops a pin on a map at checkout, sees the distance and the exact charge, and has to agree to it before the order can be placed. The charge is booked to the income account you choose, so delivery revenue is reportable separately from goods.
Yes — a star rating and a testimonial, but only from someone whose order was actually delivered, and only once per product per order. Ratings show on the storefront and the product page with a verified-purchase badge, and you see them on the order itself.
Each online order has its own chat thread between you and the buyer, with file and photo attachments — so a question about a delivery stays attached to that delivery instead of arriving as an anonymous message you have to match up later.
Yes. A consignment agreement groups every surat jalan sent to that partner into one running balance, and a sale report draws from the whole balance — oldest delivery note first — so a month of random sales is ONE report and ONE invoice. Underneath, each sale is still attributed back to the specific shipment it came off, so you can always see which delivery note settled what.
Open the shipment and use Return Products, or close the whole agreement in one action — that withdraws everything the partner still holds and closes every delivery note. You pick the reason up front, because it decides the accounting: a plain withdrawal posts nothing, while damaged or lost goods move to scrap and are written off (outbound) or optionally billed to the owner (inbound).
Both, and they are treated differently on purpose. Goods you place with a reseller are still your inventory, so a sale posts COGS and invoices the reseller. Goods you hold for a supplier were never your asset, so a sale posts no COGS at all — the supplier's bill is the only place that cost appears — and unsold stock goes back to them without touching your books.
Nothing proprietary. Barcode scanners work as keyboard input, receipt printing goes through your normal OS printer driver on 80mm, 76mm or 58mm rolls, and the customer-facing display is any second screen paired by QR — no login on that device.
Yes — a live helpdesk widget for website visitors, plus internal direct and group chat with presence and file attachments, so a question about an invoice stays next to the invoice. Any of those conversations can turn into a voice or video call with one button.
Open the delivery or goods receipt and press Create Return. It proposes only what has not already come back, and you can lower the quantity line by line — a customer returning 1 of 13 returns 1, not the whole shipment. Tracked lots and serial numbers travel with the goods, and a customer return reverses the cost of goods sold at the cost the original shipment was booked at. Goods that arrive with no original document go through Sales → Customer Returns or Purchase → Vendor Returns instead. A validated return can be reversed if it was a mistake: every stock move and journal entry it posted is mirrored, nothing is deleted.
Yes. Validating a customer return drafts a credit note, and a vendor return drafts a debit note, priced from the original invoice or bill line — the same price, discount, taxes and unit. Once you post it, the note settles its invoice or bill automatically, so the customer's outstanding amount (or what you owe the supplier) goes down without a separate payment, and both documents show what was applied. If the order was never invoiced or billed, no note is raised, because nothing was charged. Notes are posted on the correct side of the ledger: a credit note reduces revenue and the receivable, a debit note reduces the payable.
Yes. Every direct chat, group and helpdesk conversation has a call button: one-to-one, a group of up to six people, or a website visitor calling your support team without an account. During a call anyone can turn on their camera or share their screen (screen sharing works from a computer), and an admin, manager, group admin or helpdesk agent can record it — the recording downloads and is also posted into the same chat thread, where it plays inline. A moderator can remove someone from a group call, and that person cannot rejoin it. Nothing to install: it runs in the browser on a computer or a phone, on every tier.
Audio and video travel directly between the browsers, encrypted end to end by WebRTC (DTLS-SRTP); our servers only pass the short messages that set the call up and are not in the media path. When a relay is needed for a difficult network, it forwards the encrypted media without being able to read it. Only moderators can record, and the moment a recording starts every participant sees a red "Recording — name" notice for as long as it runs. A recording is kept in the chat thread like any other attachment, inside your own organization's data.
Yes, on devices that allow it. An incoming call rings on any open page of the app, and with notifications switched on it also arrives as a push notification while the app is closed — on Android Chrome and desktop browsers, and on an iPhone once the app has been added to the Home Screen. A call nobody answers becomes a missed-call notification, and every call leaves a note in its chat thread, so there is always a record that it happened.
Most home and office networks connect directly. Some mobile carriers and strict company firewalls block direct calls; the call then says so plainly — "Can't connect … try Wi-Fi" — instead of hanging on Connecting, and switching either side to Wi-Fi usually fixes it. Where a TURN relay is enabled for your workspace, those calls go through it automatically, still encrypted. Someone who answers while their phone is still asking for microphone permission is shown as answered straight away; their voice starts the moment they allow it.
Yes. Connect your company's own Telegram bot and every lead gets a chat and a cart of their own. The customer browses your catalog by category (or searches by name, code or size), sees the photo, price and available stock, chooses the variant and taps ➕ — minimum order quantities are respected, and products that are out of stock are hidden unless you allow pre-orders. Customers can also send photos, PDFs and voice notes, which appear in the lead's conversation in the CRM next to the cart. Your salesperson turns the confirmed cart into a draft sales order with one click; when the order is confirmed the customer receives it as a PDF with your bank transfer details and QRIS, and the lead is marked Won. Someone who writes to the bot without an invitation automatically becomes a new lead.
Yes. Add your payment methods once in Accounting → Payment Methods — cash, bank transfer, QRIS, card — and tick where each is offered: the POS, the online store, Telegram/WhatsApp orders, and sales orders & invoices. Upload your own static QRIS image there. It is then used on the customer's online-store order page, on the POS payment screen (Show QRIS opens it large for the customer to scan), on posted customer invoices (on screen and on the invoice PDF), on confirmed sales orders, and with every order your Telegram bot sends — also printed on the order PDF. From that one image the system builds a dynamic QRIS for each document — the amount and the document number are inside the code, so the customer only confirms in their app. The payment goes straight to your account.
Yes. When you upload your static QRIS, the system reads the code inside it. For each document it then builds a dynamic QRIS: the amount to pay (the order total, or what is still due on an invoice or at the POS) and the document number as the bill number, with the checksum recalculated. The customer scans it with any banking or e-wallet app and only confirms — no typing, no wrong amounts. It still pays into your own QRIS account. The payment is not confirmed automatically: the customer sends the transfer receipt and you confirm it, as before (automatic confirmation needs a payment provider's API). If the QR in your image can't be read, the system shows your image as it is and the customer enters the amount.
When your salesperson confirms the order, the bot sends the customer the order number, the final total, your bank transfer details and QRIS, and the sales order as a PDF. The customer pays and sends a photo of the transfer receipt in the same chat. The receipt appears on the sales order, where your team checks it against the bank and presses Confirm payment — or Reject with a reason — and the customer is told either way in Telegram. Confirming here acknowledges the payment to the customer; the accounting payment is still registered on the invoice as usual.
In the Telegram catalog an out-of-stock product is hidden, so customers only see what can actually be delivered. Tick "Available for pre-order" on a product to keep it listed when stock runs out: customers can then order it beyond the stock on hand and it is shipped when new stock arrives. Services are always listed.
The store itself. Customers pay each seller directly — into the seller's own bank account or QRIS — and OWN ERP, as the software provider, is not a party to that payment and is not responsible for it. We show a reminder wherever a customer is told how to pay: be careful, especially on a first purchase from a seller you don't know well yet, check that the account name matches the seller, and don't trust too easily.
It takes about two minutes and needs no technical knowledge. In Telegram, open @BotFather, send /newbot, choose a name and a username ending in "bot", and copy the token it gives you. Paste that token in Settings → Telegram Bot and press Connect bot — the system checks the token and sets up the connection to Telegram (the webhook) for you; there is nothing else to configure. Then open any lead and press Create invite link: send the link or show its QR code to the customer, and when they press Start the chat is linked to that lead. The settings page shows a checklist and a Check status button, so you can see at a glance that messages are arriving.
Telegram's Bot API is official and free, so a bot can never get your number banned. The free WhatsApp gateways work by imitating WhatsApp Web, which breaks WhatsApp's terms — a number used for automated selling can be blocked, taking its chat history with it. Official WhatsApp access (the WhatsApp Business Cloud API) is safe but is charged per message and needs Meta business verification. The CRM chat is built so WhatsApp can be added the same way later, without changing how your team works with leads.
Yes. Every company in your account has its own store with its own web address (/shop/your-store), its own published products and stock, its own customer accounts, carts and orders, and its own bank account for transfer instructions — so an order always lands in the right company's books. Customers see each store as a separate shop. To open a second store, switch to that company (top left) and set it up in Settings → Storefront, or import the Storefront sheet in Data Import. The same applies to the Telegram bot: each company connects its own. You can see it in the demo: the demo tenant runs two companies with two stores, /shop/demo-store and /shop/demo-fashion.
Yes — they work like POS registers. In Settings → Storefront (and Settings → Telegram Bot) a company adds one store or bot per branch and picks the warehouse it ships from. That outlet then shows and sells only the stock of its own warehouse, so a product can be in stock in Surabaya and sold out in Jakarta; its online orders, sales orders and deliveries carry that branch and are numbered per branch (SHOP/SBY/2026/0001, SHOP/JKT/2026/0001); and each store has its own cart. Customers keep one account per company, valid in all of that company's branch stores. The demo shows it: Demo Fashion runs /shop/demo-fashion (Surabaya) and /shop/demo-fashion-jkt (Jakarta) side by side.
It runs the whole year the way the regulation does, not just a monthly rate. January to November use the PMK 168/2023 TER tables (A, B and C, mapped from PTKP status), and December is the Masa Pajak Terakhir settlement under UU PPh Pasal 17 — the year's real liability less everything already withheld, which can come out negative and is then refunded to the employee on the payslip. Gross up (tunjangan pajak) is solved as a fixed point rather than added once, the +20% surcharge for an employee with no NPWP applies to both the monthly and the annual figure, and the employer-paid JKK & JKM premiums sit inside penghasilan bruto per PP 58/2023. Biaya jabatan is capped per month and then summed, never against the annual ceiling.
Yes. The PPh 21 Simulator runs a whole year — January to December — for a package you are considering, on your own TER tiers and BPJS rates, and shows the monthly figures plus the December settlement. It calls the same engine a payroll run calls, so it cannot promise a number payroll would not produce. Once the year is actually posted, each employee's Payroll History puts the real figures beside that projection month by month, so the two can be reconciled to the rupiah.
Yes, including the part most spreadsheets miss. An ordinary weekday follows Kepmenaker 102/2004 Pasal 11(a) — 1,5x the first hour and 2x thereafter — while a rest day or public holiday uses the much higher ladder in Pasal 11(b)/(c): 2x for the first hours, then 3x and 4x, with the step landing an hour later on a five-day working week. Register your non-working dates in the Holiday Calendar and overtime worked on one of them is paid at the holiday rate automatically, so nobody has to remember which days those are. Because overtime sits inside penghasilan bruto, getting this right also changes PPh 21.
Both. A kasbon (salary advance) is recorded with its principal and monthly instalment, and every payroll run withholds it automatically until it is repaid — the last instalment collects only what is left, and the outstanding balance is derived from the payslips that actually repaid it rather than a stored counter. The repayment is a deduction, so it reduces take-home without touching penghasilan bruto and never changes PPh 21. For payment, a confirmed run produces a bank transfer list with each employee's bank, account number and net amount; anyone missing bank details is listed in their own section rather than silently left out of the file.
Their last month becomes the Masa Pajak Terakhir for that one person. PMK 168/2023 Pasal 1 defines it as December OR the tax period in which the employee stops working, and Pasal 15(1)b settles that period under UU PPh Pasal 17 instead of the monthly TER — so a June leaver is reconciled in June while everyone else on the same payroll run stays on TER. You record the resignation, approve it, and the last working day is stamped on the employee; the payroll run then settles that person automatically. An archived leaver is still payable for the period they actually worked, because that payslip is the one carrying the settlement.
Yes, and it is configurable per company: handover, asset return, ID and access cards, IT accounts, kasbon, remaining leave, the 1721-A1 and the reference letter come as a starter list you can rename or extend. Each resignation COPIES the checklist as it stood that day, so editing the master later never rewrites a form somebody already signed. Ticking a line records who signed it and when, and the printed clearance form shows exactly that — it is a rendering of what was signed in the app, not a blank to fill in afterwards. Reasons for leaving are yours to word too, but each one must be tied to a tax treatment, because the reason decides how the final period is computed.
Yes. Set an employee to gross up and their Base Salary becomes the contracted TAKE-HOME: the app solves the gross that lands exactly on it, adds the difference as a tunjangan pajak on the payslip, and withholds it straight back — so the employee nets the same figure every month while the tax you report is genuinely the tax due on the reported bruto. The important part is that it is solved as a fixed point, not added once: because the TER rate is a step function, adding the tax on the netto pushes the bruto into a higher band and leaves the take-home short every month. The allowance is a taxable earning, so the DJP bruto, the withheld tax and the journal entry all stay consistent — and it works in December too, where the allowance changes its own biaya jabatan and therefore the annual tax.
Yes. Every record is scoped to your organization and company, enforced on the server on every query — not just hidden in the interface. Enterprise can additionally run on a dedicated database.
Session-based authentication with optional two-factor (TOTP), optional passwordless face sign-in with anti-spoof liveness checks, rate-limited login attempts, and an option to restrict an account to one device at a time.
Yes to both. Admins can download a complete backup of their own organization at any time and restore it themselves, every report exports to PDF and Excel, and an audit trail records who changed what, when — including before/after values.
Access is role-based and configurable — you decide which roles reach which menus, down to individual screens. Sensitive areas like payroll, employee records and system settings are restricted by default, and a read-only role can view without changing anything.
Still have a question?
Talk to a person — or just start the trial and look around. No card needed.