Appearance
Adrese
Adresele aparțin unei companii și au un type (fiscală, livrare, sediu principal, corespondență). Listarea și crearea sunt imbricate sub companie; citirea, actualizarea și ștergerea sunt pe calea plată /api/v1/addresses/{id}.
Endpoint-uri
| Metodă | Cale | Descriere |
|---|---|---|
| GET | /api/v1/companies/{company}/addresses | Listă paginată a adreselor companiei; filtru type. |
| POST | /api/v1/companies/{company}/addresses | Creează o adresă pentru companie. |
| GET | /api/v1/addresses/{id} | Citește o adresă (cu compania și contactul asociate). |
| PUT | /api/v1/addresses/{id} | Actualizează o adresă (parțial). |
| DELETE | /api/v1/addresses/{id} | Șterge o adresă. |
Filtre la listare
| Parametru | Tip | Note |
|---|---|---|
type | enum | fiscal | delivery | principal | correspondence. |
per_page | integer | Implicit 50, plafonat la 200. |
Rezultatele sunt ordonate cu adresa implicită (is_default) prima, apoi după type.
Schema unei adrese
Câmpuri acceptate la POST / PUT. La POST, address și city sunt obligatorii (coloana city este NOT NULL fără valoare implicită); la PUT, toate sunt opționale.
| Câmp | Tip | Note |
|---|---|---|
address | string ≤ 500 | Obligatoriu la POST. |
city | string ≤ 100 | Obligatoriu la POST. |
type | enum | fiscal | delivery | principal | correspondence. Dacă lipsește la creare, implicit delivery. |
label | string ≤ 100 | |
county | string ≤ 100 | Județ. |
postal_code | string ≤ 20 | |
country | string ≤ 100 | |
is_default | boolean | Vezi regula de mai jos. |
contact_id | integer | Trebuie să fie un contact al aceleiași companii — un contact al altei companii este respins cu 422. |
Răspunsul mai conține câmpuri needitabile prin API: id, company_id, created_at, updated_at, deleted_at, și la GET /api/v1/addresses/{id} relațiile încărcate company: {id, name, phone} și contact: {id, first_name, last_name} (sau null dacă nu e setat).
Regula is_default
Există cel mult o adresă implicită per companie și per tip. La creare sau actualizare cu is_default: true, platforma dezactivează automat flagul pe orice altă adresă a aceleiași companii de același type (fără să atingă adresele de alt tip); la actualizare, adresa curentă este exclusă din acest reset.
Exemplu — creare adresă
bash
curl -X POST https://wartung.notsocrm.ro/api/v1/companies/1/addresses \
-H "Authorization: Bearer wartung.crm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"address": "Str. Fabricii 10",
"city": "Cluj-Napoca",
"county": "Cluj"
}'Răspuns 201 (type a primit valoarea implicită delivery):
json
{
"data": {
"id": 1,
"company_id": 1,
"type": "delivery",
"label": null,
"address": "Str. Fabricii 10",
"city": "Cluj-Napoca",
"county": "Cluj",
"postal_code": null,
"country": "România",
"is_default": false,
"created_at": "2026-07-31T22:18:51.000000Z",
"updated_at": "2026-07-31T22:18:51.000000Z",
"deleted_at": null,
"contact_id": null
}
}Contact dintr-o altă companie
json
{
"error": "Validation failed.",
"errors": {
"contact_id": ["The selected contact id is invalid."]
}
}Ștergere
bash
curl -X DELETE https://wartung.notsocrm.ro/api/v1/addresses/1 \
-H "Authorization: Bearer wartung.crm_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"json
{ "message": "Address deleted." }