Cidades
Lista paginada, consulta, criação, alteração e exclusão de cidades (municípios) de um estado.
Cidade é o terceiro nível: pertence a um estado e agrupa bairros. Ela guarda o código IBGE de 7 dígitos, usado no cálculo de ISS e em integrações fiscais. O id é um UUID. Exige o privilégio manage_locations.
Listar cidades
/api/v1/admin/locations/citiesAdminLista cidades com paginação
Ordenadas pelo nome. Para montar um seletor de cidades de um estado inteiro, filtre por state_id e use per_page=1000.
Parâmetros de consulta
state_iduuidsearchstringcampinas).sort_dirstringpadrão: ascascdescpageintegerpadrão: 1per_pageintegerpadrão: 50Exemplo de requisição
Campos da resposta
cities[].iduuidcities[].state_iduuidcities[].state_namestringcities[].state_codestringSP).cities[].namestringcities[].ibge_codestringtotalintegerpageintegerper_pageintegertotal_pagesintegerConsultar cidade
/api/v1/admin/locations/cities/{id}AdminConsulta uma cidade pelo id
Parâmetros de caminho
iduuidobrigatórioA resposta 200 é um único objeto no formato de cities[].
Criar cidade
/api/v1/admin/locations/citiesAdminCadastra uma cidade
Corpo da requisição
state_iduuidobrigatórionamestringobrigatórioibge_codestringAlterar cidade
/api/v1/admin/locations/cities/{id}AdminAltera nome ou código IBGE de uma cidade
Alteração parcial. O estado da cidade não pode ser trocado. Enviar ibge_code vazio ("") apaga o código.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
namestringibge_codestringA resposta 200 é a cidade atualizada.
Excluir cidade
/api/v1/admin/locations/cities/{id}AdminExclui uma cidade sem bairros
Parâmetros de caminho
iduuidobrigatórioErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido; state_id ou name ausente; ibge_code fora do padrão | {"error":"ibge_code must be a 7-digit number"} |
| 401 | Sem token ou token expirado | {"error":"missing authorization header"} |
| 403 | Sem o privilégio manage_locations | {"error":"insufficient privileges","required":"manage_locations"} |
| 404 | Id inexistente (consultar, alterar) | {"error":"city not found"} |
| 409 | Criar com código IBGE já usado; excluir cidade com bairros | {"error":"ibge code already exists","detail":"a city with this ibge_code already exists"} ou {"error":"city has dependent records","detail":"delete or reassign districts first"} |
| 500 | Id que não é UUID, state_id inexistente na criação, excluir id que não existe, ou atualização com ibge_code fora do formato de 7 dígitos ou já em uso (a atualização não devolve 400 nem 409) | {"error":"failed to get city","detail":"o valor \"abc\" não é um uuid válido. ..."} |