Generate, validate and auto-fix Romanian e-Factura (CIUS-RO) XML; CUI lookup via ANAF
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Explain one business rule by its id (e.g. BR-CO-15, BR-RO-110, PEPPOL-EN16931-R001): official text, plain-English fix and where the field lives in UBL. Free.
Rule id as reported in findings[].rule
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Explain one business rule by its id (e.g. BR-CO-15, BR-RO-110, PEPPOL-EN16931-R001): official text, plain-English fix and where the field lives in UBL. Free.
| Argument | Type | Description |
|---|---|---|
| rule_id* | string | Rule id as reported in findings[].rule |
{
"type": "object",
"title": "explain_ruleArguments",
"required": [
"rule_id"
],
"properties": {
"rule_id": {
"type": "string",
"title": "Rule Id",
"description": "Rule id as reported in findings[].rule"
}
}
}Repair the invoice automatically and return the corrected XML: county/sector/country/currency/unit codes, date formats, VAT-id prefixes, decimals, totals and VAT recomputed from the lines. Lists every change (field, old, new) and re-validates the result. Paid: $0.05 USDC via x402, charged only if something was fixed. Review the changes before sending the invoice.
| Argument | Type | Description |
|---|---|---|
| xml* | string | The UBL 2.1 Invoice or CreditNote XML document, as text |
| profile | string | Rule set; 'auto' reads it from the invoice's CustomizationID |
{
"type": "object",
"title": "fix_invoiceArguments",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml",
"description": "The UBL 2.1 Invoice or CreditNote XML document, as text"
},
"profile": {
"enum": [
"auto",
"ro",
"peppol",
"en16931"
],
"type": "string",
"title": "Profile",
"default": "auto",
"description": "Rule set; 'auto' reads it from the invoice's CustomizationID"
}
}
}Official BNR (National Bank of Romania) exchange rate: RON per 1 unit of the currency, for a date (default today; weekends/holidays return the last publication). Omit currency for all rates. Free.
| Argument | Type | Description |
|---|---|---|
| date | any | YYYY-MM-DD |
| currency | any | ISO code, e.g. EUR, USD |
{
"type": "object",
"title": "fx_rateArguments",
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Date",
"default": null,
"description": "YYYY-MM-DD"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency",
"default": null,
"description": "ISO code, e.g. EUR, USD"
}
}
}Create a complete Romanian e-Factura (UBL 2.1 CIUS-RO XML) from simple data: invoice number, dates, seller and buyer CUI, lines (name, quantity, unit, price without VAT, VAT rate e.g. 21 or 11), optional IBAN. Company names, addresses, county codes, Bucharest sectors and VAT status are filled from ANAF; totals and VAT are computed; the XML is validated before it is returned. Paid: $0.05 USDC via x402, charged only when a valid invoice is returned. Other currencies: add 'currency': 'EUR' (BNR rate used unless you pass exchange_rate). Example invoice: {"number": "FCT-0001", "issue_date": "2026-10-24", "due_date": "2026-11-23", "seller": {"cui": "RO12345678"}, "buyer": {"cui": "87654321"}, "payment": {"iban": "RO49AAAA1B31007593840000"}, "lines": [{"name": "Servicii consultanta", "quantity": 10, "unit": "ore", "price": 150, "vat_rate": 21}]}
| Argument | Type | Description |
|---|---|---|
| invoice* | object | Invoice data, see the tool description for the shape |
{
"type": "object",
"title": "generate_invoiceArguments",
"required": [
"invoice"
],
"properties": {
"invoice": {
"type": "object",
"title": "Invoice",
"description": "Invoice data, see the tool description for the shape",
"additionalProperties": true
}
}
}Romanian company data by CUI (fiscal code) from ANAF, already in e-Factura form: legal name, VAT id (RO… only for VAT payers), trade register number, address with county as ISO code (RO-CJ) and Bucharest city as SECTOR1..6, plus flags: inactive, VAT on collection, e-Factura registry. Free.
| Argument | Type | Description |
|---|---|---|
| cui* | string | CUI, with or without RO, e.g. RO14399840 |
{
"type": "object",
"title": "lookup_companyArguments",
"required": [
"cui"
],
"properties": {
"cui": {
"type": "string",
"title": "Cui",
"description": "CUI, with or without RO, e.g. RO14399840"
}
}
}Is a date a Romanian working day, which is the next one, and (optionally) the date N working days later. Free.
| Argument | Type | Description |
|---|---|---|
| date | any | YYYY-MM-DD, default today |
| add_days | integer | working days to add |
{
"type": "object",
"title": "ro_business_dayArguments",
"properties": {
"date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Date",
"default": null,
"description": "YYYY-MM-DD, default today"
},
"add_days": {
"type": "integer",
"title": "Add Days",
"default": 0,
"description": "working days to add"
}
}
}Romanian public (legal) holidays for a year, incl. Orthodox Easter and Rusalii. Free.
| Argument | Type | Description |
|---|---|---|
| year | any | e.g. 2026, default current year |
{
"type": "object",
"title": "ro_holidaysArguments",
"properties": {
"year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Year",
"default": null,
"description": "e.g. 2026, default current year"
}
}
}Romanian monthly filing deadlines (D112, D300, D100, D390, D394, D406) for a reporting month, moved to the next working day when they fall on a weekend or holiday. General rules; confirm special regimes with ANAF. Free.
| Argument | Type | Description |
|---|---|---|
| period | any | reporting month YYYY-MM, default last month |
{
"type": "object",
"title": "ro_tax_deadlinesArguments",
"properties": {
"period": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Period",
"default": null,
"description": "reporting month YYYY-MM, default last month"
}
}
}Check an IBAN (length and check digits) and name the Romanian bank. Free.
| Argument | Type | Description |
|---|---|---|
| iban* | string | IBAN, spaces allowed |
{
"type": "object",
"title": "validate_ibanArguments",
"required": [
"iban"
],
"properties": {
"iban": {
"type": "string",
"title": "Iban",
"description": "IBAN, spaces allowed"
}
}
}Validate a UBL 2.1 invoice: every rule violation with a plain-English fix, the UBL path of the field and, for amount errors, the correct value. Paid: $0.01 USDC per call via x402 (network eip155:8453); without a payment it returns the payment requirements. Only real invoices are charged. If the report has 'autofix', fix_invoice can repair those errors.
| Argument | Type | Description |
|---|---|---|
| xml* | string | The UBL 2.1 Invoice or CreditNote XML document, as text |
| profile | string | Rule set; 'auto' reads it from the invoice's CustomizationID |
{
"type": "object",
"title": "validate_invoiceArguments",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml",
"description": "The UBL 2.1 Invoice or CreditNote XML document, as text"
},
"profile": {
"enum": [
"auto",
"ro",
"peppol",
"en16931"
],
"type": "string",
"title": "Profile",
"default": "auto",
"description": "Rule set; 'auto' reads it from the invoice's CustomizationID"
}
}
}Same report as validate_invoice, free: 3 calls per day per client IP. When the quota is used up, switch to validate_invoice.
| Argument | Type | Description |
|---|---|---|
| xml* | string | The UBL 2.1 Invoice or CreditNote XML document, as text |
| profile | string | Rule set; 'auto' reads it from the invoice's CustomizationID |
{
"type": "object",
"title": "validate_invoice_freeArguments",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string",
"title": "Xml",
"description": "The UBL 2.1 Invoice or CreditNote XML document, as text"
},
"profile": {
"enum": [
"auto",
"ro",
"peppol",
"en16931"
],
"type": "string",
"title": "Profile",
"default": "auto",
"description": "Rule set; 'auto' reads it from the invoice's CustomizationID"
}
}
}