Manual TaaS


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


Acesso

Configurações, URL e Autenticação

Para utilizar o serviço de cálculo externo direto do SAP, siga este procedimento:

  1. 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

http://wscockpit.systax.com.br/TaaSPD/api/tax/calculation

Proxy Type

Escolher Internet

Authentication

Utilizar usuário e senha fornecidos pela Systax

         2. Configure o Partner Service Framework.

Parâmetros

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:

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 
Industrializados",

                    "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
de Mercadorias e Serviços",

                    "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 
Financiamento da 
                       Seguridade Social",

                    "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
|versao=6.07|",

    "partnerName": "Systax versao=6.07"

}

 

Blocos retornados no response


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.

 

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

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 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.