Profile Server API
Endpoints

Organization Addresses

CRUD de endereços vinculados a organizações, com histórico de vigência.

Endereços de uma organização com controle temporal (validFrom / validTo). Base path: /api/organization-addresses · autenticação de usuário.

MétodoRotaScopeResourceSucesso
POST/api/organization-addressescreateresource:organization-addresses201
GET/api/organization-addressesreadresource:organization-addresses200
GET/api/organization-addresses/:idreadresource:organization-addresses_id200
PUT/api/organization-addresses/:idupdateresource:organization-addresses_id200
DELETE/api/organization-addresses/:iddeleteresource:organization-addresses_id204

Criar endereço

POST /api/organization-addresses — define um novo endereço vigente para a organização.

Ao criar, o endereço atual (com validTo = null) é encerrado: seu validTo passa a ser o validFrom do novo endereço. A organização tem organizationAddressId atualizado para o novo registro.

Corpo

CampoTipoObrigatórioRegras
organizationIduuidsimOrganização existente (404 se não existir)
zipCodestringsimexatamente 8 caracteres (CEP)
streetstringsimmín. 1 caractere
numberstringsimmín. 1 caractere
complementstringnãopode ser null
districtstringnãomáx. 50 caracteres; pode ser null
cityCodeintegersimCódigo IBGE; cidade existente (404 se não existir)
stateCodeintegersimCódigo do estado; estado existente (404 se não existir)
countrystringnãopadrão Brasil; máx. 50 caracteres
latitudenumbernãopode ser null
longitudenumbernãopode ser null
curl -X POST http://localhost:3000/api/organization-addresses \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "organizationId": "o1b2c3d4-e5f6-4789-a123-456789abcdef",
    "zipCode": "01310100",
    "street": "Avenida Paulista",
    "number": "1000",
    "district": "Bela Vista",
    "cityCode": 3550308,
    "stateCode": 35,
    "latitude": -23.561414,
    "longitude": -46.655881
  }'

201 Created

{
  "id": "a1b2c3d4-e5f6-4789-a123-456789abcdef",
  "organizationId": "o1b2c3d4-e5f6-4789-a123-456789abcdef",
  "zipCode": "01310100",
  "street": "Avenida Paulista",
  "number": "1000",
  "complement": null,
  "district": "Bela Vista",
  "cityCode": 3550308,
  "stateCode": 35,
  "country": "Brasil",
  "latitude": -23.561414,
  "longitude": -46.655881,
  "validFrom": "2026-07-13T12:00:00.000Z",
  "validTo": null
}

404 Not FoundorganizationId, stateCode ou cityCode inexistentes.

400 Bad Request — a cidade informada não pertence ao estado (CityStateMismatchError).


Listar endereços

GET /api/organization-addresses — lista paginada (page, limit).

Filtros opcionais: organizationId (uuid), cityCode, stateCode, currentOnly (true | false — apenas endereços vigentes com validTo = null).


Obter endereço por id

GET /api/organization-addresses/:id404 se não existir.


Editar endereço

PUT /api/organization-addresses/:id — atualização parcial apenas do endereço vigente (validTo = null). Para trocar de endereço mantendo histórico, crie um novo via POST.

CampoTipoRegras
zipCodestringexatamente 8 caracteres
streetstringmín. 1 caractere
numberstringmín. 1 caractere
complementstringou null
districtstringmáx. 50 caracteres; ou null
cityCodeintegercidade existente; deve pertencer ao stateCode informado
stateCodeintegerestado existente
countrystringmáx. 50 caracteres; ou null
latitudenumberou null
longitudenumberou null

Retorna 200; 404 se não existir; 400 se o endereço não for o vigente ou se cidade/estado forem incompatíveis.


Remover endereço

DELETE /api/organization-addresses/:id — retorna 204 No Content. Se o endereço removido for o vigente, organizationAddressId da organização é limpo (null).