Introdução
O que é a API
Uma API (Application Programming Interface) é um conjunto de comandos, funções, protocolos e objetos que os programadores podem usar para interagir com sistemas externos (como ERPs).
Ela fornece aos desenvolvedores de software comandos para extrair informações da LegisWeb de forma automatizada — como alíquotas, tributos e regras fiscais — que podem ser apresentadas ou inseridas diretamente no sistema do cliente.
As APIs visam extrair os dados e conteúdos processados pela LegisWeb de forma rápida e confiável para utilização em qualquer outro sistema. Elas são desenvolvidas no padrão REST (Representational State Transfer) e sua resposta se dá no formato JSON (JavaScript Object Notation), que consiste em um padrão de estrutura de dados para ser utilizado e convertido para qualquer sistema.
Cada API é acompanhada de sua documentação, detalhando seus métodos de consulta e atributos de retorno.
Integração API
A integração da API Legisweb com outro sistema é de responsabilidade do cliente. Caso você necessite que a integração seja feita a um sistema de terceiros, contratado por você, como um ERP, é a empresa que desenvolve este sistema que deverá proceder com a integração.
O que você vai encontrar na documentação da API
Todos os parâmetros de requisição e resposta da API são documentados:
- Endpoint: o endereço da API e o método de chamada.
- Parâmetros da chamada: quais informações enviar (obrigatórias e opcionais) e o que cada uma significa.
- Campos da resposta: o que cada campo do JSON retornado representa.
Como o consumo é contabilizado
Cada contrato tem um limite mensal de consultas à API, contratado conforme a necessidade do cliente, que zera a cada virada de mês, ou seja, todo dia 01. Em regra, só é contabilizado como consumo uma consulta processada com sucesso, ou seja, com retorno de resultado. Se a consulta não retornar nenhum resultado o consumo não é contabilizado. Requisições rejeitadas (token inválido, parâmetro obrigatório faltando, etc.) não contabilizam consumo.
Parâmetros de autenticação: t e c
Toda chamada à API exige dois parâmetros na URL:
t (o token) e c (o código de cliente, sempre numérico).
O parâmetro c é o código numérico do cliente gerado pela LegisWeb. Usar qualquer outro valor no lugar do código de cliente resulta em Token ou código inválido.
Mensagens de erro da API
| Mensagem / situação | O que verificar |
|---|---|
Requisição Inválida. |
Faltou o token (t) ou o código de cliente (c) na chamada, ou nenhum parâmetro foi enviado. |
Token ou código inválido. |
Confira se o token/código estão corretos, se o token não expirou, e se o módulo consultado está contratado. |
Limite de consumo atingido. |
O limite mensal foi atingido. é possível habilitar consumo adicional ao gerar o token (ver Tabela de consumo excedente). |
registros: 0 — "Nenhum resultado encontrado" |
Não é erro: a consulta funcionou, só não há registro para os parâmetros enviados. Tente pesquisar pela descrição e veja as Orientações de uso (sinônimos, NBS × NCM, TIPI). |
APIs disponíveis
Estas são as APIs disponíveis, agrupadas por categoria. A documentação completa de cada uma — parâmetros de chamada e campos de resposta — está na navegação ao lado.
Agenda Tributária
Benefícios Fiscais
Classificação Fiscal
Comércio Exterior
Correlação de Serviços
Empresas
PIS/COFINS
Substituição Tributária
Introdução
Algumas APIs, como Benefício Fiscal e Alíquota do ICMS, devem ser pesquisadas também pela descrição, além da NCM — a legislação pode trazer informações sem indicação de NCM ou com NCM antiga.
Atenção também aos sinônimos: a legislação pode usar um termo diferente do pesquisado, e é recomendável fazer uma pesquisa abrangente.
| Caso | O que acontece |
|---|---|
| Móveis × Mesa | Por mais que uma mesa seja um móvel, a alíquota aparece apenas na pesquisa por "móvel". Atente-se aos sinônimos. |
| Xampu × Shampoo | Os Estados podem usar grafias diferentes para a mesma mercadoria. |
| NBS × NCM | Algumas legislações seguem com códigos NBS; a pesquisa só por NCM pode não retornar resultado. Pesquise pela descrição. |
| TIPI antiga × nova | Nem toda legislação acompanha as atualizações da TIPI. A ferramenta apresenta o que está no regulamento — pesquise pela descrição. |
Consulta GTIN
A API de Consulta GTIN exige um certificado digital A1 cadastrado na plataforma (emitente de NF-e/NFC-e junto à SEFAZ) — sem certificado válido, a consulta por GTIN não funciona. A consulta por NCM, no mesmo endpoint, não exige certificado. A consulta por GTIN também pode retornar um status informando que o serviço da SEFAZ está temporariamente indisponível — nesse caso, se já houver um cadastro anterior desse GTIN salvo na base local, ele é retornado com aviso da data em que foi obtido, em vez de erro.
Gestão de acesso
Histórico de versões
Principais mudanças de cada versão da API, da mais recente para a mais antiga. A versão atual é a 1.13.
Versão 1.13 28/07/2026 Atual
- Lançado o novo portal de documentação da API, substituindo o manual em PDF: exemplos de integração em 8 linguagens (PHP, JavaScript, TypeScript, Java, Go, Python, C#, C++), gestão de token e consumo unificada na mesma página, exportação em PDF e este histórico de versões.
Versão 1.12 20/07/2026
- Adicionados os status 108 e 109 à tabela de Status do Retorno da API de Consulta GTIN: indicam indisponibilidade temporária do serviço ccgConsGTIN da SEFAZ (108 = curto prazo, 109 = sem previsão de retorno) — não são erro do GTIN consultado nem do certificado.
- Adicionado o status 9999 (interno da API, não vem da SEFAZ): ocorre quando a consulta retorna 108 ou 109 e existe um cadastro anterior desse GTIN salvo na base local — nesse caso são retornados os dados salvos previamente, com aviso de que a SEFAZ falhou e a data do registro.
- Esclarecido que o status 9998 (já existente) segue a mesma lógica de fallback do 9999, mas para os status 9494, 9495 e 9496 (GTIN sem dados retornáveis, mas com cadastro anterior salvo).
Versão 1.11 16/07/2026
- Adicionada tabela de Status do Retorno na API de Consulta GTIN.
Versão 1.10 06/07/2026
- Sem mudanças de conteúdo nesta versão.
Versão 1.9 07/05/2026
- Adicionado API para Consulta de Código NCM na seção Consulta GTIN.
Versão 1.8 13/02/2026
- Adicionado API para consulta de Códigos de Situação Tributária (CST).
- Adicionado API para Correlação de Serviços.
- Adicionado API para Benefícios Fiscais da Reforma Tributária.
Versão 1.7 27/01/2026
- Alterado exemplo da API PIS/Cofins para exibir exemplo com CBS.
- Alterado exemplo da API Alíquota Padrão para exibir exemplo com IBS Estadual.
- Adicionado parâmetro de retorno "tributo" na API Alíquota Padrão, com o nome do tributo.
Versão 1.6 06/11/2025
- Adicionado API para consulta de Alíquota Padrão.
Versão 1.5 data não registrada
- Adicionado novo parâmetro de pesquisa na API PIS/Cofins.
- Adicionado API para consulta do CFOP.
Versão 1.4.4 data não registrada
- Adicionado novo parâmetro de pesquisa na API Correlação NBM NCM NALADI.
Versão 1.4.3 data não registrada
- Adicionado novo parâmetro de pesquisa na API ICMS.
Versão 1.4.2 data não registrada
- Adicionado Orientações de Uso.
Versão 1.4.1 data não registrada
- Adicionado API para Consulta GTIN.
Versão 1.4 data não registrada
- Adicionado API para Consulta de Empresas.
- Adicionado novos parâmetros de pesquisa na API Pauta Fiscal.
Gestão de acesso
Tabela de preço de consumo excedente
Esta tabela é aplicada após se atingir o limite de consumo mensal da faixa contratada, quando habilitada a opção Habilitar Consumo Adicional durante a geração do token.
| Quantidade de consumo | Valor por consumo | |
|---|---|---|
| De | Até | |
| 0 | 999 | R$ 0,10 |
| 1.000 | 9.999 | R$ 0,08 |
| 10.000 | 49.999 | R$ 0,06 |
| 50.000 | 99.999 | R$ 0,05 |
| 100.000 | 999.999 | R$ 0,04 |
| 1.000.000 | 4.999.999 | R$ 0,03 |
| 5.000.000 | 9.999.999 | R$ 0,02 |
| 10.000.000 | 999.999.999 | R$ 0,01 |
Comércio Exterior
Imposto de Importação (II)
Consulta a Tarifa Externa Comum (Imposto de Importação) através da NCM ou descrição do produto.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 34012090;
$descricao = 'sabão';
$url = 'https://www.legisweb.com.br/api/ii/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 34012090;
const descricao = 'sabão';
const url = 'https://www.legisweb.com.br/api/ii/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 34012090;
const descricao: string = 'sabão';
const url = 'https://www.legisweb.com.br/api/ii/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/ii/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&descricao=sab%C3%A3o";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/ii/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&descricao=sab%C3%A3o"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 34012090,
'descricao': 'sabão',
}
resposta = requests.get('https://www.legisweb.com.br/api/ii/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/ii/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&descricao=sab%C3%A3o";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/ii/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&descricao=sab%C3%A3o";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"ncm": "string",
"tec": "string",
"descricao": "string",
"descricao_espanhol": "Jabones excluidos de tocador,en formas ncop.",
"descricao_ingles": "Other soaps",
"descricao_completa": "string",
"aliquota": "string",
"capitulo": "string",
"capitulo_descricao": "string",
"secao": "string",
"secao_descricao": "string",
"variacao_aliquota": [
{
"descricao": "string",
"valor": "string",
"vigencia_inicial": "string",
"vigencia_final": "string",
"observacoes": "string",
"base_legal": "string"
}
],
"notas": [
{
"descricao": "string",
"base_legal": "string"
}
],
"unidade_medida": [
{
"medida": "string",
"data_inicial": "string",
"data_final": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar descricao. |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres). Obrigatório se não informar ncm. |
excecao_num |
Opcional | Número EX Tarifário |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.ncm |
string | NCM do produto |
resposta.tec |
string | Nomenclatura Comum do Mercosul (NCM) e alíquotas do Imposto de Importação que compõem a Tarifa Externa Comum (TEC) |
resposta.descricao |
string | Descrição da TEC |
resposta.descricao_espanhol |
string | Descrição da TEC em espanhol |
resposta.descricao_ingles |
string | Descrição da TEC em inglês |
resposta.descricao_completa |
string | Descrição completa |
resposta.aliquota |
string | Alíquota |
resposta.capitulo |
string | Capítulo |
resposta.capitulo_descricao |
string | Descrição do capítulo |
resposta.secao |
string | Seção |
resposta.secao_descricao |
string | Descrição da seção |
resposta.variacao_aliquota |
array<object> | Variações de alíquota aplicáveis ao NCM |
resposta.variacao_aliquota.descricao |
string | Descrição da variação de alíquota |
resposta.variacao_aliquota.valor |
string | Valor da variação |
resposta.variacao_aliquota.vigencia_inicial |
string | Data de vigência inicial |
resposta.variacao_aliquota.vigencia_final |
string | Data de vigência final |
resposta.variacao_aliquota.observacoes |
string | Observações referentes à variação/alíquota |
resposta.variacao_aliquota.base_legal |
string | Base legal |
resposta.notas |
array<object> | Notas complementares relacionadas ao NCM |
resposta.notas.descricao |
string | Descrição da nota complementar |
resposta.notas.base_legal |
string | Base legal referente à nota complementar |
resposta.unidade_medida |
array<object> | Unidades de medida aplicáveis ao NCM, com vigência |
resposta.unidade_medida.medida |
string | Unidade de medida |
resposta.unidade_medida.data_inicial |
string | Data inicial de vigência da unidade de medida |
resposta.unidade_medida.data_final |
string|null | Data final de vigência da unidade de medida |
ICMS
Alíquota Diferenciada do ICMS
Consulta a alíquota de ICMS de um produto em qualquer Estado através de seu código NCM, código ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 22030000;
$estado = 'SP';
$codigo = 8449;
$descricao = 'bebidas alcoólicas';
$url = 'https://www.legisweb.com.br/api/icms/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'estado=' . $estado . '&' . 'codigo=' . $codigo . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 22030000;
const estado = 'SP';
const codigo = 8449;
const descricao = 'bebidas alcoólicas';
const url = 'https://www.legisweb.com.br/api/icms/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&estado=' + estado +
'&codigo=' + codigo +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 22030000;
const estado: string = 'SP';
const codigo: string = 8449;
const descricao: string = 'bebidas alcoólicas';
const url = 'https://www.legisweb.com.br/api/icms/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&estado=' + estado +
'&codigo=' + codigo +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/icms/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=22030000&estado=SP&codigo=8449&descricao=bebidas+alco%C3%B3licas";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/icms/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=22030000&estado=SP&codigo=8449&descricao=bebidas+alco%C3%B3licas"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 22030000,
'estado': 'SP',
'codigo': 8449,
'descricao': 'bebidas alcoólicas',
}
resposta = requests.get('https://www.legisweb.com.br/api/icms/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/icms/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=22030000&estado=SP&codigo=8449&descricao=bebidas+alco%C3%B3licas";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/icms/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=22030000&estado=SP&codigo=8449&descricao=bebidas+alco%C3%B3licas";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"ncm": "string",
"codigo": "string",
"aliquota": "string",
"descricao": "string",
"observacao": "string",
"estado": "string",
"base_legal": "string",
"vigencia_inicial": "string",
"aliquota_fcp": "string",
"descricao_fcp": "string",
"aliquota_fcp_base_legal": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar codigo nem descricao. |
estado |
Sim |
Sigla do estado brasileiro Valores: AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO |
codigo |
Opcional | Código do registro |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) |
modo_busca |
Opcional |
Habilita o modo busca para retornar NCMs com as mesmas subposições (até o 6º dígito). Enviar 1 para habilitar. Valores: 1 |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.ncm |
string | NCM do produto |
resposta.codigo |
string | Código relacionado ao registro da NCM |
resposta.aliquota |
string | Alíquota |
resposta.descricao |
string | Descrição |
resposta.observacao |
string | Observações |
resposta.estado |
string | Estado |
resposta.base_legal |
string | Base legal |
resposta.vigencia_inicial |
string | Data da vigência inicial |
resposta.aliquota_fcp |
string | Alíquota do Fundo de Combate à Pobreza |
resposta.descricao_fcp |
string | Descrição do Fundo de Combate à Pobreza |
resposta.aliquota_fcp_base_legal |
string | Base legal do Fundo de Combate à Pobreza |
IPI
Alíquota do IPI
Consulta a alíquota de IPI de um produto através de seu código NCM, código ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 34012090;
$codigo = 20849;
$descricao = 'sabão';
$url = 'https://www.legisweb.com.br/api/ipi/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'codigo=' . $codigo . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 34012090;
const codigo = 20849;
const descricao = 'sabão';
const url = 'https://www.legisweb.com.br/api/ipi/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&codigo=' + codigo +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 34012090;
const codigo: string = 20849;
const descricao: string = 'sabão';
const url = 'https://www.legisweb.com.br/api/ipi/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&codigo=' + codigo +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/ipi/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&codigo=20849&descricao=sab%C3%A3o";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/ipi/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&codigo=20849&descricao=sab%C3%A3o"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 34012090,
'codigo': 20849,
'descricao': 'sabão',
}
resposta = requests.get('https://www.legisweb.com.br/api/ipi/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/ipi/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&codigo=20849&descricao=sab%C3%A3o";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/ipi/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&codigo=20849&descricao=sab%C3%A3o";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"ncm": "string",
"codigo": "string",
"descricao": "string",
"aliquota": "string",
"excecao_numero": "string",
"excecao_descricao": "string",
"variante": "string",
"observacao": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar codigo nem descricao. |
codigo |
Opcional | Código do registro |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) |
excecao_num |
Opcional | Número exceção |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.ncm |
string | NCM do produto |
resposta.codigo |
string | Código relacionado ao registro da NCM |
resposta.descricao |
string | Descrição |
resposta.aliquota |
string | Alíquota |
resposta.excecao_numero |
string | Número exceção |
resposta.excecao_descricao |
string | Exceção descrição |
resposta.variante |
string | Variante |
resposta.observacao |
string | Observações |
IPI
Tabela do IPI (TIPI)
Informa a descrição completa do produto conforme a TIPI e a alíquota do IPI, bem como suas variações e exceções.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 34012090;
$codigo = 20849;
$descricao = 'sabão';
$url = 'https://www.legisweb.com.br/api/tipi/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'codigo=' . $codigo . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 34012090;
const codigo = 20849;
const descricao = 'sabão';
const url = 'https://www.legisweb.com.br/api/tipi/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&codigo=' + codigo +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 34012090;
const codigo: string = 20849;
const descricao: string = 'sabão';
const url = 'https://www.legisweb.com.br/api/tipi/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&codigo=' + codigo +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/tipi/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&codigo=20849&descricao=sab%C3%A3o";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/tipi/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&codigo=20849&descricao=sab%C3%A3o"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 34012090,
'codigo': 20849,
'descricao': 'sabão',
}
resposta = requests.get('https://www.legisweb.com.br/api/tipi/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/tipi/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&codigo=20849&descricao=sab%C3%A3o";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/tipi/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=34012090&codigo=20849&descricao=sab%C3%A3o";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"ncm": "string",
"codigo": "string",
"descricao": "string",
"aliquota": "string",
"excecao_numero": "string",
"excecao_descricao": "string",
"variante": "string",
"observacao": "string",
"capitulo_numero": "string",
"capitulo_titulo": "string",
"capitulo_descricao": "string",
"secao_numero": "string",
"secao_titulo": "string",
"secao_descricao": "string",
"tipi_descricao": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar codigo nem descricao. |
codigo |
Opcional | Código do registro |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) |
excecao_num |
Opcional | Número exceção |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.ncm |
string | NCM do produto |
resposta.codigo |
string | Código relacionado ao registro da NCM |
resposta.descricao |
string | Descrição |
resposta.aliquota |
string | Alíquota |
resposta.excecao_numero |
string | Número exceção |
resposta.excecao_descricao |
string | Exceção descrição |
resposta.variante |
string | Variante |
resposta.observacao |
string | Observações |
resposta.capitulo_numero |
string | Número do capítulo |
resposta.capitulo_titulo |
string | Descrição do capítulo |
resposta.capitulo_descricao |
string | Notas legais completas do capítulo (texto integral, pode ser longo) |
resposta.secao_numero |
string | Seção número |
resposta.secao_titulo |
string | Seção título |
resposta.secao_descricao |
string | Seção descrição |
resposta.tipi_descricao |
string | Descrição da tabela do TIPI |
PIS/COFINS
PIS e COFINS
Consulta os valores (Cumulativo e Não Cumulativo), regimes, suspensão ou isenção de PIS e Cofins através da NCM ou descrição do produto.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = '07020000';
$codigo = 7881;
$regime_tributario_origem = 2;
$atividade_origem = 2;
$atividade_destino = 2;
$descricao = 'produtos hortícolas';
$url = 'https://www.legisweb.com.br/api/piscofins/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'codigo=' . $codigo . '&' . 'regime_tributario_origem=' . $regime_tributario_origem . '&' . 'atividade_origem=' . $atividade_origem . '&' . 'atividade_destino=' . $atividade_destino . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = '07020000';
const codigo = 7881;
const regimeTributarioOrigem = 2;
const atividadeOrigem = 2;
const atividadeDestino = 2;
const descricao = 'produtos hortícolas';
const url = 'https://www.legisweb.com.br/api/piscofins/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&codigo=' + codigo +
'®ime_tributario_origem=' + regimeTributarioOrigem +
'&atividade_origem=' + atividadeOrigem +
'&atividade_destino=' + atividadeDestino +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = '07020000';
const codigo: string = 7881;
const regimeTributarioOrigem: string = 2;
const atividadeOrigem: string = 2;
const atividadeDestino: string = 2;
const descricao: string = 'produtos hortícolas';
const url = 'https://www.legisweb.com.br/api/piscofins/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&codigo=' + codigo +
'®ime_tributario_origem=' + regimeTributarioOrigem +
'&atividade_origem=' + atividadeOrigem +
'&atividade_destino=' + atividadeDestino +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/piscofins/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=07020000&codigo=7881®ime_tributario_origem=2&atividade_origem=2&atividade_destino=2&descricao=produtos+hort%C3%ADcolas";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/piscofins/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=07020000&codigo=7881®ime_tributario_origem=2&atividade_origem=2&atividade_destino=2&descricao=produtos+hort%C3%ADcolas"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': '07020000',
'codigo': 7881,
'regime_tributario_origem': 2,
'atividade_origem': 2,
'atividade_destino': 2,
'descricao': 'produtos hortícolas',
}
resposta = requests.get('https://www.legisweb.com.br/api/piscofins/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/piscofins/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=07020000&codigo=7881®ime_tributario_origem=2&atividade_origem=2&atividade_destino=2&descricao=produtos+hort%C3%ADcolas";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/piscofins/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=07020000&codigo=7881®ime_tributario_origem=2&atividade_origem=2&atividade_destino=2&descricao=produtos+hort%C3%ADcolas";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"aplicabilidade": "string",
"regra": "string",
"trib": [
{
"codigo": 7454,
"ncm": "string",
"descricao": "string",
"ex": "string",
"regime_tributario_origem": "string",
"atividade_origem": "string",
"atividade_destino": "string",
"regime_especial": "string",
"tributo": "string",
"tipo_valor": "string",
"valor": "string",
"descricao_valor": "string",
"id_base_legal": 0,
"descricao_base_legal": "string",
"cst_pis": "string",
"cst_cofins": "string",
"cst_simples": "string",
"aliquota_padrao": [
{
"id": null,
"regime_tributario": null,
"tributo": null,
"valor": null,
"cst": null,
"id_base_legal": null,
"desc_base_legal": null,
"obs": null
}
]
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||||||
c |
Sim | Código do cliente | ||||||||||
ncm |
Opcional | NCM do produto. Obrigatório se não informar codigo nem descricao. | ||||||||||
codigo |
Opcional | Código do NCM. Obrigatório se não informar ncm nem descricao. | ||||||||||
regime_tributario_origem |
Sim |
Valores: 1, 2, 3 |
||||||||||
atividade_origem |
Sim |
Valores: 1, 2, 3, 4 |
||||||||||
atividade_destino |
Opcional |
Valores: 1, 2, 3, 4 |
||||||||||
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) | ||||||||||
excecao_num |
Opcional | Número exceção | ||||||||||
aliquota_padrao |
Opcional |
Valores: 0, 1 |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.aplicabilidade |
string | Aplicabilidade da regra |
resposta.regra |
string | Tipo da regra |
resposta.trib |
array<object> | Informações da tributação |
resposta.trib.codigo |
integer | Código do registro de tributação |
resposta.trib.ncm |
string | NCM |
resposta.trib.descricao |
string | Descrição do produto informada na base legal |
resposta.trib.ex |
string | Exceção |
resposta.trib.regime_tributario_origem |
string | Regime tributário de origem |
resposta.trib.atividade_origem |
string | Atividade de origem |
resposta.trib.atividade_destino |
string | Atividade de destino |
resposta.trib.regime_especial |
string | Indica se possui regime especial (Sim ou Não) |
resposta.trib.tributo |
string | Nome do tributo |
resposta.trib.tipo_valor |
string | Tipo de valor |
resposta.trib.valor |
string | Valor da alíquota |
resposta.trib.descricao_valor |
string | Descrição do valor |
resposta.trib.id_base_legal |
integer | ID da base legal |
resposta.trib.descricao_base_legal |
string | Descrição da base legal |
resposta.trib.cst_pis |
string | CST do PIS |
resposta.trib.cst_cofins |
string | CST da COFINS |
resposta.trib.cst_simples |
string | CST do Simples Nacional |
resposta.trib.aliquota_padrao |
array<object> | Alíquota padrão, usada quando a operação e/ou a descrição da mercadoria não se enquadra na regra específica |
resposta.trib.aliquota_padrao.id |
string | ID da alíquota padrão |
resposta.trib.aliquota_padrao.regime_tributario |
string | Regime tributário |
resposta.trib.aliquota_padrao.tributo |
string | Nome do tributo |
resposta.trib.aliquota_padrao.valor |
string | Valor |
resposta.trib.aliquota_padrao.cst |
string | CST |
resposta.trib.aliquota_padrao.id_base_legal |
integer | ID da base legal |
resposta.trib.aliquota_padrao.desc_base_legal |
string | Descrição da base legal |
resposta.trib.aliquota_padrao.obs |
string | Observação de uso da alíquota padrão |
PIS/COFINS
PIS e COFINS de Importação
Consulta as alíquotas do PIS-Importação e da COFINS-Importação de qualquer produto, informando sua NCM ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 16022000;
$descricao = 'fígados';
$url = 'https://www.legisweb.com.br/api/piscofins-importacao/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 16022000;
const descricao = 'fígados';
const url = 'https://www.legisweb.com.br/api/piscofins-importacao/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 16022000;
const descricao: string = 'fígados';
const url = 'https://www.legisweb.com.br/api/piscofins-importacao/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/piscofins-importacao/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=16022000&descricao=f%C3%ADgados";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/piscofins-importacao/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=16022000&descricao=f%C3%ADgados"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 16022000,
'descricao': 'fígados',
}
resposta = requests.get('https://www.legisweb.com.br/api/piscofins-importacao/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/piscofins-importacao/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=16022000&descricao=f%C3%ADgados";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/piscofins-importacao/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=16022000&descricao=f%C3%ADgados";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"tec": "string",
"descricao": "string",
"ncm": "string",
"regras": [
{
"aliquota_adicional": [
{
"aliquota": null,
"vigencia_inicio": null,
"vigencia_fim": null
}
],
"regra": "string",
"aplicacao": "string",
"vigencia_inicio": "string",
"vigencia_fim": "string",
"ncm": "string",
"ex_tarifario": 0,
"num_ex_tarifario": 0,
"descricao": "string",
"ncm_vigencia_inicio": "string",
"ncm_vigencia_fim": "string",
"aliquota_pis": "string",
"aliquota_cofins": "string",
"ncm_excecao_ex": "string",
"base_legal": "string",
"titulo_base_legal": "string"
}
],
"padrao": [
{
"alerta": "string",
"aliquota_pis_importacao": "string",
"aliquota_cofins_importacao": "string",
"vigencia_inicio": "string",
"vigencia_fim": "string",
"base_legal": "string",
"titulo_base_legal": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar codigo nem descricao. |
codigo |
Opcional | Código do registro |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.tec |
string | Referência normativa da Tarifa Externa Comum relacionada ao NCM |
resposta.descricao |
string | Descrição do produto |
resposta.ncm |
string | NCM |
resposta.regras |
array<object> | Regras específicas de exceção aplicáveis ao NCM (vazio quando não há exceção, prevalecendo a alíquota padrão) |
resposta.regras.aliquota_adicional |
array|null | Alíquotas adicionais aplicáveis à regra |
resposta.regras.regra |
string | Regra |
resposta.regras.aplicacao |
string | Aplicação |
resposta.regras.vigencia_inicio |
string | Vigência de início da regra |
resposta.regras.vigencia_fim |
string | Vigência final da regra |
resposta.regras.ncm |
string | NCM |
resposta.regras.ex_tarifario |
integer | Indica se existe EX Tarifário (1 ou 0) |
resposta.regras.num_ex_tarifario |
integer | Número do EX Tarifário |
resposta.regras.descricao |
string | Descrição |
resposta.regras.ncm_vigencia_inicio |
string | NCM vigência inicial |
resposta.regras.ncm_vigencia_fim |
string | NCM vigência final |
resposta.regras.aliquota_pis |
string | Alíquota do PIS-Importação |
resposta.regras.aliquota_cofins |
string | Alíquota da COFINS-Importação |
resposta.regras.ncm_excecao_ex |
string | NCM exceção EX |
resposta.regras.base_legal |
string | Base legal |
resposta.regras.titulo_base_legal |
string | Título da base legal |
resposta.padrao |
array<object> | Alíquota padrão do PIS/COFINS-Importação aplicável quando não há regra de exceção específica em |
resposta.padrao.alerta |
string | Alerta sobre a aplicabilidade da alíquota padrão |
resposta.padrao.aliquota_pis_importacao |
string | Alíquota padrão do PIS-Importação |
resposta.padrao.aliquota_cofins_importacao |
string | Alíquota padrão da COFINS-Importação |
resposta.padrao.vigencia_inicio |
string | Vigência inicial |
resposta.padrao.vigencia_fim |
string | Vigência final |
resposta.padrao.base_legal |
string | Base legal |
resposta.padrao.titulo_base_legal |
string | Título da base legal |
Substituição Tributária
ST Interna
Consulta de produtos sujeitos à Substituição Tributária nas operações internas através da NCM ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$estado = 'SP';
$ncm = 39241000;
$codigo = 194833;
$descricao = 'utensílios de mesa';
$cest = '14.006.00';
$url = 'https://www.legisweb.com.br/api/st-interna/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'estado=' . $estado . '&' . 'ncm=' . $ncm . '&' . 'codigo=' . $codigo . '&' . 'descricao=' . $descricao . '&' . 'cest=' . $cest;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const estado = 'SP';
const ncm = 39241000;
const codigo = 194833;
const descricao = 'utensílios de mesa';
const cest = '14.006.00';
const url = 'https://www.legisweb.com.br/api/st-interna/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado=' + estado +
'&ncm=' + ncm +
'&codigo=' + codigo +
'&descricao=' + descricao +
'&cest=' + cest;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const estado: string = 'SP';
const ncm: string = 39241000;
const codigo: string = 194833;
const descricao: string = 'utensílios de mesa';
const cest: string = '14.006.00';
const url = 'https://www.legisweb.com.br/api/st-interna/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado=' + estado +
'&ncm=' + ncm +
'&codigo=' + codigo +
'&descricao=' + descricao +
'&cest=' + cest;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/st-interna/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&ncm=39241000&codigo=194833&descricao=utens%C3%ADlios+de+mesa&cest=14.006.00";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/st-interna/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&ncm=39241000&codigo=194833&descricao=utens%C3%ADlios+de+mesa&cest=14.006.00"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'estado': 'SP',
'ncm': 39241000,
'codigo': 194833,
'descricao': 'utensílios de mesa',
'cest': '14.006.00',
}
resposta = requests.get('https://www.legisweb.com.br/api/st-interna/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/st-interna/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&ncm=39241000&codigo=194833&descricao=utens%C3%ADlios+de+mesa&cest=14.006.00";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/st-interna/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&ncm=39241000&codigo=194833&descricao=utens%C3%ADlios+de+mesa&cest=14.006.00";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"codigo": "string",
"sigla_estado": "string",
"ncm": "string",
"cest": "string",
"descricao": "string",
"observacao": "string",
"segmento": "string",
"aliquota_interna": "string",
"fundo_pobreza": "string",
"mva": "string",
"mva_ajustada": "string",
"mva_ajustada_4": "string",
"mva_ajustada_7": "string",
"mva_ajustada_12": "string",
"mva_positiva": "string",
"mva_neutra": "string",
"mva_negativa": "string",
"vigencia_inicial": "string",
"vigencia_final": "string",
"base_legal_st": "string",
"data_efeito_st": "string",
"base_calculo": "string",
"prazo_recolhimento": "string",
"aplicabilidade": "string",
"nao_aplicabilidade": "string",
"variacao_mva": [
{
"mva": "string",
"descricao": "string",
"mva_ajustada": "string",
"mva_ajustada_4": "string",
"mva_ajustada_7": "string",
"mva_ajustada_12": "string",
"mva_positiva": "string",
"mva_negativa": "string",
"mva_neutra": "string",
"base_calculo": "string"
}
],
"reducao_mva": [
{
"descricao": "string",
"regime_destino": "string",
"base_legal": "string",
"percentual_reducao": "string",
"mva_reduzido": "string",
"mva_ajustada_4_reduzido": "string",
"mva_ajustada_7_reduzido": "string",
"mva_ajustada_12_reduzido": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||
|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||
c |
Sim | Código do cliente | ||||||
estado |
Sim |
Sigla do estado brasileiro Valores: AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO |
||||||
ncm |
Opcional | NCM do produto. Obrigatório se não informar codigo nem descricao. | ||||||
codigo |
Opcional | Código do registro | ||||||
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) | ||||||
cest |
Opcional | CEST | ||||||
regime_tributario_destino |
Opcional |
Regime tributário do destinatário (apenas PR).
Valores: 1, 2 |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.codigo |
string | Código do registro |
resposta.sigla_estado |
string | Sigla do estado |
resposta.ncm |
string | NCM |
resposta.cest |
string | CEST |
resposta.descricao |
string | Descrição |
resposta.observacao |
string | Observações |
resposta.segmento |
string | Segmento |
resposta.aliquota_interna |
string | Alíquota interna |
resposta.fundo_pobreza |
string | Fundo de Combate à Pobreza |
resposta.mva |
string | MVA (Margem de Valor Agregado) |
resposta.mva_ajustada |
string | MVA ajustada |
resposta.mva_ajustada_4 |
string | MVA ajustada a 4% |
resposta.mva_ajustada_7 |
string | MVA ajustada a 7% |
resposta.mva_ajustada_12 |
string | MVA ajustada a 12% |
resposta.mva_positiva |
string | MVA positiva |
resposta.mva_neutra |
string | MVA neutra |
resposta.mva_negativa |
string | MVA negativa |
resposta.vigencia_inicial |
string | Vigência inicial |
resposta.vigencia_final |
string | Vigência final |
resposta.base_legal_st |
string | Base legal da Substituição Tributária |
resposta.data_efeito_st |
string | Data de efeito da Substituição Tributária |
resposta.base_calculo |
string | Base de cálculo |
resposta.prazo_recolhimento |
string | Prazo de recolhimento |
resposta.aplicabilidade |
string | Aplicabilidade |
resposta.nao_aplicabilidade |
string | Não aplicabilidade |
resposta.variacao_mva |
array<object> | Variações de MVA aplicáveis (quando o produto possui mais de uma faixa/variação) |
resposta.variacao_mva.mva |
string | MVA da variação |
resposta.variacao_mva.descricao |
string | Descrição da variação de MVA |
resposta.variacao_mva.mva_ajustada |
string | MVA ajustada da variação |
resposta.variacao_mva.mva_ajustada_4 |
string | MVA ajustada a 4% da variação |
resposta.variacao_mva.mva_ajustada_7 |
string | MVA ajustada a 7% da variação |
resposta.variacao_mva.mva_ajustada_12 |
string | MVA ajustada a 12% da variação |
resposta.variacao_mva.mva_positiva |
string | MVA positiva da variação |
resposta.variacao_mva.mva_negativa |
string | MVA negativa da variação |
resposta.variacao_mva.mva_neutra |
string | MVA neutra da variação |
resposta.variacao_mva.base_calculo |
string | Base de cálculo da variação |
resposta.reducao_mva |
array<object> | Reduções de MVA aplicáveis conforme o regime tributário do destinatário |
resposta.reducao_mva.descricao |
string | Descrição da redução de MVA |
resposta.reducao_mva.regime_destino |
string | Regime tributário de destino a que se aplica a redução |
resposta.reducao_mva.base_legal |
string | Base legal da redução |
resposta.reducao_mva.percentual_reducao |
string | Percentual de redução aplicado |
resposta.reducao_mva.mva_reduzido |
string | MVA já reduzido |
resposta.reducao_mva.mva_ajustada_4_reduzido |
string | MVA ajustada a 4% já reduzido |
resposta.reducao_mva.mva_ajustada_7_reduzido |
string | MVA ajustada a 7% já reduzido |
resposta.reducao_mva.mva_ajustada_12_reduzido |
string | MVA ajustada a 12% já reduzido |
Substituição Tributária
ST Interestadual
Consulta produtos sujeitos à Substituição Tributária nas operações interestaduais entre todos os Estados.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$estado_origem = 'SP';
$estado_destino = 'PR';
$destinacao_mercadoria = 1;
$ncm = 87021000;
$codigo = 197558;
$descricao = 'veículos automóveis';
$cest = '25.001.00';
$url = 'https://www.legisweb.com.br/api/st-interestadual/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'estado_origem=' . $estado_origem . '&' . 'estado_destino=' . $estado_destino . '&' . 'destinacao_mercadoria=' . $destinacao_mercadoria . '&' . 'ncm=' . $ncm . '&' . 'codigo=' . $codigo . '&' . 'descricao=' . $descricao . '&' . 'cest=' . $cest;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const estadoOrigem = 'SP';
const estadoDestino = 'PR';
const destinacaoMercadoria = 1;
const ncm = 87021000;
const codigo = 197558;
const descricao = 'veículos automóveis';
const cest = '25.001.00';
const url = 'https://www.legisweb.com.br/api/st-interestadual/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado_origem=' + estadoOrigem +
'&estado_destino=' + estadoDestino +
'&destinacao_mercadoria=' + destinacaoMercadoria +
'&ncm=' + ncm +
'&codigo=' + codigo +
'&descricao=' + descricao +
'&cest=' + cest;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const estadoOrigem: string = 'SP';
const estadoDestino: string = 'PR';
const destinacaoMercadoria: string = 1;
const ncm: string = 87021000;
const codigo: string = 197558;
const descricao: string = 'veículos automóveis';
const cest: string = '25.001.00';
const url = 'https://www.legisweb.com.br/api/st-interestadual/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado_origem=' + estadoOrigem +
'&estado_destino=' + estadoDestino +
'&destinacao_mercadoria=' + destinacaoMercadoria +
'&ncm=' + ncm +
'&codigo=' + codigo +
'&descricao=' + descricao +
'&cest=' + cest;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/st-interestadual/?t=SEU-TOKEN&c=SEU-CODIGO&estado_origem=SP&estado_destino=PR&destinacao_mercadoria=1&ncm=87021000&codigo=197558&descricao=ve%C3%ADculos+autom%C3%B3veis&cest=25.001.00";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/st-interestadual/?t=SEU-TOKEN&c=SEU-CODIGO&estado_origem=SP&estado_destino=PR&destinacao_mercadoria=1&ncm=87021000&codigo=197558&descricao=ve%C3%ADculos+autom%C3%B3veis&cest=25.001.00"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'estado_origem': 'SP',
'estado_destino': 'PR',
'destinacao_mercadoria': 1,
'ncm': 87021000,
'codigo': 197558,
'descricao': 'veículos automóveis',
'cest': '25.001.00',
}
resposta = requests.get('https://www.legisweb.com.br/api/st-interestadual/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/st-interestadual/?t=SEU-TOKEN&c=SEU-CODIGO&estado_origem=SP&estado_destino=PR&destinacao_mercadoria=1&ncm=87021000&codigo=197558&descricao=ve%C3%ADculos+autom%C3%B3veis&cest=25.001.00";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/st-interestadual/?t=SEU-TOKEN&c=SEU-CODIGO&estado_origem=SP&estado_destino=PR&destinacao_mercadoria=1&ncm=87021000&codigo=197558&descricao=ve%C3%ADculos+autom%C3%B3veis&cest=25.001.00";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"codigo": "string",
"estado_origem": "string",
"estado_destino": "string",
"regime_origem": "string",
"regime_destino": "string",
"aliquota_interestadual": "string",
"aliquota_interna": "string",
"base_calculo": "string",
"base_calculo_int": "string",
"base_legal_int": "string",
"base_legal_st": "string",
"cest": "string",
"cod_segmento": "string",
"data_efeito_st": "string",
"descricao": "string",
"destino_produto": "string",
"fundo_pobreza": "string",
"mva": "string",
"mva_ajustada": "string",
"mva_ajustada_4": "string",
"mva_negativa": "string",
"mva_neutra": "string",
"mva_positiva": "string",
"ncm": "string",
"observacao": "string",
"observacao_int": "string",
"observacao_st": "string",
"prazo_recolhimento": "string",
"segmento": "string",
"vigencia_final": "string",
"vigencia_inicial": "string",
"prazo_recolhimento_int": "string",
"aplicabilidade": "string",
"nao_aplicabilidade": "string",
"variacao_mva": [
{
"descricao": "string",
"mva": "string",
"mva_ajustada": "string",
"mva_ajustada_4": "string",
"mva_ajustada_7": "string",
"mva_ajustada_12": "string",
"mva_positiva": "string",
"mva_negativa": "string",
"mva_neutra": "string",
"base_calculo": "string"
}
],
"reducao_mva": [
{
"descricao": "string",
"regime_destino": "string",
"base_legal": "string",
"percentual_reducao": "string",
"mva_reduzido": "string",
"mva_ajustada_reduzido": "string",
"mva_ajustada_4_reduzido": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||||||
c |
Sim | Código do cliente | ||||||||||
estado_origem |
Sim | Sigla do estado de origem | ||||||||||
estado_destino |
Sim | Sigla do estado de destino | ||||||||||
destinacao_mercadoria |
Sim |
Valores: 1, 2, 3, 4 |
||||||||||
ncm |
Opcional | NCM do produto. Obrigatório se não informar codigo, descricao ou cest. | ||||||||||
codigo |
Opcional | Código do registro | ||||||||||
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) | ||||||||||
cest |
Opcional | CEST | ||||||||||
regime_tributario_origem |
Opcional |
Valores: 1, 2 |
||||||||||
regime_tributario_destino |
Opcional |
Valores: 1, 2 |
||||||||||
opt_cred_presumido |
Opcional |
Optante Pelo Crédito Presumido:
Valores: 0, 1 |
||||||||||
id_segmento |
Opcional | ID do segmento para filtrar |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.codigo |
string | Código do registro |
resposta.estado_origem |
string | Sigla do estado de origem |
resposta.estado_destino |
string | Sigla do estado de destino |
resposta.regime_origem |
string | Regime tributário de origem |
resposta.regime_destino |
string | Regime tributário do destinatário |
resposta.aliquota_interestadual |
string | Alíquota interestadual |
resposta.aliquota_interna |
string | Alíquota interna |
resposta.base_calculo |
string | Base de cálculo |
resposta.base_calculo_int |
string | Base de cálculo conforme norma interna do estado de destino |
resposta.base_legal_int |
string | Base legal conforme norma interna do estado de destino |
resposta.base_legal_st |
string | Base legal da Substituição Tributária |
resposta.cest |
string | CEST |
resposta.cod_segmento |
string | Código do segmento |
resposta.data_efeito_st |
string | Data de efeito da Substituição Tributária |
resposta.descricao |
string | Descrição |
resposta.destino_produto |
string | Destinação do produto |
resposta.fundo_pobreza |
string | Fundo de Combate à Pobreza |
resposta.mva |
string | MVA (Margem de Valor Agregado) |
resposta.mva_ajustada |
string | MVA ajustada |
resposta.mva_ajustada_4 |
string | MVA ajustada a 4% |
resposta.mva_negativa |
string | MVA negativa |
resposta.mva_neutra |
string | MVA neutra |
resposta.mva_positiva |
string | MVA positiva |
resposta.ncm |
string | NCM |
resposta.observacao |
string | Observações |
resposta.observacao_int |
string | Observação conforme norma interna do estado de destino |
resposta.observacao_st |
string | Observações da Substituição Tributária |
resposta.prazo_recolhimento |
string | Prazo de recolhimento |
resposta.segmento |
string | Segmento |
resposta.vigencia_final |
string | Vigência final |
resposta.vigencia_inicial |
string | Vigência inicial |
resposta.prazo_recolhimento_int |
string | Prazo de recolhimento conforme norma interna do estado de destino |
resposta.aplicabilidade |
string | Aplicabilidade |
resposta.nao_aplicabilidade |
string | Não aplicabilidade |
resposta.variacao_mva |
array<object> | Variações de MVA aplicáveis (quando o produto possui mais de uma faixa/variação) |
resposta.variacao_mva.descricao |
string | Descrição da variação de MVA |
resposta.variacao_mva.mva |
string | MVA da variação |
resposta.variacao_mva.mva_ajustada |
string | MVA ajustada da variação |
resposta.variacao_mva.mva_ajustada_4 |
string | MVA ajustada a 4% da variação |
resposta.variacao_mva.mva_ajustada_7 |
string | MVA ajustada a 7% da variação |
resposta.variacao_mva.mva_ajustada_12 |
string | MVA ajustada a 12% da variação |
resposta.variacao_mva.mva_positiva |
string | MVA positiva da variação |
resposta.variacao_mva.mva_negativa |
string | MVA negativa da variação |
resposta.variacao_mva.mva_neutra |
string | MVA neutra da variação |
resposta.variacao_mva.base_calculo |
string | Base de cálculo da variação |
resposta.reducao_mva |
array<object> | Reduções de MVA aplicáveis conforme o regime tributário do destinatário |
resposta.reducao_mva.descricao |
string | Descrição da redução de MVA |
resposta.reducao_mva.regime_destino |
string | Regime tributário de destino a que se aplica a redução |
resposta.reducao_mva.base_legal |
string | Base legal da redução |
resposta.reducao_mva.percentual_reducao |
string | Percentual de redução aplicado |
resposta.reducao_mva.mva_reduzido |
string | MVA já reduzido |
resposta.reducao_mva.mva_ajustada_reduzido |
string | MVA ajustada já reduzido |
resposta.reducao_mva.mva_ajustada_4_reduzido |
string | MVA ajustada a 4% já reduzido |
Comércio Exterior
Acordos Internacionais - Preferências Tarifárias
Consulta preferências tarifárias em acordos internacionais por NCM ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$operacao = 2;
$pais = 15;
$codigo = 87081000;
$descricao = 'para-choques';
$codigo_exato = 1;
$url = 'https://www.legisweb.com.br/api/preferencia-tarifaria/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'operacao=' . $operacao . '&' . 'pais=' . $pais . '&' . 'codigo=' . $codigo . '&' . 'descricao=' . $descricao . '&' . 'codigo_exato=' . $codigo_exato;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const operacao = 2;
const pais = 15;
const codigo = 87081000;
const descricao = 'para-choques';
const codigoExato = 1;
const url = 'https://www.legisweb.com.br/api/preferencia-tarifaria/' +
'?t=' + token +
'&c=' + idUsuario +
'&operacao=' + operacao +
'&pais=' + pais +
'&codigo=' + codigo +
'&descricao=' + descricao +
'&codigo_exato=' + codigoExato;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const operacao: string = 2;
const pais: string = 15;
const codigo: string = 87081000;
const descricao: string = 'para-choques';
const codigoExato: string = 1;
const url = 'https://www.legisweb.com.br/api/preferencia-tarifaria/' +
'?t=' + token +
'&c=' + idUsuario +
'&operacao=' + operacao +
'&pais=' + pais +
'&codigo=' + codigo +
'&descricao=' + descricao +
'&codigo_exato=' + codigoExato;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/preferencia-tarifaria/?t=SEU-TOKEN&c=SEU-CODIGO&operacao=2&pais=15&codigo=87081000&descricao=para-choques&codigo_exato=1";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/preferencia-tarifaria/?t=SEU-TOKEN&c=SEU-CODIGO&operacao=2&pais=15&codigo=87081000&descricao=para-choques&codigo_exato=1"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'operacao': 2,
'pais': 15,
'codigo': 87081000,
'descricao': 'para-choques',
'codigo_exato': 1,
}
resposta = requests.get('https://www.legisweb.com.br/api/preferencia-tarifaria/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/preferencia-tarifaria/?t=SEU-TOKEN&c=SEU-CODIGO&operacao=2&pais=15&codigo=87081000&descricao=para-choques&codigo_exato=1";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/preferencia-tarifaria/?t=SEU-TOKEN&c=SEU-CODIGO&operacao=2&pais=15&codigo=87081000&descricao=para-choques&codigo_exato=1";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"codigo": "string",
"descricao": "string",
"certificado_origem": "string",
"certificador": "string",
"vigencia_inicial": "string",
"vigencia_final": "string",
"pais": [
{
"pais": "string",
"sigla": "string",
"observacao": "string",
"vigencia_inicio": "string",
"vigencia_fim": "string"
}
],
"pref_operacao": "string",
"pref_pais_origem": "string",
"pref_pais_destino": "string",
"pref_nomenclatura": "string",
"pref_vigencia_inicio": "string",
"pref_vigencia_fim": "string",
"ncm_codigo": "string",
"ncm_descricao": "string",
"ncm_preferencia": "string",
"ncm_vigencia_inicio": "string",
"ncm_vigencia_fim": "string",
"ncm_secao": "string",
"ncm_secao_descricao": "string",
"ncm_capitulo": "string",
"ncm_capitulo_descricao": "string",
"ncm_observacao": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||
|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||
c |
Sim | Código do cliente | ||||||
operacao |
Sim |
Valores: 1, 2 |
||||||
pais |
Sim | ID País de destino ou origem (conforme tabela de países no final da página) | ||||||
codigo |
Opcional | NCM do produto. Obrigatório se não informar descricao. | ||||||
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres). Obrigatório se não informar codigo. | ||||||
codigo_exato |
Opcional |
Enviar 1 para exibir apenas registros com NCM completo (8 dígitos) Valores: 1 |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.codigo |
string | Código do acordo |
resposta.descricao |
string | Descrição do acordo |
resposta.certificado_origem |
string | Origem do certificado |
resposta.certificador |
string | Certificador |
resposta.vigencia_inicial |
string | Vigência inicial |
resposta.vigencia_final |
string | Vigência final |
resposta.pais |
array<object> | Países participantes do acordo |
resposta.pais.pais |
string | Nome do país |
resposta.pais.sigla |
string | Sigla do país |
resposta.pais.observacao |
string | Observações |
resposta.pais.vigencia_inicio |
string | Vigência inicial |
resposta.pais.vigencia_fim |
string | Vigência final |
resposta.pref_operacao |
string | Tipo da operação (Importação ou Exportação) |
resposta.pref_pais_origem |
string | País de origem |
resposta.pref_pais_destino |
string | País de destino |
resposta.pref_nomenclatura |
string | Nomenclatura utilizada |
resposta.pref_vigencia_inicio |
string | Vigência inicial da preferência |
resposta.pref_vigencia_fim |
string | Vigência final da preferência |
resposta.ncm_codigo |
string | Código NCM |
resposta.ncm_descricao |
string | Descrição do NCM |
resposta.ncm_preferencia |
string | Percentual de preferência tarifária |
resposta.ncm_vigencia_inicio |
string | Vigência inicial do NCM |
resposta.ncm_vigencia_fim |
string | Vigência final do NCM |
resposta.ncm_secao |
string | Seção do NCM |
resposta.ncm_secao_descricao |
string | Descrição da seção do NCM |
resposta.ncm_capitulo |
string | Capítulo do NCM |
resposta.ncm_capitulo_descricao |
string | Descrição do capítulo do NCM |
resposta.ncm_observacao |
string | Observações sobre o NCM |
Comércio Exterior
NVE - Nomenclatura de Valor Aduaneiro e Estatística
Consulta a Nomenclatura de Valor Aduaneiro e Estatística (NVE) na Importação por NCM ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 30041011;
$descricao = 'ampicilina';
$url = 'https://www.legisweb.com.br/api/nve/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 30041011;
const descricao = 'ampicilina';
const url = 'https://www.legisweb.com.br/api/nve/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 30041011;
const descricao: string = 'ampicilina';
const url = 'https://www.legisweb.com.br/api/nve/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/nve/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=30041011&descricao=ampicilina";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/nve/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=30041011&descricao=ampicilina"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 30041011,
'descricao': 'ampicilina',
}
resposta = requests.get('https://www.legisweb.com.br/api/nve/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/nve/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=30041011&descricao=ampicilina";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/nve/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=30041011&descricao=ampicilina";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"ncm": "string",
"descricao_tec": "string",
"base_legal": "string",
"nve": [
{
"nivel": "string",
"atributo": "string",
"especificacao": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar descricao. |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres). Obrigatório se não informar ncm. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.ncm |
string | NCM |
resposta.descricao_tec |
string | Descrição da TEC |
resposta.base_legal |
string | Base legal |
resposta.nve |
array<object> | Atributos da Nomenclatura de Valor Aduaneiro e Estatística aplicáveis ao NCM |
resposta.nve.nivel |
string | Nível do atributo NVE |
resposta.nve.atributo |
string | Atributo NVE |
resposta.nve.especificacao |
string | Especificação do atributo NVE |
Comércio Exterior
Taxa Cambial - PTAX
Consulta a taxa cambial diária referente à data da operação, divulgada pelo Banco Central do Brasil.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$moeda = 94;
$data = '08/03/2021';
$url = 'https://www.legisweb.com.br/api/ptax/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'moeda=' . $moeda . '&' . 'data=' . $data;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const moeda = 94;
const data = '08/03/2021';
const url = 'https://www.legisweb.com.br/api/ptax/' +
'?t=' + token +
'&c=' + idUsuario +
'&moeda=' + moeda +
'&data=' + data;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const moeda: string = 94;
const data: string = '08/03/2021';
const url = 'https://www.legisweb.com.br/api/ptax/' +
'?t=' + token +
'&c=' + idUsuario +
'&moeda=' + moeda +
'&data=' + data;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/ptax/?t=SEU-TOKEN&c=SEU-CODIGO&moeda=94&data=08%2F03%2F2021";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/ptax/?t=SEU-TOKEN&c=SEU-CODIGO&moeda=94&data=08%2F03%2F2021"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'moeda': 94,
'data': '08/03/2021',
}
resposta = requests.get('https://www.legisweb.com.br/api/ptax/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/ptax/?t=SEU-TOKEN&c=SEU-CODIGO&moeda=94&data=08%2F03%2F2021";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/ptax/?t=SEU-TOKEN&c=SEU-CODIGO&moeda=94&data=08%2F03%2F2021";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"data": "string",
"venda": "string",
"compra": 0
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
moeda |
Sim | Código da moeda (conforme tabela de moedas no final da página) |
data |
Sim | Data no formato dd/mm/yyyy |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.data |
string | Data da cotação |
resposta.venda |
string | Valor da taxa de venda |
resposta.compra |
number | Valor da taxa de compra |
Comércio Exterior
Defesa Comercial
Consulta medidas de defesa comercial (Direito Antidumping, Compromisso de Preço, Medida Compensatória) por NCM ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 70099100;
$descricao = 'espelhos';
$url = 'https://www.legisweb.com.br/api/defesa-comercial/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 70099100;
const descricao = 'espelhos';
const url = 'https://www.legisweb.com.br/api/defesa-comercial/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 70099100;
const descricao: string = 'espelhos';
const url = 'https://www.legisweb.com.br/api/defesa-comercial/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/defesa-comercial/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=70099100&descricao=espelhos";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/defesa-comercial/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=70099100&descricao=espelhos"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 70099100,
'descricao': 'espelhos',
}
resposta = requests.get('https://www.legisweb.com.br/api/defesa-comercial/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/defesa-comercial/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=70099100&descricao=espelhos";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/defesa-comercial/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=70099100&descricao=espelhos";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"tec": "string",
"ncm": "string",
"descricao": "string",
"descricao_completa": "string",
"produto": "string",
"prod_vigencia_inicio": "string",
"prod_vigencia_fim": "string",
"defesa_comercial": [
{
"tipo_base": "string",
"base_legal": "string",
"descricao": "string"
}
],
"medida_pais": [
{
"pais": "string",
"descricao": "string",
"paises_bloco": "string",
"medida": "string",
"medida_aplicada": "string",
"base_legal": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar descricao. |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres). Obrigatório se não informar ncm. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.tec |
string | Referência normativa da Tarifa Externa Comum relacionada ao NCM |
resposta.ncm |
string | NCM |
resposta.descricao |
string | Descrição |
resposta.descricao_completa |
string | Descrição completa conforme a TEC |
resposta.produto |
string | Nome do produto |
resposta.prod_vigencia_inicio |
string | Vigência inicial do produto |
resposta.prod_vigencia_fim |
string | Vigência final do produto |
resposta.defesa_comercial |
array<object> | Medidas de defesa comercial aplicáveis (Direito Antidumping, Compromisso de Preço, Medida Compensatória) |
resposta.defesa_comercial.tipo_base |
string | Tipo da base legal |
resposta.defesa_comercial.base_legal |
string | Base legal |
resposta.defesa_comercial.descricao |
string | Descrição da medida |
resposta.medida_pais |
array<object> | Medidas de defesa comercial aplicadas por país de origem |
resposta.medida_pais.pais |
string | País de origem da medida |
resposta.medida_pais.descricao |
string | Descrição |
resposta.medida_pais.paises_bloco |
string | Bloco econômico do país |
resposta.medida_pais.medida |
string | Tipo de medida aplicada |
resposta.medida_pais.medida_aplicada |
string | Detalhamento da medida aplicada (percentual, valor ou margem) |
resposta.medida_pais.base_legal |
string | Base legal da medida |
Comércio Exterior
CIDE Combustível
Consulta a Contribuição de Intervenção no Domínio Econômico (CIDE Combustíveis) na Importação por NCM ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 29022000;
$descricao = 'hidrocarbonetos';
$url = 'https://www.legisweb.com.br/api/cide-combustivel/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 29022000;
const descricao = 'hidrocarbonetos';
const url = 'https://www.legisweb.com.br/api/cide-combustivel/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 29022000;
const descricao: string = 'hidrocarbonetos';
const url = 'https://www.legisweb.com.br/api/cide-combustivel/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/cide-combustivel/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=29022000&descricao=hidrocarbonetos";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/cide-combustivel/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=29022000&descricao=hidrocarbonetos"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 29022000,
'descricao': 'hidrocarbonetos',
}
resposta = requests.get('https://www.legisweb.com.br/api/cide-combustivel/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/cide-combustivel/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=29022000&descricao=hidrocarbonetos";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/cide-combustivel/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=29022000&descricao=hidrocarbonetos";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"ncm": "string",
"destaque": "string",
"descricao": "string",
"aliquota": "string",
"vigencia_inicio": "string",
"vigencia_fim": "string",
"observacao": "string",
"obs_base_legal": "string",
"base_legal": [
{
"base_legal": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar descricao. |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres). Obrigatório se não informar ncm. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.ncm |
string | NCM |
resposta.destaque |
string | Destaque (código de item da tabela CIDE) |
resposta.descricao |
string | Descrição |
resposta.aliquota |
string | Alíquota da CIDE-Combustíveis |
resposta.vigencia_inicio |
string|null | Vigência inicial |
resposta.vigencia_fim |
string|null | Vigência final |
resposta.observacao |
string | Observações |
resposta.obs_base_legal |
string | Observação sobre a base legal |
resposta.base_legal |
array<object> | Bases legais relacionadas |
resposta.base_legal.base_legal |
string | Base legal |
Comércio Exterior
Tratamento Administrativo - Importação
Consulta ao Tratamento Administrativo na Importação por NCM, NALADI, TSP ou descrição. Informa sobre a necessidade de licenciamento e o órgão anuente.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$grupo_busca = 'ncm';
$ncm = 29022000;
$descricao = 'benzeno';
$url = 'https://www.legisweb.com.br/api/tratamento-administrativo-importacao/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'grupo_busca=' . $grupo_busca . '&' . 'ncm=' . $ncm . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const grupoBusca = 'ncm';
const ncm = 29022000;
const descricao = 'benzeno';
const url = 'https://www.legisweb.com.br/api/tratamento-administrativo-importacao/' +
'?t=' + token +
'&c=' + idUsuario +
'&grupo_busca=' + grupoBusca +
'&ncm=' + ncm +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const grupoBusca: string = 'ncm';
const ncm: string = 29022000;
const descricao: string = 'benzeno';
const url = 'https://www.legisweb.com.br/api/tratamento-administrativo-importacao/' +
'?t=' + token +
'&c=' + idUsuario +
'&grupo_busca=' + grupoBusca +
'&ncm=' + ncm +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/tratamento-administrativo-importacao/?t=SEU-TOKEN&c=SEU-CODIGO&grupo_busca=ncm&ncm=29022000&descricao=benzeno";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/tratamento-administrativo-importacao/?t=SEU-TOKEN&c=SEU-CODIGO&grupo_busca=ncm&ncm=29022000&descricao=benzeno"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'grupo_busca': 'ncm',
'ncm': 29022000,
'descricao': 'benzeno',
}
resposta = requests.get('https://www.legisweb.com.br/api/tratamento-administrativo-importacao/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/tratamento-administrativo-importacao/?t=SEU-TOKEN&c=SEU-CODIGO&grupo_busca=ncm&ncm=29022000&descricao=benzeno";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/tratamento-administrativo-importacao/?t=SEU-TOKEN&c=SEU-CODIGO&grupo_busca=ncm&ncm=29022000&descricao=benzeno";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"NCM": "string",
"NALADI": "string",
"TSP": "string",
"descricao": "string",
"destaque": "string",
"tratamento": "string",
"anuente": "string",
"excecoes": "string",
"licenciamento": "string",
"finalidade": "string",
"assunto": "string",
"enquadramento": "string",
"vigencia_inicio": "string",
"vigencia_fim": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
grupo_busca |
Sim |
Tipo do código da busca: ncm, naladi ou tsp Valores: ncm, naladi, tsp |
ncm |
Opcional | NCM do produto |
naladi |
Opcional | Código NALADI |
tsp |
Opcional | Código TSP |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.NCM |
string | NCM (preenchido quando a busca foi por NCM) |
resposta.NALADI |
string | Código NALADI (preenchido quando a busca foi por NALADI) |
resposta.TSP |
string | Código TSP (preenchido quando a busca foi por TSP) |
resposta.descricao |
string | Descrição |
resposta.destaque |
string | Destaque |
resposta.tratamento |
string | Tratamento administrativo aplicável |
resposta.anuente |
string | Órgão anuente responsável pelo licenciamento |
resposta.excecoes |
string | Exceções aplicáveis |
resposta.licenciamento |
string | Tipo de licenciamento exigido |
resposta.finalidade |
string | Finalidade do licenciamento |
resposta.assunto |
string | Assunto |
resposta.enquadramento |
string | Enquadramento |
resposta.vigencia_inicio |
string | Vigência de início |
resposta.vigencia_fim |
string | Vigência final |
Comércio Exterior
Tratamento Administrativo - Exportação
Consulta ao Tratamento Administrativo na Exportação por NCM, NALADI, TSP ou descrição. Informa sobre a necessidade de licenciamento e o órgão anuente.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$grupo_busca = 'ncm';
$ncm = 29022000;
$descricao = 'benzeno';
$url = 'https://www.legisweb.com.br/api/tratamento-administrativo-exportacao/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'grupo_busca=' . $grupo_busca . '&' . 'ncm=' . $ncm . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const grupoBusca = 'ncm';
const ncm = 29022000;
const descricao = 'benzeno';
const url = 'https://www.legisweb.com.br/api/tratamento-administrativo-exportacao/' +
'?t=' + token +
'&c=' + idUsuario +
'&grupo_busca=' + grupoBusca +
'&ncm=' + ncm +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const grupoBusca: string = 'ncm';
const ncm: string = 29022000;
const descricao: string = 'benzeno';
const url = 'https://www.legisweb.com.br/api/tratamento-administrativo-exportacao/' +
'?t=' + token +
'&c=' + idUsuario +
'&grupo_busca=' + grupoBusca +
'&ncm=' + ncm +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/tratamento-administrativo-exportacao/?t=SEU-TOKEN&c=SEU-CODIGO&grupo_busca=ncm&ncm=29022000&descricao=benzeno";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/tratamento-administrativo-exportacao/?t=SEU-TOKEN&c=SEU-CODIGO&grupo_busca=ncm&ncm=29022000&descricao=benzeno"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'grupo_busca': 'ncm',
'ncm': 29022000,
'descricao': 'benzeno',
}
resposta = requests.get('https://www.legisweb.com.br/api/tratamento-administrativo-exportacao/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/tratamento-administrativo-exportacao/?t=SEU-TOKEN&c=SEU-CODIGO&grupo_busca=ncm&ncm=29022000&descricao=benzeno";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/tratamento-administrativo-exportacao/?t=SEU-TOKEN&c=SEU-CODIGO&grupo_busca=ncm&ncm=29022000&descricao=benzeno";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"NCM": "string",
"NALADI": "string",
"TSP": "string",
"descricao": "string",
"destaque": "string",
"tratamento": "string",
"anuente": "string",
"excecoes": "string",
"licenciamento": "string",
"finalidade": "string",
"assunto": "string",
"enquadramento": "string",
"vigencia_inicio": "string",
"vigencia_fim": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
grupo_busca |
Sim |
Tipo do código da busca: ncm, naladi ou tsp Valores: ncm, naladi, tsp |
ncm |
Opcional | NCM do produto |
naladi |
Opcional | Código NALADI |
tsp |
Opcional | Código TSP |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres) |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.NCM |
string | NCM (preenchido quando a busca foi por NCM) |
resposta.NALADI |
string | Código NALADI (preenchido quando a busca foi por NALADI) |
resposta.TSP |
string | Código TSP (preenchido quando a busca foi por TSP) |
resposta.descricao |
string | Descrição |
resposta.destaque |
string | Destaque |
resposta.tratamento |
string | Tratamento administrativo aplicável |
resposta.anuente |
string | Órgão anuente responsável pelo licenciamento |
resposta.excecoes |
string | Exceções aplicáveis |
resposta.licenciamento |
string | Tipo de licenciamento exigido |
resposta.finalidade |
string | Finalidade do licenciamento |
resposta.assunto |
string | Assunto |
resposta.enquadramento |
string | Enquadramento |
resposta.vigencia_inicio |
string | Vigência de início |
resposta.vigencia_fim |
string | Vigência final |
Comércio Exterior
Produto Sem Similar Nacional
Identifica se um produto importado possui ou não similar em território nacional, necessário para determinar aplicação da alíquota de 4% nas operações interestaduais.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$ncm = 73090010;
$descricao = 'silos';
$url = 'https://www.legisweb.com.br/api/produto-ssn/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'ncm=' . $ncm . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const ncm = 73090010;
const descricao = 'silos';
const url = 'https://www.legisweb.com.br/api/produto-ssn/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const ncm: string = 73090010;
const descricao: string = 'silos';
const url = 'https://www.legisweb.com.br/api/produto-ssn/' +
'?t=' + token +
'&c=' + idUsuario +
'&ncm=' + ncm +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/produto-ssn/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=73090010&descricao=silos";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/produto-ssn/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=73090010&descricao=silos"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'ncm': 73090010,
'descricao': 'silos',
}
resposta = requests.get('https://www.legisweb.com.br/api/produto-ssn/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/produto-ssn/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=73090010&descricao=silos";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/produto-ssn/?t=SEU-TOKEN&c=SEU-CODIGO&ncm=73090010&descricao=silos";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"variacao": "string",
"aliquota_descricao": "string",
"aliquota": "string",
"observacao": "string",
"aliquota_base_legal": "string",
"aliquota_vigencia_inicial": "string",
"aliquota_vigencia_final": "string",
"sem_similar_nacional": "string",
"sem_similar_nacional_obs": "string",
"similar_nacional_obs": "string",
"ex_tarifario": 0,
"tabela_tec": "string",
"ncm": "string",
"descricao": "string",
"aliquota_ii": "string",
"aliquota_ii_abreviacao": "string",
"similar_nacional": "string",
"similar_nacional_alerta": "string",
"descricao_completa": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
ncm |
Opcional | NCM do produto. Obrigatório se não informar descricao. |
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres). Obrigatório se não informar ncm. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.variacao |
string | Variação do produto, quando aplicável |
resposta.aliquota_descricao |
string | Descrição da alíquota |
resposta.aliquota |
string | Alíquota |
resposta.observacao |
string | Observações |
resposta.aliquota_base_legal |
string | Base legal da alíquota |
resposta.aliquota_vigencia_inicial |
string | Vigência inicial da alíquota |
resposta.aliquota_vigencia_final |
string | Vigência final da alíquota |
resposta.sem_similar_nacional |
string | Indica se o produto não possui similar nacional |
resposta.sem_similar_nacional_obs |
string | Observações sobre a ausência de similar nacional (preenchido apenas quando aplicável) |
resposta.similar_nacional_obs |
string | Observações sobre o similar nacional (preenchido apenas quando aplicável) |
resposta.ex_tarifario |
integer | Número do EX Tarifário, quando aplicável |
resposta.tabela_tec |
string | Referência normativa da Tarifa Externa Comum relacionada ao NCM |
resposta.ncm |
string | NCM |
resposta.descricao |
string | Descrição do produto |
resposta.aliquota_ii |
string | Alíquota do Imposto de Importação |
resposta.aliquota_ii_abreviacao |
string | Legenda das abreviações usadas na alíquota do Imposto de Importação |
resposta.similar_nacional |
string | Indica se o produto possui similar nacional |
resposta.similar_nacional_alerta |
string | Alerta sobre a aplicabilidade da alíquota de 4% nas operações interestaduais |
resposta.descricao_completa |
string | Descrição completa conforme a TEC |
Classificação Fiscal
Correlação NBM x NCM x NALADI
Correlaciona os códigos NBM, NCM e NALADI, possibilitando a correta classificação do produto.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$codigo = 73090010;
$de = 'NCM - 2002';
$para = 'NALADI - 2017';
$url = 'https://www.legisweb.com.br/api/correlacao-nbm-ncm-naladi/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'codigo=' . $codigo . '&' . 'de=' . $de . '&' . 'para=' . $para;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const codigo = 73090010;
const de = 'NCM - 2002';
const para = 'NALADI - 2017';
const url = 'https://www.legisweb.com.br/api/correlacao-nbm-ncm-naladi/' +
'?t=' + token +
'&c=' + idUsuario +
'&codigo=' + codigo +
'&de=' + de +
'¶=' + para;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const codigo: string = 73090010;
const de: string = 'NCM - 2002';
const para: string = 'NALADI - 2017';
const url = 'https://www.legisweb.com.br/api/correlacao-nbm-ncm-naladi/' +
'?t=' + token +
'&c=' + idUsuario +
'&codigo=' + codigo +
'&de=' + de +
'¶=' + para;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/correlacao-nbm-ncm-naladi/?t=SEU-TOKEN&c=SEU-CODIGO&codigo=73090010&de=NCM+-+2002¶=NALADI+-+2017";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/correlacao-nbm-ncm-naladi/?t=SEU-TOKEN&c=SEU-CODIGO&codigo=73090010&de=NCM+-+2002¶=NALADI+-+2017"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'codigo': 73090010,
'de': 'NCM - 2002',
'para': 'NALADI - 2017',
}
resposta = requests.get('https://www.legisweb.com.br/api/correlacao-nbm-ncm-naladi/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/correlacao-nbm-ncm-naladi/?t=SEU-TOKEN&c=SEU-CODIGO&codigo=73090010&de=NCM+-+2002¶=NALADI+-+2017";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/correlacao-nbm-ncm-naladi/?t=SEU-TOKEN&c=SEU-CODIGO&codigo=73090010&de=NCM+-+2002¶=NALADI+-+2017";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": {
"codigo_de": "string",
"codigo_para": "string"
}
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
codigo |
Sim | Código do produto (NCM) |
de |
Sim | Correlacionar à partir DE (ex: 'NCM - 2002') |
para |
Sim | Correlacionar PARA (ex: 'NALADI - 2017') |
modo_busca |
Opcional |
Se igual a 1, retorna todos os intermediários entre o código de início e o de destino Valores: 1 |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
object | |
resposta.codigo_de |
string | Código correlacionado a partir do parâmetro 'de' |
resposta.codigo_para |
string | Código correlacionado para o parâmetro 'para' |
ICMS
Pauta Fiscal
Consulta produtos sujeitos a Pauta Fiscal utilizada para o cálculo do ICMS devido por substituição tributária.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$estado = 'SP';
$busca = 'cerveja';
$categoria = 'cervejas';
$descricao = 'dama weiss';
$produto = 'cerveja';
$marca = 'dama';
$caracteristica = 'vidro descartável';
$codigo_barra = 7891234567895;
$url = 'https://www.legisweb.com.br/api/pauta-fiscal/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'estado=' . $estado . '&' . 'busca=' . $busca . '&' . 'categoria=' . $categoria . '&' . 'descricao=' . $descricao . '&' . 'produto=' . $produto . '&' . 'marca=' . $marca . '&' . 'caracteristica=' . $caracteristica . '&' . 'codigo_barra=' . $codigo_barra;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const estado = 'SP';
const busca = 'cerveja';
const categoria = 'cervejas';
const descricao = 'dama weiss';
const produto = 'cerveja';
const marca = 'dama';
const caracteristica = 'vidro descartável';
const codigoBarra = 7891234567895;
const url = 'https://www.legisweb.com.br/api/pauta-fiscal/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado=' + estado +
'&busca=' + busca +
'&categoria=' + categoria +
'&descricao=' + descricao +
'&produto=' + produto +
'&marca=' + marca +
'&caracteristica=' + caracteristica +
'&codigo_barra=' + codigoBarra;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const estado: string = 'SP';
const busca: string = 'cerveja';
const categoria: string = 'cervejas';
const descricao: string = 'dama weiss';
const produto: string = 'cerveja';
const marca: string = 'dama';
const caracteristica: string = 'vidro descartável';
const codigoBarra: string = 7891234567895;
const url = 'https://www.legisweb.com.br/api/pauta-fiscal/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado=' + estado +
'&busca=' + busca +
'&categoria=' + categoria +
'&descricao=' + descricao +
'&produto=' + produto +
'&marca=' + marca +
'&caracteristica=' + caracteristica +
'&codigo_barra=' + codigoBarra;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/pauta-fiscal/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&busca=cerveja&categoria=cervejas&descricao=dama+weiss&produto=cerveja&marca=dama&caracteristica=vidro+descart%C3%A1vel&codigo_barra=7891234567895";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/pauta-fiscal/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&busca=cerveja&categoria=cervejas&descricao=dama+weiss&produto=cerveja&marca=dama&caracteristica=vidro+descart%C3%A1vel&codigo_barra=7891234567895"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'estado': 'SP',
'busca': 'cerveja',
'categoria': 'cervejas',
'descricao': 'dama weiss',
'produto': 'cerveja',
'marca': 'dama',
'caracteristica': 'vidro descartável',
'codigo_barra': 7891234567895,
}
resposta = requests.get('https://www.legisweb.com.br/api/pauta-fiscal/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/pauta-fiscal/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&busca=cerveja&categoria=cervejas&descricao=dama+weiss&produto=cerveja&marca=dama&caracteristica=vidro+descart%C3%A1vel&codigo_barra=7891234567895";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/pauta-fiscal/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&busca=cerveja&categoria=cervejas&descricao=dama+weiss&produto=cerveja&marca=dama&caracteristica=vidro+descart%C3%A1vel&codigo_barra=7891234567895";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"codigo": "string",
"estado": "string",
"operacao": "string",
"categoria": "string",
"descricao": "string",
"produto": "string",
"marca": "string",
"caracteristica": "string",
"importado": "string",
"codigo_barra": "string",
"tamanho": "string",
"unidade": "string",
"valor": "string",
"base_legal": "string",
"ncm": "string",
"cest": "string",
"vigencia_inicio": "string",
"vigencia_final": "string",
"obs": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||||||||||||||
c |
Sim | Código do cliente | ||||||||||||||||||
estado |
Sim |
Sigla do estado brasileiro Valores: AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO |
||||||||||||||||||
busca |
Sim | Busca com no mínimo 2 caracteres | ||||||||||||||||||
opcao |
Opcional |
ID Tipo Pesquisa:
Valores: 1, 2, 3, 4, 5, 6, 7, 8 |
||||||||||||||||||
categoria |
Opcional | Descrição da categoria do produto (usado com opcao=8) | ||||||||||||||||||
descricao |
Opcional | Descrição do produto (usado com opcao=8) | ||||||||||||||||||
produto |
Opcional | Descrição do produto (usado com opcao=8) | ||||||||||||||||||
marca |
Opcional | Descrição da marca (usado com opcao=8) | ||||||||||||||||||
caracteristica |
Opcional | Descrição da característica (usado com opcao=8) | ||||||||||||||||||
codigo_barra |
Opcional | Código de barras do produto (usado com opcao=8) |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.codigo |
string | ID do produto |
resposta.estado |
string | Estado |
resposta.operacao |
string|null | Tipo de operação |
resposta.categoria |
string | Categoria pesquisada |
resposta.descricao |
string | Descrição do produto |
resposta.produto |
string | Produto |
resposta.marca |
string | Marca |
resposta.caracteristica |
string | Características |
resposta.importado |
string | Indica se o produto é importado |
resposta.codigo_barra |
string | Código de barras |
resposta.tamanho |
string | Tamanho |
resposta.unidade |
string | Unidade |
resposta.valor |
string | Valor da pauta fiscal |
resposta.base_legal |
string | Base legal |
resposta.ncm |
string | NCM |
resposta.cest |
string | CEST |
resposta.vigencia_inicio |
string | Vigência inicial |
resposta.vigencia_final |
string | Vigência final |
resposta.obs |
string | Observações |
Agenda Tributária
Agenda Tributária
Consulta da agenda de obrigações tributárias através da data e outros filtros.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$data = '24/04/2022';
$estadual = 1;
$assunto = 'ICMS';
$area = 'ICMS/IPI/ISS e Outros';
$estado = 'SP';
$url = 'https://www.legisweb.com.br/api/agenda-tributaria/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'data=' . $data . '&' . 'estadual=' . $estadual . '&' . 'assunto=' . $assunto . '&' . 'area=' . $area . '&' . 'estado=' . $estado;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const data = '24/04/2022';
const estadual = 1;
const assunto = 'ICMS';
const area = 'ICMS/IPI/ISS e Outros';
const estado = 'SP';
const url = 'https://www.legisweb.com.br/api/agenda-tributaria/' +
'?t=' + token +
'&c=' + idUsuario +
'&data=' + data +
'&estadual=' + estadual +
'&assunto=' + assunto +
'&area=' + area +
'&estado=' + estado;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const data: string = '24/04/2022';
const estadual: string = 1;
const assunto: string = 'ICMS';
const area: string = 'ICMS/IPI/ISS e Outros';
const estado: string = 'SP';
const url = 'https://www.legisweb.com.br/api/agenda-tributaria/' +
'?t=' + token +
'&c=' + idUsuario +
'&data=' + data +
'&estadual=' + estadual +
'&assunto=' + assunto +
'&area=' + area +
'&estado=' + estado;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/agenda-tributaria/?t=SEU-TOKEN&c=SEU-CODIGO&data=24%2F04%2F2022&estadual=1&assunto=ICMS&area=ICMS%2FIPI%2FISS+e+Outros&estado=SP";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/agenda-tributaria/?t=SEU-TOKEN&c=SEU-CODIGO&data=24%2F04%2F2022&estadual=1&assunto=ICMS&area=ICMS%2FIPI%2FISS+e+Outros&estado=SP"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'data': '24/04/2022',
'estadual': 1,
'assunto': 'ICMS',
'area': 'ICMS/IPI/ISS e Outros',
'estado': 'SP',
}
resposta = requests.get('https://www.legisweb.com.br/api/agenda-tributaria/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/agenda-tributaria/?t=SEU-TOKEN&c=SEU-CODIGO&data=24%2F04%2F2022&estadual=1&assunto=ICMS&area=ICMS%2FIPI%2FISS+e+Outros&estado=SP";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/agenda-tributaria/?t=SEU-TOKEN&c=SEU-CODIGO&data=24%2F04%2F2022&estadual=1&assunto=ICMS&area=ICMS%2FIPI%2FISS+e+Outros&estado=SP";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"id": "string",
"area": "string",
"assunto": "string",
"dia": 0,
"descricao": "string",
"obrigacao": "string",
"periodo_apuracao": "string",
"cod_recolhimento": "string",
"base_legal": "string",
"abrangencia": "string",
"tipo_obrigacao": "string",
"estado": "string",
"cidade": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
data |
Sim | Data da obrigação tributária (dd/mm/yyyy) |
federal |
Opcional |
Definir a abrangência da agenda como federal Valores: 0, 1 |
estadual |
Opcional |
Definir a abrangência como estadual. Se preenchido deve ser informado sigla do estado no parâmetro "estado" Valores: 0, 1 |
municipal |
Opcional |
Definir a abrangência como municipal. Se preenchido deve ser informado id da cidade no parâmetro "cidade" Valores: 0, 1 |
tipo_obrigacao |
Opcional |
Tipo da obrigação: Principal ou Acessória Valores: Principal, Acessória |
assunto |
Opcional |
Assunto da obrigação Valores: CIDE, IOF, IRPF, IRPJ/CSLL, PIS PASEP COFINS, Retenções, ICMS, IPI, IPTU, IPVA, ISS, Previdência, Trabalho, Federal, Câmbio, Importação, Siscoserv |
area |
Opcional |
Área da obrigação Valores: IR / Contribuições, ICMS/IPI/ISS e Outros, Trabalho / Previdência, Contabilidade / Societário, Simples Nacional, Comércio Exterior |
estado |
Opcional |
Sigla do estado brasileiro Valores: AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO |
cidade |
Opcional | ID da capital (conforme tabela de capitais no final da página) |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.id |
string | ID da obrigação |
resposta.area |
string | Área da obrigação |
resposta.assunto |
string | Assunto da obrigação |
resposta.dia |
integer | Dia do vencimento da obrigação |
resposta.descricao |
string | Descrição da obrigação |
resposta.obrigacao |
string | Texto completo da obrigação |
resposta.periodo_apuracao |
string | Período de apuração da obrigação |
resposta.cod_recolhimento |
string | Código de recolhimento da obrigação |
resposta.base_legal |
string|null | Base legal da obrigação |
resposta.abrangencia |
string | Abrangência da obrigação (Federal, Estadual ou Municipal) |
resposta.tipo_obrigacao |
string | Tipo da obrigação (Principal ou Acessória) |
resposta.estado |
string | Estado da obrigação |
resposta.cidade |
string|null | Cidade da obrigação |
Benefícios Fiscais
Benefício Fiscal
Consulta dos benefícios fiscais (reduções de base de cálculo, isenções, créditos presumidos, deferimentos) por descrição, NCM ou código.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$estado = 'SP';
$categoria = 5;
$descricao = 'moinhos de vento';
$url = 'https://www.legisweb.com.br/api/beneficio-fiscal/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'estado=' . $estado . '&' . 'categoria=' . $categoria . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const estado = 'SP';
const categoria = 5;
const descricao = 'moinhos de vento';
const url = 'https://www.legisweb.com.br/api/beneficio-fiscal/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado=' + estado +
'&categoria=' + categoria +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const estado: string = 'SP';
const categoria: string = 5;
const descricao: string = 'moinhos de vento';
const url = 'https://www.legisweb.com.br/api/beneficio-fiscal/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado=' + estado +
'&categoria=' + categoria +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/beneficio-fiscal/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&categoria=5&descricao=moinhos+de+vento";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/beneficio-fiscal/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&categoria=5&descricao=moinhos+de+vento"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'estado': 'SP',
'categoria': 5,
'descricao': 'moinhos de vento',
}
resposta = requests.get('https://www.legisweb.com.br/api/beneficio-fiscal/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/beneficio-fiscal/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&categoria=5&descricao=moinhos+de+vento";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/beneficio-fiscal/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP&categoria=5&descricao=moinhos+de+vento";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"id": "string",
"categoria": "string",
"ncm": "string",
"cbenef": "string",
"cst_cbenef": "string",
"descricao": "string",
"id_base_legal": 0,
"desc_base_legal": "string",
"vigencia_fim": "string",
"observacoes": [
{
"id_base_legal": 0,
"desc_base_legal": "string",
"descricao": "string"
}
],
"bases_legais_relacionadas": [
{
"id_base_legal": 0,
"desc_base_legal": "string"
}
],
"reducoes": [
{
"operacao": "string",
"id_base_legal": 0,
"desc_base_legal": "string",
"descricao": "string"
}
],
"isencoes": [
{
"operacao": "string",
"id_base_legal": 0,
"desc_base_legal": "string"
}
],
"creditos": [
{
"operacao": "string",
"id_base_legal": 0,
"desc_base_legal": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||||||
c |
Sim | Código do cliente | ||||||||||
estado |
Sim |
Sigla do estado brasileiro Valores: AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO |
||||||||||
categoria |
Sim |
Valores: 2, 3, 4, 5 |
||||||||||
ncm |
Opcional | NCM do produto. Obrigatório se não informar codigo nem descricao. | ||||||||||
codigo |
Opcional | Código do benefício. Obrigatório se não informar ncm nem descricao. | ||||||||||
descricao |
Opcional | Descrição do produto (mínimo 2 caracteres). Obrigatório se não informar ncm nem codigo. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.id |
string | Código do benefício |
resposta.categoria |
string | Descrição da categoria do benefício |
resposta.ncm |
string | NCM do produto |
resposta.cbenef |
string|null | Código CBENEF |
resposta.cst_cbenef |
string|null | Relação entre o CST e o CBENEF |
resposta.descricao |
string | Descrição do produto beneficiado |
resposta.id_base_legal |
integer | Código da base legal |
resposta.desc_base_legal |
string | Descrição da base legal |
resposta.vigencia_fim |
string|null | Data do fim da vigência (pode ser nulo) |
resposta.observacoes |
array<object> | Observações do benefício |
resposta.observacoes.id_base_legal |
integer | Código da base legal |
resposta.observacoes.desc_base_legal |
string | Descrição da base legal |
resposta.observacoes.descricao |
string | Descritivo da observação |
resposta.bases_legais_relacionadas |
array<object> | Bases legais relacionadas ao benefício |
resposta.bases_legais_relacionadas.id_base_legal |
integer | Código da base legal |
resposta.bases_legais_relacionadas.desc_base_legal |
string | Descrição da base legal |
resposta.reducoes |
array<object> | Reduções do benefício (preenchido apenas quando categoria = 2) |
resposta.reducoes.operacao |
string | Descrição do tipo de operação |
resposta.reducoes.id_base_legal |
integer | Código da base legal |
resposta.reducoes.desc_base_legal |
string | Descrição da base legal |
resposta.reducoes.descricao |
string | Descritivo |
resposta.isencoes |
array<object> | Isenções do benefício (preenchido apenas quando categoria = 3) |
resposta.isencoes.operacao |
string | Descrição do tipo de operação |
resposta.isencoes.id_base_legal |
integer | Código da base legal |
resposta.isencoes.desc_base_legal |
string | Descrição da base legal |
resposta.creditos |
array<object> | Créditos do benefício (preenchido apenas quando categoria = 4) |
resposta.creditos.operacao |
string | Descrição do tipo de operação |
resposta.creditos.id_base_legal |
integer | Código da base legal |
resposta.creditos.desc_base_legal |
string | Descrição da base legal |
Empresas
Base de Dados Empresariais
Consulta dados cadastrais e regime tributário de empresas brasileiras (CNPJ). Retorna no máximo 50 registros por requisição com paginação.
* é obrigatório enviar ao menos um parâmetro como empresa, cnae, data_inicio/data_fim.
* caso apenas o cnae seja informado é nescessário informar também o estado ou cidade.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$empresa = 10750466000168;
$estado = 'SP';
$url = 'https://www.legisweb.com.br/api/empresas/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'empresa=' . $empresa . '&' . 'estado=' . $estado;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const empresa = 10750466000168;
const estado = 'SP';
const url = 'https://www.legisweb.com.br/api/empresas/' +
'?t=' + token +
'&c=' + idUsuario +
'&empresa=' + empresa +
'&estado=' + estado;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const empresa: string = 10750466000168;
const estado: string = 'SP';
const url = 'https://www.legisweb.com.br/api/empresas/' +
'?t=' + token +
'&c=' + idUsuario +
'&empresa=' + empresa +
'&estado=' + estado;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/empresas/?t=SEU-TOKEN&c=SEU-CODIGO&empresa=10750466000168&estado=SP";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/empresas/?t=SEU-TOKEN&c=SEU-CODIGO&empresa=10750466000168&estado=SP"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'empresa': 10750466000168,
'estado': 'SP',
}
resposta = requests.get('https://www.legisweb.com.br/api/empresas/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/empresas/?t=SEU-TOKEN&c=SEU-CODIGO&empresa=10750466000168&estado=SP";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/empresas/?t=SEU-TOKEN&c=SEU-CODIGO&empresa=10750466000168&estado=SP";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"paginacao": {
"pagina": 0,
"quantidades_paginas": 0,
"quantidade_total_registros": 0
},
"resposta": [
{
"cnpj": "string",
"tipo": "string",
"razao_social": "string",
"nome_fantasia": "string",
"data_inicio": "string",
"end_tipo": "string",
"end": "string",
"end_numero": "string",
"end_compl": "string",
"end_bairro": "string",
"cidade": "string",
"estado": "string",
"situacao": "string",
"atividade_principal": "string",
"atividade_secundaria": [
"string"
],
"regime_tributario": "string",
"opcao_simples": "string",
"natureza_juridica": "string",
"opcao_mei": "string",
"porte": "string",
"telefone": "string",
"capital_social": "string",
"ultima_atualizacao": "string",
"fonte": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||||||||
c |
Sim | Código do cliente | ||||||||||||
empresa |
Opcional | Razão Social, Nome Fantasia ou CNPJ da Empresa. * | ||||||||||||
cnae |
Opcional | Código CNAE com 7 dígitos. * | ||||||||||||
data_inicio |
Opcional | Data inicio para pesquisa da data de inicio da atividade. * | ||||||||||||
data_fim |
Opcional | Data final para pesquisa da data de inicio da atividade. * | ||||||||||||
estado |
Opcional |
Sigla do estado brasileiro Valores: AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO |
||||||||||||
cidade |
Opcional | Nome da cidade. ** | ||||||||||||
situacao_cadastral |
Opcional |
Valores: 1, 2, 3, 4, 5 |
||||||||||||
matriz |
Opcional |
Valores: 1, 2 |
||||||||||||
p |
Opcional | Número da página para paginação (50 resultados por página). Informe o número da página. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
paginacao |
object | |
paginacao.pagina |
integer | |
paginacao.quantidades_paginas |
integer | |
paginacao.quantidade_total_registros |
integer | |
resposta |
array<object> | |
resposta.cnpj |
string | CNPJ da empresa |
resposta.tipo |
string | Tipo da empresa (Matriz ou Filial) |
resposta.razao_social |
string | Razão social da empresa |
resposta.nome_fantasia |
string | Nome fantasia da empresa |
resposta.data_inicio |
string | Data de início das atividades |
resposta.end_tipo |
string | Tipo do endereço |
resposta.end |
string | Endereço |
resposta.end_numero |
string | Número do endereço |
resposta.end_compl |
string | Complemento do endereço |
resposta.end_bairro |
string | Bairro do endereço |
resposta.cidade |
string | Cidade |
resposta.estado |
string | Estado |
resposta.situacao |
string | Situação cadastral da empresa |
resposta.atividade_principal |
string | Atividade principal da empresa (CNAE) |
resposta.atividade_secundaria |
array<string> | Atividades secundárias da empresa (CNAE) |
resposta.regime_tributario |
string | Regime tributário da empresa |
resposta.opcao_simples |
string | Indica se a empresa é optante pelo Simples Nacional |
resposta.natureza_juridica |
string | Natureza jurídica da empresa |
resposta.opcao_mei |
string | Indica se a empresa é um Micro Empreendedor Individual |
resposta.porte |
string | Porte da empresa |
resposta.telefone |
string | Telefone da empresa |
resposta.capital_social |
string | Capital social da empresa |
resposta.ultima_atualizacao |
string | Data da última atualização dos dados |
resposta.fonte |
string | Fonte dos dados |
Classificação Fiscal
Consulta GTIN
Possui dois modos de consulta no mesmo endpoint:
Por GTIN (gtin obrigatório): consulta dados cadastrais de um produto pelo código GTIN junto ao Cadastro Centralizado de GTIN (CCG/GS1) via SEFAZ. Requer certificado digital A1 cadastrado na plataforma. Consulte a descrição do campo cod_status no schema RespostaGTIN para a lista completa dos status possíveis (9490 a 9498, o status de indisponibilidade 108, além dos status internos 9998, 400 e 500).
Por NCM (ncm obrigatório): retorna os grupos de obrigatoriedade do GTIN vinculados a um NCM. Realiza busca hierárquica automática (sobe para o nível pai caso o NCM exato não possua regras). Não requer certificado digital.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$gtin = 7894900530032;
$url = 'https://www.legisweb.com.br/api/gtin/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'gtin=' . $gtin;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const gtin = 7894900530032;
const url = 'https://www.legisweb.com.br/api/gtin/' +
'?t=' + token +
'&c=' + idUsuario +
'>in=' + gtin;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const gtin: string = 7894900530032;
const url = 'https://www.legisweb.com.br/api/gtin/' +
'?t=' + token +
'&c=' + idUsuario +
'>in=' + gtin;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/gtin/?t=SEU-TOKEN&c=SEU-CODIGO>in=7894900530032";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/gtin/?t=SEU-TOKEN&c=SEU-CODIGO>in=7894900530032"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'gtin': 7894900530032,
}
resposta = requests.get('https://www.legisweb.com.br/api/gtin/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/gtin/?t=SEU-TOKEN&c=SEU-CODIGO>in=7894900530032";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/gtin/?t=SEU-TOKEN&c=SEU-CODIGO>in=7894900530032";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": {
"cod_status": "9490",
"motivo_status": "string",
"gtin": "string",
"produto": "string",
"ncm": "string",
"cest": "string"
}
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
gtin |
Opcional | [Modo GTIN] Código GTIN do produto. Obrigatório para consulta por GTIN. |
cod_cert |
Opcional | [Modo GTIN] Código do certificado digital A1 cadastrado no sistema Consulta GTIN (obrigatório se houver mais de 1 cadastrado) |
ncm |
Opcional | [Modo NCM] Código NCM do produto. Obrigatório para consulta de obrigatoriedade por NCM. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
object | |
resposta.cod_status |
string | Código de status da consulta. Valores possíveis:
|
resposta.motivo_status |
string | Mensagem descritiva associada ao cod_status retornado. |
resposta.gtin |
string | Código GTIN consultado. Preenchido apenas quando cod_status é 9490, 9497, 9498, 9998 ou 9999. |
resposta.produto |
string | Descrição do produto cadastrada pelo dono da marca. Preenchido apenas quando cod_status é 9490, 9497, 9498, 9998 ou 9999. |
resposta.ncm |
string | NCM do produto. Pode vir vazio quando cod_status é 9497, já que esse status indica justamente NCM não informado pelo dono da marca. |
resposta.cest |
string | CEST do produto, quando aplicável. Preenchido apenas quando cod_status é 9490, 9497, 9498, 9998 ou 9999. |
ncm_consultado |
string | NCM informado, formatado com pontuação (ex: 2201.10.00) |
resposta.ncm_vinculado |
string | NCM ao qual o grupo está vinculado (nível encontrado na hierarquia) |
resposta.descricao_ncm |
string | Descrição do NCM vinculado |
resposta.obrigatorio |
boolean | Indica se o GTIN é obrigatório (true = sim, false = não) |
resposta.excecao |
boolean | Indica se o grupo possui regra de exceção |
resposta.identificador_anexo |
string | Identificador do anexo da legislação que originou a regra |
resposta.base_legal |
string | Base legal que define a obrigatoriedade |
resposta.observacao |
string | |
resposta.grupo_gtin |
string | Grupo GTIN conforme classificação da legislação |
resposta.vigencia_inicial |
string | Data de início da vigência (formato dd/mm/aaaa) |
resposta.vigencia_final |
string | Data de fim da vigência ('-' quando indeterminada) |
resposta.excecoes |
array<object> | NCMs de exceção vinculados ao grupo |
resposta.excecoes.ncm_busca |
string | NCM da exceção sem pontuação |
resposta.excecoes.ncm |
string | NCM da exceção com pontuação |
Classificação Fiscal
Consulta CFOP
Consulta os Códigos Fiscais de Operações e Prestações (CFOP) através do código ou descrição.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$codigo = 5201;
$descricao = 'devolução de compra';
$url = 'https://www.legisweb.com.br/api/cfop/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'codigo=' . $codigo . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const codigo = 5201;
const descricao = 'devolução de compra';
const url = 'https://www.legisweb.com.br/api/cfop/' +
'?t=' + token +
'&c=' + idUsuario +
'&codigo=' + codigo +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const codigo: string = 5201;
const descricao: string = 'devolução de compra';
const url = 'https://www.legisweb.com.br/api/cfop/' +
'?t=' + token +
'&c=' + idUsuario +
'&codigo=' + codigo +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/cfop/?t=SEU-TOKEN&c=SEU-CODIGO&codigo=5201&descricao=devolu%C3%A7%C3%A3o+de+compra";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/cfop/?t=SEU-TOKEN&c=SEU-CODIGO&codigo=5201&descricao=devolu%C3%A7%C3%A3o+de+compra"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'codigo': 5201,
'descricao': 'devolução de compra',
}
resposta = requests.get('https://www.legisweb.com.br/api/cfop/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/cfop/?t=SEU-TOKEN&c=SEU-CODIGO&codigo=5201&descricao=devolu%C3%A7%C3%A3o+de+compra";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/cfop/?t=SEU-TOKEN&c=SEU-CODIGO&codigo=5201&descricao=devolu%C3%A7%C3%A3o+de+compra";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": {
"codigo": "string",
"titulo": "string",
"descricao": "string",
"secao_codigo": "string",
"secao_titulo": "string",
"secao_descricao": "string",
"operacao_codigo": "string",
"operacao_titulo": "string",
"operacao_descricao": "string",
"cfop_legislacao": "string"
}
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
codigo |
Opcional | Código do CFOP (sem pontos, apenas números). Obrigatório se não informar descricao. |
descricao |
Opcional | Descrição do CFOP. Obrigatório se não informar codigo. |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
object | |
resposta.codigo |
string | Código do CFOP |
resposta.titulo |
string | Título do CFOP |
resposta.descricao |
string | Descrição do CFOP |
resposta.secao_codigo |
string | Código da seção do CFOP |
resposta.secao_titulo |
string | Título da seção do CFOP |
resposta.secao_descricao |
string | Descrição da seção do CFOP |
resposta.operacao_codigo |
string | Código da operação do CFOP |
resposta.operacao_titulo |
string | Título da operação do CFOP |
resposta.operacao_descricao |
string | Descrição da operação do CFOP |
resposta.cfop_legislacao |
string | Título da base legal do CFOP |
ICMS
Alíquota Padrão
Consulta a alíquota ICMS padrão e, caso exista, a alíquota FCP padrão e IBS Estadual no estado informado.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$estado = 'SP';
$url = 'https://www.legisweb.com.br/api/aliquota-padrao/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'estado=' . $estado;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const estado = 'SP';
const url = 'https://www.legisweb.com.br/api/aliquota-padrao/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado=' + estado;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const estado: string = 'SP';
const url = 'https://www.legisweb.com.br/api/aliquota-padrao/' +
'?t=' + token +
'&c=' + idUsuario +
'&estado=' + estado;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/aliquota-padrao/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/aliquota-padrao/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'estado': 'SP',
}
resposta = requests.get('https://www.legisweb.com.br/api/aliquota-padrao/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/aliquota-padrao/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/aliquota-padrao/?t=SEU-TOKEN&c=SEU-CODIGO&estado=SP";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"tributo": "string",
"tipo": "string",
"estado": "string",
"aliquota": "string",
"descricao": "string",
"base_legal": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
t |
Sim | Token de acesso |
c |
Sim | Código do cliente |
estado |
Sim |
Sigla do estado brasileiro Valores: AC, AL, AP, AM, BA, CE, DF, ES, GO, MA, MT, MS, MG, PA, PB, PR, PE, PI, RJ, RN, RS, RO, RR, SC, SP, SE, TO |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.tributo |
string | Nome do tributo (ex.: ICMS, FCP, IBS Estadual) |
resposta.tipo |
string | Tipo da alíquota (ex.: Alíquota ICMS, Alíquota FCP, Alíquota IBS Estadual) |
resposta.estado |
string | Estado pesquisado |
resposta.aliquota |
string | Valor da alíquota (percentual) |
resposta.descricao |
string | Descrição da base legal da alíquota |
resposta.base_legal |
string | Base legal da alíquota |
CST
Códigos de Situação Tributária (CST)
Consulta de Códigos de Situação Tributária (CST) para ICMS (tipo=1), IPI (tipo=2), PIS/COFINS (tipo=3) e Reforma Tributária IBS/CBS (tipo=4).
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$tipo-busca-tributo = 1;
$ppb = '0';
$origem = 1;
$icms = 1;
$icmsst = '0';
$benef = '0';
$url = 'https://www.legisweb.com.br/api/cst/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'tipo-busca-tributo=' . $tipo-busca-tributo . '&' . 'ppb=' . $ppb . '&' . 'origem=' . $origem . '&' . 'icms=' . $icms . '&' . 'icmsst=' . $icmsst . '&' . 'benef=' . $benef;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const tipo-busca-tributo = 1;
const ppb = '0';
const origem = 1;
const icms = 1;
const icmsst = '0';
const benef = '0';
const url = 'https://www.legisweb.com.br/api/cst/' +
'?t=' + token +
'&c=' + idUsuario +
'&tipo-busca-tributo=' + tipo-busca-tributo +
'&ppb=' + ppb +
'&origem=' + origem +
'&icms=' + icms +
'&icmsst=' + icmsst +
'&benef=' + benef;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const tipo-busca-tributo: string = 1;
const ppb: string = '0';
const origem: string = 1;
const icms: string = 1;
const icmsst: string = '0';
const benef: string = '0';
const url = 'https://www.legisweb.com.br/api/cst/' +
'?t=' + token +
'&c=' + idUsuario +
'&tipo-busca-tributo=' + tipo-busca-tributo +
'&ppb=' + ppb +
'&origem=' + origem +
'&icms=' + icms +
'&icmsst=' + icmsst +
'&benef=' + benef;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/cst/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca-tributo=1&ppb=0&origem=1&icms=1&icmsst=0&benef=0";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/cst/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca-tributo=1&ppb=0&origem=1&icms=1&icmsst=0&benef=0"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'tipo-busca-tributo': 1,
'ppb': '0',
'origem': 1,
'icms': 1,
'icmsst': '0',
'benef': '0',
}
resposta = requests.get('https://www.legisweb.com.br/api/cst/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/cst/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca-tributo=1&ppb=0&origem=1&icms=1&icmsst=0&benef=0";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/cst/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca-tributo=1&ppb=0&origem=1&icms=1&icmsst=0&benef=0";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"cod": "string",
"desc": "string",
"classificacoes": [
{
"cod": "string",
"desc": "string"
}
]
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||||||||||||||||||
c |
Sim | Código do cliente | ||||||||||||||||||||||
tipo-busca-tributo |
Sim |
Tipo de tributo:
Valores: 1, 2, 3, 4 |
||||||||||||||||||||||
ppb |
Opcional |
[ICMS] Produto faz parte do PPB?
Valores: 0, 1 |
||||||||||||||||||||||
origem |
Opcional |
[ICMS] Origem da mercadoria:
Valores: 1, 2 |
||||||||||||||||||||||
tpimport |
Opcional |
[ICMS] Tipo de importação:
Valores: 1, 2 |
||||||||||||||||||||||
similar |
Opcional |
[ICMS] Possui similar nacional?
Valores: 0, 1 |
||||||||||||||||||||||
contimport |
Opcional |
[ICMS] Conteúdo de importação (se origem igual à 1):
Valores: 1, 2, 3 |
||||||||||||||||||||||
icms |
Opcional |
[ICMS] Destaca/credita ICMS próprio?
Valores: 0, 1 |
||||||||||||||||||||||
icmsst |
Opcional |
[ICMS] Destaca/credita ICMS-ST?
Valores: 0, 1 |
||||||||||||||||||||||
benef |
Opcional |
[ICMS] ID do benefício fiscal:
|
||||||||||||||||||||||
categoria_ipi |
Opcional |
[IPI] ID da categoria da operação IPI:
|
||||||||||||||||||||||
categoria_pis_cofins |
Opcional |
[PIS/COFINS] ID da categoria:
|
||||||||||||||||||||||
categoria_ncm_nbs |
Opcional |
[IBS/CBS] ID da categoria:
|
||||||||||||||||||||||
tipo_nbs_ncm |
Opcional |
[IBS/CBS] Tipo: 'ncm' ou 'nbs'. Obrigatório se informar código ou descrição Valores: ncm, nbs |
||||||||||||||||||||||
ncm_nbs |
Opcional | [IBS/CBS] Código NCM ou NBS | ||||||||||||||||||||||
descricao |
Opcional | [IBS/CBS] Descrição parcial ou completa do NCM/NBS |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.cod |
string | Código do CST (ou da categoria, no caso de tipo-busca-tributo=1 e 4) |
resposta.desc |
string | Descrição do código |
resposta.classificacoes |
array<object> | Classificações detalhadas dentro do código/categoria |
resposta.classificacoes.cod |
string | Código da classificação |
resposta.classificacoes.desc |
string | Descrição da classificação |
Correlação de Serviços
Correlação de Serviços
Consulta correlações entre diferentes classificações de serviços: LC 116/2003, NBS, CNAE e CSN.
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$tipo-busca = 1;
$lc = '01.04';
$nbs = 1.0401;
$cnae = '6201-5/00';
$csn = 104;
$descricao = 'programas de computador';
$url = 'https://www.legisweb.com.br/api/correlacoes_servicos/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'tipo-busca=' . $tipo-busca . '&' . 'lc=' . $lc . '&' . 'nbs=' . $nbs . '&' . 'cnae=' . $cnae . '&' . 'csn=' . $csn . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const tipo-busca = 1;
const lc = '01.04';
const nbs = 1.0401;
const cnae = '6201-5/00';
const csn = 104;
const descricao = 'programas de computador';
const url = 'https://www.legisweb.com.br/api/correlacoes_servicos/' +
'?t=' + token +
'&c=' + idUsuario +
'&tipo-busca=' + tipo-busca +
'&lc=' + lc +
'&nbs=' + nbs +
'&cnae=' + cnae +
'&csn=' + csn +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const tipo-busca: string = 1;
const lc: string = '01.04';
const nbs: string = 1.0401;
const cnae: string = '6201-5/00';
const csn: string = 104;
const descricao: string = 'programas de computador';
const url = 'https://www.legisweb.com.br/api/correlacoes_servicos/' +
'?t=' + token +
'&c=' + idUsuario +
'&tipo-busca=' + tipo-busca +
'&lc=' + lc +
'&nbs=' + nbs +
'&cnae=' + cnae +
'&csn=' + csn +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/correlacoes_servicos/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca=1&lc=01.04&nbs=1.0401&cnae=6201-5%2F00&csn=104&descricao=programas+de+computador";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/correlacoes_servicos/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca=1&lc=01.04&nbs=1.0401&cnae=6201-5%2F00&csn=104&descricao=programas+de+computador"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'tipo-busca': 1,
'lc': '01.04',
'nbs': 1.0401,
'cnae': '6201-5/00',
'csn': 104,
'descricao': 'programas de computador',
}
resposta = requests.get('https://www.legisweb.com.br/api/correlacoes_servicos/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/correlacoes_servicos/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca=1&lc=01.04&nbs=1.0401&cnae=6201-5%2F00&csn=104&descricao=programas+de+computador";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/correlacoes_servicos/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca=1&lc=01.04&nbs=1.0401&cnae=6201-5%2F00&csn=104&descricao=programas+de+computador";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"atividade_servico": {
"codigo": "string",
"descricao": "string",
"grupo": "string",
"legislacao": "string"
},
"correlacoes": {
"nbs": [
{
"nbs_codigo": "string",
"nbs_descricao": "string"
}
],
"cnae": [
{
"cnae_codigo": "string",
"cnae_descricao": "string"
}
],
"csn": [
{
"csn_codigo": "string",
"csn_descricao": "string"
}
]
},
"detalhes_municipais": [
{
"cidade": "string",
"desc_base_legal": "string",
"descricao": "string"
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||||||
c |
Sim | Código do cliente | ||||||||||
tipo-busca |
Sim |
Valores: 1, 2, 3, 4 |
||||||||||
lc |
Opcional | [tipo=1] Código da atividade LC 116 (ex: '01.01' ou '0101'). Obrigatório se não usar descricao | ||||||||||
nbs |
Opcional | [tipo=2] Código NBS (ex: '12.34.56' ou '123456'). Obrigatório se não usar descricao | ||||||||||
cnae |
Opcional | [tipo=3] Código CNAE (ex: '1234-5/67' ou '1234567'). Obrigatório se não usar descricao | ||||||||||
csn |
Opcional | [tipo=4] Código CSN (ex: '12.34' ou '1234'). Obrigatório se não usar descricao | ||||||||||
descricao |
Opcional | Descrição parcial ou completa da atividade/serviço. Obrigatório se não usar o código específico |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
atividade_servico |
object | Atividade da LC 116/2003 encontrada |
atividade_servico.codigo |
string | Código da atividade na LC 116/2003 |
atividade_servico.descricao |
string | Descrição da atividade |
atividade_servico.grupo |
string | Grupo/item da LC 116/2003 |
atividade_servico.legislacao |
string | Legislação de referência |
correlacoes |
object | Códigos correlacionados nas demais nomenclaturas |
correlacoes.nbs |
array<object> | Códigos NBS correlacionados |
correlacoes.nbs.nbs_codigo |
string | Código NBS |
correlacoes.nbs.nbs_descricao |
string | Descrição do serviço na NBS |
correlacoes.cnae |
array<object> | Códigos CNAE correlacionados |
correlacoes.cnae.cnae_codigo |
string | Código CNAE |
correlacoes.cnae.cnae_descricao |
string | Descrição da atividade no CNAE |
correlacoes.csn |
array<object> | Códigos CSN (Classificação de Serviços Nacional) correlacionados |
correlacoes.csn.csn_codigo |
string | Código CSN |
correlacoes.csn.csn_descricao |
string | Descrição do serviço na CSN |
detalhes_municipais |
array<object> | Particularidades de retenção do ISS por município, quando aplicável |
detalhes_municipais.cidade |
string | Município |
detalhes_municipais.desc_base_legal |
string | Base legal municipal |
detalhes_municipais.descricao |
string | Descrição da particularidade de retenção |
Benefícios Fiscais
Benefícios Fiscais da Reforma Tributária
Consulta benefícios fiscais relacionados à Reforma Tributária brasileira por NCM (tipo=1), NBS (tipo=2), CNAE (tipo=3) ou Descrição (tipo=4).
Endpoint
Exemplo de integração
<?php
$token = 'SEU-TOKEN';
$id_usuario = 'SEU-CODIGO';
$tipo-busca = 1;
$ncm = '01012100';
$nbs = 1.0401;
$cnae = 6201500;
$descricao = 'reprodutores de raça pura';
$url = 'https://www.legisweb.com.br/api/reforma_tributaria_beneficios/?' . 't=' . $token . '&' . 'c=' . $id_usuario . '&' . 'tipo-busca=' . $tipo-busca . '&' . 'ncm=' . $ncm . '&' . 'nbs=' . $nbs . '&' . 'cnae=' . $cnae . '&' . 'descricao=' . $descricao;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($ch);
curl_close($ch);
header('Content-type: application/json; charset="UTF-8"');
echo $retorno;
const token = 'SEU-TOKEN';
const idUsuario = 'SEU-CODIGO';
const tipo-busca = 1;
const ncm = '01012100';
const nbs = 1.0401;
const cnae = 6201500;
const descricao = 'reprodutores de raça pura';
const url = 'https://www.legisweb.com.br/api/reforma_tributaria_beneficios/' +
'?t=' + token +
'&c=' + idUsuario +
'&tipo-busca=' + tipo-busca +
'&ncm=' + ncm +
'&nbs=' + nbs +
'&cnae=' + cnae +
'&descricao=' + descricao;
fetch(url)
.then(resposta => resposta.json())
.then(dados => console.log(dados));
const token: string = 'SEU-TOKEN';
const idUsuario: string = 'SEU-CODIGO';
const tipo-busca: string = 1;
const ncm: string = '01012100';
const nbs: string = 1.0401;
const cnae: string = 6201500;
const descricao: string = 'reprodutores de raça pura';
const url = 'https://www.legisweb.com.br/api/reforma_tributaria_beneficios/' +
'?t=' + token +
'&c=' + idUsuario +
'&tipo-busca=' + tipo-busca +
'&ncm=' + ncm +
'&nbs=' + nbs +
'&cnae=' + cnae +
'&descricao=' + descricao;
const resposta = await fetch(url);
const dados: unknown = await resposta.json();
console.log(dados);
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
String url = "https://www.legisweb.com.br/api/reforma_tributaria_beneficios/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca=1&ncm=01012100&nbs=1.0401&cnae=6201500&descricao=reprodutores+de+ra%C3%A7a+pura";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.GET()
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
url := "https://www.legisweb.com.br/api/reforma_tributaria_beneficios/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca=1&ncm=01012100&nbs=1.0401&cnae=6201500&descricao=reprodutores+de+ra%C3%A7a+pura"
resp, err := http.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
import requests
parametros = {
't': 'SEU-TOKEN',
'c': 'SEU-CODIGO',
'tipo-busca': 1,
'ncm': '01012100',
'nbs': 1.0401,
'cnae': 6201500,
'descricao': 'reprodutores de raça pura',
}
resposta = requests.get('https://www.legisweb.com.br/api/reforma_tributaria_beneficios/', params=parametros)
print(resposta.json())
using System;
using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
var url = "https://www.legisweb.com.br/api/reforma_tributaria_beneficios/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca=1&ncm=01012100&nbs=1.0401&cnae=6201500&descricao=reprodutores+de+ra%C3%A7a+pura";
var resposta = await client.GetStringAsync(url);
Console.WriteLine(resposta);
#include <curl/curl.h>
#include <iostream>
#include <string>
int main() {
CURL* curl = curl_easy_init();
if (!curl) return 1;
std::string url = "https://www.legisweb.com.br/api/reforma_tributaria_beneficios/?t=SEU-TOKEN&c=SEU-CODIGO&tipo-busca=1&ncm=01012100&nbs=1.0401&cnae=6201500&descricao=reprodutores+de+ra%C3%A7a+pura";
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
std::cerr << "Erro: " << curl_easy_strerror(res) << std::endl;
}
curl_easy_cleanup(curl);
return 0;
}
Exemplo de resposta
{
"registros": 0,
"resposta": [
{
"item": {
"id_item": 0,
"codigo": "string",
"descricao": "string",
"observacao": "string"
},
"detalhes": {
"id": 0,
"id_beneficio": 0,
"aplicabilidade": "string",
"base_legal": "string",
"id_base_legal": 0,
"ancora_base_legal": "string"
},
"beneficio": {
"observacao": "string",
"id_beneficio_tipo": 0,
"tipo_beneficio": "string"
},
"legislacoes_relacionadas": [
{
"id_base_legal": 0,
"titulo_base_legal": "string",
"ancora_base_legal": "string"
}
],
"reducoes": [
{
"tipo_reducao": "string",
"valor": "string",
"percentual": "string",
"descricao": "string"
}
],
"creditos": [
{
"valor": "string",
"descricao": "string"
}
],
"classificacoes": [
{
"id_vinculo": 0,
"codigo_cst": "string",
"descricao_cst": "string",
"id_classificacao": 0,
"codigo_classificacao": "string",
"descricao_classificacao": "string"
}
],
"itens_relacionados": [
{
"id": 0,
"codigo": "string",
"descricao": "string"
}
],
"correlacoes": {
"ncm_raiz": [
{
"id": 0,
"codigo": "string",
"descricao": "string"
}
]
}
}
]
}
Parâmetros da chamada
| Parâmetro | Obrigatório | Descrição | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
t |
Sim | Token de acesso | ||||||||||
c |
Sim | Código do cliente | ||||||||||
tipo-busca |
Sim |
Valores: 1, 2, 3, 4 |
||||||||||
ncm |
Opcional | [tipo=1] Código NCM (ex: '0101.21.00' ou '01012100'). Obrigatório para tipo=1 | ||||||||||
nbs |
Opcional | [tipo=2] Código NBS (ex: '1.0401' ou '10401'). Obrigatório para tipo=2 | ||||||||||
cnae |
Opcional | [tipo=3] Código CNAE (ex: '6201-5/00' ou '6201500'). Obrigatório para tipo=3 | ||||||||||
descricao |
Opcional | [tipo=4] Termo de busca (mínimo 3 caracteres). Obrigatório para tipo=4 |
Campos da resposta
| Campo | Tipo | Descrição |
|---|---|---|
registros |
integer | Quantidade de registros retornados |
resposta |
array<object> | |
resposta.item |
object | Item classificado (NCM, NBS ou CNAE) encontrado |
resposta.item.id_item |
integer | ID interno do item |
resposta.item.codigo |
string | Código do item (NCM, NBS ou CNAE) |
resposta.item.descricao |
string | Descrição do item |
resposta.item.observacao |
string|null | Observações sobre o item |
resposta.detalhes |
object | Detalhes da aplicabilidade do benefício |
resposta.detalhes.id |
integer | ID do detalhe |
resposta.detalhes.id_beneficio |
integer | ID do benefício |
resposta.detalhes.aplicabilidade |
string | Descrição de a quem/o que se aplica o benefício |
resposta.detalhes.base_legal |
string | Base legal do benefício |
resposta.detalhes.id_base_legal |
integer | ID da base legal |
resposta.detalhes.ancora_base_legal |
string | Âncora (trecho) da base legal referenciada |
resposta.beneficio |
object | Dados gerais do benefício |
resposta.beneficio.observacao |
string | Observações sobre o benefício, ex.: vigência |
resposta.beneficio.id_beneficio_tipo |
integer | ID do tipo de benefício |
resposta.beneficio.tipo_beneficio |
string | Tipo do benefício (ex.: Redução de Alíquota) |
resposta.legislacoes_relacionadas |
array<object> | Legislações relacionadas ao benefício |
resposta.legislacoes_relacionadas.id_base_legal |
integer | ID da base legal |
resposta.legislacoes_relacionadas.titulo_base_legal |
string | Título da base legal |
resposta.legislacoes_relacionadas.ancora_base_legal |
string | Âncora (trecho) da base legal referenciada |
resposta.reducoes |
array<object> | Reduções de alíquota ou base de cálculo aplicáveis (IBS/CBS) |
resposta.reducoes.tipo_reducao |
string | Tipo da redução (ex.: Redução de Alíquota CBS) |
resposta.reducoes.valor |
string|null | Valor da redução, quando expresso em valor |
resposta.reducoes.percentual |
string | Percentual da redução |
resposta.reducoes.descricao |
string | Descrição da redução |
resposta.creditos |
array<object> | Créditos presumidos aplicáveis |
resposta.creditos.valor |
string | Valor ou percentual do crédito |
resposta.creditos.descricao |
string | Descrição do crédito |
resposta.classificacoes |
array<object> | Classificações tributárias (CST) e de benefício vinculadas ao item |
resposta.classificacoes.id_vinculo |
integer | ID do vínculo |
resposta.classificacoes.codigo_cst |
string | Código do CST aplicável |
resposta.classificacoes.descricao_cst |
string | Descrição do CST |
resposta.classificacoes.id_classificacao |
integer | ID da classificação do benefício |
resposta.classificacoes.codigo_classificacao |
string | Código da classificação do benefício |
resposta.classificacoes.descricao_classificacao |
string | Descrição da classificação do benefício |
resposta.itens_relacionados |
array<object> | Outros itens (NCM/NBS/CNAE) relacionados ao mesmo benefício |
resposta.itens_relacionados.id |
integer | ID interno do item relacionado |
resposta.itens_relacionados.codigo |
string | Código do item relacionado |
resposta.itens_relacionados.descricao |
string | Descrição do item relacionado |
resposta.correlacoes |
object | Correlações hierárquicas do item (ex.: NCM raiz) |
resposta.correlacoes.ncm_raiz |
array<object> | NCM(s) raiz relacionado(s), quando a busca subiu na hierarquia |
resposta.correlacoes.ncm_raiz.id |
integer | ID interno do NCM raiz |
resposta.correlacoes.ncm_raiz.codigo |
string | Código do NCM raiz |
resposta.correlacoes.ncm_raiz.descricao |
string | Descrição do NCM raiz |