Manual TaaS
- Introdução
- Acesso
- Parâmetros
- Blocos retornados no response
- Detalhamento dos campos
- Gestão de devolução
Introdução
Este documento tem por objetivo explicar a forma de funcionamento da solução Systax TaaS, bem como exemplifica a forma de de-para dos dados utilizados na integração SAP-S4/HANA e Motor de Cálculos Systax.
Acesso
Configurações, URL e Autenticação
Para utilizar o serviço de cálculo externo direto do SAP, siga este procedimento:
- Crie um destino HTTP para Partner Service Framework.
Para criar o destino HTTP, você deve fornecer dados que obtém da SAP e da Systax. Veja abaixo quais são esses dados:
Dados determinados pela SAP
No campo Name, use o nome de destino do serviço de parceiro que você obtém ao enviar um HTTP GET. Esta solicitação deve ser para a URL: https://<TaxConfigurationURL>/AvailableConfiguration.svc/ Destinations(‘<countryISO>’)
Dados determinados pela Systax
|
Campo |
Dado |
|
Type |
Escolher HTTP |
|
URL |
|
|
Proxy Type |
Escolher Internet |
|
Authentication |
Utilizar usuário e senha fornecidos pela Systax |
2. Configure o Partner Service Framework.
Parâmetros
Chamada e Resposta
Para acessar a coleção de chamadas
De acordo com a transação realizada (exemplo: compra, venda, transferência, etc.) e os dados mestres do cadastro de fornecedor, planta recebedora ou vendedora, filiais e dados mestres de materiais será feita a conversão para que o Motor Systax entenda para qual produto e operação está sendo requisitado o cálculo.
Abaixo exemplo de requisição e retorno onde os dados definem uma operação de compra de um varejista, para revenda, de SP para SP, de um fornecedor industrial que produziu a mercadoria.
Cenário Systax: SP-SP-120-1-140–569 Compra para revenda_Indústria_Varejo
Na chamada exemplo abaixo:
- A operação de compra é identificada pelos campos “operationNatureCode” e “saleorPurchase” igual a “P”;
- Para determinar a UFs (SP-SP)– consideramos os campos “state” do Ship From e Ship To, do bloco “Locations”;
- Para determinar a operação e perfil do fornecedor/remetente (120-Venda de Produção do Estabelecimento e 1-Indústria) – consideramos os campos “materialOrigin” e “cnae” do Ship From.
- Para determinar o perfil do destinatário (140-Varejista) – consideramos o campo “cnae” do Ship To.
|
Chamada |
Retorno |
|
{ "id": "02E7B3F979971EED93E6ACEAC7A51EB9", "date": "2022-10-18T19:37:10.000Z", "companyId": "1410", "saleorPurchase": "P", "operationNatureCode": "P", "grossOrNet": "g", "currency": "BRL", "Items": [ { "id": "000010", "itemCode": "TBD", "itemType": "M", "quantity": "1.000", "unitPrice": "50.2000", "itemClassifications": [ { "itemStandardClassificationSystemCode": "cest", "itemStandardClassificationCode": "" }, { "itemStandardClassificationSystemCode": "ncm", "itemStandardClassificationCode": "12060010" } ], "additionalItemInformation": [ { "type": "materialOrigin", "information": "0" }, { "type": "usage", "information": "R" } ] } ], "Locations": [ { "type": "SHIP_FROM", "addressLine1": "Rua Pamplona 145, 11 andar", "zipCode": "01405000", "city": "São Paulo", "state": "SP", "country": "BR" }, { "type": "SHIP_TO", "addressLine1": "Av. Ipanema 165", "zipCode": "03015000", "city": "São Paulo", "state": "SP", "country": "BR" } ], "Party": [ { "id": "1", "role": "SHIP_FROM", "taxRegistration": [ { "locationType": "SHIP_FROM", "taxNumber": "112240", "taxNumberTypeCode": "CNAE" }, { "locationType": "SHIP_FROM", "taxNumber": "0000000000100", "taxNumberTypeCode": "CNPJ" }, { "locationType": "SHIP_FROM", "taxNumber": "Y", "taxNumberTypeCode": "COFINSContributor" }, { "locationType": "SHIP_FROM", "taxNumber": "3304557", "taxNumberTypeCode": "IBGECode" }, { "locationType": "SHIP_FROM", "taxNumber": "Y", "taxNumberTypeCode": "ICMSContributor" }, { "locationType": "SHIP_FROM", "taxNumber": "Y", "taxNumberTypeCode": "ICMSSTContributor" }, { "locationType": "SHIP_FROM", "taxNumber": "Y", "taxNumberTypeCode": "IPIContributor" }, { "locationType": "SHIP_FROM", "taxNumber": "N", "taxNumberTypeCode": "ISSContributor" }, { "locationType": "SHIP_FROM", "taxNumber": "Presumed Profit", "taxNumberTypeCode": "taxDeclarationType" }, { "locationType": "SHIP_FROM", "taxNumber": "Y", "taxNumberTypeCode": "PISContributor" }, { "locationType": "SHIP_FROM", "taxNumber": "", "taxNumberTypeCode": "taxRegimenCode" } ] }, { "id": "2", "role": "SHIP_TO", "taxRegistration": [ { "locationType": "SHIP_TO", "taxNumber": "4711302", "taxNumberTypeCode": "CNAE" }, { "locationType": "SHIP_TO", "taxNumber": "74544297000192", "taxNumberTypeCode": "CNPJ" }, { "locationType": "SHIP_TO", "taxNumber": "Y", "taxNumberTypeCode": "COFINSContributor" }, { "locationType": "SHIP_TO", "taxNumber": "3304557", "taxNumberTypeCode": "IBGECode" }, { "locationType": "SHIP_TO", "taxNumber": "Y", "taxNumberTypeCode": "ICMSContributor" }, { "locationType": "SHIP_TO", "taxNumber": "Y", "taxNumberTypeCode": "ICMSSTContributor" }, { "locationType": "SHIP_TO", "taxNumber": "956224310481", "taxNumberTypeCode": "IE" }, { "locationType": "SHIP_TO", "taxNumber": "N", "taxNumberTypeCode": "IPIContributor" }, { "locationType": "SHIP_TO", "taxNumber": "Y", "taxNumberTypeCode": "ISSContributor" }, { "locationType": "SHIP_TO", "taxNumber": "2062", "taxNumberTypeCode": "legalNature" }, { "locationType": "SHIP_TO", "taxNumber": "Y", "taxNumberTypeCode": "PISContributor" }, { "locationType": "SHIP_TO", "taxNumber": "Real Profit", "taxNumberTypeCode": "taxDeclarationType" } ] } ] }
|
{ "total": "50.200000000000", "subTotal": "50.200000000000", "totalTax": "50.200000000000", "taxLines": [ { "id": "000010", "totalTax": "15.511800000000", "taxcode": "1102", "taxValues": [ { "rate": "0.0000", "taxable": "0.000000000000", "name": "Imposto sobre Produtos "value": "0.000000000000", "exemptedBasePercent": "0.0000", "exemptedBaseAmount": "50.200000000000", "otherBaseAmount": "0.000000000000", "taxTypeCode": "IPI", "taxAttributes": [ { "attributeType": "CENQ", "attributeValue": "999" }, { "attributeType": "CST", "attributeValue": "03" }, { "attributeType": "legalProvision1", "attributeValue": "Art. 226 do RIPI/2010" }, { "attributeType": "legalPCode1", "attributeValue": "210059" } ] }, { "rate": "18.0000", "taxable": "50.200000000000", "name": "Imposto sobre Comercialização "value": "9.036000000000", "exemptedBasePercent": "0.0000", "exemptedBaseAmount": "0.000000000000", "otherBaseAmount": "0.000000000000", "taxTypeCode": "ICMS", "taxAttributes": [ { "attributeType": "CST", "attributeValue": "00" }, { "attributeType": "baseDetermination", "attributeValue": "3" } ] }, { "rate": "1.6500", "taxable": "50.200000000000", "name": "Programa de Integração Social", "value": "0.828300000000", "exemptedBasePercent": "0.0000", "exemptedBaseAmount": "0.000000000000", "otherBaseAmount": "0.000000000000", "taxTypeCode": "PIS", "taxAttributes": [ { "attributeType": "CST", "attributeValue": "50" } ] }, { "rate": "0.6500", "taxable": "50.200000000000", "name": "PIS from supplier", "value": "0.326300000000", "exemptedBasePercent": "0.0000", "exemptedBaseAmount": "0.000000000000", "otherBaseAmount": "0.000000000000", "taxTypeCode": "PIS-SUP", "taxAttributes": [ { "attributeType": "CST", "attributeValue": "01" } ] }, { "rate": "7.6000", "taxable": "50.200000000000", "name": "Contribuição para o "value": "3.815200000000", "exemptedBasePercent": "0.0000", "exemptedBaseAmount": "0.000000000000", "otherBaseAmount": "0.000000000000", "taxTypeCode": "COFINS", "taxAttributes": [ { "attributeType": "CST", "attributeValue": "50" } ] }, { "rate": "3.0000", "taxable": "50.200000000000", "name": "COFINS from supplier", "value": "1.506000000000", "exemptedBasePercent": "0.0000", "exemptedBaseAmount": "0.000000000000", "otherBaseAmount": "0.000000000000", "taxTypeCode": "COFINS-SUP", "taxAttributes": [ { "attributeType": "CST", "attributeValue": "01" } ] } ] } ], "date": "2023-05-19T18:02:59.26442-03:00", "genericInfo": "busca=NCMD|codProd=NCM_12060010-0|orig=1|CFOP_ENTRADA=1102|UFO=sp|UFD=sp|natOp=120| perfilorig=1|perfildest=140|finalidade=569 "partnerName": "Systax versao=6.07" }
|
Blocos retornados no response
Blocos retornados no response
Após a chamada, caso todos os parâmetros estejam corretos, o TaaS retorna os cálculos organizados em blocos de tributos conforme as definições e estrutura da SAP.
Abaixo estão os blocos retornados e suas descrições.
- ICMS: Imposto sobre Circulação de Mercadoria e Serviços
- ICMS-ST: ICMS com Substituição Tributária
- ICMS-FCP: Fundo de Combate à Pobreza sobre o ICMS
- ICMS-ST-FCP: Fundo de Combate à Pobreza para ICMS com Substituição Tributária
- ICMS-DP: EC 87/15 – Partilha de ICMS devido ao estado de destino
- ICMS-D-FCP: EC 87/15 - Partilha de ICMS relativo ao Fundo de Combate à Pobreza (FCP) do estado de destino
- ICMS-DIFAL: ICMS com Diferencial de Alíquota
- ICMS-DIFAL-FCP: Fundo de Combate à Pobreza para ICMS com Diferencial de Alíquota
- ICMS-FTZ: ICMS desonerado Zona Franca de Manaus
- IPI: Imposto sobre Produtos Industrializados
- PIS: Programa de Integração Social
- PIS-WHT: PIS a ser retido no momento do pagamento
- PIS-SUP: PIS calculado pelo fornecedor num processo de compra
- COFINS: Contribuição para Financiamento da Seguridade Social
- COFINS-WHT: COFINS a ser retido no momento do pagamento
- COFINS-SUP: COFINS calculado pelo fornecedor num processo de compra
- ISS-PROV: Imposto Sobre Serviço devido ao município do provedor - Recolhido pelo Provedor
- ISS-PROV-WHT: Imposto Sobre Serviço devido ao município do provedor - retido pelo tomador
- ISS-EXEC: Imposto Sobre Serviço devido ao município da prestação do serviço - recolhido pelo provedor
- ISS-EXEC-WHT: Imposto Sobre Serviço devido ao município da prestação do serviço - retido pelo tomador
- CSLL-WHT: Contribuição Social sobre o Lucro Líquido a ser retido no momento do pagamento
- IR-WHT: Imposto de Renda a ser retido no momento do pagamento
- IR-WHT-INVOICE: Imposto de Renda a ser retido no momento da fatura
- INSS-WHT: Instituto Nacional do Seguro Social a ser retido no momento da fatura
- INSS-CPRB: Contribuição previdenciária sobre a receita bruta a recolher
- CONSOLIDATED-PCC-WHT: PIS, COFINS e CSLL a serem retidos no momento do pagamento
Cada bloco de tributo é retornado conforme a definição e os parâmetros de origem e destino dos campos do Tax Engine, considerando condições como o tipo de operação realizada e a regra de cálculo correspondente. O TaaS transmite vários parâmetros, incluindo a natureza da operação — por exemplo, venda, devolução, importação ou prestação de serviços — e, de acordo com a regra aplicada, identifica quais tributos devem ser calculados ou ajustados.
Quando uma operação ocorre, o TaaS envia o tipo de transação para que o motor aplique as regras fiscais a cada tributo. Em vendas de mercadorias, o ICMS segue as alíquotas estaduais e o PIS/COFINS depende do regime da empresa. Nas devoluções, os tributos são ajustados para estorno ou compensação segundo a legislação.
Cada bloco tributário é ajustado para a operação, garantindo cálculos adequados à transação, conformidade fiscal e redução de erros.
Detalhamento dos campos
Response
| TaaS Campos | Descrição |
| total | Totalização do valor da NF |
| subTotal | Cabeçalho do response valor unitário x quantidade |
| totalTax | Somatório do valor unitário de todos os itens da chamada |
| id | ID do produto |
| totalTax | Somatório de todos os tributos calculados |
| taxcode | CFOP da operação |
| rate | alíquota do ICMS |
| taxable | Valor atribuído à coluna "Base de Cálculo " |
| name | Nomenclatura do bloco |
| value | Valor do tributo calculado |
| exemptedBaseAmount | Base de cálculo atribuído à coluna "Isento" |
| otherBaseAmount | Base de cálculo atribuído à coluna "Outras" |
| exemptedBasePercent | Percentual de redução da base cáculo atribuída à coluna Isento |
| taxTypeCode | Nomenclatura do tributo |
| taxLines/taxValues/attributeType "CST" taxLines/taxValues/attributeValue "XX" |
CST |
| taxLines/taxValues/attributeType "cBenef" taxLines/taxValues/attributeValue "XX" |
Código Cbnef se houver |
| taxLines/taxValues/taxAttributes/attributeType "CENQ" taxLines/taxValues/taxAttributes/attributeValue "999" |
Cenq do IPI |
| taxLines/taxValues/attributeType "legalProvision1" taxLines/taxValues/attributeValue "XXXXXXXXXX" |
Dispositivo legal |
| taxLines/taxValues/attributeType "legalPCode1" taxLines/taxValues/attributeValue "XXXXXXXXXX" |
Código interno da legislação |
| taxLines/taxValues/attributeType "vICMSDeson" taxLines/taxValues/attributeValue "X" |
valor do ICMS desnoerado - ICMS |
| taxLines/taxValues/attributeType "motDesICMS" taxLines/taxValues/attributeValue "X" |
Motivo desoneração - ICMS |
| taxLines/taxValues/attributeType "bcICMSDeson" taxLines/taxValues/attributeValue "X" |
Base de Cálculo do ICMS Desonerado |
| taxLines/taxValues/attributeType "surchargeRate" taxLines/taxValues/attributeValue "XX.00" |
Alíquota MVA aplicável à operação |
| taxLines/taxValues/attributeType "baseDetermination" taxLines/taxValues/attributeValue "X" |
Informação do ModBc do calculo do ICMS / ST |
Gestão de devolução
Gestão da devolução
Para atender as necessidades dos clientes que realizam devolução via XML enviada no TaaS ou no motor de cálculo, criamos a tela de “Gestão de Devolução”.
Com o apoio das informações preenchidas nessa tela, permite que o cliente envie na chamada do TaaS ou do motor de cálculo, o arquivo XML da nota fiscal de venda ou compra e retona o cálculo da devolução considerando as informações do XML e realizando as trocas de CFOP e CST conforme definido na tabela de Gestão de Devolução.
O funcionamento dessa rotina consiste no seguinte fluxo:
Ø Na chamada do TaaS deve ser enviado na tag “referenceIDXML” ou na chamada do motor de cálculo deve ser enviado na tag “Cdata” o XML da nota fiscal original (de compra ou venda) convertido ou não em Base 64;
Ø deverá ser enviado nas tags "itemCode" e "quantity", respectivamente, o código do item que será devolvido, além da quantidade (que poderá ser total ou parcial),
Ø Nas chamadas do TaaS também é enviado a tag “referenceIDItem”, essa marcação serve para indicar qual é o item da NF que está sendo devolvido.
Ø A chamada enviada pelo TaaS vai passar pela determinação e perfil e enviar a requisição para o motor de cálculo que utilizará as informações da nota fiscal para executar os cálculos e devolver o resultado;
Ø o motor receberá os campos de "cprod" e "qtrib" e considerará as informações do XML para devolução ;
Ø mesmo que seja enviado um determinado valor na tag "unitPrice" o mesmo será desconsiderado no cálculo, pois será usado exclusivamente o valor unitário da NF
Ø Os campos de CFOP e CST serão retornados conforme a informação da tabela de “Gestão de Devolução” no cockpit;
Ø Para calcular os valores referente o Pis e Cofins:
Quando tem o bloco de Pis e Cofins na NF:
- O motor utiliza o vBC/quantidade total * quantidade devolvida
- aplica as alíquotas de Pis e Cofins que também foram enviadas no documento
- calcula os valores e devolve nas tags correspontes ("rate", "value" e "taxable")
Quando não tem o bloco de Pis e Cofins na NF:
O motor de cálculo irá calcular a base de cálculo que basicamente deve ser (valor unitário x quantidade devolvida)
Ø O TaaS deverá receber esse valor nas tags "otherBaseAmount" ou "exemptedBaseAmount", de acordo com o CST previsto nas definições do TaaS;
Ø Nas devoluções, o motor não considera o parâmetro "gross or net", portanto, não há diferenciação entre cálculo net ou gross.
Marcações no Cockpit – Configuração do Tax Engine:
ü "devolucaoParcialXML" – Se estiver ativa, será retornado na chamada apenas o item que for indicado no campo itemCode ou cprod, ou seja os demais itens do XML ou base64, deverão ser desconsiderados;
ü "buscacProdXML" – Se estiver ativa, deverá identificar no XML ou base64 enviado qual o cProd correspondente ao cProd enviado na chamada, devendo ignorar o ID enviado na chamada;
ü "FederalDevolucaoXML" – Se estiver ativa, deverá buscar na tabela do Cockpit (Gestão de Devolução), um registro considerando:
o 1. registro vigente e ativo na data do cálculo;
o 2. Busca das linhas da tabela de acordo com as condições cadastradas;
o 3. Se encontrar um registro, o retorno das tags "CFOP" e "CST" serão alterados, considerando as informações da tabela
Dessa forma o cliente tem autonomia para definir as informações de CFOP e CST na devolução.