Brivio Documentation
Modules

Accounting practice

The workspace for accountants who keep the books for several companies.

What it covers

Fast switching between client companies with separate rights on each, a shared tax calendar showing deadlines per company, a document inbox and portfolio-wide consolidation.

Add clients by CUI

Under Practice → Clients, paste your clients' CUIs (with or without RO, one per line or comma-separated; optionally the client's email on the same line). For each CUI:

  • if the company has no Brivio account, we look it up at ANAF and create it in your practice, within your plan's limit. If you added an email, the client gets the owner invitation;
  • if the company already has a Brivio account, its owner gets an access request and decides. You get no access without their consent;
  • if the company is already in your practice, the row is marked and skipped.

The list is processed in chunks and keeps its state, so you can reload the page. Rows where ANAF did not answer, or that hit the plan limit, can be retried. CUIs pasted at signup, in the "Bring your clients" step, show up here and are processed the same way.

Access to client data

Your practice sees a client's data (invoices, SPV, journal, consolidation, eTVA, ANAF risk) only while the client has granted it active accountant access:

  • when you connect an existing company by its identifier (slug), the client gets an access request under Settings → Connections. Until they approve it, the company is listed but none of its data is shown;
  • companies your practice creates (by CUI, or when moving from another program) start with active access, so you can keep their books until the owner takes over. The owner sees that access under Settings → Connections and can revoke it at any time;
  • when the client (or the practice) revokes access, your practice's members leave the client's company at once and can no longer switch into it.

For clients: how to give or revoke your accountant's access

  1. Open Settings → Connections, section Accountant access. It lists every practice that asked for access to your company and the state of each request.
  2. To give access, press Approve on the practice's row. From then on the practice sees your company's invoices, SPV messages and books.
  3. To revoke access, press Revoke. The practice's members leave your company at once, can no longer switch into it and see nothing new. What they did until then (journal entries, filed returns) stays in your company.
  4. If you change accountants, revoke the old practice and approve the new one's request. Both actions are recorded in your company's audit log.

Only the company's owner or an administrator can approve or revoke. A practice can never approve its own request, neither in the app nor through the API.

SPV status across the portfolio

Cabinet → Client SPV status shows, in one table, the e-Factura/SPV state of every managed company: last sync, unread messages (with critical ones — enforcement, tax decisions, audit notices — flagged separately), invoices ANAF rejected, invoices with at most 2 working days left in the 5-working-day legal window (OUG 89/2025), invoices already past it, and when the ANAF connection expires. Rows are ordered by severity, so the company about to be fined or to lose its connection comes first.

The table is read-only: sync, acknowledge and download stay in each company's SPV inbox. The same data is available through the API (GET /v1/cabinet/spv-status, scope efactura:read), the SDK (client.cabinet.spvStatus()), the CLI (brivio cabinet spv-status --only-problems) and MCP (brivio_cabinet_spv_status).

e-TVA across the portfolio (P300 vs D300)

Cabinet → e-TVA portfolio compares, for every managed client and the chosen month, ANAF's pre-filled RO e-TVA return (P300, received automatically from SPV or uploaded by hand) with the D300 computed from the client's books. Each row shows the status (significant differences — at least 20% and 5,000 RON on a row —, minor, matching, or no P300), the D300 − P300 gap on collected VAT (row 19) and deductible VAT (row 30), and the main cause.

Causes are derived from the client's documents: issued invoices never sent to e-Factura, invoices sent after the P300 was generated, purchase invoices in SPV that were not booked, purchases outside e-Factura (receipts, imports), different VAT rates, intra-EU or reverse-charge operations, regularisations and carried-forward balances. Whatever cannot be explained stays visible as “Unexplained”.

“Open reconciliation” switches to the client's company, in Accounting → Tax → e-TVA reconciliation, where every row of the return carries its cause and the amount it accounts for, and the documents are listed below the table (linked to the invoice or the SPV inbox) with what to do for each category.

ANAF risk across the portfolio

