Mobile app
The Accounts Android app is the phone surface for the work that happens away from a desk: photographing a receipt, approving a bill in a corridor, checking what a customer owes before a meeting, importing the statement your bank just mailed you. It is built for the same finance users as the web app, doing the subset of their job that is urgent rather than administrative.
Getting in
Section titled “Getting in”Sign in with the same email and password you use on the web. There is no separate mobile account, no company picker and no server field — the company comes from your login, exactly as it does in the browser.
The app runs on Android 8.0 and later. Signing out wipes the offline cache and the cached permission set, so a shared handset never leaves one person’s ledger visible to the next.
Getting around
Section titled “Getting around”A navigation drawer holds every destination. Two of them carry live counts — Notifications shows unread items and Approvals shows requests waiting on you — both fed by a single badge call so the numbers agree with each other.
The drawer lists its destinations flat, in this order; the grouping below is this page’s, to make the list readable.
| What it covers | Destinations |
|---|---|
| Overview | Dashboard, Home |
| Sales | Contacts, Estimates, Sales Orders, Invoices, Retainers, Credit Notes |
| Purchasing | Bills, Vendor Credits, Purchase Orders, Expenses |
| Operations | Time, Stock, Payments, Banking |
| Reporting | Reports, Aging |
| Inbox | Approvals, Notifications, Activity log |
Home is a grid of count and money tiles — contacts, invoices, bills, purchase orders, expenses, approvals waiting, unread notifications, GL accounts, total bank balance, receivables and payables — most of which tap through to the matching list or aging view. The GL accounts tile is a count only, since the chart of accounts is web-only. The grid is filled by one call rather than a dozen, and every tile fails soft: a figure the server does not return shows a dash rather than a zero, and a failed refresh leaves the last numbers on screen, so the screen still opens with no signal.
Dashboard is the accounting overview: receivables, payables, cash and bank per account, and income against expense over a window you choose. A From/To pair bounds the income and expense figures and defaults to month-to-date; an optional As of date moves the receivables, payables and cash snapshot backwards, and clearing it returns to today.
Documents
Section titled “Documents”The document lists — invoices, bills, estimates, sales orders, credit notes, vendor credits, purchase orders, retainers and expenses — are searchable, filter by status, page as you scroll and pull down to refresh. Two lists are simpler: Payments is a plain list with a customer/vendor switch and no search, and Contacts searches the offline copy on the handset with no status filter.
You can raise an invoice, a bill, an estimate, a retainer invoice or an expense from the phone. You cannot edit one afterwards — there are no edit screens in the app, so a correction means opening the record on the web. What the phone does instead is act on a document once it exists:
| Document | What you can do on the phone |
|---|---|
| Invoice | Create, mark sent, view or share the branded PDF, put a collections hold on or off, attach files |
| Estimate | Create, move it through its statuses, convert to a sales order or straight to an invoice |
| Sales order | Move it through its statuses, and invoice it — including part of it, by editing the quantity on each line |
| Bill | Create, open it for payment, attach files |
| Purchase order | Move it through its statuses |
| Credit note / vendor credit | Issue, cancel, void, unapply an allocation, refund it, and void that refund |
| Retainer invoice | Create, issue, cancel, void, record and void a payment, draw it down against an invoice, unapply a drawdown |
| Expense | Create, attach files |
| Payment | Read only — list and detail |
Receipts are the reason the camera permission is there. On an invoice, a bill or an expense, the attachments section can take a photo or pick an existing one and upload it against the record, list what is already attached, download an attachment and delete one. Attachments are never cached — a receipt is worth nothing until the server has it, so an upload needs a connection.
Sharing a PDF or a CSV goes through the normal Android share sheet, which means mail, chat or anything else installed. Because these files come down an authenticated route, the app fetches the bytes and hands over the file itself rather than a link.
Approvals
Section titled “Approvals”The approvals inbox lists what is waiting on you, with the document type, its reference and its amount. Opening one shows the request, the document behind it, the submitter’s note, the step ladder and the history of who did what. Invoices, bills and purchase orders tap through to the record itself; approvals on other document types — expenses and journal entries among them — show the summary only.
Four actions are available where the step allows them: approve, reject, comment and recall your own request. Rejecting requires a comment — the submitter needs to know why — and the dialog will not submit without one.
Banking
Section titled “Banking”Two banking jobs live on the phone; the rest stay on the web. See Banking for how they fit the wider module.
- Bank accounts and their transactions are read-only, filterable by status including uncategorized.
- Import a statement — pick the
.ofxor.qiffile with the system file picker. The format is pre-selected from the extension, and the result is reported as new lines against lines already imported and skipped, so re-importing an overlapping statement is safe and visibly so. - Reconcile — the account’s reconciliations, and a worksheet that fits the arithmetic on a phone: opening balance plus cleared movement against the statement’s closing balance, with the difference called out and the outstanding items underneath. A draft can be completed or discarded, and a completed one reopened.
Matching and categorizing statement lines, and bank rules, are web-only.
Reports
Section titled “Reports”The Reports hub opens eight report screens: trial balance, profit & loss, balance sheet, cash flow, sales by item, sales by customer, expenses by category, and aging with receivables and payables on separate tabs.
Seven of the eight export to CSV through the share sheet — every one except cash flow. Profit & loss and balance sheet each carry a Compare to previous period toggle, off by default, that reveals a comparison window — a second date range on the profit & loss, a single Compare as of date on the balance sheet, which is a point in time rather than a period — and adds previous-period and variance columns once the server returns them.
Amounts with no currency code are in the company’s base currency and render as plain decimals; each bank account on the dashboard renders in its own currency.
Stock and time
Section titled “Stock and time”Stock answers two questions with a chip each: what is on the shelf, and what is about to run out. The reorder list states each item’s shortfall rather than its quantity, because the person reading it is about to raise a purchase order. Shortest items sort first on both lists. An item’s detail screen shows its movement ledger — every receipt, sale, return and adjustment — and lets you correct the count with a stock adjustment.
Time is one screen scoped by an optional project filter. Unfiltered, it lists every project’s entries and the button logs time against a project you pick. Filtered to a project, it adds that project’s unbilled hours and their value, plus the action that invoices them. A billed entry is locked and taps through to the invoice it went onto; an unbilled one reopens for editing or deletion.
Both read live every time. Neither has an offline story.
Contacts and portal links
Section titled “Contacts and portal links”The contacts list works offline. A contact’s detail screen is live and shows more than the list does, including the people attached to it.
Where a contact is eligible, a Portal access card issues that contact’s read-only portal link and hands it to the share sheet — useful when a customer or vendor is standing in front of you. The same card revokes access, which stops the existing link working immediately. See Customer portal for what the recipient then sees, including the caution about not sending links out yet.
Working offline
Section titled “Working offline”Four lists — contacts, invoices, bills and expenses — are served from a local database on the handset rather than fetched. They open instantly on re-entry, search and filter locally, and work with no signal at all. When the app cannot reach the server, the cached list stays on screen under a quiet banner that says so and tells you how long ago the data last arrived.
Everything else in the app reads live.
What is cached, and what is not
Section titled “What is cached, and what is not”The local database holds six tables: contacts, items, GL accounts, invoices, bills and expenses. Only four of them are read by a screen. Items and GL accounts are kept up to date but nothing reads them yet, so Stock, the item picker and the account pickers all need a connection — the cached rows carry no quantity, no stock value and no reorder level, and showing “0 on hand” for a full warehouse would be worse than showing nothing.
The rows are deliberately slim — enough for the list, not the whole record. That has one visible consequence: the expense list’s offline search matches the expense number only, because the reference and description fields are not carried. Opening any record fetches the full version live.
Estimates, sales orders, credit notes, vendor credits, retainers, payments, time entries, attachments, approvals and notifications are not cached at all.
How it syncs
Section titled “How it syncs”The app asks the server “what changed since last time?” per entity, and the server answers with the changes, the deletions, and a bookmark to use next time. The app applies the rows, saves the bookmark, and asks again immediately if the server says there is more.
- A sync runs at sign-in and each time the app comes to the foreground. Pulling down on a cached list also triggers one.
- Deletions travel with the changes, so a record removed on the web disappears from the handset on the next sync rather than lingering.
- The first sync for an entity has no bookmark and backfills it completely. Losing or corrupting a bookmark is harmless — it just backfills again.
- Overlapping syncs are safe: they queue, and a sync straight after another does almost nothing.
- Signing out deletes the cache and the bookmarks together.
This is a read-through cache, not offline editing. There is no outbox and no queue of pending changes. Creating a document, approving a request, uploading a receipt or adjusting stock all need a live connection and fail plainly without one; they appear in the cache on the next sync.
Permissions
Section titled “Permissions”The app fetches your permissions at sign-in and refreshes them when it returns to the foreground, then uses them to avoid offering work the server will refuse. The drawer hides the three sections it knows are permission-gated — Time, Stock and the activity log. Every other destination is offered to any signed-in user, so a role without invoice access still sees Invoices in the drawer; what it meets is the screen explaining which permission is missing, rather than a form filled in and a 403 collected at the end.
This is a courtesy, not the control. The server enforces permissions on every route, including the sync call that fills the cache. Where the app has not been told what you may do, or where the server is in warn-only mode and refusing nothing, the app shows the action rather than hiding something that would in fact have worked.
What stays on the web
Section titled “What stays on the web”The app has no counterpart for these, and will not until feature work on it is picked up again:
- Your profile — name, avatar and password changes.
- Dashboard trend and comparison — the web dashboard’s period comparison, 12-month trend, aging buckets and overdue alerts. The mobile dashboard has the four cards and the date selectors described above, and nothing more.
- Common Masters and every other settings surface — roles, tax codes, price lists, projects, approval processes, workflows, custom fields, forms, document numbering, dimensions, exchange rates and payment terms.
- The general ledger — chart of accounts, journal entries, fiscal periods. GL accounts appear only as a count tile and inside pickers.
- Finance operations — budgets, fixed assets, FX revaluation, revenue recognition.
- Recurring invoices and the dunning console. A per-invoice collections hold is on the phone; the policies and the run are not.
- Six reports — general ledger, day book, budget vs actual, tax summary, GSTR-1 and GSTR-3B — plus the two stock reports, valuation and reorder.
- Editing a document, and the bank matching, categorizing and rules described above.
Connects to
Section titled “Connects to”- Banking — the full statement, matching and reconciliation model the phone carries two jobs from.
- Receivables & payables — the documents the app raises and acts on, and the dunning ladder its collections hold interrupts.
- Reports — the full report set, of which the phone shows eight.
- Customer portal — where a link shared from the contact screen lands.
- Security & access — the permission model the app mirrors and the server enforces.