Skip to content

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ăCaleDescriere
GET/api/v1/companies/{company}/addressesListă paginată a adreselor companiei; filtru type.
POST/api/v1/companies/{company}/addressesCreează 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

ParametruTipNote
typeenumfiscal | delivery | principal | correspondence.
per_pageintegerImplicit 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âmpTipNote
addressstring ≤ 500Obligatoriu la POST.
citystring ≤ 100Obligatoriu la POST.
typeenumfiscal | delivery | principal | correspondence. Dacă lipsește la creare, implicit delivery.
labelstring ≤ 100
countystring ≤ 100Județ.
postal_codestring ≤ 20
countrystring ≤ 100
is_defaultbooleanVezi regula de mai jos.
contact_idintegerTrebuie 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." }