# API - Classificação Fiscal (V1)

Manual contendo as últimas atualizações efetuadas em 12/09/2025

# Introdução

A API de classificação fiscal permite realizar de forma integrada esse importante serviço que é a determinação correta da NCM de mercadorias. A correta classificação da NCM é fator determinante para se chegar na tributação precisa de qualquer material.

Essa API permite que através do seu sistema, seja possível realizar as mesmas atividades que normalmente são realizadas no através do Portal CFM, o portal de classificação fiscal da Systax.

O fluxo de acesso inicia pela autenticação, sendo necessário primeiramente obter um token, que será passado no header de todas as outras requisições.

Através dos serviços de cadastro e alteração, pode-se enviar mercadorias para a classificação, enviar as respostas às dúvidas técnicas e confirmar a NCM definitiva.

Com os serviços de consulta de NCM Sugerida, e Dúvidas Técnicas, pode-se listar respectivamente, a NCM sugerida pelo time Systax e as dúvidas técnicas levantadas por eles.

O serviço de consulta permite a listagem dos itens já classificados e todas as informações produzidas.

# Acessos

**Swagger**

[https://app.systax.com.br/cfm/swagger](https://app.systax.com.br/cfm/swagger)

Para acessar, é necessário ter uma conta de usuário válida no Portal CFM da Systax.

# Autenticação

# Passo a passo

Todas as API's são autenticadas através de um token, obtida através de um serviço próprio.

O usuário e senha são passados através do HTTP Basic Authentication e sem nenhuma informação no corpo da mensagem.

**GET**  
[http://app.systax.com.br/cfm/auth/access-token](http://app.systax.com.br/cfm/auth/access-token)

[![API Classificação Fiscal - Autenticação (Imagem 1).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-autenticacao-imagem-1.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-autenticacao-imagem-1.jpg)

**Request**

O retorno da API será um token, que deverá ser utilizado em todas as demais API's do serviço de classificação fiscal.

**Como utilizar o token**

Em todas as demais API's, o token deverá ser passado no Header da mensagem em um campo chamado token.

[![API Classificação Fiscal - Autenticação (Imagem 2).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-autenticacao-imagem-2.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-autenticacao-imagem-2.jpg)

**Validade do token**

O token tem um tempo de vida padrão de 1 hora. Após esse período, um novo token deverá ser obtido.

Caso o token esteja expirado, a mensagem "Provided token is expired." será retornada em qualquer uma das API's.

[![API Classificação Fiscal - Autenticação (Imagem 3).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-autenticacao-imagem-3.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-autenticacao-imagem-3.jpg)

# Serviços

# Cadastro

O serviço de cadastro permite o envio de mercadorias para classificação.

**Método:** POST  
**URL:** http://app.systax.com.br/cfm/products

**Request**

Os campos que podem ser enviados são:

<table border="1" cellpadding="2" cellspacing="0" id="bkmrk-nome-tipo-descri%C3%A7%C3%A3o-"><tbody><tr><td>**Nome**</td><td>**Tipo**</td><td>**Descrição**</td><td>**Obrigatório**</td></tr><tr><td>cod\_interno</td><td>Texto</td><td>Código do material no cadastro do cliente</td><td>Sim</td></tr><tr><td>origem\_produto</td><td>Inteiro</td><td>Origem do material de 0 a 8 conforme tabela oficial</td><td>Sim</td></tr><tr><td>descricao</td><td>Texto</td><td>Descrição da mercadoria, importante para o processo de classificação</td><td>Sim</td></tr><tr><td>complemento</td><td>Texto</td><td>Informações adicionais importantes para se determina a natureza do material</td><td>Não</td></tr><tr><td>ean</td><td>Inteiro</td><td>Número GTIN (EAN) se disponível</td><td>Não</td></tr><tr><td>ncm\_original</td><td>Inteiro</td><td>A NCM atual da mercadoria</td><td>Não</td></tr><tr><td>ex\_tipi\_original</td><td>Inteiro</td><td>O EX da TIPI atual da mercadoria</td><td>Não</td></tr></tbody></table>

*JSON do request*  
{  
 "cod\_interno": "00001",  
 "origem\_produto": 0,  
 "complemento": "Complemento ",  
 "ean": "",  
 "ncm\_original": "04064000",  
 "ex\_tipi\_original": "",  
 "descricao": "Descrição"  
}

**Response**

Em caso de sucesso a api retornará o campo status com a descrição "Criado" e o ID, que é o código da base de dados da Systax.

Caso a mercadoria já tenha sido cadastrada a API retornará o campo "error" com a mensagem: "Já existe um produto com o mesmo cod\_interno e origem\_produto"  
  
*JSON do response.*  
{  
 "status": "Criado",  
 "id": 7233611  
}

**Exemplo de request e response**

**[![API Classificação Fiscal - Cadastro (Imagem 1).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-cadastro-imagem-1.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-cadastro-imagem-1.jpg)**

# Alteração

O serviço de alteração permite o envio de alterações de produtos já cadastrados, bem como o envio de aprovação de NCM e respostas das dúvidas dos analistas Systax.

**Método:** PUT  
**URL:** http://app.systax.com.br/cfm/products/{id}

O id é o mesmo código retornado no serviço de cadastro.

**Request**

Os campos que podem ser enviados são:

<table border="1" cellpadding="2" cellspacing="0" id="bkmrk-nome-tipo-descri%C3%A7%C3%A3o-"><tbody><tr><td>**Nome**</td><td>**Tipo**</td><td>**Descrição**</td></tr><tr><td>descricao</td><td>Texto</td><td>Descrição da mercadoria, importante para o processo de classificação</td></tr><tr><td>complemento</td><td>Texto</td><td>Informações adicionais importantes para se determina a natureza do material</td></tr><tr><td>ean</td><td>Inteiro</td><td>Número GTIN (EAN) se disponível</td></tr><tr><td>ncm\_original</td><td>Inteiro</td><td>A NCM atual da mercadoria</td></tr><tr><td>ex\_tipi\_original</td><td>Inteiro</td><td>O EX da TIPI atual da mercadoria</td></tr><tr><td>ncm\_definitiva</td><td>Inteiro</td><td>A confirmação da NCM que será utilizada.</td></tr><tr><td>ex\_tipi\_definitiva</td><td>Inteiro</td><td>A confirmação da EX que será utilizada, caso necessário.</td></tr><tr><td>resposta\_tecnica</td><td>Texto</td><td>A resposta dada ao questionamento do analista da Systax.</td></tr></tbody></table>

**Importante:** A NCM e EX definitas podem ser iguais ou diferentes à NCM sugerida pelo analista da Systax.

*JSON do request*{  
 "descricao": "Descrição da mercadoria",  
 "complemento": "Complemento",  
 "ean": "0",  
 "ncm\_original": "04064000",  
 "ex\_tipi\_original": "",  
 "ncm\_definitiva": "04064000",  
 "ex\_tipi\_definitiva": "",  
 "resposta\_tecnica": "Resposta"  
}

**Response**

Em caso de sucesso a API retornará o campo status com a descrição "Atualizado".

*JSON do response.*  
{  
 "status": "Atualizado"  
}

Em caso de falha o retorno será o campo "error" com a descrição apropriada como no exemplo abaixo:

[![API Classificação Fiscal - Alteração (Imagem 1).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-alteracao-imagem-1.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-alteracao-imagem-1.jpg)

**Exemplo de request e response**

**[![API Classificação Fiscal - Alteração (Imagem 2).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-alteracao-imagem-2.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-alteracao-imagem-2.jpg)**

# Informações

O serviço de Informações lista os itens já classificados, ou seja, que contenham NCM definitiva.

**Método:** GET  
**URL:** [https://app.systax.com.br/cfm/products](https://app.systax.com.br/cfm/products)

**Request**

Os campos que podem ser enviados são:

<table border="1" cellpadding="2" cellspacing="0" id="bkmrk-nome-tipo-descri%C3%A7%C3%A3o-"><tbody><tr><td>**Nome**</td><td>**Tipo**</td><td>**Descrição**</td></tr><tr><td>tipo\_retorno</td><td>Texto</td><td>Define quais informações devem ser retornadas. Opções possíveis: ncm, duvida ou infos (default). - ncm retorna: id, cod\_interno, origem\_produto, ncm\_sugerida e ex\_tipi\_sugerida;
- duvida retorna: id, cod\_interno, origem\_produto e duvida\_tecnica;
- infos retorna: retorna todos os dados do produto;

</td></tr><tr><td>id</td><td>Inteiro</td><td>ID do produto. Se esse filtro for utilizado, todos os outros filtros serão ignorados, caso sejam utilizados ao mesmo tempo</td></tr><tr><td>list\_ids</td><td>Texto</td><td>Lista de id's separados por vírgula. Se enviado, os parâmetros cod\_interno e origem\_produto serão ignorados. </td></tr><tr><td>data\_criacao</td><td>Texto</td><td>Permite filtrar o dia exato 15/08/2019 ou uma faixa 20/04/2019a27/12/2019</td></tr><tr><td>param</td><td>Array\[Texto\]</td><td>Array de parâmetros para filtrar os produtos. Deve ser combinado com o parâmetro value\[\]. Opções: cod\_interno, origem\_produto, ean, descricao, complemento, ncm\_original, ex\_tipi\_original, ncm\_sugerida, ex\_tipi\_sugerida, ncm\_definitiva, ex\_tipi\_definitiva, status\_atual.</td></tr><tr><td>value</td><td>Array\[Texto\]</td><td>Array de valores para filtrar os produtos. Deve ser combinado com o parâmetro param\[\] Para o filtro status\_atual, utilizar os valores: novo, classificado, pendente ou aguardando-ncm-definitiva.</td></tr><tr><td>pagina\_atual</td><td>Inteiro</td><td>Página que se deseja consultar.</td></tr><tr><td>por\_pagina</td><td>Inteiro</td><td>Quantidade de registros por página.</td></tr><tr><td>order\_by</td><td>Inteiro</td><td>Define a ordenação dos resultados. Opções: id, cod\_interno, descricao e data\_criacao. Acrescente .ASC ou .DESC se necessário. Exemplos cod\_interno, id.DESC, descricao.ASC</td></tr></tbody></table>

**Importante:** Os parâmetros deverão ser enviados na query string da url.

**Paginação**

Se a quantidade de itens retornados for maior do que uma página, um bloco adicional "paginacao" será devolvido contendo algumas informações importantes para a leitura dos itens paginados.

 Esse bloco conterá as seguintes informações:

<table border="1" cellpadding="2" cellspacing="0" id="bkmrk-nome-tipo-descri%C3%A7%C3%A3o--1"><tbody><tr><td>**Nome**</td><td>**Tipo**</td><td>**Descrição**</td></tr><tr><td>total\_registros</td><td>Texto</td><td>A quantidade total de registros disponíveis para consulta. </td></tr><tr><td>num\_paginas</td><td>Texto</td><td>A quantidade total de páginas em que esses registros se distribuem.</td></tr><tr><td>por\_pagina</td><td>Inteiro</td><td>A quantidade de itens por págian informada na requisição.</td></tr><tr><td>pagina\_atual</td><td>Inteiro</td><td>A página que se está consultando no momento.</td></tr><tr><td>itens\_da\_pagina</td><td>Inteiro</td><td>A quantidade de itens retornados na página atual. Será menor do que o tamanho da página quando se estiver lendo a última</td></tr></tbody></table>

*Request consuntando NCM*

http://app.systax.com.br/cfm/products/?por\_pagina=3&amp;tipo\_retorno=ncm&amp;order\_by=data\_criacao.ASC

*Request consultando dúvida:*

http://app.systax.com.br/cfm/products/?por\_pagina=3&amp;tipo\_retorno=duvida&amp;order\_by=data\_criacao.DESC

**Request e Response**

**[![API Classificação Fiscal - Informações (Imagem 1).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-informacoes-imagem-1.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-informacoes-imagem-1.jpg)**

# Dúvidas técnicas

O serviço de dúvidas técnicas permite listar as dúvidas técnicas registradas pelos dos analistas Systax. Essas informações adicionais são importantes para se determinar a classificação fiscal corretamente.

**Método:** GET  
**URL:** http://app.systax.com.br/cfm/products/duvida\_tecnica

**Request**

Os campos que podem ser enviados são:

<table border="1" cellpadding="2" cellspacing="0" id="bkmrk-nome-tipo-descri%C3%A7%C3%A3o-"><tbody><tr><td>**Nome**</td><td>**Tipo**</td><td>**Descrição**</td></tr><tr><td>list\_ids</td><td>Texto</td><td>Lista de id's separados por vírgula. Se enviado, os parâmetros cod\_interno e origem\_produto serão ignorados. </td></tr><tr><td>cod\_interno</td><td>Texto</td><td>Código do material enviado no cadastro.</td></tr><tr><td>origem\_produto</td><td>Inteiro</td><td>Origem da mercadoria enviada no cadastro.</td></tr><tr><td>pagina\_atual</td><td>Inteiro</td><td>Página que se deseja consultar.</td></tr><tr><td>por\_pagina</td><td>Inteiro</td><td>Quantidade de registros por página.</td></tr></tbody></table>

*JSON do request - Exemplo 1 - Consultando por id produto.  
{  
 "list\_ids": "7233611",  
 "pagina\_atual": "1",  
 "por\_pagina": "50"  
}*

*JSON do request - Exemplo 2 - Consultando por código do material.*  
{  
 "cod\_interno": "00001",  
 "origem\_produto": "0",   
 "pagina\_atual": "1",  
 "por\_pagina": "20"  
}

**Importante:** É permitido não informar lista de id's ou códigos de produto, nesse caso serão retornadas todas os materiais da página.

**Response**

Em caso de sucesso a API retornará o campo a lista de materiais com dúvidas técnicas.

*{  
 "produtos": \[  
 {  
 "id": "7233611",  
 "cod\_interno": "00001",  
 "origem\_produto": "0",  
 "duvida\_tecnica": "Uma dúvida",  
 "resposta\_tecnica": ""  
 },  
 {  
 "id": "4890228",  
 "cod\_interno": "123456",  
 "origem\_produto": "0",  
 "duvida\_tecnica": "",  
 "resposta\_tecnica": ""  
 }  
 \],  
 "paginacao": {  
 "total\_registros": 5,  
 "num\_paginas": 3,  
 "por\_pagina": 2,  
 "pagina\_atual": 1,  
 "itens\_da\_pagina": 2  
 }  
}*

**Paginação**

Se a quantidade de itens retornados for maior do que uma página, um bloco adicional "paginacao" será devolvido contendo algumas informações importantes para a leitura dos itens paginados.

 Esse bloco conterá as seguintes informações:

<table border="1" cellpadding="2" cellspacing="0" id="bkmrk-nome-tipo-descri%C3%A7%C3%A3o--1"><tbody><tr><td>**Nome**</td><td>**Tipo**</td><td>**Descrição**</td></tr><tr><td>total\_registros</td><td>Texto</td><td>A quantidade total de registros disponíveis para consulta. </td></tr><tr><td>num\_paginas</td><td>Texto</td><td>A quantidade total de páginas em que esses registros se distribuem.</td></tr><tr><td>por\_pagina</td><td>Inteiro</td><td>A quantidade de itens por página informada na requisição.</td></tr><tr><td>pagina\_atual</td><td>Inteiro</td><td>A página que se está consultando no momento.</td></tr><tr><td>itens\_da\_pagina</td><td>Inteiro</td><td>A quantidade de itens retornados na página atual. Será menor do que o tamanho da página quando se estiver lendo a última</td></tr></tbody></table>

**Resquest e response**

*Busca completa:*

*[![API Classificação Fiscal - Dúvidas técnicas (Imagem 1).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-duvidas-tecnicas-imagem-1.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-duvidas-tecnicas-imagem-1.jpg)*

*Busca por ID:*

*[![API Classificação Fiscal - Dúvidas técnicas (Imagem 2).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-duvidas-tecnicas-imagem-2.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-duvidas-tecnicas-imagem-2.jpg)*

# NCM Sugerida

O serviço de NCM sugerida permite listar as NCM's registradas pelos dos analistas Systax e identificadas como correta segundo sua análise. Com base nessas informações o cliente poderá aceita-la ou recusa-la.

Para aceitar, basta que o cliente reenvie a NCM sugerida como definitiva através do serviço de Alteração, para recusar, o cliente poderá enviar a NCM original ou mesmo uma terceira como NCM definitiva.

**Método:** GET  
**URL:** http://app.systax.com.br/cfm/products/ncm\_sugerida

**Request**

Os campos que podem ser enviados são:

<table border="1" cellpadding="2" cellspacing="0" id="bkmrk-nome-tipo-descri%C3%A7%C3%A3o-"><tbody><tr><td>**Nome**</td><td>**Tipo**</td><td>**Descrição**</td></tr><tr><td>list\_ids</td><td>Texto</td><td>Lista de id's separados por vírgula. Se enviado, os parâmetros cod\_interno e origem\_produto serão ignorados. </td></tr><tr><td>cod\_interno</td><td>Texto</td><td>Código do material enviado no cadastro.</td></tr><tr><td>origem\_produto</td><td>Inteiro</td><td>Origem da mercadoria enviada no cadastro.</td></tr><tr><td>pagina\_atual</td><td>Inteiro</td><td>Página que se deseja consultar.</td></tr><tr><td>por\_pagina</td><td>Inteiro</td><td>Quantidade de registros por página.</td></tr></tbody></table>

*JSON do request - Exemplo 1 - Consultando por id produto.  
{  
 "list\_ids": "7233611",  
 "pagina\_atual": "1",  
 "por\_pagina": "50"  
}*

*JSON do request - Exemplo 2 - Consultando por código do material.*  
{  
 "cod\_interno": "00001",  
 "origem\_produto": "0",   
 "pagina\_atual": "1",  
 "por\_pagina": "20"  
}

**Importante:** É permitido não informar lista de id's ou códigos de produto, nesse caso serão retornadas todas os materiais da página.

**Response**

Em caso de sucesso a API retornará a lista de materiais com sugestão de NCM.

*{  
 "produtos": \[  
 {  
 "id": "7233611",  
 "cod\_interno": "00001",  
 "origem\_produto": "0",  
 "ncm\_original": "04064000",  
 "ex\_tipi\_original": "",  
 "ncm\_sugerida": "04064000",  
 "ex\_tipi\_sugerida": "",  
 "ncm\_definitiva": "",  
 "ex\_tipi\_definitiva": "",  
 "status\_atual": "novo",  
 "informacao\_extra": "NCM Sugerida Preenchida"  
 }  
 \]  
}*

**Paginação**

Se a quantidade de itens retornados for maior do que uma página, um bloco adicional "paginacao" será devolvido contendo algumas informações importantes para a leitura dos itens paginados.

 Esse bloco conterá as seguintes informações:

<table border="1" cellpadding="2" cellspacing="0" id="bkmrk-nome-tipo-descri%C3%A7%C3%A3o--1"><tbody><tr><td>**Nome**</td><td>**Tipo**</td><td>**Descrição**</td></tr><tr><td>total\_registros</td><td>Texto</td><td>A quantidade total de registros disponíveis para consulta. </td></tr><tr><td>num\_paginas</td><td>Texto</td><td>A quantidade total de páginas em que esses registros se distribuem.</td></tr><tr><td>por\_pagina</td><td>Inteiro</td><td>A quantidade de itens por págian informada na requisição.</td></tr><tr><td>pagina\_atual</td><td>Inteiro</td><td>A página que se está consultando no momento.</td></tr><tr><td>itens\_da\_pagina</td><td>Inteiro</td><td>A quantidade de itens retornados na página atual. Será menor do que o tamanho da página quando se estiver lendo a última</td></tr></tbody></table>

**Response**

*{  
 "produtos": \[  
 {  
 "id": "7233611",  
 "cod\_interno": "00001",  
 "origem\_produto": "0",  
 "ncm\_original": "04064000",  
 "ex\_tipi\_original": "",  
 "ncm\_sugerida": "04064000",  
 "ex\_tipi\_sugerida": "",  
 "ncm\_definitiva": "",  
 "ex\_tipi\_definitiva": "",  
 "status\_atual": "novo",  
 "informacao\_extra": "NCM Sugerida Preenchida"  
 },  
 {  
 "id": "7233561",  
 "cod\_interno": "cdigo",  
 "origem\_produto": "0",  
 "ncm\_original": "09786112",  
 "ex\_tipi\_original": "",  
 "ncm\_sugerida": "04064000",  
 "ex\_tipi\_sugerida": "",  
 "ncm\_definitiva": "",  
 "ex\_tipi\_definitiva": "",  
 "status\_atual": "novo",  
 "informacao\_extra": "NCM Sugerida Preenchida"  
 }  
 \],  
 "paginacao": {  
 "total\_registros": 3,  
 "num\_paginas": 2,  
 "por\_pagina": 2,  
 "pagina\_atual": 1,  
 "itens\_da\_pagina": 2  
 }  
}*

**Request e Response**

**[![API Classificação Fiscal - NCM Sugerida (Imagem 1).jpg](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/scaled-1680-/api-classificacao-fiscal-ncm-sugerida-imagem-1.jpg)](https://documentacao.systax.com.br/uploads/images/gallery/2025-07/api-classificacao-fiscal-ncm-sugerida-imagem-1.jpg)**