...
24/24
Full Service
Docs

REST API · v1

Integrează-ți sistemul cu 24/24. Toate endpoint-urile sunt sub https://2424.ro. JSON in, JSON out.

Quick start

După înregistrare/login, primești un accessToken JWT. Include-l în header:

curl -X POST https://2424.ro/api/auth/login \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com","password":"yourpass"}'

# Pentru orice cerere autenticată:
curl https://2424.ro/api/wallet \
  -H 'Authorization: Bearer <accessToken>'

Status codes

200OK — răspuns normal
400Bad request — validare eșuată (Zod schema)
401Unauthorized — token lipsă/invalid
402Payment required — sold insuficient
403Forbidden — rol insuficient
404Not found
409Conflict — resursă deja exista
423Locked — portofel suspendat
429Too many requests — rate limit
500Internal server error

Rate limits

300 req/min global, 50 req/15min pentru /api/auth/*. Returnăm 429 cu X-RateLimit-Reset.

Autentificare

base: /api/auth
MethodPathDescription
POST/registerCreează cont. Body: { email, password, firstName, lastName, accountType }
POST/loginAutentificare. Body: { email, password, totp? }. Returnează { user, accessToken }.
POST/refreshReînnoiește accessToken folosind refresh cookie.
POST/logoutRevocă sesiunea curentă.
GET/meProfil curent. Necesită Bearer token.
POST/2fa/setupGenerează secret + QR pentru 2FA.
POST/2fa/enableActivează 2FA. Body: { code }.
POST/2fa/backup-codesGenerează 10 coduri de recuperare.
POST/2fa/recoveryRecuperare 2FA. Body: { email, password, backupCode }.
POST/password/forgotInițiază resetarea. Body: { email }.
POST/password/resetSetează parolă nouă. Body: { token, password }.
POST/password/changeSchimbă parola. Body: { currentPassword, newPassword }.

Portofel

base: /api/wallet
MethodPathDescription
GET/Obține portofelul utilizatorului curent.
GET/transactionsListă tranzacții (?limit=).
POST/topupDemo top-up. Body: { amountCents, method }.
POST/transferTransfer instant. Body: { toEmail, amountCents, note? }.

Plăți

base: /api/payments
MethodPathDescription
POST/intentsCreează PaymentIntent (Stripe dacă STRIPE_SECRET_KEY este setat).
GET/intentsIstoric intent-uri.
POST/webhookStripe webhook (raw body, signature verificată).

Module — transport

base: /api/transport
MethodPathDescription
POST/searchBody: { origin, destination, passengers, variant?, modes? }.
POST/bookingsRezervă o cursă.
GET/bookingsRezervările tale.
POST/bookings/:id/cancelAnulează.

Module — sănătate

base: /api/health
MethodPathDescription
GET/specializations37 specializări (online/holistic/weight_balance).
GET/practitionersListă practicieni verificați.
POST/consultationsProgramează o consultație.
POST/bmiCalculator IMC. Body: { weightKg, heightCm }.

Module — asigurări

base: /api/insurance
MethodPathDescription
GET/types9 tipuri (RCA, CASCO, sănătate, viață, locuință, călătorie, etc.).
POST/quoteCompară oferte. Body: { type, params }.
POST/policiesCumpără poliță.
GET/policiesPolițele mele.

Module — toate

base: /api/{module}
MethodPathDescription
*aprozar, sos, construction, energy, b2b, freight, eu-funds, culture, forumFiecare modul are CRUD + endpoint-uri specifice. Vezi sursa.

Notificări și real-time

base: /api
MethodPathDescription
GET/notificationsLista notificărilor mele.
POST/notifications/:id/readMarcă citită.
POST/notifications/read-allMarcă toate citite.
POST/push/subscribeÎnregistrează subscription Web Push (VAPID).
WS/wsSocket.io endpoint. Auth via `auth.token` handshake. Eveniment: `notification`.

GDPR

base: /api/gdpr
MethodPathDescription
POST/exportGenerează export JSON cu toate datele tale.
POST/delete-requestCere ștergerea contului (30 zile grace).
POST/cancel-deletionAnulează cererea de ștergere.
GET/requestsIstoric cereri GDPR.

Admin (necesită rol admin/superadmin)

base: /api/admin
MethodPathDescription
GET/statsKPI overview.
GET/revenue-by-moduleVenit per modul.
GET/usersListă utilizatori (search + filter).
PATCH/users/:idModifică rol / status / KYC.
GET/transactionsUltimele 200 tranzacții.
POST/refunds/transactions/:idRefund (admin only). Body: { reason? }.
GET/audit-logAudit trail.
GET/email-logEmail log (ultimele 200).
POST/email-log/:id/retryRetrimite email.
GET/filesBrowser global pentru fișierele utilizatorilor.

Webhooks (în curând)

Endpoint-uri pentru a primi evenimente platformă (rezervare, plată, KYC) către sistemul tău. Va fi documentat când lansăm OAuth pentru parteneri.