Erori și convenții

Envelope JSON consistent; folosiți code și HTTP status pentru branching în client.

Succes (listă)

{
  "data": [ { } ],
  "meta": { "current_page": 1, "per_page": 25, "total": 100 },
  "links": { "next": "…", "prev": null }
}

Eroare

{
  "message": "Descriere scurtă pentru om",
  "code": "ERROR_CODE",
  "errors": {
    "field_name": ["Mesaj de validare"]
  }
}
HTTPSituație tipicăCe faceți
401Token lipsă / invalid / revocatRe-obțineți token
403Fără acces la companie / modul / scopeVerificați X-Company-Id și modulele
404Resursă inexistentă în contextVerificați id / cod / companie
422Validare (câmpuri, UM întregi, status)Citiți errors
429Rate limitBackoff + respectați antetele
503Integrare neconfigurată (ex. eTSM token lipsă)Configurați mediul / contactați suport

Rate limits

Health

GET /api/health (fără auth) returnează status agregat, checks, heartbeats, integrări și module. Util pentru monitoring; Prometheus: ?format=prometheus.

Schema completă: OpenAPI.