English
The platform operator
This page describes the platform operator (superadmin) area - the person who administers CarMaster as a whole rather than any one business. If you are a shop administrator this area is not visible to you and nothing here concerns you directly; the manual documents it because the other pages repeatedly say "the platform operator sets" or "the operator approves" without ever explaining where that happens.
Access is granted by email address, from a configuration list. There is no button that turns an ordinary account into an operator.
Companies
Platform > Companies. Every registered business, with its location and employee counts. Opening one shows its administrators and its subscription (plan, status, current period, SMS usage), and lets you:
- change the plan or the subscription status,
- release the commitment of a shop that picked the wrong billing model on day one. Without this, the choice is fixed for a year.
A spent trial is not handed back on release: the two free months are offered once.
Plans
Platform > Plans. The plan catalogue. A plan decides which calculation prices the month (flat, per workplace, per car entering repair, or referral) and which kind of business it is meant for. Only a flat plan carries a price of its own; the rest are computed from the settings below.
Rules that will stop you if you try:
- a plan with subscriptions on it cannot be deleted (use inactive to retire it),
- an inactive plan can no longer be assigned, but existing subscriptions carry on unchanged,
- the billing mode cannot be changed while anyone is subscribed,
- the last plan offering a shop model cannot be withdrawn: without it a new shop cannot finish registering.
Pricing
Platform > Pricing settings. Set here, with no code change:
- the degressive workplace ladder,
- the price of one car entering repair,
- the supplier's per-SMS cost and the platform's markup,
- the SMS ceiling per company per month and the unpaid balance hold: a company's SMS stop when it reaches the ceiling, or while its unpaid invoices exceed the hold. One company's ceiling can be raised or lowered on its page under Platform > Companies,
- the VAT rate and its name, as they appear on the invoice. Prices are set without VAT, so the rate is added on top. Use 0 if you are not VAT registered: the invoicing software decides the treatment from the issuing company's registration anyway, and each invoice keeps the rate it was issued at rather than whatever the setting says today.
Platform > Referral settings. The referral model's switch, the monthly fee in euro, and the EUR/RON rate used for invoicing. The model cannot be switched on without a rate: a month that cannot be priced honestly is left unclosed rather than billed at a stale figure.
Alerts. You get an in-app notification when a company has used 80% of its SMS ceiling, and a notification plus an email when a company's SMS stop, for the ceiling or for unpaid invoices. Each is sent once per company and month, and the company's admins are told at the same moments. You are also notified and emailed when an erased user's Keycloak account could not be deleted and no retry could be scheduled; delete that account by hand in the Keycloak console.
Invoices and revenue
Platform > Invoices. Every issued invoice, filterable by status and by e-Factura state. Two actions:
- Mark paid - usually unnecessary: an invoice settles itself once the collection is recorded in the invoicing software, and a daily sweep catches anything that notification lost. The action stays for the cases where confirmation never arrived. Any grace period or suspension lifts automatically at that moment.
- Void - write off an invoice that will never be collected. Without it, the only way out of the dunning process is payment. Note: an invoice already submitted to SPV can no longer be cancelled; a storno invoice is issued instead, which consumes a number in the series and stays on record at ANAF. The confirmation dialog tells you which of the two is about to happen.
Both actions are written to the audit log, together with who performed them.
The audit log is tamper-evident: each entry is cryptographically linked to the one before it, so an entry edited or deleted directly in the database is detected. Platform operators can check it with GET /platform/audit-logs/verify, which names the first affected entry. To catch a complete rewrite as well, compare the tip it reports with the "audit chain tip" lines in the server log.
The e-Factura column shows what became of the document at ANAF: not submitted, processing, sent, rejected, or submission failed. A failed submission is retried automatically every hour and alerts the platform operators; filter on "Not submitted" and "Submission failed" to see what still owes a submission.
Platform > Revenue. Issued / paid / outstanding totals per currency, the series over time, a breakdown per plan and per company, with CSV export.
Moderation
Platform > Public requests. Locations are submitted for approval automatically on creation and become visible in the customer app only once approved. Approve, reject or withdraw them here. An approved location that later changes its name, description, city, address, phone or video link returns to the queue automatically: otherwise approval could be obtained on one text and a different one displayed.
Platform > Ratings. Customer reviews, for moderation. Each customer holds one review per location, and removing one keeps their slot: they cannot post a replacement.
Platform > Ratings of clients. The ratings service businesses gave customers, searchable by the customer's name, phone or email, or the location. When a customer objects to one (usually through a support ticket), remove it: it stops counting everywhere, and that job cannot be rated again. Removals are recorded in the audit log.
Platform > Tickets. Support requests raised from the apps, by shops and car owners alike. The list filters by status and by category, and searches on the subject or the ticket number.
Open a ticket's conversation to reply. Your reply moves the ticket to Answered on its own, so you never have to set it by hand; a message from the other side brings it back to In progress, so the status always says whose court the ball is in. You can attach photos too.
Once the problem is settled, close the ticket from the list or from the conversation. The person who opened it can close it as well. A new message on a closed ticket reopens it, so a problem that comes back stays in the same thread.
A new ticket reaches you as an in-app and push notification, at the addresses on the platform operator list. The Tickets menu entry also carries a count of the tickets nobody has picked up yet. Your own Support page links straight to this inbox rather than to a personal list: a ticket you opened would be addressed to yourself.