Platform / Accounting
erp.ioAccounting in the same workspace as the bench
Accounting is a full double-entry ledger that lives in the same workspace as Service. Invoices, bills, bank feeds, reconciliation, the close and the reports, under the login your mechanics already use.
Invoiced this month
$18,420
Collected
$15,960
Overdue
$1,140
Jobs completed
Hours logged
Books, not a bolt-on
A lot of shops run their books in a separate accounting package and move numbers across by hand at the end of the month. erp.io Accounting is the ledger inside the suite: a chart of accounts, journal entries that post and void properly, customers and invoices, vendors and bills, payments against both, and aging for what you are owed and what you owe.
Money is stored as whole cents, never as a floating-point number, and every change is written to a hash-chained audit trail that records what changed and who changed it. That is the part of accounting that is easy to get subtly wrong, and it is the part the module is built around.
It is designed to be the ledger Service posts into. Service invoicing is live, but it does not post here yet. When the accounting sync is built, an invoice issued on a repair, a payment received, a refund and the cost of parts used will each post to Accounting through a write API, once, with no double counting.
What Accounting does today
Ledger and journal
Chart of accounts, journal entries, posting and voiding, and a trial balance.
Receivables and payables
Customers, invoices, vendors and bills, with payments that post automatically and aging on both sides.
Bank feeds and CSV
Live transactions from connected banks through Plaid, with CSV import as the fallback.
Posting rules and reconciliation
Rules that turn bank activity into entries, and reconciliation treated as a running position rather than a monthly chore.
Nightly close checks
The month-end close as a list of checks that run every night; a period can close when every one passes.
Standard reports
Profit and loss, balance sheet, cash flows, aging, sales by customer, expenses by vendor, sales tax liability and more, exported to CSV, XLSX or PDF.
Fixed assets and schedules
Depreciation for the van and the shop equipment, and schedules for prepaids and deferred revenue.
Repair invoices posting from Service
Service invoices, payments and parts cost posting to the ledger. On the Service roadmap.
What it means for a bike shop
Your two biggest suppliers send bills every week, and some offer a discount for paying early. Those bills go into Accounting as bills against a vendor, and the payables aging tells you what is due this week. Your bank account feeds in overnight, posting rules handle the recurring lines like the card processor deposit and the rent, and the rest waits for you to categorize.
The fixed-asset register holds the things that wear out slowly: the service van, the wheel-truing and frame-facing tools, the shop refit. Depreciation schedules run on their own. Deferred revenue schedules suit prepaid service plans, where a rider pays in March for a year of tune-ups and the income belongs to the months the work happens.
At the end of the month, the close is not a pile of tasks. It is a list of checks, such as the bank being reconciled to zero difference, that have been running every night already. When they all pass, the month can close.
INV-1187 · from WO-2291
Invoice
Pay link + QR
on the roadmap
From repair to ledger
The planned flow: Service bills the finished job and the posting lands in Accounting once. Service invoicing is live; pay links, the sync and the Accounting write API are on the roadmap.
Illustration · sample data
How Service will connect
The Service plan settles who owns what. Service owns repair invoices, and will own deposits and statements, because they come from the work. Accounting will own the ledger, and gets a write endpoint so Service can post invoice issued, payment received, refund, write-off and parts cost as they happen. Each posting carries a key so it lands exactly once.
That write endpoint does not exist yet; the public Accounting API is read-only today, and building the write side is a prerequisite for Service invoices posting to the ledger. Pey then sits across both: it matches the payments Service records to the deposits that show up in your bank feed.
Two limits worth knowing. Invoices raised in Accounting itself are records in the ledger: Accounting does not email them, produce a PDF for the customer or attach a pay link. And sales tax is entered as a figure on the invoice rather than calculated from a rate table. Service invoices do not send anything yet either: marking one sent changes its status, with no email or PDF for the customer. Customer delivery and card payment are planned inside Service.
FAQ
Questions shop owners ask
Can I move my books over from QuickBooks?+
Yes. Accounting imports history from exports out of QuickBooks, Xero, FreshBooks and NetSuite: the journal, the account list and a trial balance to check the result against.
Will my repair invoices post to the books automatically?+
Not yet. Service invoices are live, but the sync to Accounting and the write API it will post through are on the roadmap. Today you record repair income in Accounting yourself, for example from the Service monthly report.
Does Accounting connect to my bank?+
Yes. Bank feeds come in through Plaid, and CSV import covers banks Plaid cannot reach. Each bank account is mapped to a ledger account before it syncs.
Can Accounting send invoices to customers?+
No. Accounting invoices are ledger records and are not emailed, turned into a customer PDF or given a pay link. Sending and collecting on repair invoices is planned in Service.
Does it calculate sales tax?+
No. Sales tax is entered as an amount on each invoice, and a sales tax liability report totals it. There is no tax rate engine.
Keep reading
Take in your next repair on BIKE.co.
30 days free, no card, every erp.io module switched on. Start with a request, end with an invoice.