NCM
Nomenclatura Comum do Mercosul
Classificação de produtos usada pra fins de tributação e comércio exterior, direto do Portal Único do Siscomex.
Mercosul goods nomenclature
Product classification used for taxation and foreign trade purposes, straight from the Portal Único do Siscomex.
SYNC resposta na mesma chamada answers in the same call
Endpoints
Endpoints
/api/v1/ncm
lista completa, ~10 mil códigos
full list, ~10 thousand codes
/api/v1/ncm/{codigo}
busca um código NCM
looks up one NCM code
Parâmetros
Parameters
| Nome | Name | Onde | In | Descrição | Description |
|---|---|---|---|---|---|
codigo |
path | 8 dígitos, com ou sem pontuação (33051000 ou 3305.10.00) |
8 digits, with or without punctuation (33051000 or 3305.10.00) |
Exemplo
Example
curl https://api.alicercelabs.com.br/api/v1/ncm/33051000 \
-H "Authorization: Bearer <token>"
{
"success": true,
"data": {
"codigo": "3305.10.00",
"descricao": "- Xampus",
"data_inicio": "01/04/2022",
"data_fim": "31/12/9999",
"tipo_ato": "Res Gecex",
"numero_ato": "272",
"ano_ato": "2021"
},
"meta": { "elapsed_ms": 0, "request_id": "..." }
}
Erros possíveis
Possible errors
| Status | Motivo | Reason |
|---|---|---|
| 400 | código não tem 8 dígitos | code doesn't have 8 digits |
| 401 | token ausente ou inválido | missing or invalid token |
| 404 | código NCM não encontrado | NCM code not found |
| 429 | limite de taxa excedido | rate limit exceeded |
Fonte oficial, sem fallback
Official source, no fallback
Tabela oficial do Portal Único do Siscomex, pública, sem chave, atualizada por ato normativo (Resolução Camex/Gecex). ~10.500 códigos, servidos de um SQLite local. Sem fallback: já é a fonte oficial.
Official table from the Portal Único do Siscomex, public, no key, updated by normative act (Camex/Gecex resolution). ~10,500 codes, served from a local SQLite. No fallback: it's already the official source.
Usando o SDK
Using the SDK
SDKs oficiais: Go · Python · JavaScript.
Official SDKs: Go · Python · JavaScript.
Buscar um código NCM
Look up an NCM code
import (
"context"
"fmt"
alicercelabs "github.com/alicercelabs/alicercesdk-go"
)
client := alicercelabs.New("alk_...") // ou um token JWT de login/register
ctx := context.Background()
ncm, err := client.NCM.Get(ctx, "33051000")
if err != nil {
panic(err)
}
fmt.Println(ncm.Descricao)from alicercelabs import AlicerceLabs
client = AlicerceLabs(api_key="alk_...") # ou um token JWT de login/register
ncm = client.ncm.get("33051000")
print(ncm["descricao"])import { AlicerceLabs } from "alicercesdk-javascript";
const client = new AlicerceLabs("alk_..."); // ou um token JWT de login/register
const ncm = await client.ncm.get("33051000");
console.log(ncm.descricao);Limites
Limits
100/dia · 4/hora sem token, por IP chamador; com token (JWT de login ou API key gerada no painel), 1.000/dia · 41/hora.
100/day · 4/hour without a token, per calling IP; with one (a login JWT or an API key generated in the panel), 1,000/day · 41/hour.