Faixas de preço
Lê, cria, altera e apaga as faixas que definem o preço do frete de um método por peso, valor do pedido e quantidade de itens.
Uma faixa é uma linha da tabela de preços do método: "carrinhos de até 5 kg custam R$ 19,00". O checkout escolhe a faixa cujos limites de peso, valor do pedido e quantidade de itens contêm o carrinho (na área do endereço) e cobra o rate dela. Um limite 0 significa "sem limite" naquela medida.
Esta é a tabela de preços por faixa. A tabela de tarifas por degrau é independente. Toda gravação invalida o cache de cotações.
Listar faixas
/api/v1/admin/shipping-methods/{id}/tiersAdminLista as faixas de um método
Devolve todas as faixas do método, de todas as áreas, ordenadas por peso mínimo e depois por valor mínimo. Um método sem faixas devolve tiers: null.
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição
curl "$BASE_URL/api/v1/admin/shipping-methods/$METHOD_ID/tiers" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"tiers": [
{
"id": "e0b01930-48f1-441e-b278-96b99db92887",
"shipping_method_id": "65d71956-dbae-4df9-a3a3-129ac66f6324",
"min_weight": 0,
"max_weight": 5000,
"min_order_value": 0,
"max_order_value": 0,
"rate": 1900,
"rate_area_id": null,
"min_items": 0,
"max_items": 0,
"created_at": "2026-10-11T21:35:34.687301Z",
"rate_id": "e0b01930-48f1-441e-b278-96b99db92887",
"shipping_id": "65d71956-dbae-4df9-a3a3-129ac66f6324",
"rate_value": "19.00",
"timestamp": 1791754534
}
],
"total": 1
}Campos da resposta
tiersarraytotalintegertiers[].iduuidtiers[].shipping_method_iduuidtiers[].min_weightinteger0 = sem mínimo.tiers[].max_weightinteger0 = sem máximo.tiers[].min_order_valueinteger0 = sem mínimo.tiers[].max_order_valueinteger0 = sem máximo.tiers[].rateintegertiers[].rate_area_iduuidnull = faixa do vínculo padrão (todos os outros destinos).tiers[].min_itemsinteger0 = sem mínimo.tiers[].max_itemsinteger0 = sem máximo.tiers[].created_atstringtiers[].rate_iduuidid. shipping_id, rate_value (preço em string decimal) e timestamp (Unix) também são aliases.Criar uma faixa
Não há validação de limites: duas faixas podem se sobrepor, e o corpo vazio cria uma faixa de R$ 0,00 sem limites. Confira o conjunto depois de gravar.
/api/v1/admin/shipping-methods/{id}/tiersAdminCria uma faixa de preço
Exige manage_shipping.
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
rateinteger0 (frete grátis nesta faixa).min_weightinteger0 = sem mínimo.max_weightinteger0 = sem máximo.min_order_valueinteger0 = sem mínimo.max_order_valueinteger0 = sem máximo.min_itemsinteger0 = sem mínimo.max_itemsinteger0 = sem máximo.rate_area_iduuidExemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/shipping-methods/$METHOD_ID/tiers" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"max_weight": 5000,
"rate": 1900
}'Resposta
{
"id": "e0b01930-48f1-441e-b278-96b99db92887",
"shipping_method_id": "65d71956-dbae-4df9-a3a3-129ac66f6324",
"min_weight": 0,
"max_weight": 5000,
"min_order_value": 0,
"max_order_value": 0,
"rate": 1900,
"rate_area_id": null,
"min_items": 0,
"max_items": 0,
"created_at": "2026-10-11T21:35:34.687301Z",
"rate_id": "e0b01930-48f1-441e-b278-96b99db92887",
"shipping_id": "65d71956-dbae-4df9-a3a3-129ac66f6324",
"rate_value": "19.00",
"timestamp": 1791754534
}Alterar uma faixa
Alteração parcial: só os campos enviados mudam. Para mover a faixa para outra área, envie rate_area_id.
/api/v1/admin/shipping-methods/{id}/tiers/{tier_id}AdminAltera uma faixa de preço
Exige manage_shipping.
Parâmetros de caminho
iduuidobrigatóriotier_iduuidobrigatórioCorpo da requisição
rateinteger0 (frete grátis nesta faixa).min_weightinteger0 = sem mínimo.max_weightinteger0 = sem máximo.min_order_valueinteger0 = sem mínimo.max_order_valueinteger0 = sem máximo.min_itemsinteger0 = sem mínimo.max_itemsinteger0 = sem máximo.rate_area_iduuidExemplo de requisição
curl -X PUT "$BASE_URL/api/v1/admin/shipping-methods/$METHOD_ID/tiers/$TIER_ID" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"rate": 2100
}'Resposta
{
"id": "e0b01930-48f1-441e-b278-96b99db92887",
"shipping_method_id": "65d71956-dbae-4df9-a3a3-129ac66f6324",
"min_weight": 0,
"max_weight": 5000,
"min_order_value": 0,
"max_order_value": 0,
"rate": 2100,
"rate_area_id": null,
"min_items": 0,
"max_items": 0,
"created_at": "2026-10-11T21:35:34.687301Z",
"rate_id": "e0b01930-48f1-441e-b278-96b99db92887",
"shipping_id": "65d71956-dbae-4df9-a3a3-129ac66f6324",
"rate_value": "21.00",
"timestamp": 1791754534
}Apagar uma faixa
/api/v1/admin/shipping-methods/{id}/tiers/{tier_id}AdminApaga uma faixa de preço
Exige manage_shipping. A faixa precisa pertencer ao método do caminho.
Parâmetros de caminho
iduuidobrigatóriotier_iduuidobrigatórioExemplo de requisição
curl -X DELETE "$BASE_URL/api/v1/admin/shipping-methods/$METHOD_ID/tiers/$TIER_ID" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"message": "shipping rate tier deleted"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado | {"error":"invalid or expired token"} |
| 403 | Usuário sem o privilégio manage_shipping | {"error":"insufficient privileges","privilege_required_any":["manage_shipping"]} |
| 400 | Corpo que não é JSON | {"error":"invalid request body","detail":"..."} |
| 500 | Método ou faixa inexistente, rate_area_id que não existe, ou outro valor recusado pelo banco | {"error":"failed to create shipping rate tier","detail":"..."} / {"error":"failed to update shipping rate tier","detail":"..."} / {"error":"failed to delete shipping rate tier","detail":"shipping rate tier not found: ..."} |