Estados
Lista, consulta, cria, altera e exclui os estados (UFs) de cada país.
Estado é o segundo nível da hierarquia: pertence a um país e agrupa cidades. O estado é identificado por UUID; a sigla (SP) fica no campo code e é única dentro do país. Exige o privilégio manage_locations.
Listar estados
/api/v1/admin/locations/statesAdminLista os estados
Devolve todos os estados (sem paginação), ordenados pelo nome.
Parâmetros de consulta
country_codestringBR). A comparação é exata e diferencia maiúsculas.{
"states": [
{
"id": "bd6860b2-2838-4eb7-ab27-37b0be2412ab",
"country_code": "BR",
"code": "AC",
"name": "Acre",
"name_pt": "Acre"
}
],
"total": 27
}Campos da resposta
states[].iduuidstates[].country_codestringstates[].codestringSP), 2 a 3 letras.states[].namestringstates[].name_ptstringtotalintegerConsultar estado
/api/v1/admin/locations/states/{id}AdminConsulta um estado pelo id
Parâmetros de caminho
iduuidobrigatórioA resposta 200 é um único objeto no formato de states[] acima.
Criar estado
/api/v1/admin/locations/statesAdminCadastra um estado
country_code e code são convertidos para maiúsculas. A combinação país + sigla é única.
Corpo da requisição
country_codestringobrigatóriocodestringobrigatórioSP).namestringobrigatórioname_ptstringExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/locations/states" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"country_code":"AR","code":"BA","name":"Buenos Aires","name_pt":"Buenos Aires"}'{
"id": "0b6f6b5e-3d0c-4f4c-9a5c-7a1d2f6a9c11",
"country_code": "AR",
"code": "BA",
"name": "Buenos Aires",
"name_pt": "Buenos Aires"
}Alterar estado
/api/v1/admin/locations/states/{id}AdminAltera sigla ou nomes de um estado
Alteração parcial. O país do estado não pode ser trocado. Diferente da criação, a sigla enviada aqui não é validada nem convertida para maiúsculas.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
codestringnamestringname_ptstringA resposta 200 é o estado atualizado.
Excluir estado
/api/v1/admin/locations/states/{id}AdminExclui um estado sem cidades
Parâmetros de caminho
iduuidobrigatório{ "message": "state deleted" }Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido; campo obrigatório ausente; sigla fora do padrão de 2 a 3 letras | {"error":"state code must be 2-3 letters"} |
| 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":"state not found"} |
| 409 | Sigla já existe no país; excluir estado com cidades | {"error":"state code already exists","detail":"a state with this code already exists for this country"} ou {"error":"state has dependent cities","detail":"delete or reassign cities first"} |
| 500 | Id que não é UUID (consultar, alterar, excluir), ou excluir id que não existe | {"error":"failed to get state","detail":"o valor \"abc\" não é um uuid válido. ..."} |