Documentatie

De 4invoices-documentatie heeft twee lagen: het paneel, dat je zonder code gebruikt, en de publieke API, waarmee je eigen systeem facturen uitgeeft en het document door het nationale e-factureringscircuit voert (in Roemenië: e-Factura van ANAF). Deze pagina is de ingang van de tweede laag.

Open de volledige API-documentatie →

Wat je kunt automatiseren

De publieke API dekt het uitgeven van facturen en proforma's, creditnota's, klanten met een controle in het bedrijfsregister (in Roemenië: het ANAF-register), nummerreeksen en de volledige nationale e-factureringsroute (in Roemenië: e-Factura): CIUS-RO-preflight, SPV-indiening, statusopvolging, het ondertekende antwoord en de inbox met leveranciersfacturen.

https://api.4invoices.net/v1 · 25 endpoints · OpenAPI-specificatie (zonder sleutel)

invoices:read · invoices:write · clients:read · clients:write · efactura:read · efactura:submit

Authenticatie

Voor je eerste callFacturatie → Instellingen → API-toegang
bash
curl -sS -X POST https://api.4invoices.net/v1/auth/token \
  -H 'Content-Type: application/json' \
  -d '{
    "grant_type": "client_credentials",
    "client_id": "cli_XXXXXXXXXXXX",
    "client_secret": "sec_XXXXXXXXXXXXXXXXXXXX"
  }'

# → {"access_token":"eyJ...","token_type":"Bearer","expires_in":3600,
#    "scope":"invoices:read invoices:write efactura:submit"}
Alleen server-to-server. Roep de API nooit aan vanuit browser-JavaScript: het client_secret zou bij de bezoeker terechtkomen, en CORS blokkeert elke origin toch al.

Je eerste factuur in 6 stappen

  1. Maak een credential aan in het paneel, onder Facturatie → Instellingen → API-toegang, en kopieer het client_secret — het wordt één keer getoond.
  2. Vul het bedrijfsprofiel aan en activeer minstens één reeks van het type fiscale, anders geeft het uitgeven issuer_profile_incomplete of no_series_configured terug.
  3. Wissel het credential in voor een token: POST /v1/auth/token met grant_type client_credentials. Het token geldt één uur — cache het, vraag er niet één per request aan.
  4. Geef de factuur uit: POST /v1/invoices met een Idempotency-Key-header en vat_rate als percentage (21, niet 0.21).
  5. Voer de preflight (CIUS-RO voor Roemenië) uit met POST /v1/invoices/{id}/efactura/validate en stuur de factuur daarna naar het nationale e-factureringssysteem (in Roemenië: ANAF) met POST /v1/invoices/{id}/efactura/submit.
  6. Volg de status met GET /v1/efactura/submissions/{id} tot die accepted of rejected bereikt.
bash
# 1 — token (1 uur, cache het)
ACCESS_TOKEN=$(curl -sS -X POST https://api.4invoices.net/v1/auth/token \
  -H 'Content-Type: application/json' \
  -d '{"grant_type":"client_credentials","client_id":"cli_XXX","client_secret":"sec_XXX"}' \
  | python3 -c 'import sys,json; print(json.load(sys.stdin)["access_token"])')

# 2 — de factuur uitgeven (Idempotency-Key is VERPLICHT)
curl -sS -X POST https://api.4invoices.net/v1/invoices \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: order-10457-invoice' \
  -d '{"buyer":{"name":"Exemplu Comert SRL","tax_id":"RO12345678","county":"Cluj","city":"Cluj-Napoca","country":"RO"},
       "lines":[{"description":"Abonament SaaS","quantity":1,"unit_price":400,"vat_rate":21}]}'

# 3 — preflight CIUS-RO, then send to ANAF
curl -sS -X POST https://api.4invoices.net/v1/invoices/inv_01J7ABC/efactura/validate \
  -H "Authorization: Bearer $ACCESS_TOKEN"

curl -sS -X POST https://api.4invoices.net/v1/invoices/inv_01J7ABC/efactura/submit \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H 'Idempotency-Key: efactura-inv_01J7ABC-1'

Gidsen per onderwerp

Elk onderwerp heeft een eigen pagina met de bijbehorende endpoints, voorbeelden en fouten.

Open de volledige API-documentatie →