{
  "id": 3915261,
  "title": "Every ANAF e-Factura rejection, explained — a developer's field guide",
  "url": "https://urgent.news/2026/08/28/every-anaf-e-factura-rejection-explained-a-developers-field-guide",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-28T06:54:40.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/gabrielm92/every-anaf-e-factura-rejection-explained-a-developers-field-guide-lom"
  },
  "original_language": "en",
  "account": "Romania's e-Factura system is mandatory, but the challenge lies in ANAF's complex system. Developers often encounter rejection codes that appear like hex dumps, making it difficult to understand why an invoice was rejected. There are four main reasons for e-Factura rejection: schema/RO_CIUS validation, missing or malformed mandatory fields, certificate/OAuth lifecycle issues, and SPV submission state. RO_CIUS stands for Romania's Core Invoice Usage Specification, a national profile built on top of the EU standard EN 16931. Even if an XML is valid UBL, it can still be rejected by RO_CIUS due to country-specific constraints. To read a cryptic ANAF error code, it's best to use a validator that translates the rule into plain language, such as the free Fiscura validator (fiscura.ro). Developers should avoid building ANAF's certificate, OAuth, and SPV lifecycle from scratch and instead use EU-hosted REST API tools like the @gaperi/fiscura-sdk for a seamless integration experience.",
  "summary": "Romania's e-Factura is mandatory, and the hard part isn't the idea — it's ANAF's stack. You hit SOAP endpoints, an OAuth + digital-certificate lifecycle, and rejection codes that read like hex dumps. This is the field guide I wish I'd had: what actually makes ANAF reject an invoice, and how to read the error. Why does ANAF reject my e-Factura? Almost every rejection falls into one of four…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}