Páginas filhas
  • APIs Integrações - Tributação - CBS / IBS / IS

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Objetivo

Este documento tem como objetivo explicar o funcionamento da integração dos 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

    • De acordo com as parametrizações realizadas pela rotina 132, parâmetro 2277 - Tipo de precificação, é possível expor os preços pelas seguintes rotinas:

201 – Precificar Produto

Como precificar produtos pela rotina 201 - Precificar produtos

2017 – Precificação Por Embalagem.

Como precificar produtos pela rotina 2017 - Precificação por embalagem

  • Caso exista política de preço fixo cadastrada na rotina 357 que se aplique ao conjunto de dados informados (cliente, região, filial, produto, plano de pagamento, etc), o preço a ser exposto será o cadastrado na política.
  • A parametrização de venda por embalagem e preço de venda por embalagem será por filial.
  • Com o uso do Tipo de precificação Atacado será empregado o preço cadastrado da (Rotina 2017) -  Precificação Por Embalagem, gravando o campo (PCEMBALAGEM.PVENDAATAC).
  • Com o uso do Tipo de precificação Varejo será empregado o preço cadastrado da (Rotina 2017) -  Precificação Por Embalagem, gravando o campo (PCEMBALAGEM.PVENDA).
  • Com o uso do Tipo de precificação Padrão será empregado o preço cadastrado da (Rotina 201) -  Precificar Produto, gravando o campo (PCTABPR.PVENDA1).
  • Deve-se preencher o parâmetro 4257 – Código da região para preço CIASHOP (CODREGIAOPRECOCIASHOP) com a Região que será utilizada por Filial.

  • Caso parâmetro 4257 Não esteja preenchido, é utilizada a região informada no parâmetro 2832 – Número da região utilizada pelo e-commerce (REGIAOECOMMERCE).

  • Quando se tratar de produto de Origem Web e/ou E-commerce a API não irá calcular o preço de venda com Impostos. O preço de venda válido será sempre o preço vindo do E-commerce.
  • Quando o parâmetro 2277 - Tipo de Precificação  da rotina 132 estiver cadastrado como Atacado (A)  ou Varejo (V) e estiver sendo usado o preço por embalagem (preço cadastrado na rotina 2017), o retorno da requisição terá os atributos "offerPrice", "offerStartDate" e "offerEndDate", que correspondem respectivamente as colunas POFERTA, DTOFERTAINI e DTOFERTAFIM da tabela PCEMBALAGEM. Do contrário, se o parâmetro estiver como Padrão (P)  estes atributos retornarão 0 e vazio.
  • Deve-se preencher o campo ENVIAECOMMERCE no cadastro do produto (Rotina 203).
  • Deve-se preencher o campo USAECOMMERCE no cadastro da região (Rotina 519) para o envio dos preços dos itens em regiões de e-commerce.

Importante

Quando não houver preenchimento do campo DATA, exemplo (data de cadastro, data de alteração), nossas APIs retornará por padrão a informação "1900-01-01T00:00:00".

  • Para realizar o cadastro dos tributos no WinThor, acesse o link abaixo:

Como realizar o cadastro de tributos no Winthor?

Integração


Totvs custom tabs box
tabsDados integrados com Winthor, Envio Parâmetros, Resposta da Requisição, Passo 04
idspasso1,passo2,passo3

A integração consiste em enviar os dados de cadastro dos tributos, observando os seguintes critérios:

  • Enviar apenas tributações onde o Tipo de Operação seja apenas de Saída(S) ou Ambos(A)
  • Enviar apenas as tributações onde sejam de Consumidor Final 
  • Enviar apenas as tributações onde Contribuinte sejam igual a Não
  • Não enviar tributações de Devolução
  • Não enviar tributações onde não haja Classificação Tributária ou CST Imposto


Totvs custom tabs box items
defaultyes
referenciapasso1

Os dados integrados são: 

TRIBUTOS                                                |         PCTIBUTACAO

API

Referência Winthor

codigoTributacao

pctributacao.codigo_tributacao

descricaoTributacao

pctributacao.descricao_tributacao

tipoImposto

pctributacao.tipo_imposto

localConsumo

pctributacao.local_consumo_geral ou pctributacao.local_consumo_municipio (conforme pctributacao.tipo_local_consumo)

tipoOperacao

