Objetivo
Este documento tem como objetivo explicar o funcionamento da integração das Exceções por NCM e Produto do cadastros de tributos da reforma tributária.
Pré-Requisitos e Restrições
- Necessário a instalação do serviço winthor-tributacao. Para realizar a instalação desse serviço, segue link com as devidas explicações:
Comece por aqui -> Parametrizações WTA
- Para realizar o cadastro das exceções por NCM e Produto dos tributos no WinThor, acesse o link abaixo:
Como realizar o cadastro de tributos no Winthor?
Integração
| Totvs custom tabs box |
|---|
| tabs | Dados integrados com Winthor, Envio Parâmetros, Resposta da Requisição, Passo 04 |
|---|
| ids | passo1,passo2,passo3 |
|---|
|
A integração consiste em enviar os dados de cadastro das exceções por NCM e Produto dos tributos. Para garantir a integridade referencial com o cadastro pai - cadastro do tributo, são mantidas as mesmas restrições: - Enviar apenas exceções de tributações onde o Tipo de Operação seja apenas de Saída(S) ou Ambos(A)
- Enviar apenas exceções de tributações onde sejam de Consumidor Final
- Enviar apenas exceções de tributações onde Contribuinte sejam igual a Não
- Não enviar exceções de tributações de Devolução
- Não enviar exceções de tributações onde não haja Classificação Tributária ou CST Imposto
| Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | passo1 |
|---|
| Os dados integrados são: EXCEÇÕES NCM | PCTRIBUTACAO_FILTRO_NCM |
|---|
API | Referência Winthor |
|---|
codigoTributacao | pctributacao_filtro_ncm.codigo_tributacao | ncm | pctributacao_filtro_ncm.ncm | ativo | ncm.dtinativacao is null | dataUltimaAlteracao | greatest(nvl(pctributacao_filtro_ncm.dtcriacao, to_date('01/01/1900 00:00:00', 'dd/mm/yyyy hh24:mi:ss')), nvl(pctributacao_filtro_ncm.dtultalter, to_date('01/01/1900 00:00:00', 'dd/mm/yyyy hh24:mi:ss')), nvl(pctributacao_filtro_ncm.dtinativacao, to_date('01/01/1900 00:00:00', 'dd/mm/yyyy hh24:mi:ss')), to_date('01/01/1900 00:00:00', 'dd/mm/yyyy hh24:mi:ss')) | tiposDetalheImposto | ["IBSUF", "IBSM", "CBS" ou "IS"] (lista de valores baseados nos impostos cadastrados na pctributacao) |
EXCEÇÕES PRODUTO | PCTRIBUTACAO_FILTRO_PRODUTO |
|---|
API | Referência Winthor |
|---|
codigoTributacao | pctributacao_filtro_produto.codigo_tributacao | codigoProduto | pctributacao_filtro_produto.codprod | embalagem | pcprodut.codauxiliar (onde pcprodut.codprod = pctributacao_filtro_produto.codprod) | ativo | ncm.dtinativacao is null | dataUltimaAlteracao | greatest(nvl(pctributacao_filtro_ncm.dtcriacao, to_date('01/01/1900 00:00:00', 'dd/mm/yyyy hh24:mi:ss')), nvl(pctributacao_filtro_ncm.dtultalter, to_date('01/01/1900 00:00:00', 'dd/mm/yyyy hh24:mi:ss')), nvl(pctributacao_filtro_ncm.dtinativacao, to_date('01/01/1900 00:00:00', 'dd/mm/yyyy hh24:mi:ss')), to_date('01/01/1900 00:00:00', 'dd/mm/yyyy hh24:mi:ss')) | tiposDetalheImposto | ["IBSUF", "IBSM", "CBS" ou "IS"] (lista de valores baseados nos impostos cadastrados na pctributacao) |
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | passo2 |
|---|
| Exemplo do envio da requisição: | Bloco de código |
|---|
| method: 'GET',
url: '/winthor/tributacao/v0/saida/tributacao/excecao/consultar/pdvsync' |
| Bloco de código |
|---|
| page : 1 - número da página (opcional, default 1)
pageSize : 10 - quantidade por página (opcional, default 10)
createdDate : 1900-01-01T00:00:00 - data da criação (opcional)
lastChange : 1900-01-01T00:00:00 - data da última alteração (opcional)
active : true - Ativos = true ; Inativos = false (opcional)
taxId : 1 - Código da tributação (opcional)
productId : 1 - Código do Produto (opcional)
ncmId : 123456 - Código do NCM (opcional)
exceptionType : N ou P - Tipo de Exceção - N-NCM ou P-Produto (OBRIGATÓRIO)
branchId : 1,2 ou 99 - Lista de códigos de filiais (OBRIGATÓRIO) |
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | passo3 |
|---|
| Exemplo JSON da resposta Restrição NCM | Bloco de código |
|---|
| language | js |
|---|
| title | Body Response |
|---|
| {
"first": false,
"items": [
{
"codigoTributacao": 2,
"ncm": "30049079",
"ativo": true,
"dataUltimaAlteracao": "2025-07-21T15:35:35",
"tiposDetalheImposto": [
"IBSUF",
"IBSM",
"CBS"
]
}
],
"hasNext": false
} |
Exemplo JSON da resposta Restrição Produto | Bloco de código |
|---|
| language | js |
|---|
| title | Body Response |
|---|
| {
"first": false,
"items": [
{
"codigoTributacao": 2,
"codigoProduto": 75110,
"embalagem": "7891045008396",
"ativo": true,
"dataUltimaAlteracao": "2025-07-21T15:35:47",
"tiposDetalheImposto": [
"IBSUF",
"IBSM",
"CBS"
]
}
],
"hasNext": false
} |
|
|
Para que seja realizada uma nova integração atualizando um registro já integrado, o sistema verifica a data de última atualização do registro. Portanto, ao realizar alguma alteração no registro, ele será encaminhado novamente para a view para manter a integridade dos dados do ERP com oSistema que recebe os dados da Integração.