Conversatii
Filtru produs:
Toate produsele
ID
Client ID
Status
Intent
Pas curent
Inceput
Ultima activitate
Actiuni
Comenzi
Filtru produs:
Toate produsele
ID
Client
Vehicul
Tip
Status
Link generat
Data
Setări Globale (Fallback)
Acestea sunt setările globale ale platformei. Ele funcționează ca fallback pentru business-urile care nu au configurări proprii.
Ierarhie setări: Setări per-assignment (Asignari → Detalii → Credențiale) > Setări per-canal (Canale WhatsApp) > Setări globale (această pagină)
💾 Salvează setările
↻ Reîncarcă
Flux conversație (informativ)
1. Categorie → 2. Data → 3. Perioada → 4. Țara → 5. Nr. înmatriculare → 6. VIN (dacă perioada > 10 zile) → 7. Preț → 8. Rezumat → 9. Confirmare → 10. Link
ID Nume Token prefix Business Activ Creat Actiuni
Se incarca...
ID Event ID Tip Order ext. Status Consumer Creat Actiuni
Se incarca...
1. Autentificare
Toate request-urile catre API trebuie sa contina un header de autorizare:
Authorization: Bearer <API_TOKEN>
Token-ul se genereaza din panoul de administrare RoviBoot, sectiunea API Consumers . Fiecare token este legat de un business specific.
2. Endpoint principal
Metoda URL Descriere
POST /api/v1/commerce/eventsTrimite un eveniment comercial (comanda platita, document emis, etc.)
GET /api/v1/commerce/events/{event_id}Verifica statusul unui eveniment si livrarile asociate
GET /api/v1/commerce/orders/{external_order_id}/deliveriesVerifica livrarile pentru o comanda externa
Base URL: https://api.roviboot.ro (se configureaza la deploy)
3. Payload — Exemplu complet (POST /api/v1/commerce/events)
{
"api_version": "2026-04-27",
"event": {
"id": "evt_20260427_000001",
"type": "order.paid",
"subtype": "rovinieta.issued",
"occurred_at": "2026-04-27T09:30:00+03:00",
"idempotency_key": "RV-123456"
},
"business": {
"id": "roviniete_ro"
},
"customer": {
"phone": "+40722123456",
"phone_country": "RO",
"first_name": "Ion",
"last_name": "Popescu",
"email": "ion.popescu@example.ro"
},
"order": {
"external_order_id": "RV-123456",
"status": "paid",
"currency": "RON",
"total_amount": 96.00
},
"line_items": [
{
"id": "line_1",
"product_vertical": "road_tax",
"product_code": "rovinieta_ro_A_12_months",
"title": "Rovinieta Romania categoria A - 12 luni",
"attributes": {
"registration_country": "RO",
"registration_number": "B123ABC",
"vin": "WVWZZZ1KZ6W000001",
"vehicle_category": "A",
"validity_period": "12_months",
"valid_from": "2026-04-28",
"valid_until": "2027-04-27"
}
}
],
"documents": [
{
"id": "doc_1",
"type": "issued_certificate",
"format": "pdf",
"filename": "rovinieta_B123ABC_RV-123456.pdf",
"url": "https://roviniete.ro/secure/documents/rv-123456.pdf?token=temporary-token"
}
],
"notification": {
"channel": "whatsapp",
"template_id": "rovinieta_confirmare_comanda",
"language": "ro"
},
"callback": {
"status_callback_url": "https://roviniete.ro/api/roviboot/status"
}
}
4. Campuri obligatorii
Camp Tip Obligatoriu Descriere
api_versionstring Da Versiunea API (ex: "2026-04-27")
event.idstring Da ID unic al evenimentului (folosit si ca idempotency key)
event.typestring Da Tipul evenimentului: order.paid, document.issued
business.idstring Da Identificatorul business-ului (trebuie sa corespunda cu token-ul)
customer.phonestring Da Numarul de telefon al clientului (format international sau local)
order.external_order_idstring Da ID-ul comenzii in sistemul partenerului
line_items[]array Da Cel putin un produs in comanda
notification.channelstring Da Canalul de notificare (momentan: "whatsapp")
notification.template_idstring Da Numele template-ului WhatsApp din Meta Business Manager
5. Campuri optionale
Camp Tip Descriere
event.subtypestring Subtip eveniment (ex: rovinieta.issued)
event.occurred_atISO 8601 Data/ora la care s-a produs evenimentul
event.idempotency_keystring Cheie alternativa de idempotency (daca difera de event.id)
customer.first_namestring Prenume client
customer.last_namestring Nume client
customer.emailstring Email client
documents[]array Documente atasate (PDF-uri, certificate)
documents[].urlstring URL public temporar de unde se descarca documentul
notification.languagestring Limba template-ului (default: "ro")
callback.status_callback_urlstring URL unde RoviBoot trimite statusul livrarii
6. Raspunsuri API
Succes (202 Accepted)
{
"status": "accepted",
"event_id": "evt_20260427_000001",
"message": "Event received and processing started"
}
Duplicat (200 OK)
{
"status": "duplicate",
"event_id": "evt_20260427_000001",
"message": "Event already processed",
"deliveries": [...]
}
Erori
Cod HTTP Cauza
401 Unauthorized Token lipsa sau invalid
403 Forbidden Token valid dar business.id nu corespunde
422 Unprocessable Entity Payload invalid (campuri lipsa sau format gresit)
500 Internal Server Error Eroare interna (procesare, WhatsApp API down)
7. Verificare status livrare
Dupa trimiterea unui eveniment, partenerul poate verifica statusul livrarii:
GET /api/v1/commerce/events/{event_id}
Authorization: Bearer <API_TOKEN>
Raspuns:
{
"event": {
"id": "evt_20260427_000001",
"type": "order.paid",
"status": "completed",
"created_at": "2026-04-27T09:30:01Z"
},
"deliveries": [
{
"type": "whatsapp_template",
"status": "delivered",
"whatsapp_message_id": "wamid.HBg...",
"created_at": "2026-04-27T09:30:02Z",
"updated_at": "2026-04-27T09:30:15Z"
}
]
}
Statusuri posibile pentru delivery: queued → sent → delivered → read (sau failed)
8. Callback automat (optional)
Daca in payload includeti callback.status_callback_url, RoviBoot va trimite automat un POST catre acel URL cand statusul livrarii se schimba:
POST https://roviniete.ro/api/roviboot/status
Content-Type: application/json
{
"event_type": "commerce.notification.delivered",
"event_id": "evt_20260427_000001",
"external_order_id": "RV-123456",
"delivery_type": "whatsapp_template",
"status": "delivered",
"whatsapp_message_id": "wamid.HBg...",
"occurred_at": "2026-04-27T09:35:14+03:00"
}
Statusuri trimise prin callback: sent, delivered, read, failed
9. Idempotency
API-ul este idempotent pe baza campului event.id. Daca trimiteti acelasi eveniment de mai multe ori, sistemul va returna statusul existent fara a retrimite mesajul WhatsApp.
Acest mecanism protejeaza impotriva trimiterii duplicate in caz de timeout sau retry din partea sistemului partener.
10. Exemplu cURL complet
curl -X POST https://api.roviboot.ro/api/v1/commerce/events \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"api_version": "2026-04-27",
"event": {
"id": "evt_20260427_000001",
"type": "order.paid",
"subtype": "rovinieta.issued"
},
"business": { "id": "roviniete_ro" },
"customer": {
"phone": "+40722123456",
"first_name": "Ion",
"last_name": "Popescu"
},
"order": {
"external_order_id": "RV-123456",
"status": "paid",
"total_amount": 96.00
},
"line_items": [{
"id": "line_1",
"product_vertical": "road_tax",
"product_code": "rovinieta_ro_A_12_months",
"title": "Rovinieta cat. A 12 luni",
"attributes": {
"registration_number": "B123ABC",
"vehicle_category": "A",
"valid_from": "2026-04-28",
"valid_until": "2027-04-27"
}
}],
"documents": [{
"id": "doc_1",
"type": "issued_certificate",
"format": "pdf",
"filename": "rovinieta_B123ABC.pdf",
"url": "https://roviniete.ro/docs/rv-123456.pdf?token=xyz"
}],
"notification": {
"channel": "whatsapp",
"template_id": "rovinieta_confirmare_comanda",
"language": "ro"
},
"callback": {
"status_callback_url": "https://roviniete.ro/api/roviboot/status"
}
}'
11. Note importante
Template ID — este numele template-ului din Meta WhatsApp Manager (ex: rovinieta_confirmare_comanda), NU ID-ul numeric din URL.
Document URL — trebuie sa fie un URL public accesibil (sau cu token temporar) de unde RoviBoot poate descarca PDF-ul. URL-ul trebuie sa fie valid cel putin 5 minute dupa trimiterea evenimentului.
Numar telefon — poate fi in format international (+40722123456) sau local (0722123456). Se normalizeaza automat.
business.id — trebuie sa corespunda cu business-ul asociat token-ului API. Daca nu corespunde, se returneaza 403.
Rate limit — maxim 100 request-uri/minut per token.