HowToRomania
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Romanian company data, e-Factura and legislation: CUI lookup, courts, risk, invoices, laws
| Author | io.howtoromania |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 254 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"HowToRomania": {
"url": "https://api.howtoromania.io/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (15)
lookup_companyGiven a Romanian CUI/CIF (fiscal code, optionally prefixed RO), returns ANAF public registry data in English: name, addresses, trade register number, VAT status, active/inactive, e-Factura registration, plus the BNR EUR/RON rate.
Parameters:
cui(required) — string — Romanian CUI, e.g. 14399840 or RO14399840include_fx— boolean — Include BNR EUR/RON rate (default true)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_company_financialsAnnual financial statements filed with ANAF for a Romanian company (by CUI), in English: net turnover, revenue, expenses, gross/net profit (negative = loss), employees, assets, cash, debts, equity, plus net margin, debt-to-equity, ROE/ROA and YoY revenue growth. Amounts in RON. Costs 3 credits; not billed if nothing is found.
Parameters:
cui(required) — string — Romanian CUI, e.g. 14399840 or RO14399840years— integer — Most recent filed years to return (default 3, max 5)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_company_court_casesCourt cases (portal.just.ro, Ministry of Justice) where a Romanian company (by CUI) is a party: summary (total, by category/stage/company role, pending vs decided, insolvency) and a case list with court, subject, stage, company role, other parties and last/next hearing. Natural persons are masked (GDPR). Criminal cases show only category, stage, dates and the company's own role (criminalDetailsWithheld: true). Costs 15 credits; not billed if nothing is found.
Parameters:
cui(required) — string — Romanian CUI, e.g. 14399840role— string — Filter by the company's role, e.g. Reclamant (plaintiff), Pârât (defendant), Debitor, Creditorlimit— integer — Max cases returned (default 50, max 200); summary covers allsince— string — Only cases registered on/after this date (YYYY-MM-DD). Default: Jan 1, three years agocategory— string — Filter by category, e.g. Civil, Penal, Insolventa, Contencios administrativ si fiscal
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_court_caseFull detail of a Romanian court case by its number (e.g. 9430/271/2025) from portal.just.ro: court, subject, stage, parties with roles (natural persons masked), all hearings with outcomes, and appeals. Criminal cases return only category, stage and dates (criminalDetailsWithheld: true). Costs 1 credit; not billed if not found.
Parameters:
case_number(required) — string — Case number as shown by courts, e.g. 9430/271/2025
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_company_risk_reportOne-call due-diligence report for a Romanian company (by CUI): ANAF status (active/inactive, VAT, e-Factura), last 3 years of financials, court-case summary (portal.just.ro) and ONRC registry data when available, with a transparent rule-based score 0-100 (higher = fewer risk signals) and explained flags. Informational only, NOT credit advice. Costs 30 credits once for this call; the included financials, court cases and registry reads are not billed again. Not billed if the CUI is unknown.
Parameters:
cui(required) — string — Romanian CUI, e.g. 14399840 or RO14399840
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_company_representativesTrade-register data for a Romanian company (by CUI) from the ONRC monthly open-data snapshot: registration number, EUID, legal form, registry status (decoded), authorized CAEN codes and legal representatives (names and roles, e.g. administrator, lichidator). Costs 5 credits; not billed if the CUI is not found.
Parameters:
cui(required) — string — Romanian CUI, e.g. 14399840 or RO14399840
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
validate_efacturaValidates a UBL 2.1 invoice/credit note against RO e-Factura rules (CIUS-RO) using ANAF's public validation service (XSD + Schematron, no ANAF account needed) plus fast local checks (totals, VAT breakdown, CUI checksums, RO county codes, Bucharest SECTORn). Returns valid true/false and the exact rule codes (BR-xx, BR-RO-xx) with English/Romanian messages. Costs 1 credit; not billed if ANAF is unreachable.
Parameters:
xml(required) — string — UBL 2.1 Invoice or CreditNote XML (RO e-Factura / CIUS-RO)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
generate_efacturaBuilds a valid RO e-Factura (CIUS-RO 1.0.1, UBL 2.1) invoice XML from simple JSON: seller/buyer (just the CUI is enough: name, address, county code and VAT status are auto-filled from ANAF), lines with quantity, unit price and VAT rate (default 21%; categories S, Z, E, AE reverse charge, K, G, O not subject). Computes line, VAT and grand totals and returns the XML plus ANAF's validation verdict (public validation service). Does NOT submit to SPV. Costs 2 credits; not billed on errors.
Parameters:
number(required) — string — Invoice number, e.g. HTR-0001seller(required) — objectbuyer(required) — objectlines(required) — arraynote— stringdueDate— stringautofill— boolean — Fill parties from ANAF by CUI (default true)currency— string — Default RONissueDate— string — YYYY-MM-DD, default todaypaymentTerms— stringvatToRonRate— number — Required if currency != RON (RON per unit, e.g. BNR rate)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
parse_efacturaTurns a UBL 2.1 e-Factura invoice or credit note XML (e.g. downloaded from ANAF SPV) into clean English JSON: number, dates, type, currency, seller/buyer (name, VAT id, CUI, address, contact), payment means and IBAN, lines (name, quantity, unit, price, net, VAT), VAT breakdown and totals. Costs 1 credit; not billed on errors.
Parameters:
xml(required) — string — UBL 2.1 Invoice or CreditNote XML (RO e-Factura / CIUS-RO)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
efactura_to_pdfRenders a valid e-Factura XML as PDF using ANAF's public transformation service (no ANAF account). Returns the PDF as a base64 resource. The XML must pass validation. Costs 1 credit; not billed on errors.
Parameters:
xml(required) — string — UBL 2.1 Invoice or CreditNote XML (RO e-Factura / CIUS-RO)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
search_legislationFinds Romanian normative acts on legislatie.just.ro by citation or title words: 'Legea 31/1990', 'OUG 195/2002', 'HG 1/2016', 'Codul fiscal', 'Codul muncii', or words from the title. Ranked so the main act comes first (codes and laws before decrees/orders). Returns act ids for get_legal_act / get_legal_article. Costs 1 credit; not billed if nothing matches. Source: legislatie.just.ro (Ministry of Justice); informational, consolidated forms are unofficial, only Monitorul Oficial text is authentic.
Parameters:
q(required) — string — Citation or title words, e.g. 'Legea 31/1990' or 'Codul fiscal'type— string — Act type filter, e.g. LEGE, ORDONANTA DE URGENTA, HOTARARE, ORDINyear— stringlimit— integernumber— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_legal_actCurrent consolidated text of a Romanian act by legislatie.just.ro id (from search_legislation), split by article: title, issuer, publication, consolidation date, version list and articles (number, heading, text, count of amendments). Paged with offset/limit (default 50 articles). Core codes (Codul fiscal 171282, Codul muncii 41627, Codul civil 175630, Codul de procedură civilă 140271, Codul de procedură fiscală 170007, Legea 31/1990 798) also work offline. Costs 1 credit. Source: legislatie.just.ro (Ministry of Justice); informational, consolidated forms are unofficial, only Monitorul Oficial text is authentic.
Parameters:
id(required) — string — legislatie.just.ro DetaliiDocument id, e.g. 171282limit— integeroffset— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_legal_articleOne article in its current consolidated form, e.g. Codul fiscal (171282) art. 291 (VAT rates), with paragraph/letter structure and dated amendment notes (what changed it and when). Article numbers like '293^1' are supported. Costs 1 credit; not billed if not found. Source: legislatie.just.ro (Ministry of Justice); informational, consolidated forms are unofficial, only Monitorul Oficial text is authentic.
Parameters:
id(required) — string — Act id, e.g. 171282 for Codul fiscalarticle(required) — string — Article number, e.g. 291 or 293^1
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_legal_act_historyConsolidation dates (with version ids) and the dated list of amendments for a whole act or one article: date in force, what was changed and by which act. Useful for 'what was the VAT rule on date X'. Costs 2 credits; not billed if not found. Source: legislatie.just.ro (Ministry of Justice); informational, consolidated forms are unofficial, only Monitorul Oficial text is authentic.
Parameters:
id(required) — stringarticle— string — Limit to one article, e.g. 291
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_new_legal_actsActs newly indexed by legislatie.just.ro (laws, government ordinances and decisions, ministerial orders, court decisions published in Monitorul Oficial) with an in-force date on/after `since` (default: last 7 days, max 35). Costs 1 credit. Source: legislatie.just.ro (Ministry of Justice); informational, consolidated forms are unofficial, only Monitorul Oficial text is authentic.
Parameters:
since— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.