oneapi
Sign in
Anaf v1 / Declarații D

Render PDF

The return as a PDF, the way a person reads it — for the file, for the client or for signing. The response is the document itself, not JSON.

POST
https://oneapi.ro/api/anaf/v1/declaratii/{form}/render

Path parameters

NameTypeDescriptionExample
formrequired string Form code (D100, D112, D300, D394…). The full list is at /anaf/v1/declaratii/forms.

Request body

The request body is the whole document, sent raw (Content-Type: application/xml) — not an object with fields.

D394

d394.xml application/xml · 1,3 KB — sent as is, in the request body.

D100

d100.xml application/xml · 0,4 KB — sent as is, in the request body.

D390

d390.xml application/xml · 0,5 KB — sent as is, in the request body.

D311

d311.xml application/xml · 0,4 KB — sent as is, in the request body.

Query parameters

This route accepts no query parameters.

How it behaves

  • The document can also be sent as a file: multipart/form-data with the fisier field (curl -F fisier=@document.xml), instead of the raw body. The file content becomes the request body, so the result is identical; options stay in the query string, and any other form field next to fisier returns 422 camp_necunoscut.
  • Takes the XML of a "D" declaration and returns a readable PDF. Local (dompdf), in-memory.
  • Zero retention: the XML received is not written and not logged.

What it is for

  • A printable copy of the declaration, for the file.

Response structure

FieldTypeDescription

Response examples

body: @d394.xml

POSThttps://oneapi.ro/api/anaf/v1/declaratii/D394/render
The response is a binary document, not JSON: application/pdf, 26,6 KB in this example.

Download the document this example returns

Error codes

CodeSlugWhen it occurs
401neautentificatToken missing, invalid, expired or revoked.
403feature_indisponibilThe current plan does not include the feature the route depends on.
404negasitUnsupported form.
422xml_invalidInvalid XML — it cannot be rendered.
429cota_depasitaThe plan's monthly quota has been exceeded (see Retry-After).

Errors in the Anaf module use the same envelope as the rest of the platform, with two extra fields: {eroare: {cod, mesaj, camp, request_id}}. eroare.cod is stable and is what you branch on; on validation (422) the code is case-specific: xml_invalid, xml_nu_e_factura, unitate_necunoscuta, luna_invalida and so on. camp points at the offending field when one can be identified.

{
    "eroare": {
        "cod": "xml_invalid",
        "mesaj": "Invalid XML — it cannot be rendered.",
        "camp": "form",
        "request_id": "0199c1f0-6e1a-7c3d-9b2f-4a8e5d1c7b04"
    }
}