Cabinet → ANAF risk gives every managed client a score from 0 to 100, built only from signals Brivio already holds, with the points of each signal shown next to it:

  • the company struck off (50) or inactive (40) at ANAF — from the weekly fiscal-vector check;
  • overdue declarations in the current and previous month, from the deadline matrix (15 each, at most 30);
  • e-Invoices rejected by ANAF in the last 90 days (10, plus 2 for each further one, at most 20);
  • the company's customers inactive or struck off at ANAF that still have open invoices (10, from three customers 15);
  • the VAT exemption ceiling (from 85%: 10, exceeded: 25) and the 100,000 EUR micro ceiling (from 80%: 10, exceeded: 25);
  • P300 vs D300 differences (significant 20, minor 5);
  • the last SAF-T vs D300/D394 cross-check (blocking disagreement 20, warnings 5).

50 points and above is high risk, 20–49 medium, below 20 low. A signal that could not be checked (ANAF status not yet observed, no P300 received, SAF-T cross-check never run) is shown as “Not checked”, never counted as clean. The SAF-T cross-check result is saved per period every time it runs on the SAF-T export screen.

The score is a prioritisation aid, not a prediction of an audit. The same data is available through the API (GET /v1/cabinet/risk, scope accounting:read), the SDK (client.cabinet.risk()), the CLI (brivio cabinet risk --band high) and MCP (brivio_cabinet_risk).

Missing documents, monthly

Cabinet → Missing documents proposes, for last month, one request per managed client with active accountant access, with two lists:

  • outgoing bank payments that are still unreconciled (unmatched, partially matched or only suggested), leaving out transfers between own accounts, taxes paid (linked to a tax obligation or categorised to 44x/431/436) bank fees (627/666 or fee wording) and salaries (421–427 or salary wording), already backed by the payroll sheet;
  • recurring suppliers — with a received invoice or an expense in at least 2 of the 3 previous months — that have nothing in the checked month, and no e-Invoice in SPV from the same CUI either.

Nothing reaches the client until you confirm (Send per row or Send all N requests). The client sees the request in the portal and in Requests, with an in-app and email notification. Reminders from Cabinet → Requests follow the ladder: in-app at the due date, email after 2 days, WhatsApp after 5 days, only for members who turned WhatsApp on in their preferences. The list is proposed automatically on the 3rd of every month, with a notification to the cabinet's admins; a request already sent for the same month is not proposed again.

Worth knowing

Accountant users are never counted and never billed, on any plan. What you pay for is the number of organizations in the portfolio, through the matching resource pack.

The practice's own company does not count towards your clients' companies. While checkout is not open yet, the launch allowance applies: you can add up to 50 client companies and 10 internal members per company without a pack. Companies added thanks to the allowance are stamped with the date they joined, so moving to paid is an explicit decision announced in advance.

A practice registered as an SRL is still a practice: if you created it through the "Accounting firm" registration, it keeps its SRL tax regime for its own returns and gets the practice portal.

The fourth and later internal members of a company on the free plan also come in through the launch allowance (up to 10 internal members). The company is stamped with the date and the addition is recorded in the audit log.

When a free plan limit is reached while payments are not open yet, Brivio does not send you to a checkout that cannot take money: it tells you the launch period is free and offers a "Notify me when payments open" button. The request is saved for the company and the user, and we let you know when paid plans open.

Companies created from a CUI

When you add a client by CUI, Brivio uses the ANAF answer it already has: VAT payer status (the VAT number gets the RO prefix only for a VAT-registered company), cash-basis VAT, registered office address, CAEN code and legal form. The tax regime follows the legal form: a PFA gets the PFA regime (real income), a sole proprietorship (II) the II regime, an SRL the micro-enterprise regime. ANAF does not say whether an SRL pays micro tax or profit tax, nor whether a PFA is on an income norm, so the regime is flagged "to check": confirm it in the client company's settings before the first declaration.

SPV sync for all clients

"Sync SPV for all clients" on Cabinet pulls the SPV inbox only for the clients the practice manages and that have granted it active accountant access. Your own companies and clients who withdrew access are left out. At most 50 clients are synced per run; the rest are reported as "deferred" so you know to run it again.

Pausing, archiving or removing a client is recorded with the name of the person who did it, in both the practice's and the client's audit log.

On this page