{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"uk.alexhub/einvoice-validator","title":"e-Factura Validator (Romania)","version":"1.4.0","description":"Check a Romanian e-Factura (UBL 2.1, CIUS-RO 1.0.9) before uploading it to ANAF SPV, and get the exact fix for every error: plain-English explanation, the official Romanian rule text, the UBL path of the field and, for amount errors, the correct value computed from the invoice (chained, so following the report gives a consistent invoice). Also validates Peppol BIS Billing 3.0 and EN 16931. No account: $0.01 per invoice via x402, plus a small free tier.","websiteUrl":"https://einvoice.alexhub.uk","remotes":[{"type":"streamable-http","url":"https://einvoice.alexhub.uk/mcp"}],"authentication":{"required":false,"note":"no account or API key; paid tools use x402 in the request _meta"},"pricing":{"protocol":"x402","network":"eip155:8453","asset":"USDC","validate_invoice":"$0.01","fix_invoice":"$0.05","generate_invoice":"$0.05","validate_saft":"$0.50","free":"validate_invoice_free: 3 per day per IP; lookup, explain, BNR rates, calendar and IBAN tools are free"},"tools":[{"name":"validate_saft","description":"Check a Romanian SAF-T file (D406) before filing it with ANAF: runs ANAF's official validator (DUKIntegrator) for the reporting period and the consistency checks it does not do offline (balanced entries, GL totals, opening + movements = closing per account, trial balance, partner balances, invoice totals, VAT = base x rate, VAT codes valid for the period, CUI/IBAN check digits, chart of accounts). Every finding has a fix in Romanian and English and the correct value where computable. Paid: $0.50 USDC via x402 (network eip155:8453), charged only if a D406 was checked; without a payment it returns the payment requirements.","inputSchema":{"properties":{"xml":{"description":"The SAF-T D406 XML file content, as text (up to 25 MB here; bigger files: HTTP POST /v1/saft/validate, up to 100 MB)","title":"Xml","type":"string"}},"required":["xml"],"title":"validate_saftArguments","type":"object"}},{"name":"validate_saft_free","description":"Same check as validate_saft, free: 1 file(s) per day per client IP, report limited to the first 10 findings (the total count is given).","inputSchema":{"properties":{"xml":{"description":"The SAF-T D406 XML file content, as text (up to 25 MB here; bigger files: HTTP POST /v1/saft/validate, up to 100 MB)","title":"Xml","type":"string"}},"required":["xml"],"title":"validate_saft_freeArguments","type":"object"}},{"name":"validate_invoice","description":"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.","inputSchema":{"properties":{"xml":{"description":"The UBL 2.1 Invoice or CreditNote XML document, as text","title":"Xml","type":"string"},"profile":{"default":"auto","description":"Rule set; 'auto' reads it from the invoice's CustomizationID","enum":["auto","ro","peppol","en16931"],"title":"Profile","type":"string"}},"required":["xml"],"title":"validate_invoiceArguments","type":"object"}},{"name":"fix_invoice","description":"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.","inputSchema":{"properties":{"xml":{"description":"The UBL 2.1 Invoice or CreditNote XML document, as text","title":"Xml","type":"string"},"profile":{"default":"auto","description":"Rule set; 'auto' reads it from the invoice's CustomizationID","enum":["auto","ro","peppol","en16931"],"title":"Profile","type":"string"}},"required":["xml"],"title":"fix_invoiceArguments","type":"object"}},{"name":"generate_invoice","description":"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}]}","inputSchema":{"properties":{"invoice":{"additionalProperties":true,"description":"Invoice data, see the tool description for the shape","title":"Invoice","type":"object"}},"required":["invoice"],"title":"generate_invoiceArguments","type":"object"}},{"name":"lookup_company","description":"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.","inputSchema":{"properties":{"cui":{"description":"CUI, with or without RO, e.g. RO14399840","title":"Cui","type":"string"}},"required":["cui"],"title":"lookup_companyArguments","type":"object"}},{"name":"validate_invoice_free","description":"Same report as validate_invoice, free: 3 calls per day per client IP. When the quota is used up, switch to validate_invoice.","inputSchema":{"properties":{"xml":{"description":"The UBL 2.1 Invoice or CreditNote XML document, as text","title":"Xml","type":"string"},"profile":{"default":"auto","description":"Rule set; 'auto' reads it from the invoice's CustomizationID","enum":["auto","ro","peppol","en16931"],"title":"Profile","type":"string"}},"required":["xml"],"title":"validate_invoice_freeArguments","type":"object"}},{"name":"fx_rate","description":"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.","inputSchema":{"properties":{"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO code, e.g. EUR, USD","title":"Currency"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"YYYY-MM-DD","title":"Date"}},"title":"fx_rateArguments","type":"object"}},{"name":"ro_holidays","description":"Romanian public (legal) holidays for a year, incl. Orthodox Easter and Rusalii. Free.","inputSchema":{"properties":{"year":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"e.g. 2026, default current year","title":"Year"}},"title":"ro_holidaysArguments","type":"object"}},{"name":"ro_business_day","description":"Is a date a Romanian working day, which is the next one, and (optionally) the date N working days later. Free.","inputSchema":{"properties":{"date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"YYYY-MM-DD, default today","title":"Date"},"add_days":{"default":0,"description":"working days to add","title":"Add Days","type":"integer"}},"title":"ro_business_dayArguments","type":"object"}},{"name":"ro_tax_deadlines","description":"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.","inputSchema":{"properties":{"period":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"reporting month YYYY-MM, default last month","title":"Period"}},"title":"ro_tax_deadlinesArguments","type":"object"}},{"name":"validate_iban","description":"Check an IBAN (length and check digits) and name the Romanian bank. Free.","inputSchema":{"properties":{"iban":{"description":"IBAN, spaces allowed","title":"Iban","type":"string"}},"required":["iban"],"title":"validate_ibanArguments","type":"object"}},{"name":"explain_rule","description":"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.","inputSchema":{"properties":{"rule_id":{"description":"Rule id as reported in findings[].rule","title":"Rule Id","type":"string"}},"required":["rule_id"],"title":"explain_ruleArguments","type":"object"}}],"documentation":"https://einvoice.alexhub.uk/llms.txt"}