# API - Regra on demand

# Introdução

O serviço de regras on demand provê informações tributárias em tempo real a partir dos parâmetros informados na requisição, sem a obrigatoriedade de um cadastro prévio de produtos e cenários.

A regra poderá ser gerada considerando a data enviada no campo "vigente em", podendo ser passado ou futuro, lembrando que data futura entregamos até 30 dias.

# Acesso

Informações de acesso da API

# Informações de acesso

**Comunicação:** REST/JSON  
  
**Para acessar a coleção de chamadas** [Clique Aqui](https://www.dropbox.com/scl/fi/f5ixi6by5woc3dnpygrom/API-Regra-On-Demand-v1.postman_collection.json?rlkey=9rygfm7mjz0gx8at70pndn4ph&dl=0).

**Swagger Regras On Demand**  
[https://app.systax.com.br/apisystax/calculoOnline#/](https://app.systax.com.br/apisystax/calculoOnline#/Calculo%20online/post_webservice_systax_data_rest_php)  
  
**Listagem dos Endpoints que contemplam o manual de Regras On Demand**

<table border="2" id="bkmrk-descri%C3%A7%C3%A3o-vers%C3%A3o-gru" style="width: 75.119%;"><thead><tr><th scope="col" style="width: 23.2558%;">Descrição

</th><th scope="col" style="width: 12.4585%;">Versão

</th><th scope="col" style="width: 16.6113%;">Grupo Swagger

</th><th scope="col" style="width: 11.1296%;">Método

</th><th scope="col" style="width: 36.5449%;">URL Endpoint

</th></tr></thead><tbody><tr><td style="width: 23.2558%;">Para regra atual</td><td style="width: 12.4585%;">v1

</td><td style="width: 16.6113%;">Calculo Online

</td><td style="width: 11.1296%;">Post

</td><td style="width: 36.5449%;">http://api.systax.com.br/  
webservice/systax\_data\_rest.php </td></tr><tr><td style="width: 23.2558%;">Para regra vigente  
em data anterior ou  
data futura</td><td style="width: 12.4585%;">v1</td><td style="width: 16.6113%;">Calculo Online</td><td style="width: 11.1296%;">Post</td><td style="width: 36.5449%;">http://api2.systax.com.br/  
webservice/systax\_data\_rest.php </td></tr></tbody></table>

# Coleção de chamadas

{  
 "info": {  
 "\_postman\_id": "8739f5f8-87db-4bc5-96b3-39c9f45edd5e",  
 "name": "API - Regra On Demand v1",  
 "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",  
 "\_exporter\_id": "21298242"  
 },  
 "item": \[  
 {  
 "name": "Entrada",  
 "item": \[  
 {  
 "name": "Teste 1 - Vigência Atual",  
 "request": {  
 "method": "POST",  
 "header": \[\],  
 "body": {  
 "mode": "raw",  
 "raw": "\[ \\r\\n { \\r\\n \\"metodo\\":\\"calculo\\",\\r\\n \\"versao\_requisicao\\":\\"1\\",\\r\\n \\"versao\_retorno\\":\\"1\\",\\r\\n \\"username\\": \\"\\",\\r\\n \\"senha\\": \\"\\",\\r\\n \\"origem\_mercadoria\\":\\"0\\",\\r\\n \\"cean\\":\\"\\",\\r\\n \\"ncm\\":\\"22042100\\",\\r\\n \\"ex\_tipi\\":\\"\\",\\r\\n \\"cenario\\":\[ \\r\\n { \\r\\n \\"ent\_sai\\":\\"E\\",\\r\\n \\"nat\_op\\":\\"120\\",\\r\\n \\"finalidade\\": \\"569\\",\\r\\n \\"uf\_origem\\":\\"SP\\",\\r\\n \\"uf\_destino\\":\\"SP\\",\\r\\n \\"remetente\\":\\"1\\",\\r\\n \\"destinatario\\":\\"140\\",\\r\\n \\"vigente\_em\\": \\"10/08/2023\\"\\r\\n }\\r\\n \]\\r\\n }\\r\\n\]",  
 "options": {  
 "raw": {  
 "language": "json"  
 }  
 }  
 },  
 "url": {  
 "raw": "http://api.systax.com.br/webservice/systax\_data\_rest.php",  
 "protocol": "http",  
 "host": \[  
 "api",  
 "systax",  
 "com",  
 "br"  
 \],  
 "path": \[  
 "webservice",  
 "systax\_data\_rest.php"  
 \]  
 }  
 },  
 "response": \[\]  
 },  
 {  
 "name": "Teste 1 - Vigência Passada",  
 "request": {  
 "method": "POST",  
 "header": \[\],  
 "body": {  
 "mode": "raw",  
 "raw": "\[ \\r\\n { \\r\\n \\"metodo\\":\\"calculo\\",\\r\\n \\"versao\_requisicao\\":\\"1\\",\\r\\n \\"versao\_retorno\\":\\"1\\",\\r\\n \\"username\\": \\"\\",\\r\\n \\"senha\\": \\"\\",\\r\\n \\"origem\_mercadoria\\":\\"0\\",\\r\\n \\"cean\\":\\"\\",\\r\\n \\"ncm\\":\\"22042100\\",\\r\\n \\"ex\_tipi\\":\\"\\",\\r\\n \\"cenario\\":\[ \\r\\n { \\r\\n \\"ent\_sai\\":\\"E\\",\\r\\n \\"nat\_op\\":\\"120\\",\\r\\n \\"finalidade\\": \\"569\\",\\r\\n \\"uf\_origem\\":\\"SP\\",\\r\\n \\"uf\_destino\\":\\"SP\\",\\r\\n \\"remetente\\":\\"1\\",\\r\\n \\"destinatario\\":\\"140\\",\\r\\n \\"vigente\_em\\": \\"10/08/2020\\"\\r\\n }\\r\\n \]\\r\\n }\\r\\n\]",  
 "options": {  
 "raw": {  
 "language": "json"  
 }  
 }  
 },  
 "url": {  
 "raw": "http://api2.systax.com.br/webservice/systax\_data\_rest.php",  
 "protocol": "http",  
 "host": \[  
 "api2",  
 "systax",  
 "com",  
 "br"  
 \],  
 "path": \[  
 "webservice",  
 "systax\_data\_rest.php"  
 \]  
 }  
 },  
 "response": \[\]  
 }  
 \]  
 },  
 {  
 "name": "Saída",  
 "item": \[  
 {  
 "name": "Teste 1 - Vigência Atual",  
 "request": {  
 "method": "POST",  
 "header": \[\],  
 "body": {  
 "mode": "raw",  
 "raw": "\[ \\r\\n { \\r\\n \\"metodo\\":\\"calculo\\",\\r\\n \\"versao\_requisicao\\":\\"1\\",\\r\\n \\"versao\_retorno\\":\\"1\\",\\r\\n \\"username\\": \\"\\",\\r\\n \\"senha\\": \\"\\",\\r\\n \\"origem\_mercadoria\\":\\"0\\",\\r\\n \\"cean\\":\\"\\",\\r\\n \\"ncm\\":\\"22043000\\",\\r\\n \\"ex\_tipi\\":\\"\\",\\r\\n \\"cenario\\":\[ \\r\\n { \\r\\n \\"ent\_sai\\":\\"S\\",\\r\\n \\"nat\_op\\":\\"121\\",\\r\\n \\"finalidade\\": \\"\\",\\r\\n \\"uf\_origem\\":\\"SP\\",\\r\\n \\"uf\_destino\\":\\"SP\\",\\r\\n \\"remetente\\":\\"3\\",\\r\\n \\"destinatario\\":\\"140\\",\\r\\n \\"vigente\_em\\": \\"10/08/2023\\"\\r\\n }\\r\\n \]\\r\\n }\\r\\n\]",  
 "options": {  
 "raw": {  
 "language": "json"  
 }  
 }  
 },  
 "url": {  
 "raw": "http://api.systax.com.br/webservice/systax\_data\_rest.php",  
 "protocol": "http",  
 "host": \[  
 "api",  
 "systax",  
 "com",  
 "br"  
 \],  
 "path": \[  
 "webservice",  
 "systax\_data\_rest.php"  
 \]  
 }  
 },  
 "response": \[\]  
 },  
 {  
 "name": "Teste 2 - Vigência Passada",  
 "request": {  
 "method": "POST",  
 "header": \[\],  
 "body": {  
 "mode": "raw",  
 "raw": "\[ \\r\\n { \\r\\n \\"metodo\\":\\"calculo\\",\\r\\n \\"versao\_requisicao\\":\\"1\\",\\r\\n \\"versao\_retorno\\":\\"1\\",\\r\\n \\"username\\": \\"\\",\\r\\n \\"senha\\": \\"\\",\\r\\n \\"origem\_mercadoria\\":\\"0\\",\\r\\n \\"cean\\":\\"\\",\\r\\n \\"ncm\\":\\"22043000\\",\\r\\n \\"ex\_tipi\\":\\"\\",\\r\\n \\"cenario\\":\[ \\r\\n { \\r\\n \\"ent\_sai\\":\\"S\\",\\r\\n \\"nat\_op\\":\\"121\\",\\r\\n \\"finalidade\\": \\"\\",\\r\\n \\"uf\_origem\\":\\"SP\\",\\r\\n \\"uf\_destino\\":\\"SP\\",\\r\\n \\"remetente\\":\\"3\\",\\r\\n \\"destinatario\\":\\"140\\",\\r\\n \\"vigente\_em\\": \\"10/08/2000\\"\\r\\n }\\r\\n \]\\r\\n }\\r\\n\]",  
 "options": {  
 "raw": {  
 "language": "json"  
 }  
 }  
 },  
 "url": {  
 "raw": "http://api2.systax.com.br/webservice/systax\_data\_rest.php",  
 "protocol": "http",  
 "host": \[  
 "api2",  
 "systax",  
 "com",  
 "br"  
 \],  
 "path": \[  
 "webservice",  
 "systax\_data\_rest.php"  
 \]  
 }  
 },  
 "response": \[\]  
 }  
 \]  
 }  
 \]  
}

# Autenticação

As informações de autenticação são passadas nos campos username e senha na estrutura JSON da chamada. Essas credenciais são as mesmas do site Systax e do serviço de parametrização fiscal.

# Descrição dos campos

Os dados da chamada são compostos basicamente das informações referente ao cenário (operação) e do produto para qual se deseja a tributação.

# Observação

O detalhamento dos campos pode ser obtido no Manual de Conteúdo do webservice de Parametrização Fiscal, pois adotamos nessa API REST os mesmos conceitos, tabelas e estruturas daquele webservice.

# Relação de campos

<table cellspacing="0" id="bkmrk-campo-pai-descri%C3%A7%C3%A3o-" style="width: 94.2857%;"><tbody><tr><td style="width: 23.5145%;">**Campo**</td><td style="width: 11.8808%;">**Pai**</td><td style="width: 64.6046%;">**Descrição**</td></tr><tr><td style="width: 23.5145%;">vigente\_em</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;">Data da regra - Dia/Mês/Ano</td></tr><tr><td style="width: 23.5145%;">remetente</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;">Conforme tabela de códigos de origens.</td></tr><tr><td style="width: 23.5145%;">destinatário</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;">Conforme tabela de códigos de destinos.</td></tr><tr><td style="width: 23.5145%;">nat\_op</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;">Conforme tabela de naturezas da operação.</td></tr><tr><td style="width: 23.5145%;">finalidade</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;">Finalidade da aquisição (revenda/uso e consumo etc)</td></tr><tr><td style="width: 23.5145%;">ibge\_mun\_mun\_origem</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;">Código numérico conforme tabela oficial de municípios do IBGE</td></tr><tr><td style="width: 23.5145%;">ibge\_mun\_mun\_destino</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;">Código numérico conforme tabela oficial de municípios do IBGE</td></tr><tr><td style="width: 23.5145%;">uf\_origem</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;"> </td></tr><tr><td style="width: 23.5145%;">uf\_destino</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;"> </td></tr><tr><td style="width: 23.5145%;">ent\_sai</td><td style="width: 11.8808%;">Cenário</td><td style="width: 64.6046%;">Movimento da operação: Saída = s | Entrada = e</td></tr><tr><td style="width: 23.5145%;">cean</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Código GTIN da mercadoria. Deve ser informado sempre que disponível.</td></tr><tr><td style="width: 23.5145%;">cod\_prod</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Código do produto cadastrado.</td></tr><tr><td style="width: 23.5145%;">origem\_mercadoria</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Origem do produto cadastrado, conforme código oficial de 0 a 8.</td></tr><tr><td style="width: 23.5145%;">ncm</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">NCM da mercadoria.</td></tr><tr><td style="width: 23.5145%;">ex\_tipi</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Código EX TIPI. Deverá ser informado sempre que disponível.</td></tr><tr><td style="width: 23.5145%;">cest</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Código CEST. Informar quando disponível.</td></tr><tr><td style="width: 23.5145%;">versao\_requisicao</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Valor atual = 1</td></tr><tr><td style="width: 23.5145%;">versao\_retorno</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Valor atual = 1</td></tr><tr><td style="width: 23.5145%;">username</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Conforme dados de autenticação.</td></tr><tr><td style="width: 23.5145%;">senha</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Conforme dados de autenticação.</td></tr><tr><td style="width: 23.5145%;">metodo</td><td style="width: 11.8808%;">Produto</td><td style="width: 64.6046%;">Informação fixa = cálculo.</td></tr></tbody></table>

# Campos obrigatórios

Os campos obrigatórios a serem preenchidos para retorno de regras são:

<table cellspacing="0" id="bkmrk-campo-obrigat%C3%B3rio-us"><tbody><tr><td>**Campo**</td><td>**Obrigatório**</td></tr><tr><td>Username</td><td>Sim</td></tr><tr><td>Senha</td><td>Sim</td></tr><tr><td>EAN</td><td>Sim</td></tr><tr><td>UF Origem</td><td>Sim</td></tr><tr><td>UF Destino</td><td>Sim</td></tr><tr><td>Perfil Origem</td><td>Sim</td></tr><tr><td>Perfil Destino</td><td>Sim</td></tr><tr><td>Origem produto</td><td>Sim</td></tr><tr><td>Entrada ou saída</td><td>Sim</td></tr><tr><td>cenário</td><td>Sim</td></tr><tr><td>método</td><td>Sim</td></tr></tbody></table>

Importante: os campos "cod\_prod", "cean", "ncm", "ex\_tipi" é obrigatório o preenchimento de ao menos um.

# Exemplo de chamada

**Chamada:**

\[   
 {   
 "metodo":"calculo",  
 "versao\_requisicao":"1",  
 "versao\_retorno":"1",  
 "username": "cliente1",  
 "senha": "12345",  
 "origem\_mercadoria":"0",  
 "cean":"",  
 "ncm":"22042100",  
 "ex\_tipi":"",  
 "cenario":\[   
 {   
 "ent\_sai":"E",  
 "nat\_op":"120",  
 "finalidade": "569",  
 "uf\_origem":"SP",  
 "uf\_destino":"SP",  
 "remetente":"1",  
 "destinatario":"140",  
 "vigente\_em": "16/10/2020"  
 }  
 \]  
 }  
\]

# Exemplo de retorno

{  
 "icms": {  
 "cfop": "5102",  
 "cest": "1702900",  
 "cst": "102",  
 "generico": "tributos\_aproximados\_Estadual=7.00;tributos\_aproximados\_Federal=0.00",  
 "vigencia\_de": "01/01/2001",  
 "dispositivo\_legal": "art. 37, I, e § 1º do RICMS/SP. art. 52, I do RICMS/SP"  
 },  
 "pis": {  
 "cst": "49",  
 "vigencia\_de": "14/12/2006",  
 "dispositivo\_legal": "Lei Complementar 123/2006",  
 "observacoes": "Observar condições da Lei Complementar 123/2006",  
 "inf\_adicionais": "Lei Complementar 123/2006"  
 },  
 "cofins": {  
 "cst": "49",  
 "vigencia\_de": "14/12/2006",  
 "dispositivo\_legal": "Lei Complementar 123/2006",  
 "observacoes": "Observar condições da Lei Complemetar 123/2006",  
 "inf\_adicionais": "Lei Complementar 123/2006"  
 }}