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 |
|---|
| 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 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 |
|---|
| default | yes |
|---|
| referencia | passo1 |
|---|
| 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 |
|---|
| default | no |
|---|
| referencia | passo2 |
|---|
| Exemplo do envio da requisição: | Bloco de código |
|---|
| method: 'GET',
url: '/winthor/tributacao/v0/saida/tributacao/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)
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 |
|---|
| default | no |
|---|
| referencia | passo3 |
|---|
| Exemplo JSON da resposta: | Bloco de código |
|---|
| language | js |
|---|
| title | Body 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ção. Caso necessário, realizar o ajuste nos cadastros para que a API apresente a data desejada.