{"openapi":"3.1.0","info":{"title":"e-Factura Validator (Romania) – also Peppol BIS 3.0 and EN 16931","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.","version":"0.1.0"},"paths":{"/v1/validate":{"post":{"summary":"Validate Paid","operationId":"validate_paid_v1_validate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/company/{cui}":{"get":{"summary":"Company Lookup","operationId":"company_lookup_v1_company__cui__get","parameters":[{"name":"cui","in":"path","required":true,"schema":{"type":"string","description":"Romanian fiscal code (CUI/CIF), 2-10 digits, optional RO prefix","examples":["RO14399840"],"title":"Cui"},"description":"Romanian fiscal code (CUI/CIF), 2-10 digits, optional RO prefix","examples":{"example":{"value":"RO14399840"}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/fx":{"get":{"summary":"Fx All","operationId":"fx_all_v1_fx_get","parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date, YYYY-MM-DD (default: today)","examples":["2026-10-30"],"title":"Date"},"description":"Date, YYYY-MM-DD (default: today)","examples":{"example":{"value":"2026-10-30"}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/fx/{currency}":{"get":{"summary":"Fx One","operationId":"fx_one_v1_fx__currency__get","parameters":[{"name":"currency","in":"path","required":true,"schema":{"type":"string","description":"ISO 4217 currency code","examples":["EUR"],"title":"Currency"},"description":"ISO 4217 currency code","examples":{"example":{"value":"EUR"}}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date, YYYY-MM-DD (default: today)","examples":["2026-10-30"],"title":"Date"},"description":"Date, YYYY-MM-DD (default: today)","examples":{"example":{"value":"2026-10-30"}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/calendar/holidays":{"get":{"summary":"Cal Holidays","operationId":"cal_holidays_v1_calendar_holidays_get","parameters":[{"name":"year","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Year (default: current)","examples":[2026],"title":"Year"},"description":"Year (default: current)","examples":{"example":{"value":2026}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/calendar/business-day":{"get":{"summary":"Cal Business Day","operationId":"cal_business_day_v1_calendar_business_day_get","parameters":[{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Date, YYYY-MM-DD (default: today)","examples":["2026-10-30"],"title":"Date"},"description":"Date, YYYY-MM-DD (default: today)","examples":{"example":{"value":"2026-10-30"}}},{"name":"add","in":"query","required":false,"schema":{"type":"integer","description":"Working days to add (negative = back)","examples":[3],"default":0,"title":"Add"},"description":"Working days to add (negative = back)","examples":{"example":{"value":3}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/calendar/deadlines":{"get":{"summary":"Cal Deadlines","operationId":"cal_deadlines_v1_calendar_deadlines_get","parameters":[{"name":"period","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Month, YYYY-MM (default: current)","examples":["2026-10"],"title":"Period"},"description":"Month, YYYY-MM (default: current)","examples":{"example":{"value":"2026-10"}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/iban/{value}":{"get":{"summary":"Iban Check","operationId":"iban_check_v1_iban__value__get","parameters":[{"name":"value","in":"path","required":true,"schema":{"type":"string","description":"IBAN, spaces allowed","examples":["RO49AAAA1B31007593840000"],"title":"Value"},"description":"IBAN, spaces allowed","examples":{"example":{"value":"RO49AAAA1B31007593840000"}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/generate":{"post":{"summary":"Generate Paid","operationId":"generate_paid_v1_generate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/fix":{"post":{"summary":"Fix Paid","operationId":"fix_paid_v1_fix_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/validate/free":{"post":{"summary":"Validate Free","operationId":"validate_free_v1_validate_free_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Info","operationId":"info__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/llms-full.txt":{"get":{"summary":"Llms Full Txt","operationId":"llms_full_txt_llms_full_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/ro/erori/":{"get":{"summary":"Rules Index Ro","operationId":"rules_index_ro_ro_erori__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/en/rules/":{"get":{"summary":"Rules Index En","operationId":"rules_index_en_en_rules__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/ro/erori/{rule_id}":{"get":{"summary":"Rule Ro","operationId":"rule_ro_ro_erori__rule_id__get","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","description":"Validation rule id (CIUS-RO, EN 16931, Peppol)","examples":["BR-RO-110"],"title":"Rule Id"},"description":"Validation rule id (CIUS-RO, EN 16931, Peppol)","examples":{"example":{"value":"BR-RO-110"}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/en/rules/{rule_id}":{"get":{"summary":"Rule En","operationId":"rule_en_en_rules__rule_id__get","parameters":[{"name":"rule_id","in":"path","required":true,"schema":{"type":"string","description":"Validation rule id (CIUS-RO, EN 16931, Peppol)","examples":["BR-RO-110"],"title":"Rule Id"},"description":"Validation rule id (CIUS-RO, EN 16931, Peppol)","examples":{"example":{"value":"BR-RO-110"}}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/static/site.css":{"get":{"summary":"Site Css","operationId":"site_css_static_site_css_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sample.xml":{"get":{"summary":"Sample Invoice","operationId":"sample_invoice_sample_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/metrics":{"get":{"summary":"Prometheus Metrics","operationId":"prometheus_metrics_metrics_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/saft/validate":{"post":{"summary":"Saft Validate","operationId":"saft_validate_v1_saft_validate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/saft/validate/free":{"post":{"summary":"Saft Validate Free","operationId":"saft_validate_free_v1_saft_validate_free_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}