Regras de imposto
Define quais impostos incidem sobre cada tipo de produto, regime tributário, categoria e NCM.
O Brasil tem vários impostos sobre a venda (ICMS, ISS, IPI, PIS, COFINS), e quais incidem depende do regime tributário do vendedor, do tipo de produto e da classificação fiscal (NCM). Uma regra de imposto diz quais impostos se aplicam e com que alíquotas, e a plataforma escolhe a regra certa para cada item.
Listar regras
Lista as regras de imposto da loja (as do operador), da maior prioridade para a menor. Regras que cada seller cadastra para si ficam de fora.
/api/v1/admin/tax-rulesAdminLista as regras de imposto da loja
Autenticação: Authorization: Bearer <token> de um administrador com manage_taxes ou manage_settings. Requer o módulo icms-tax ativo.
Sem parâmetros.
Exemplo de requisição
curl "$BASE_URL/api/v1/admin/tax-rules" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"rules": [
{
"id": 12,
"name": "Mercadorias - Lucro Presumido",
"product_type": "goods",
"tax_regime": "lucro_presumido",
"apply_icms": true,
"apply_iss": false,
"apply_ipi": true,
"apply_pis": true,
"apply_cofins": true,
"pis_rate_bps": 65,
"cofins_rate_bps": 300,
"icms_st_enabled": false,
"icms_st_mva_bps": 0,
"difal_enabled": true,
"is_default": false,
"priority": 10,
"ncm_pattern": "",
"is_active": true,
"created_at": "2026-05-20T10:00:00Z",
"updated_at": "2026-05-20T10:00:00Z"
}
],
"total": 1
}Campos da resposta
rulesarrayrules[].idintegerrules[].namestringrules[].product_typestringgoods (mercadoria), services, digital, imported. Vazio: qualquer.rules[].tax_regimestringsimples_nacional, lucro_presumido, lucro_real ou mei. Vazio: qualquer.rules[].apply_icmsbooleanrules[].apply_issbooleanrules[].apply_ipibooleanrules[].apply_pisbooleanrules[].apply_cofinsbooleanrules[].icms_override_bpsintegerrules[].iss_override_bpsintegerrules[].ipi_override_bpsintegerrules[].pis_rate_bpsinteger165 = 1,65%).rules[].cofins_rate_bpsinteger760 = 7,60%).rules[].icms_st_enabledbooleanrules[].icms_st_mva_bpsintegerrules[].difal_enabledbooleanrules[].is_defaultbooleanrules[].priorityintegerrules[].category_iduuidrules[].ncm_patternstring8517. Vazio: qualquer NCM.rules[].is_activebooleanrules[].created_atstringrules[].updated_atstringtotalintegerErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"icms-tax"} / {"error":"insufficient privileges","required":"manage_taxes"} |
| 500 | Falha na consulta | {"error":"failed to list tax rules","detail":"..."} |
Criar regra
Cria uma regra. A regra entra em vigor para os próximos cálculos de imposto do checkout e da emissão de nota fiscal.
/api/v1/admin/tax-rulesAdminCria uma regra de imposto
Autenticação: Authorization: Bearer <token> de um administrador com manage_taxes ou manage_settings. Requer o módulo icms-tax ativo.
Corpo da requisição
namestringobrigatórioproduct_typestringgoodsservicesdigitalimportedgoods, services, digital ou imported. Omitido: vazio (qualquer tipo).tax_regimestringsimples_nacionallucro_presumidolucro_realmeisimples_nacional, lucro_presumido, lucro_real ou mei. Omitido: vazio (qualquer regime).apply_icmsbooleanpadrão: falsefalse.apply_issbooleanpadrão: falsefalse.apply_ipibooleanpadrão: falsefalse.apply_pisbooleanpadrão: falsefalse.apply_cofinsbooleanpadrão: falsefalse.icms_override_bpsintegeriss_override_bpsintegeripi_override_bpsintegerpis_rate_bpsinteger0 ou omitido vira 165.cofins_rate_bpsinteger0 ou omitido vira 760.icms_st_enabledbooleanpadrão: falsefalse.icms_st_mva_bpsintegerpadrão: 00.difal_enabledbooleanpadrão: falsefalse.is_defaultbooleanpadrão: falsefalse.priorityintegerpadrão: 00.category_iduuidncm_patternstringis_activebooleantrue; na alteração, omitido mantém o valor atual.Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/admin/tax-rules" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Serviços - Simples Nacional",
"product_type": "services",
"tax_regime": "simples_nacional",
"apply_iss": true,
"priority": 20
}'Resposta
{
"id": 31,
"name": "Serviços - Simples Nacional",
"product_type": "services",
"tax_regime": "simples_nacional",
"apply_icms": false,
"apply_iss": true,
"apply_ipi": false,
"apply_pis": true,
"apply_cofins": true,
"pis_rate_bps": 165,
"cofins_rate_bps": 760,
"icms_st_enabled": false,
"icms_st_mva_bps": 0,
"difal_enabled": false,
"is_default": false,
"priority": 20,
"ncm_pattern": "",
"is_active": true,
"created_at": "2026-05-20T10:00:00Z",
"updated_at": "2026-05-20T10:00:00Z"
}Campos da resposta
idintegernamestringproduct_typestringgoods (mercadoria), services, digital, imported. Vazio: qualquer.tax_regimestringsimples_nacional, lucro_presumido, lucro_real ou mei. Vazio: qualquer.apply_icmsbooleanapply_issbooleanapply_ipibooleanapply_pisbooleanapply_cofinsbooleanicms_override_bpsintegeriss_override_bpsintegeripi_override_bpsintegerpis_rate_bpsinteger165 = 1,65%).cofins_rate_bpsinteger760 = 7,60%).icms_st_enabledbooleanicms_st_mva_bpsintegerdifal_enabledbooleanis_defaultbooleanpriorityintegercategory_iduuidncm_patternstring8517. Vazio: qualquer NCM.is_activebooleancreated_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"icms-tax"} / {"error":"insufficient privileges","required":"manage_taxes"} |
| 400 | Corpo inválido ou name vazio | {"error":"name is required"} |
| 500 | category_id que não existe ou falha ao gravar | {"error":"failed to create tax rule","detail":"..."} |
Substituir regra
Grava a regra inteira com o corpo enviado. Apesar de ser uma edição, não é parcial: todo campo omitido volta ao valor vazio. Por isso, leia a regra, altere o que precisa e devolva o objeto completo.
/api/v1/admin/tax-rules/{id}AdminSubstitui os dados de uma regra de imposto
Autenticação: Authorization: Bearer <token> de um administrador com manage_taxes ou manage_settings. Requer o módulo icms-tax ativo.
Parâmetros de caminho
idintegerobrigatórioCorpo da requisição
namestringobrigatórioproduct_typestringgoodsservicesdigitalimportedgoods, services, digital ou imported. Omitido: vazio (qualquer tipo).tax_regimestringsimples_nacionallucro_presumidolucro_realmeisimples_nacional, lucro_presumido, lucro_real ou mei. Omitido: vazio (qualquer regime).apply_icmsbooleanpadrão: falsefalse.apply_issbooleanpadrão: falsefalse.apply_ipibooleanpadrão: falsefalse.apply_pisbooleanpadrão: falsefalse.apply_cofinsbooleanpadrão: falsefalse.icms_override_bpsintegeriss_override_bpsintegeripi_override_bpsintegerpis_rate_bpsinteger0 ou omitido vira 165.cofins_rate_bpsinteger0 ou omitido vira 760.icms_st_enabledbooleanpadrão: falsefalse.icms_st_mva_bpsintegerpadrão: 00.difal_enabledbooleanpadrão: falsefalse.is_defaultbooleanpadrão: falsefalse.priorityintegerpadrão: 00.category_iduuidncm_patternstringis_activebooleantrue; na alteração, omitido mantém o valor atual.Exemplo de requisição
curl -X PUT "$BASE_URL/api/v1/admin/tax-rules/12" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Mercadorias - Lucro Presumido",
"product_type": "goods",
"tax_regime": "lucro_presumido",
"apply_icms": true,
"apply_ipi": true,
"apply_pis": true,
"apply_cofins": true,
"pis_rate_bps": 65,
"cofins_rate_bps": 300,
"difal_enabled": true,
"priority": 15
}'Resposta
{
"id": 12,
"name": "Mercadorias - Lucro Presumido",
"product_type": "goods",
"tax_regime": "lucro_presumido",
"apply_icms": true,
"apply_iss": false,
"apply_ipi": true,
"apply_pis": true,
"apply_cofins": true,
"pis_rate_bps": 65,
"cofins_rate_bps": 300,
"icms_st_enabled": false,
"icms_st_mva_bps": 0,
"difal_enabled": true,
"is_default": false,
"priority": 15,
"ncm_pattern": "",
"is_active": true,
"created_at": "2026-05-20T10:00:00Z",
"updated_at": "2026-05-20T10:00:00Z"
}Campos da resposta
idintegernamestringproduct_typestringgoods (mercadoria), services, digital, imported. Vazio: qualquer.tax_regimestringsimples_nacional, lucro_presumido, lucro_real ou mei. Vazio: qualquer.apply_icmsbooleanapply_issbooleanapply_ipibooleanapply_pisbooleanapply_cofinsbooleanicms_override_bpsintegeriss_override_bpsintegeripi_override_bpsintegerpis_rate_bpsinteger165 = 1,65%).cofins_rate_bpsinteger760 = 7,60%).icms_st_enabledbooleanicms_st_mva_bpsintegerdifal_enabledbooleanis_defaultbooleanpriorityintegercategory_iduuidncm_patternstring8517. Vazio: qualquer NCM.is_activebooleancreated_atstringupdated_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"icms-tax"} / {"error":"insufficient privileges","required":"manage_taxes"} |
| 400 | id que não é número ou corpo inválido | {"error":"invalid id"} |
| 500 | Regra inexistente (ou do seller, não da loja) ou falha ao gravar | {"error":"failed to update tax rule","detail":"tax rule 12 not found"} |
Excluir regra
Apaga a regra. Cálculos futuros passam a usar a próxima regra aplicável (ou nenhuma). Impostos já gravados em pedidos não mudam.
/api/v1/admin/tax-rules/{id}AdminExclui uma regra de imposto
Autenticação: Authorization: Bearer <token> de um administrador com manage_taxes ou manage_settings. Requer o módulo icms-tax ativo.
Parâmetros de caminho
idintegerobrigatórioExemplo de requisição
curl -X DELETE "$BASE_URL/api/v1/admin/tax-rules/12" \
-H "Authorization: Bearer $TOKEN"Resposta
{
"status": "deleted"
}Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token ou token inválido | {"error":"missing authorization header"} |
| 403 | Sem o privilégio exigido, ou módulo desligado | {"error":"module_disabled","module":"icms-tax"} / {"error":"insufficient privileges","required":"manage_taxes"} |
| 400 | id que não é número | {"error":"invalid id"} |
| 500 | Regra inexistente ou do seller | {"error":"failed to delete tax rule","detail":"tax rule 12 not found"} |