API Utilizatori
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.
/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âmp | Tip | Obligatoriu | Note |
|---|---|---|---|
displayName | string | nu | 1–255 caractere. Șirul gol este respins. |
phoneNumber | string | nu | 1–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)
INTERNAL_ERROR (500) și mesajul Password verification is not configured. Contactează administratorul dacă vezi această eroare.Corpul cererii
| Câmp | Tip | Obligatoriu | Note |
|---|---|---|---|
currentPassword | string | da | Parola curentă a utilizatorului. |
newPassword | string | da | Cel puțin 8 caractere. |
Răspuns 200
{ "message": "Password changed successfully" }
Erori
VALIDATION_ERROR(400) — corpul cererii nu a trecut validarea (câmp lipsă,newPasswordmai scurt de 8 caractere).UNAUTHORIZED(401) — token de sesiune lipsă sau invalid, saucurrentPasswordnu s-a verificat. În acest din urmă caz, mesajul esteCurrent 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.
API Organizații și Locații
Endpoint-uri REST pentru gestionarea profilului organizației (nume, adresă de facturare), a locațiilor sale și a listei de abonați la notificări.
Endpoint-uri de autentificare
Endpoint-uri REST sub /api/v1/auth — înregistrare, autentificare, parolă uitată, reîmprospătare și deconectare — care emit și revocă perechea de jetoane JWT de acces + reîmprospătare folosită de Portalul e-bon și de aplicația mobilă E-BON.