GetTax, powered by SAC Fiscal

Começando

Início rápido

Valide a sua chave e faça a primeira consulta de classificação fiscal.

O GetTax recebe o GTIN de um produto e o CFOP da operação e devolve as alternativas de enquadramento de CBS e IBS: CST, cClassTrib, alíquotas por componente e fundamento legal, com a versão de cada regra e tabela usada na decisão.

Atenção

A API está em homologação. Regras, tabela de cClassTrib e alíquotas ainda estão em validação pela curadoria fiscal e podem incluir dados de demonstração. Não emita documento fiscal real com base nestas respostas.

Antes de começar#

Você precisa de:

  • Uma chave de API, no formato gtx_<16 hex>.<64 hex>, criada no portal da revenda, em Chaves de API. O acesso ao portal é por convite da equipe GetTax. Ver Autenticação.
  • A URL base da API, informada pela equipe GetTax.
  • Um backend para fazer as chamadas. A chave não pode ir para navegador, app ou PDV.

Defina as duas variáveis usadas em todos os exemplos:

Terminal
export GETTAX_URL="https://..." # URL base informada pela equipe GetTax
export GETTAX_KEY="gtx_0123456789abcdef.<segredo de 64 caracteres hexadecimais>"

Requisições e respostas usam JSON em UTF-8. Envie Content-Type: application/json em toda requisição com corpo.

1. Valide a chave#

A lista de setores exige chave e não consome franquia. É o jeito mais barato de confirmar que a chave e o cabeçalho estão certos.

Terminal
curl -sS "$GETTAX_URL/v1/enums/sectors" \
-H "Authorization: Bearer $GETTAX_KEY"
json
{
"sectors": ["VAREJO_GERAL", "BAR_RESTAURANTE", "PRODUTOR_RURAL", "GOVERNO", "ATACADO", "ZONA_FRANCA"]
}

Se vier 401 com {"error": "INVALID_API_KEY"}, confira a chave e o cabeçalho Authorization.

2. Consulte um produto#

Envie o GTIN e o CFOP da operação. Esta consulta consome uma unidade da franquia.

Terminal
curl -sS -X POST "$GETTAX_URL/v1/classifications/resolve" \
-H "Authorization: Bearer $GETTAX_KEY" \
-H "Content-Type: application/json" \
-d '{"gtin": "7891000315507", "cfop": "5102"}'

sector (setor do cliente final) e referenceDate (data de vigência) são opcionais. Ver Dados da consulta.

3. Leia a resposta#

Uma resposta CLASSIFIED com uma alternativa (valores ilustrativos):

json
{
"decisionVersion": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d",
"status": "CLASSIFIED",
"reason": null,
"gtin": "07891000315507",
"cfop": "5102",
"sector": null,
"referenceDate": "2026-10-20",
"product": {
"id": "5e6f7a8b-9c0d-4e1f-a2b3-c4d5e6f7a8b9",
"gtinAsProvided": "7891000315507",
"description": "ARROZ BRANCO TIPO 1 5KG",
"brand": "MARCA EXEMPLO",
"ncm": "10063021",
"ncmSource": "GS1",
"cest": null,
"gpcCode": null,
"imageUrl": null,
"sourceKind": "BULK"
},
"classifications": [
{
"stage": "PRODUCT",
"rule": {
"id": "3f6b2c1e-8a4d-4f2b-9c7e-1d2a3b4c5d6e",
"version": 1,
"effectiveFrom": "2026-01-01",
"effectiveTo": null,
"ncm": "1006",
"gtin": null,
"sector": null
},
"cst": "200",
"cClassTrib": "200034",
"applicability": "Venda para alimentação humana.",
"observation": null,
"legalBasis": "LC 214/2025, Art. 135",
"taxClassification": {
"id": "6f7a8b9c-0d1e-4f2a-b3c4-d5e6f7a8b9c0",
"sourceVersion": "CCLASSTRIB-2026",
"effectiveFrom": "2026-01-01",
"effectiveTo": null,
"cst": "200",
"cClassTrib": "200034",
"reductionPctIbs": "0.600000",
"reductionPctCbs": "0.600000",
"gTribRegular": false,
"isApplicable": true,
"calculationMode": "STANDARD",
"legalBasis": "LC 214/2025, Art. 135"
},
"rates": [
{ "id": "0b1c2d3e-4f50-4a61-8b72-c3d4e5f60718", "sourceVersion": "ALIQUOTAS-2026", "effectiveFrom": "2026-01-01", "effectiveTo": null, "component": "CBS", "rate": "0.009000" },
{ "id": "1c2d3e4f-5061-4b72-9c83-d4e5f6071829", "sourceVersion": "ALIQUOTAS-2026", "effectiveFrom": "2026-01-01", "effectiveTo": null, "component": "IBS_UF", "rate": "0.001000" },
{ "id": "2d3e4f50-6172-4c83-ad94-e5f60718293a", "sourceVersion": "ALIQUOTAS-2026", "effectiveFrom": "2026-01-01", "effectiveTo": null, "component": "IBS_MUN", "rate": "0.000000" }
],
"components": [
{ "component": "CBS", "cst": "200", "cClassTrib": "200034", "status": "STANDARD", "standardRate": "0.009000", "reductionPct": "0.600000", "effectiveRate": "0.003600" },
{ "component": "IBS_UF", "cst": "200", "cClassTrib": "200034", "status": "STANDARD", "standardRate": "0.001000", "reductionPct": "0.600000", "effectiveRate": "0.000400" },
{ "component": "IBS_MUN", "cst": "200", "cClassTrib": "200034", "status": "STANDARD", "standardRate": "0.000000", "reductionPct": "0.600000", "effectiveRate": "0.000000" }
],
"calculation": { "status": "CALCULATED" }
}
]
}

Leia nesta ordem:

  1. status: CLASSIFIED quer dizer que todas as alternativas têm resultado. PENDING, IN_REVIEW e NOT_FOUND também chegam com HTTP 200 e pedem outra ação. Ver Status e alternativas.
  2. classifications[]: cada item é uma alternativa de enquadramento. cst e cClassTrib vão no documento fiscal; applicability diz quando a alternativa se aplica. Com mais de uma alternativa, a ordem não é recomendação.
  3. components[]: a alíquota de cada componente. Aqui, CST 200 com redução de 60% (0.600000) sobre CBS de 0,9% dá CBS efetiva de 0,36% (0.003600). Os valores são strings de fração decimal. Ver Componentes e alíquotas.
  4. decisionVersion: identifica esta decisão na trilha de auditoria. Guarde junto do documento emitido.

Próximos passos#