pctributacao.tipo_operacao

devolucao

pctributacao.devolucao

tipoEmpresa

pctributacao.tipo_empresa

contribuinte

pctributacao.contribuinte

orgaoPublico

pctributacao.orgao_publico

cst

pctributacao.cst

classificacaoTributaria

pctributacao.cclasstrib

origemMercadoria

pctributacao.origem_mercadoria

tipoMercadoria

pctributacao.tipo_merc

dataInicioVigencia

pctributacao.dtinicio_vigencia

dataFimVigencia

pctributacao.dtfim_vigencia

ativo

Se campo pctributacao.dtinativacao estiver preenchido

igual a false,

senão true

dataUltimaAlteracao

Maior data entre:

pctributacao.dtcriacao

pctributacao.dtultalter

pctributacao.dtinativacao

pctributacao.dtexclusao

tipoLocalConsumo

pctributacao.tipo_local_consumo

localConsumoGeral

pctributacao.local_consumo_geral

localConsumoMunicipio

pctributacao.local_consumo_municipio

impostos.[*].tipoDetalheImposto

"CBS", "IBSUF", "IBSM",  ou "IS"

impostos.[*].percentualAliquota

pctributacao.perc_cbs ou pctributacao.perc_ibs_uf ou pctributacao.perc_ibs_mun ou pctributacao.perc_is

impostos.[*].percentualReducaoAliquota

pctributacao.perc_red_cbs ou pctributacao.perc_red_ibs_uf ou pctributacao.perc_red_ibs_mun

Totvs custom tabs box items
defaultno
referenciapasso2

Exemplo do envio da requisição:

Bloco de código
languagejs
titleURI
method: 'GET',
url: '/winthor/tributacao/v0/saida/tributacao/consultar/pdvsync'
Bloco de código
languagejs
titleParams
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)
startDate        : 1900-01-01T00:00:00 - Data de inicio da vigência (opcional)
endDate          : 1900-01-01T00:00:00 - Data de fim da vigência (opcional)
branchId         : 1,2                 - Lista de códiigos de filiais (OBRIGATÓRIO)
placeConsumption : BR,GO               - Lista de locais de consumo - BR, UF ou código de cidade IBGE (opcional)
branchId         : 1,2                 - Lista de códigos de filiais (OBRIGATÓRIO)
cst              : 30,40               - Lista de CST (opcional)
cclasstrib       : 01,02               - Lista de classificações tributárias (opcional)
taxId            : 1,2                 - Lista de códigos de tributação (opcional)     
taxType          : CBSIBS,IS           - Lista de tipos de tributos (OBRIGATÓRIO, somente aceitos os três tipos CBS, IBS e IS)
Totvs custom tabs box items
defaultno
referenciapasso3

Exemplo JSON da resposta:  

Bloco de código
languagejs
titleBody Response
{
    "first": false,
    "items": [
        {
            "codigoTributacao": 2,
            "descricaoTributacao": "CBS BR TO-AM DV-N CS-N CN-N ***",
            "tipoImposto": "CBSIBS",
            "localConsumo": "GO",
            "tipoOperacao": "A",
            "devolucao": false,
            "tipoEmpresa": "EPP",
            "tipoPessoa": "J",
            "contribuinte": false,
            "orgaoPublico": false,
            "cst": "00",
            "classificacaoTributaria": "01",
            "origemMercadoria": "1",
            "tipoMercadoria": "L",
            "dataInicioVigencia": "2025-06-01T00:00:00",
            "dataFimVigencia": "2025-12-31T00:00:00",
            "ativo": true,
            "dataUltimaAlteracao": "2025-07-24T13:43:05",
            "tipoLocalConsumo": "G",
            "localConsumoGeral": "GO",
            "impostos": [
                {
                    "tipoDetalheImposto": "IBSUF",
                    "percentualAliquota": 20,
                    "percentualReducaoAliquota": 21
                },
                {
                    "tipoDetalheImposto": "IBSM",
                    "percentualAliquota": 22,
                    "percentualReducaoAliquota": 23
                },
                {
                    "tipoDetalheImposto": "CBS",
                    "percentualAliquota": 10,
                    "percentualReducaoAliquota": 11
                }
            ]
        }
    ],
    "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çãoCaso necessário, realizar o ajuste nos cadastros para que a API apresente a data desejada.