e-bon
e-bon.ro
Referință API

API Utilizatori

Endpoint-uri REST pentru profilul propriu al utilizatorului autentificat — citire, editare nume afișat și număr de telefon, schimbare parolă.

Utilizatori

API-ul de utilizatori expune trei endpoint-uri sub /api/v1/users care operează pe profilul propriu al utilizatorului autentificat. Nu există endpoint-uri de administrare în acest grup — fiecare rută rezolvă utilizatorul țintă din token-ul de sesiune, deci un apelant poate doar să își citească sau să își modifice propriul cont. Pentru a administra alți utilizatori din organizație (invitare, eliminare, schimbare de rol), folosește interfața din Portal.

La fel ca Organizații și Webhook-uri, API-ul de utilizatori nu acceptă chei API. Toată suprafața /api/v1/users necesită un token de sesiune Portal. Generează unul cu POST /api/v1/auth/login și trimite-l ca Authorization: Bearer <jwt>. Nu există nicio permisiune de cheie API care să dea acces la endpoint-urile de profil. Vezi Autentificare › Autentificare JWT.

Plicul de eroare, limitele de rată și convențiile de paginare sunt documentate o singură dată pe Prezentarea API-ului; mai jos listăm doar codurile de eroare specifice fiecărui endpoint. Orice utilizator autentificat poate apela aceste endpoint-uri pe propriul profil.

GET /api/v1/users/me

Returnează profilul utilizatorului autentificat, incluzând uid, email, displayName, phoneNumber, role și createdAt.

Autentificare: sesiune Portal (orice membru al organizației)

Răspuns 200

{
  "uid": "user_xyz",
  "email": "owner@acme.example",
  "displayName": "Ana Popescu",
  "phoneNumber": "+40712345678",
  "createdAt": "2025-09-01T08:00:00.000Z",
  "role": "owner"
}

phoneNumber este null când utilizatorul nu a setat niciodată unul. role este una dintre valorile owner, admin, operator.

Erori

  • UNAUTHORIZED (401) — token de sesiune lipsă sau invalid.

Catalogul HTTP complet este pe Prezentare API › Catalogul codurilor de eroare HTTP.

Exemplu

curl https://api.e-bon.ro/api/v1/users/me \
  -H "Authorization: Bearer <portal-jwt>"

PATCH /api/v1/users/me

Actualizează numele afișat și/sau numărul de telefon al utilizatorului autentificat. Ambele câmpuri sunt opționale, dar cel puțin unul trebuie furnizat. Bara laterală din Portal rămâne sincronizată automat.

Autentificare: sesiune Portal (orice membru al organizației)

Corpul cererii

CâmpTipObligatoriuNote
displayNamestringnu1–255 caractere. Șirul gol este respins.
phoneNumberstringnu1–30 caractere. Trebuie să fie în format E.164 (ex. +40712345678) — regex ^\+[1-9]\d{1,14}$.

Corpul nu poate fi gol — cel puțin unul dintre displayName sau phoneNumber trebuie să fie prezent.

Răspuns 200

Profilul actualizat, în aceeași formă ca GET /api/v1/users/me.

Erori

  • VALIDATION_ERROR (400) — corpul cererii nu a trecut validarea (corp gol, format greșit al telefonului, lungime în afara intervalului).
  • UNAUTHORIZED (401) — token de sesiune lipsă sau invalid.

Exemplu

curl -X PATCH https://api.e-bon.ro/api/v1/users/me \
  -H "Authorization: Bearer <portal-jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "displayName": "Ana Popescu",
    "phoneNumber": "+40712345678"
  }'

POST /api/v1/users/me/change-password

Schimbă parola utilizatorului autentificat după verificarea că parola curentă este încă validă. Parola curentă trebuie furnizată în cerere și este verificată înainte ca noua parolă să fie acceptată.

Autentificare: sesiune Portal (orice membru al organizației)

Dacă serverul API nu este configurat pentru verificarea parolei, cererea eșuează cu INTERNAL_ERROR (500) și mesajul Password verification is not configured. Contactează administratorul dacă vezi această eroare.

Corpul cererii

CâmpTipObligatoriuNote
currentPasswordstringdaParola curentă a utilizatorului.
newPasswordstringdaCel puțin 8 caractere.

Răspuns 200

{ "message": "Password changed successfully" }

Erori

  • VALIDATION_ERROR (400) — corpul cererii nu a trecut validarea (câmp lipsă, newPassword mai scurt de 8 caractere).
  • UNAUTHORIZED (401) — token de sesiune lipsă sau invalid, sau currentPassword nu s-a verificat. În acest din urmă caz, mesajul este Current password is incorrect.
  • INTERNAL_ERROR (500) — serverul nu este configurat pentru verificarea parolei, sau contul de utilizator nu are o adresă de email setată.

Exemplu

curl -X POST https://api.e-bon.ro/api/v1/users/me/change-password \
  -H "Authorization: Bearer <portal-jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "currentPassword": "parola-veche",
    "newPassword": "o-parola-noua-mult-mai-lunga"
  }'

Vezi și

  • API Organizații și Locații — rute doar JWT pentru profilul organizației, adresa de facturare, locații și abonații la notificări.
  • Autentificare — fluxul de login JWT din Portal și catalogul permisiunilor de cheie API.
  • Prezentare API — URL de bază, plic de eroare, limite de rată, paginare, catalog complet de coduri de eroare HTTP.