Documentație API
Pregătirea comenzii
Între cotație și AWB sunt doi pași scurți: alegi curierul și atașezi datele de facturare. Amândoi scriu pe cererea de cotație, de aceea crearea expediției nu mai trimite nimic altceva.
De ce există pașii aceștia separat
Cererea de cotație este starea comenzii. Curierul ales și datele de facturare se scriu pe ea, iar POST /expedition doar o execută. Avantajul practic: dacă pasul final eșuează, nu reconstruiești nimic — reiei doar apelul care a eșuat, cu același quoteRequestId.
2. Selectarea cotației
/quote-request/{id}/selected-courier-quoteBearer JWTCorpul cererii
| Câmp | Tip | Cerut | Descriere |
|---|---|---|---|
courierQuoteId | string | obligatoriu | id-ul cotației alese, din răspunsul pasului 1. Trebuie să aparțină acestei cereri de cotație și să aibă isDisabled: false. |
{
"courierQuoteId": "b7e22d90-3c14-4a6f-8e09-1d5b7c2f4a83"
}Răspunde cu 200 și cererea de cotație actualizată.
Erori
| Cod | Ce înseamnă |
|---|---|
| 403 | Cererea de cotație aparține altui cont. |
| 404 | Cererea de cotație sau cotația nu există. |
| 409 | Există deja o expediție pentru această cerere. Nu mai poți schimba curierul — creează o cotație nouă. |
| 422 | Curierul cere câmpuri pe care destinatarul nu le are. Nimic nu s-a selectat. |
3. Datele de facturare
Ai două variante, în funcție de felul în care ții datele. Rezultatul este același: un bloc billingInfo atașat cererii.
/quote-request/{id}/billing-infoBearer JWTTrimiți datele direct. Toate cele cinci câmpuri sunt obligatorii.
Corpul cererii
| Câmp | Tip | Cerut | Descriere |
|---|---|---|---|
name | string | obligatoriu | Denumirea de pe factură. |
email | string | obligatoriu | Adresa la care se trimite factura. |
street | string | obligatoriu | Strada și numărul, într-un singur câmp. |
city | string | obligatoriu | Orașul. |
county | string | obligatoriu | Județul. |
{
"name": "Firma Mea SRL",
"email": "facturare@firma.ro",
"street": "Calea Victoriei 10",
"city": "BUCURESTI",
"county": "BUCURESTI"
}{
"id": "3f9c1a34-7b2e-4d81-9f05-6c1e8a4b2d70",
"packageDescription": "Carti",
"createdAt": "2026-10-28T09:00:00.000Z",
"updatedAt": "2026-10-28T09:01:12.000Z",
"billingInfo": {
"id": "7c2a9e41-...",
"name": "Firma Mea SRL",
"email": "facturare@firma.ro",
"street": "Calea Victoriei 10",
"city": "BUCURESTI",
"county": "BUCURESTI"
}
}/quote-request/{id}/attach-billing-info-from-sender-profileBearer JWTCopiază datele de facturare dintr-un profil de expeditor salvat pe contul tău. Util când expediezi mereu din aceleași puncte și nu vrei să dublezi datele în sistemul tău.
{
"senderProfileId": "b2c4d6e8-1a3f-4c5b-9e7d-0f2a4b6c8d1e"
}Erori
| Cod | Ce înseamnă |
|---|---|
| 400 | Profilul de expeditor are datele de facturare incomplete. |
| 401 | Profilul nu aparține contului autentificat. |
| 403 | Cererea de cotație aparține altui cont. |
| 404 | Cererea de cotație sau profilul nu există. |
Verificarea stării
/quote-request/{id}Bearer JWTÎntoarce cererea de cotație așa cum este acum, inclusiv billingInfo dacă a fost atașat. Folosește-o când reiei un flux întrerupt și nu ești sigur la ce pas ai rămas.
Ordinea contează
Ambii pași trebuie să se încheie înainte de POST /expedition. Fără cotație selectată, crearea expediției nu are curier; fără date de facturare, răspunde cu 422. Între ei, ordinea este indiferentă.
Pasul următor este crearea expediției.