1. Executive summary
SanoERP is a cloud ERP built for independent auto repair shops in Romania. It runs the whole shop on one set of data:
- the customer calls in;
- the estimate (deviz) is priced from normed times and approved by the customer from their phone;
- a work order opens by itself;
- the mechanics clock every operation on the workshop tablet;
- parts are reserved and issued against the job;
- the invoice is produced automatically and, where your country's e-invoicing is integrated, sent to it; otherwise it is saved as a PDF;
- the payment is recorded against the customer's balance.
What sets SanoERP apart is the margin on every job and the efficiency of every mechanic. These figures are measured from time the mechanics clock themselves, beside the car, against normed times. Competing products stop at the office. They record what was promised but not what actually happened in the bay, so the difference only shows up at the end of the month, if at all.
The product is sold as a modular subscription:
- a cheap base package (£4.17/month) covers users, companies, clients and vehicles, the staff list and the smart calendar;
- every other module is an extra with its own monthly price;
- a shop pays for what it switches on and can switch modules on or off at any time, without losing data.
| Key facts | |
|---|---|
| Target customer | Independent auto repair shops (1–30 people), including shops that serve fleets and insurers |
| Market | Romania first: Romanian fiscal documents, country-specific e-invoicing integration, Romanian working calendar |
| Languages | Romanian, English, German, French, Spanish |
| Modules | 15 sellable modules plus the platform core |
| Commercial model | Monthly or yearly subscription, per module; 14-day free trial; self-service signup |
| Channels | Public website with self-service signup and a free trial, public API for partners |
2. The problem SanoERP solves
A typical Romanian independent workshop runs on a mix of paper, spreadsheets, a generic invoicing program and memory:
- Estimates are not versioned. When a customer disputes a bill, the shop cannot prove which version they approved, or when.
- Work found mid-job is lost money. Worn brake discs found behind a clutch job are fitted "because the customer will surely agree". Then the customer does not agree, and the shop absorbs the cost.
- Real labour time is never captured. The shop knows what it charged, not what the job cost. Mechanic efficiency is a feeling, and margins are discovered, if at all, at month end.
- Stock leaks. Parts leave the shelf without a job behind them, and the last filter is taken by another job while the car is still on the lift.
- Invoicing is re-typing. Work orders are re-keyed into an invoicing program. Electronic invoices are uploaded by hand, and refusals go unnoticed.
- Fleet and insurance work is handled in emails. It is priced from memory, invoiced one plate at a time and split between payers by hand.
- Attendance (pontaj) is a paper sheet filled in after the fact, then re-typed by the accountant.
SanoERP replaces each of these with a document or a measurement inside a single system, where each step feeds the next automatically.
3. Value proposition
- See the margin on every job. Parts against labour, clocked time against normed time, per job, per job type and per mechanic. From any figure you can click through to the operation and the document that explain it.
- Stop losing money on disputed and extra work. Every estimate version is immutable. The customer's approval is bound to one exact version, with signature, IP address and time. Extra work becomes a new version that the customer must approve before anybody starts on it.
- Nothing is typed twice.
- The approved estimate opens the work order.
- The work order reserves the parts.
- The completed job drafts the invoice.
- The issued invoice goes to your country's e-invoicing system where it is integrated, and is saved as a PDF.
- Payments settle the customer's balance.
- The ledger derives its entries from all of the above.
- The workshop floor becomes a data source. A shared tablet in each bay, with a 4–6 digit PIN and controls sized for a gloved thumb, is cheaper to use than the paper it replaces.
- Compliance built in. It covers:
- Romanian VAT and rounding;
- e-invoicing integration specific to your country, through the shop's own connection where it is supported;
- gapless invoice numbering;
- the consumption note (bon de consum), the goods receipt (NIR) and the pontaj;
- the Romanian public-holiday calendar.
- Pay only for what you use. The base package is cheap, and modules can be switched on and off at any time with their data kept.
4. Product overview
SanoERP is organised in modules. Each module can be switched on or off per company. Switching a module off hides its screens and stops its charge. Its data stays exactly where it was and comes back whole when the module is switched on again. Some modules need others; SanoERP switches the prerequisites on for you and tells you so.
4.1 Base package (always included)
| Module | What it gives the shop |
|---|---|
| Users and roles (Identity) | Roles built from a permission matrix covering every function of every module. Users are invited by e-mail with their role chosen in the invitation. Permissions are checked on every screen and every action, and a role change applies immediately. |
| Companies (Platform) | One login can belong to several companies with a different role in each; switching company takes one click. Each company's administrators manage that company's accounts. |
| Clients and vehicles, estimates (CRM) | A client file by fiscal code; a car by plate or VIN, with its full history on one page. The estimate (deviz) prices itself from normed times and live stock, shows the expected margin, and is approved by the customer through a signed link sent by SMS or WhatsApp. |
| Smart calendar (Planner) | Bays and mechanics across the days on one board. It finds the next free slot against the real capacity of bays and people, and respects approved leave. |
| Staff | The team, their certifications (which decide who may be assigned to a job), their hourly cost (visible only to authorised people) and their workshop PINs. |
| Subscription (Billing) | What is paid each period and exactly what it is made of, with card payment and a full history. |
4.2 Extra modules
| Module | Headline | Key capabilities | Deliberate limits |
|---|---|---|---|
| Operations | The work order, from approved estimate to the car handed back | Work order opens automatically on approval. Mechanics clock each operation on the tablet. Extra work becomes a new approved estimate. Quality check before completion. Auto-Pass records, tyre storage, fleet authorisations, rework tracking. | Schedules a workshop, not mobile technicians. |
| Stock | Parts reserved against the job and issued on a consumption note | OEM and internal codes, prices and minimum levels. Automatic reservation when the work order opens. A bon de consum for every part issued. Adjustments, transfers, stock counts, valuation. Low-stock alerts and reorder points. | Not a WMS: no barcode scanning or shelf locations. |
| Procurement | Suppliers, purchase orders, and a receipt that shelves a part at its real cost | Supplier register with price lists and preferred suppliers. Purchase orders with approval. Goods receipt (NIR) at real cost. Three-way matching (order, receipt, supplier invoice). Supplier scoring. | No TecDoc/HaynesPro catalogue sync. |
| Finance | The invoice leaves the closed job by itself, ready to issue | Draft invoice from the completed work order. Romanian VAT engine. Country-specific e-invoicing with its status on the invoice where integrated; otherwise the invoice is saved as a PDF. Payments, balances, credit limits, payment terms, receivables ageing. Consolidated invoicing for fleets. Accounting export. | No SAF-T D406, e-Transport or e-TVA P300. |
| Insurance | One repair, two invoices: one to the insurer, one to the customer | RCA/CASCO claim file with the assessment and approved amount. The repair is split between insurer and customer, with the excess (franșiză) going to the customer first. Each invoice references the other. | No Audatex integration. |
| HR & payroll | Attendance, leave, shifts and the hours that reach the accountant | Clock-in and clock-out from the workshop tablet (pontaj). Leave requests with approval. Shifts built from templates against real capacity. Payroll export of hours, leave and bonus proposals. | Not a payroll engine: it exports the hours and does not compute salaries. |
| Reports (BI) | Do you earn on parts or on labour? Which mechanic carries the others? | Margin per job. Efficiency per mechanic. Job types by margin and overrun. KPI dashboard, drill-down to documents, PDF/CSV export. | No forecasting and no custom report builder. It shows "insufficient data" rather than inventing a figure. |
| Ledger | Informative bookkeeping, monthly instead of quarterly | Journal entries derived from the shop's own documents. Trial balance and account ledgers with drill-down. Comparison with what the accountant booked. SAGA export. | Informative only: it does not replace the accountant. |
| API | Programmatic access for partners and fleets | REST with the version in the address. OAuth 2.0 client credentials with permission-based scopes. OpenAPI documentation generated from the code. Signed webhooks with retries and replay. | Only appointments, clients and vehicles can be written; money and stock are read-only through the API. |
5. How a job flows through SanoERP
- Appointment. The receptionist books the car on the smart calendar (or a fleet or partner books it through the API). The calendar proposes the next slot where a bay and a certified mechanic are both free.
- Estimate (deviz). The advisor builds the estimate:
- labour comes from the labour catalogue's normed times and the shop's rates, or the fleet's negotiated rate;
- parts come from live stock prices;
- the expected margin is shown before quoting.
- Customer approval. The customer receives a one-time link by SMS or WhatsApp and approves or rejects the estimate from their phone, without an account. The decision is bound to that exact estimate version, with signature, IP address and timestamp.
- Work order. On approval, the work order opens by itself on the shop floor with the approved lines, and the parts are reserved in stock. A shortfall is flagged to the office and the purchasing side.
- On the floor. The mechanic signs in on the bay tablet with a PIN, starts and stops each operation, and requests the parts. Parts leave the store only on a consumption note (bon de consum) against the job.
- Extra work found mid-job. It becomes a new estimate version. The customer approves it before the work starts and before its parts can leave the shelf.
- Quality check and completion. A checklist gates completion. A rejected check sends the job back and is recorded as rework.
- Invoice. Completion drafts the invoice automatically. The receptionist checks and issues it. Issuing allocates a gapless number, freezes the content and renders the fiscal PDF.
- E-invoicing. Where your country's e-invoicing is integrated, the invoice is validated and sent through the shop's own connection, and acceptance or refusal comes back onto the invoice itself. Elsewhere the issued invoice is saved as a PDF.
- Payment. Cash, card, bank transfer or compensation is recorded and allocated to invoices. The customer's balance and ageing update immediately.
- Measurement. Clocked time against normed time and parts against labour feed the margin, efficiency and job-type reports, and the informative ledger.
- Afterwards.
- Service reminders (ITP, RCA, service, rovinietă) go out automatically before the dates.
- A comeback opens a warranty ticket whose cost is measured.
6. Specialised business scenarios
6.1 Fleet customers
Leasing companies, taxi and courier fleets and corporate car parks are the volume business of a Romanian shop. SanoERP keeps each fleet agreement in the system, with:
- a negotiated labour rate and parts discount;
- an authorisation ceiling, above which the fleet manager must approve the job;
- payment terms.
Consolidated invoicing turns a month of jobs into one invoice per period, with a vehicle-by-vehicle annex, one electronic invoice and one payment.
6.2 Insurance (daună) work
RCA and CASCO repairs are billed twice: the insurer pays what its assessor approved, and the customer pays the excess plus anything the assessor struck out. SanoERP records the claim file and the approved amount, and splits the repair into two real invoices that reference each other. The insurer is never invoiced above the approved ceiling.
6.3 Tyre storage (hotel anvelope)
Seasonal tyre sets stored for customers are custody, not stock. SanoERP records each set, where it is and who may collect it, releases it only to the right person, and bills the storage period.
6.4 Warranty, comebacks and rework
A customer returning with a complaint opens a post-sale ticket. Warranty decisions are recorded, and the cost of the redo (unpaid labour and parts) becomes a measured number rather than noise. Rework caught at quality check is tracked the same way, so the shop learns where it redoes work and why.
6.5 Service reminders
The cheapest growth a shop has. SanoERP watches the vehicle dates (inspection ITP, insurance RCA, periodic service, road-tax rovinietă) and reminds the customer ahead of time. The customer tends to book with the shop that reminded them.
6.6 Auto-Pass records
For repairs that must be reported to RAR's Auto-Pass register, SanoERP captures the data and produces a printable record and a CSV batch. It makes no legal statement about scope; that stays with the shop's compliance.
7. People, roles and companies
- Roles are built from a permission matrix: module → functional group → action. System roles are pre-seeded:
- Proprietar (owner);
- Administrator;
- Manager;
- Receptioner (front desk);
- Mecanic;
- Șef atelier (workshop lead);
- Gestionar (storekeeper);
- Contabil (accountant).
Shops can create their own roles. Every change is audited.
- Multi-company. One person, one login, several companies, with a different role in each. A company's administrator manages only that company's accounts, including making other administrators and deactivating any account except the owner's. Deactivation applies to that company only.
- Without a company, a signed-in user sees only their company section and the module price list, and can register a company from there.
- Root operators (the SanoERP team) are appointed only from the server console, with a recorded reason.
8. Commercial model
8.1 The modular plan
| Line | Price per month (excl. VAT) |
|---|---|
| Base package: users and roles, companies, clients, vehicles and estimates, staff list, smart calendar, subscription management, 3 users included | £4.17 |
| Each extra user above 3 | £1.28 |
| Operations | £6.72 |
| Finance | £5.87 |
| Stock | £4.17 |
| HR & payroll | £4.17 |
| Procurement | £3.32 |
| Reports (BI) | £3.32 |
| Insurance | £2.47 |
| Ledger | £2.47 |
| API | £2.47 |
Examples:
- A small shop that only plans its bays and keeps its client file pays £4.17.
- A shop with 5 users running Operations, Stock and Finance pays £4.17 + £6.72 + £4.17 + £5.87 + 2 × £1.28 = £23.46/month.
- Yearly billing takes 10 % off the subtotal.
Prices are versioned. A price change applies to new periods and is never applied retroactively.
The earlier bundled plans (Start, Atelier, Complet) are retired. Shops on them keep their price until the end of their current period, then move automatically to the modular plan with the modules they already use.
8.2 Trial, subscription and payment
- Self-service signup. A shop signs up on the website, verifies its e-mail, and gets its own company provisioned in seconds, with default roles, modules and settings.
- 14-day free trial. Warnings go out 7, 3 and 1 days before the end and on the last day.
- Nothing is deleted when a trial ends. At expiry the company becomes read-only: every screen, list, document and export still works, and subscribing reopens it.
- Mid-period changes are fair.
- Switching a module on is charged for the remaining days only.
- Switching one off credits the unused days on the next bill.
- Upgrades apply immediately.
- Downgrades apply at the end of the paid period.
- A downgrade that would hide a module holding data is refused, and the module is named.
- Card billing runs through Stripe. The card never reaches SanoERP's servers.
- Dunning. A failed payment is retried after 1, 3 and 7 days. A 7-day grace period follows, during which everything still works, before suspension. Card-expiry warnings go out 30 and 7 days ahead.
- Every charge becomes a proper fiscal invoice through the Finance module.
8.3 Sales channels
- A public website in five languages, with a page per module, a live price list with a monthly estimator, and a link to the free trial on every page.
- Self-service signup and trial: an acquisition channel incumbents do not use, since Romanian shops are used to buying after a demo and a contract.
- A public API and webhooks, for fleet managers, insurers and integrators.
9. Compliance and trust
| Area | What SanoERP does |
|---|---|
| E-invoicing | Integration specific to each country: where it is supported, invoices are validated before sending and sent through the shop's own connection, with status and refusals shown on the invoice. Elsewhere the issued invoice is saved as a PDF. |
| Fiscal invoices | Gapless numbering per series. Issued content is frozen and hashed and is never edited. Only a draft can be cancelled. |
| VAT | A Romanian VAT engine with the correct rates and rounding. |
| Stock documents | Goods receipt (NIR) and consumption note (bon de consum). A full stock ledger with valuation. |
| Attendance | A contemporaneous pontaj from the tablet instead of a retrospective paper sheet. |
| Audit trails | Estimate approvals, permission and role changes, module switches, subscription changes and root access are all recorded with who and when. |
| Data isolation | Every company's data is isolated at the database-query level. Cross-company leaks are guarded by automated tests. |
| Data ownership | When a company stops paying, its data stays readable and exportable. The FAQ promises it is not held hostage. |
10. Integrations
| Integration | Purpose |
|---|---|
| National e-invoicing (per country) | Sending invoices and receiving the fiscal response, where integrated |
| SAGA (and similar) | Export for the external accountant: accounting entries and payroll hours |
| Stripe | Recurring card payments for the subscription |
| SMS / WhatsApp | Estimate approval links and service reminders |
| Auto-Pass (RAR) | Printable records and CSV batches |
| Public REST API + webhooks | Fleets, insurers and partners: reads across clients, vehicles, work orders, invoices, stock and appointments; writes for appointments, clients and vehicles |
11. What SanoERP deliberately does not do
SanoERP is honest about its limits. Each one is stated on the public module pages:
- no marketing CRM (campaigns, lead scoring);
- no mobile-technician dispatch;
- no WMS (barcodes, shelf locations);
- no parts-catalogue licensing (TecDoc, HaynesPro);
- no SAF-T D406, e-Transport or e-TVA;
- no Audatex;
- no salary computation;
- no forecasting or custom report builder;
- no fiscal accounting (the ledger is informative);
- no SSO or SAML;
- no money or stock writes through the API.
12. Glossary of Romanian terms
| Term | Meaning |
|---|---|
| Deviz | Repair estimate / quotation, approved by the customer |
| Comandă de lucru | Work order |
| Bon de consum | Consumption note: the document that issues parts from stock to a job |
| NIR (Notă de intrare-recepție) | Goods receipt note: the only way stock goes up |
| Pontaj | Attendance timesheet |
| Daună, RCA, CASCO | Insurance claim; mandatory third-party liability insurance; comprehensive insurance |
| Franșiză | Insurance excess paid by the customer |
| Constatator | Insurer's assessor |
| ITP | Periodic technical inspection |
| Rovinietă | Road-use vignette |
| Hotel anvelope | Seasonal tyre storage service |
| Proprietar | Company owner role |
| Firmă | Company (tenant) |