Países
Lista, consulta, cria, altera e exclui os países cadastrados na loja.
Os países são o primeiro nível da hierarquia geográfica. Uma loja brasileira normalmente tem só o BR; cadastre outros se a loja entrega ou cadastra clientes fora do Brasil. O país é identificado pelo código ISO em maiúsculas, não por UUID. Todas as rotas desta página exigem o privilégio manage_locations.
Listar países
/api/v1/admin/locations/countriesAdminLista os países da loja
Devolve todos os países, ordenados pelo nome em inglês (name). Não há paginação.
Parâmetros de consulta
statusstringADactivedisabled{
"countries": [
{ "code": "BR", "name": "Brazil", "name_pt": "Brasil", "status": "A" }
],
"total": 1
}Campos da resposta
countriesarraycountries[].codestringcountries[].namestringcountries[].name_ptstringcountries[].statusstringADA ativo, D desativado.totalintegerConsultar país
/api/v1/admin/locations/countries/{code}AdminConsulta um país pelo código
Parâmetros de caminho
codestringobrigatórioBR).{ "code": "BR", "name": "Brazil", "name_pt": "Brasil", "status": "A" }Criar país
/api/v1/admin/locations/countriesAdminCadastra um novo país
O código é convertido para maiúsculas e precisa ter 2 ou 3 letras. Se status não for enviado, o país nasce ativo (A).
Corpo da requisição
codestringobrigatórioAR, ARG). Único na loja.namestringobrigatórioname_ptstringstatusstringpadrão: AADactivedisabledExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/locations/countries" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"code":"AR","name":"Argentina","name_pt":"Argentina"}'{ "code": "AR", "name": "Argentina", "name_pt": "Argentina", "status": "A" }Alterar país
/api/v1/admin/locations/countries/{code}AdminAltera nome ou status de um país
Alteração parcial: só os campos enviados mudam. O código não pode ser alterado. Um corpo vazio ({}) não muda nada e devolve o país atual.
Parâmetros de caminho
codestringobrigatórioCorpo da requisição
namestringname_ptstringstatusstringADactivedisabledA resposta 200 é o país já atualizado, no mesmo formato de "Consultar país".
Excluir país
/api/v1/admin/locations/countries/{code}AdminExclui um país sem estados
Parâmetros de caminho
codestringobrigatório{ "message": "country deleted" }Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo JSON inválido; code ou name ausente; código fora do padrão de 2 a 3 letras | {"error":"country code must be 2-3 letters (ISO format)"} |
| 401 | Sem token ou token expirado | {"error":"missing authorization header"} |
| 403 | Usuário sem o privilégio manage_locations | {"error":"insufficient privileges","required":"manage_locations"} |
| 404 | Código inexistente (consultar, alterar) | {"error":"country not found"} |
| 409 | Criar com código já existente; excluir país que ainda tem estados | {"error":"country code already exists"} ou {"error":"country has dependent states","detail":"delete or reassign states first"} |
| 500 | Falha interna; também ao excluir um código que não existe | {"error":"failed to delete country","detail":"country XX not found"} |