NCM BrasilNCM, CEST e alíquota de ICMS

API JSON gratuita de NCM, CEST e ICMS

Endpoints públicos, com CORS liberado, para validar NCM no cadastro de produtos, buscar CEST e consultar a alíquota de ICMS de qualquer estado direto do seu ERP. Sem cadastro para uso normal.

Limites

Endpoints

GET /api/ncm/84713012
{
  "codigo": "8471.30.12",
  "codigoLimpo": "84713012",
  "descricao": "Máquinas automáticas para processamento de dados › portáteis › com teclado",
  "capitulo": "84",
  "vigenteDesde": "01/04/2022",
  "ato": "Res Gecex 272 2021",
  "cest": [],
  "icms": {
    "SP": {
      "interna": 18,
      "fcp": 0
    },
    "RJ": {
      "interna": 20,
      "fcp": 2
    }
  }
}
GET /api/cest/1702300
{
  "cest": "17.023.00",
  "segmento": "17",
  "segmentoNome": "PRODUTOS ALIMENTÍCIOS",
  "descricao": "...",
  "ncm": [
    "2005"
  ],
  "escalaNaoRelevante": false
}
GET /api/icms/sp
{
  "uf": "SP",
  "nome": "São Paulo",
  "interna": 18,
  "fcp": 0,
  "desde": "2021-01-15",
  "lei": "Lei estadual 6.374/1989 e Decreto 45.490/2000 (RICMS/SP)",
  "interestadual": {
    "RJ": 12,
    "BA": 7,
    "MG": 12
  }
}
GET /api/buscar?q=notebook
{
  "total": 3,
  "resultados": [
    {
      "tipo": "ncm",
      "codigo": "84713012",
      "descricao": "..."
    }
  ]
}
GET /api/difal?origem=SP&destino=RJ&valor=1000
{
  "origem": "SP",
  "destino": "RJ",
  "interestadual": 12,
  "interna": 20,
  "fcp": 2,
  "baseUnica": {
    "difal": 80
  },
  "baseDupla": {
    "base": 1100,
    "difal": 100
  }
}

Exemplo de uso

const r = await fetch('https://www.ncmbrasil.com.br/api/ncm/84713012');
const ncm = await r.json();
console.log(ncm.descricao, ncm.icms.SP.interna);

Respostas em UTF-8, com Cache-Control de 6 horas. Códigos inexistentes devolvem 404 com {"erro":"nao encontrado"}; excesso de requisições devolve 429.

Fontes e atualização

Pedimos apenas que, ao exibir os dados publicamente, cite a fonte com link para ncmbrasil.com.br.

Perguntas frequentes

A API é mesmo gratuita?

Sim, para uso normal dentro dos limites acima. Ela existe porque validar NCM no cadastro de produtos deveria ser trivial — e hoje não é.

Vocês garantem disponibilidade?

Não há SLA no plano gratuito. Para uso crítico em produção, entre em contato: conseguimos oferecer chave dedicada e limites maiores.

Posso baixar a base inteira?

Os arquivos normalizados que alimentam o site são gerados por um script aberto no repositório do projeto, a partir das fontes oficiais. Para o cruzamento em massa, prefira baixar direto da fonte e usar a API só na conferência.