01. VISÃO GERAL
Este documento tem o objetivo de demonstrar os atributos necessários para compor o objeto de requisição e como montar um objeto Json para que seja enviado como para a FunçãoXXX.
02. COMO USAR
Deverá ser montado um Json que deverá ser enviado como requisição para obtenção dos dados do Configurador de Tributos (FISA170). O Json deverá ser composto por atributos para obtenção correta dos dados:
Atibutos
Os atributos que precisam estar contidos no Json:
itens
Neste atributo deverá ser informado o número do item que deseja obter os dados, podendo ser preenchido das seguintes formas:
itens: "ALL": Desta forma haverá o retorno de todos os itens envolvidos na operação;
itens: 1: Pode-se passar o número do item específico (tipo de dado número), para o obter os dados apenas de um item;
itens: {1, 5, 10}: Pode-se passar um array contendo os números dos itens que deseja obter os dados.
Exemplos de resquisição:
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Requisição Itens |
---|
|
--Exemplo itens: "all"
{
"itens": "all",
}
--Exemplo itens: 1
{
"itens": 1,
}
--Exemplo itens:{}
{
"itens": [
1,
5,
10
]
} |
dados_cabecalho
Com este atributo irá obter os dados do cabeçalho da operação, preenchendo o valor como "sim":
Exemplo de requisição:
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo requisição dados_cabecalho |
---|
|
{
"itens": "all",
"dados_cabecalho": "sim"
} |
Descrição dos atributos contidos em dados_cabecalho
Atributo | Tipo | Descrição |
---|
cod_regra | caractere | Código da regra fiscal |
base_trib | número | Valor da base do tributo |
val_trib | número | Valor do tributo |
regr_financ | caractere | Código da regra financeira |
id_cadastro | caractere | Id Cadastro tributo |
cod_urf | caractere | Código da URF |
perc_urf | número | Percentual da URF |
val_dep | número | Valor dependente |
cod_regr_guia | caractere | Código Regra geração de guia |
val_majorado | número | Valor majorado |
id_trib | caractere | Id de Tributos |
Exemplo do retorno da requisição do atributo dados_cabecalho
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo de retorno dados_cabecalho |
---|
|
{
dados_cabecalho:
{
"cod_regra": "TRIB01",
"base_trib": 5000,
"val_trib": 350,
"regr_fin": "",
"id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
"cod_urf": "",
"perc_urf": 0,
"val_dep": 0,
"cod_regr_guia": "",
"val_majorado": 0,
"id_trib": "000021"
}
} |
dados_itens
Com este atributo irá obter os dados dos tributos genéricos por item, preenchendo o valor como "sim". Caso necessário, há a possibilidade de obter os dados das regras de base ("regras_base"), regras de alíquota ("regras_aliquota"), regras de escrituração ("regras_escrituracao") e detalhes do livro ("detalhe_livro"), complementando a informação do retorno padrão substituindo o "sim" por um array contendo os atributos que desejar:
Exemplo de requisição dados_itens: "sim"
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo requisição dados_itens |
---|
|
{
"itens": "all",
"dados_itens": "sim"
} |
Descrição dos atributos contidos em dados_itens
Atributo | Tipo | Descrição |
---|
cod_regra | caractere | Código da regra fiscal |
desc_regra | caractere | Descrição da regra |
base_trib | número | Base de cálculo do tributo |
aliq_trib | número | Alíquota do tributo |
val_trib | número | Valor do tributo |
regr_financ | caractere | Código da regra financeira |
id_cadastro | caractere | Id Cadastro Tributo |
conf_arred | boolean | Config. Arredondamento |
ident_trib | caractere | Identificador do Tributo |
formula_npi | caractere | Fórmula convertida em NPI |
id_npi | caractere | Id cabeçalho |
cod_cabec_npi | caractere | Código do Cabeçalho |
mva | número | Margem de Valor Agregado |
mva_aux | número | índice auxiliar MVA |
val_pauta | número | Valor da pauta |
perc_majora | número | Percentual majoração |
ind_aux_majora | número | Índice Auxiliar Majoração |
cod_trib_majora | caractere | Código do que majora o tributo atual |
ded_dependentes | número | Dedução por dependentes |
cod_regr_tab_progre | caractere | Código da regra de tabela progressiva |
aliq_servico | número | Aliquota padrão código lei complementar |
cod_regr_ded_depen | caractere | Código da regra dedução dependentes |
aliq_servico_lei_comp | número | Alíquota de serviço da lei complemetar |
formula_calc_isento | caractere | Fórmula de cálculo Isento |
formula_calc_outros | caractere | Fórmula de cálculo outros |
cod_regra_guia | caractere | Código da regra de Guia |
val_zero | boolean | Valor Zero na Base ou Alíquota |
val_maximo | número | Valor máximo definido para o tributo |
val_minimo | número | Valor mínimo definido para o tributo |
operador_maximo | caractere | Operador de limite de valor máximo do tributo |
operador_minimo | caractere | Operador de limite de valor mínimo do tributo |
Exemplo do retorno da requisição do atributo dados_itens
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo retorno da requisição dados_itens |
---|
|
{
"dados_itens": {
"cod_regra": "TRIB01",
"desc_regra": "REGRA ICMS CST 40 ISENTO",
"base_trib": 100,
"aliq_trib": 7,
"val_trib": 7,
"regr_financ": "",
"id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
"conf_arred": true,
"ident_trib": "000021",
"formula_npi": "BAS:TRIB01 ALQ:TRIB01 *",
"id_npi": "96b65263-8caf-bbef-dc01-758e1d5701dd",
"cod_cabec_npi": "VAL:TRIB01",
"mva": 0,
"mva_aux": 0,
"val_pauta": 0,
"perc_majora": 0,
"ind_aux_majora": 0,
"cod_trib_majora": "",
"ded_dependentes": 0,
"cod_regr_tab_progre": "",
"cod_regr_ded_depen": "",
"aliq_servico": 0,
"aliq_servico_lei_comp": 0,
"formula_calc_isento": "BAS:TRIB01",
"formula_calc_outros": "BAS:TRIB01",
"cod_regra_guia": "",
"val_zero": false,
"val_maximo": 0,
"val_minimo": 0,
"operador_maximo": "",
"operador_minimo": ""
}
} |
Como mencionado, há a possibilidade da obtenção dos dados dos cadastros das regras utilizadas para a composição do tributo, utilizando os atributos "regras_base" para obter os dados das regras de base, "regras_aliquota" para obter os dados das regras de alíquota, "regras_escrituracao" para obter os dados das regras de escrituração e "detalhe_livro" para obter os detalhes do livro. Os dados serão retornados complementando a requisição de "dados_itens" como "sim".
Exemplo de requisição dados_itens:
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo requisição dados_itens com detalhes |
---|
|
{
"itens": "all",
"dados_itens":
[
"regras_base",
"regras_aliquota",
"detalhe_livro",
"regras_escrituracao"
]
} |
Descrição dos atributos contidos em regras_base
Atributo | Tipo | Descrição |
---|
cod_regr_base | caractere | Código identificador da regra de base de cálculo |
origem_valor | caractere | Opção que indica a origem do valor que definirá a base de cálculo |
acao_desconto | caractere | Opção que definirá se o valor do desconto deverá ter alguma ação sobre o valor de origem |
acao_frete | caractere | Opção que definirá se o valor do frete deverá ter alguma ação sobre o valor de origem |
acao_seguro | caractere | Opção que definirá se o valor do seguro deverá ter alguma ação sobre o valor de origem |
acao_despesa | caractere | Opção que definirá se o valor de despesas acessórias deverá ter alguma ação sobre o valor de origem |
acao_icms_deson | caractere | Opção que definirá se o valor do icms desonerado deverá ter alguma ação sobre o valor de origem |
acao_icms_ret | caractere | Opção que definirá se o valor do icms retido deverá ter alguma ação sobre o valor de origem |
perc_reducao | número | Percentual de redução de base de cálculo |
tipo_reducao | caractere | Opção que definirá o momento em que a redução ocorrerá |
um_base | caractere | Unidade de medida - Base de cálculo por quantidade |
id_cadastro | caractere | Id identificação do cadastro |
formula_base | caractere | Fórmula base |
id_formula | caractere | ID da fórmula |
cod_formula | caractere | Código da fórmula |
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeBasedeC%C3%A1lculo
Descrição dos atributos contidos em regras_aliquota
Atributo | Tipo | Descrição |
---|
cod_regr_aliquota | caractere | Código identificador da regra de alíquota |
origem_aliquota | caractere | Opção que indica a origem da alíquota |
tipo_aliquota | caractere | Opção que defini o tipo de alíquota informada manualmente |
aliquota | número | Alíquota informada manualmente |
cod_urf | caractere | Código da URF |
perc_urf | número | Percentual URF |
valor_urf | número | Valor da URF no período |
id_cadastro | caractere | Id do cadastro Alíquota |
formula_aliquota | caractere | Fórmula alíquota |
id_aliquota | caractere | ID da fórmula |
cod_formula | caractere | Código da fórmula |
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeAl%C3%ADquota
Descrição dos atributos contidos em detalhe_livro
Atributo | Tipo | Descrição |
---|
cst | caractere | Classificação fiscal |
valor_tributado | número | Valor tributado |
valor_isento | número | Valor isento |
valor_outros | número | Valor outros |
valor_nao_tribut | número | Valor não tributado |
valor_diferido | número | Valor diferido |
valor_majorado | número | Valor majorado |
perc_majorado | número | Percentual da Majoração |
perc_diferido | número | Percentual do diferimento |
perc_reducao | número | Percentual da redução |
valor_pauta | número | Valor pauta |
mva | número | Margem de valor agregado |
ind_aux_mva | número | Índice auxiliar de MVA |
Ind_aux_majora | número | Índice auxiliar de majoração |
cod_tab_cst | caractere | Tabela CST |
val_base_original | número | Valor base original |
Descrição dos atributos contidos em regras_escrituracao
Atributo | Tipo | Descrição |
---|
id_cadastro | caractere | Id Cadastro |
incidencia | caractere | Opção de Incidência da regra de tributação |
acao_tot_nf | caractere | Opção para determinar a soma no total da nota fiscal |
perc_diferimento | número | Percentual do diferimento |
cst | caractere | Classificação fiscal |
cod_tab_cst | caractere | Tabela CST |
inc_parc_redu | caractere | Opção que define a incidência da parcela reduzida de base de cálculo |
Para mais informações sobre o conteúdo dos campos verificar a documentação:
CFGTRIB - Configurador de Tributos - 12.1.22.10#CadastrodeRegradeEscritura%C3%A7%C3%A3o
Exemplo do retorno da requisição do atributo dados_itens contendo os atributos de regras e detalhe do livro
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo de retorno dados_itens com detalhes |
---|
|
{
"dados_itens": [
{
"cod_regra": "TRIB01",
"desc_regra": "REGRA ICMS CST 40 ISENTO",
"base_trib": 100,
"aliq_trib": 7,
"val_trib": 7,
"regr_financ": "",
"id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
"conf_arred": true,
"ident_trib": "000021",
"formula_npi": "BAS:TRIB01 ALQ:TRIB01 *",
"id_npi": "96b65263-8caf-bbef-dc01-758e1d5701dd",
"cod_cabec_npi": "VAL:TRIB01",
"mva": 0,
"mva_aux": 0,
"val_pauta": 0,
"perc_majora": 0,
"ind_aux_majora": 0,
"cod_trib_majora": "",
"ded_dependentes": 0,
"cod_regr_tab_progre": "",
"cod_regr_ded_depen": "",
"aliq_servico": 0,
"aliq_servico_lei_comp": 0,
"formula_calc_isento": "BAS:TRIB01",
"formula_calc_outros": "BAS:TRIB01",
"cod_regra_guia": "",
"val_zero": false,
"val_maximo": 0,
"val_minimo": 0,
"operador_maximo": "",
"operador_minimo": "",
"regras_base": {
"cod_regr_base": "BAS001",
"origem_valor": "01",
"acao_desconto": "1",
"acao_frete": "1",
"acao_seguro": "1",
"acao_despesa": "1",
"acao_icms_deson": "1",
"acao_icms_ret": "1",
"perc_reducao": 0,
"tipo_reducao": "",
"um_base": "",
"id_cadastro": "5ce3cd32-1d87-2a5c-5ad4-8525ab17ee1e",
"formula_base": "B:BAS001",
"id_formula": "fcd4411a-b439-9318-7eea-c4dba6299db5",
"cod_formula": "BAS:TRIB01"
},
"regras_aliquota": {
"cod_regr_aliquota": "ALQ005",
"origem_aliquota": "04",
"tipo_aliquota": "1",
"aliquota": 7,
"cod_urf": "",
"perc_urf": 0,
"valor_urf": 0,
"id_cadastro": "80f93a77-3fdb-ed19-ac8d-b6b4be022372",
"formula_aliquota": "A:ALQ005",
"id_aliquota": "6c0d2b4e-5166-753e-61ab-918cf3a336d4",
"cod_formula": "ALQ:TRIB01"
},
"detalhe_livro": {
"cst": "40",
"valor_tributado": 0,
"valor_isento": 100,
"valor_outros": 0,
"valor_nao_tribut": 0,
"valor_diferido": 0,
"valor_majorado": 0,
"perc_majorado": 0,
"perc_diferido": 0,
"perc_reducao": 0,
"valor_pauta": 0,
"mva": 0,
"ind_aux_mva": 0,
"Ind_aux_majora": 0,
"cod_tab_cst": "000001",
"val_base_original": 0
},
"regras_escrituracao": {
"id_cadastro": "d62db7e9-419f-43a9-cc69-9cafe5805f5b",
"incidencia": "2",
"acao_tot_nf": "1",
"perc_diferimento": 0,
"cst": "40",
"cod_tab_cst": "000001",
"inc_parc_redu": "2"
}
}
]
} |
planilha_financeira
Com esta atributo é possível obter os das referencias da planilha de cálculo da operação (planilha financeira), retornará o compilado total da operação. Deverá ser preenchido com um "sim" para obtenção dos dados por tributos.
Exemplo de requisição planilha_financeira:
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo de requisição planilha_financeira |
---|
|
{
"itens": "all",
"planilha_financeira": "sim"
} |
Descrição dos atributos contidos em planilha_financeira
Atributo | Tipo | Descrição |
---|
codigo_tributo | caractere | Código do tributo |
descricao_tributo | caractere | Descrição do tributo |
base_tributo | número | Base de cálculo tributo |
aliquota_tributo | número | Alíquota do tributo |
valor_tributo | número | Valor do tributo |
nome_ref | caractere | Nome de referencia |
Exemplo do retorno planilha_financeira
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo requisição planilha_financeira |
---|
|
{
"planilha_financeira": {
"codigo_tributo": "TRIB01",
"descricao_tributo": "REGRA ICMS CST 40 ISENTO",
"base_tributo": 5000,
"aliquota_tributo": 7,
"valor_tributo": 350,
"nome_ref": "TG"
}
} |
Informações |
---|
|
A requisição da planilha financeira pode trazer os dados de cálculos realizados método legado (operações que levam em consideração os cadastros da TES - SF4) se houver composição da operação considerando "operadores legados", ou a operação envolvendo alguns tributos calculados exclusivamente pela TES (SF4). |
Exemplo de retorno geral
Abaixo é apresentado um exemplo de um retorno de uma requisição que continha apenas um item, sendo assim, o retorno será o Json estruturado da seguinte forma:
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo de Json de retorno geral |
---|
|
{
"item": [
1,
{
"dados_cabecalho": {
"cod_regra": "TRIB01",
"base_trib": 5000,
"val_trib": 350,
"regr_fin": "",
"id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
"cod_urf": "",
"perc_urf": 0,
"val_dep": 0,
"cod_regr_guia": "",
"val_majorado": 0,
"id_trib": "000021"
},
"dados_itens": {
"cod_regra": "TRIB01",
"desc_regra": "REGRA ICMS CST 40 ISENTO",
"base_trib": 100,
"aliq_trib": 7,
"val_trib": 7,
"regr_financ": "",
"id_cadastro": "1563de01-0c33-87af-5437-01401e2f4532",
"conf_arred": true,
"ident_trib": "000021",
"formula_npi": "BAS:TRIB01 ALQ:TRIB01 *",
"id_npi": "96b65263-8caf-bbef-dc01-758e1d5701dd",
"cod_cabec_npi": "VAL:TRIB01",
"mva": 0,
"mva_aux": 0,
"val_pauta": 0,
"perc_majora": 0,
"ind_aux_majora": 0,
"cod_trib_majora": "",
"ded_dependentes": 0,
"cod_regr_tab_progre": "",
"cod_regr_ded_depen": "",
"aliq_servico": 0,
"aliq_servico_lei_comp": 0,
"formula_calc_isento": "BAS:TRIB01",
"formula_calc_outros": "BAS:TRIB01",
"cod_regra_guia": "",
"val_zero": false,
"val_maximo": 0,
"val_minimo": 0,
"operador_maximo": "",
"operador_minimo": "",
"regras_base": {
"cod_regr_base": "BAS001",
"origem_valor": "01",
"acao_desconto": "1",
"acao_frete": "1",
"acao_seguro": "1",
"acao_despesa": "1",
"acao_icms_deson": "1",
"acao_icms_ret": "1",
"perc_reducao": 0,
"tipo_reducao": "",
"um_base": "",
"id_cadastro": "5ce3cd32-1d87-2a5c-5ad4-8525ab17ee1e",
"formula_base": "B:BAS001",
"id_formula": "fcd4411a-b439-9318-7eea-c4dba6299db5",
"cod_formula": "BAS:TRIB01"
},
"regras_aliquota": {
"cod_regr_aliquota": "ALQ005",
"origem_aliquota": "04",
"tipo_aliquota": "1",
"aliquota": 7,
"cod_urf": "",
"perc_urf": 0,
"valor_urf": 0,
"id_cadastro": "80f93a77-3fdb-ed19-ac8d-b6b4be022372",
"formula_aliquota": "A:ALQ005",
"id_aliquota": "6c0d2b4e-5166-753e-61ab-918cf3a336d4",
"cod_formula": "ALQ:TRIB01"
},
"detalhe_livro": {
"cst": "40",
"valor_tributado": 0,
"valor_isento": 100,
"valor_outros": 0,
"valor_nao_tribut": 0,
"valor_diferido": 0,
"valor_majorado": 0,
"perc_majorado": 0,
"perc_diferido": 0,
"perc_reducao": 0,
"valor_pauta": 0,
"mva": 0,
"ind_aux_mva": 0,
"Ind_aux_majora": 0,
"cod_tab_cst": "000001",
"val_base_original": 0
},
"regras_escrituracao": {
"id_cadastro": "d62db7e9-419f-43a9-cc69-9cafe5805f5b",
"incidencia": "2",
"acao_tot_nf": "1",
"perc_diferimento": 0,
"cst": "40",
"cod_tab_cst": "000001",
"inc_parc_redu": "2"
}
},
"planilha_financeira": {
"codigo_tributo": "TRIB01",
"descricao_tributo": "REGRA ICMS CST 40 ISENTO",
"base_tributo": 5000,
"aliquota_tributo": 7,
"valor_tributo": 350,
"nome_ref": "TG"
}
}
]
} |
Como demonstrado a estrutura será composta pelo número do item, e em seguida seus dados (válido para dados_cabecalho, dados_itens e suas regras e detalhes de livro e regras_escrituracao, dados de planilha_financeira apresentam os dados compilados de toda operação).
03. EXEMPLO DE IMPLEMENTAÇÃO
Abaixo é demontrado como pode ser feita a implementação:
Implementação de Json simplificado - Contém a forma de requisição completa. No exemplo está demonstrado como compor o objeto da forma não nativa (ADVPL) e da forma nativa (TL++), ficando a cargo do desenvolvedor escolher a melhor alternativa.
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo implementação 1 |
---|
|
Function MontaObjetoRequisicao()
Local oRequisicao as json
Local jRequisicao as json
//Exemplo composição Json não nativo
oRequisicao := JsonObject():New()
oRequisicao["itens"] := "all"
oRequisicao["dados_cabecalho"] := "sim"
oRequisicao["dados_itens"] := "sim"
oRequisicao["planilha_financeira"] := "sim"
//Exemplo composição Json nativo (TL++)
jRequisicao := {"itens": "ALL", "dados_cabecalho": "sim", "dados_itens": "sim", "planilha_financeira": "sim"}
Conout(oRequisicao:ToJson())
Conout(jRequisicao:ToJson())
FreeObj(oRequisicao)
FreeObj(jRequisicao)
Return nil |
O Json ficará estruturado da seguinte forma:
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo Json estruturado 1 |
---|
|
{
"itens": "ALL",
"dados_cabecalho": "sim",
"dados_itens": "sim",
"planilha_financeira": "sim"
} |
Implementação de Json especificando detalhes - Contém a forma de requisição especificando referencias. No exemplo está demonstrado como compor o objeto da forma não nativa (ADVPL) e da forma nativa (TL++), ficando a cargo do desenvolvedor escolher a melhor alternativa.
Bloco de código |
---|
language | js |
---|
theme | Midnight |
---|
title | Exemplo implementação |
---|
|
Function MontaObjetoRequisicaoEspecifico()
Local oRequisicao as Json
Local jComponente as json
//Exemplo composição Json não nativo
oRequisicao := JsonObject():New()
oRequisicao["itens"] := {1, 5, 10}
oRequisicao["dados_cabecalho"] := "sim"
oRequisicao["dados_itens"] := {"regras_base", "detalhe_livro", "detalhe_livro" , "regras_escrituracao"}
oRequisicao["planilha_financeira"] := "sim"
//Exemplo composição Json nativo (TL++)
jComponente := {"itens": {1, 5, 10}, "dados_planilha": "sim", "dados_itens: {"regras_base", "detalhe_livro", "detalhe_livro" , "regras_escrituracao"}, "planilha_financeira": "sim"}
Conout(oRequisicao:ToJson())
Conout(jComponente:ToJson())
FreeObj(oRequisicao)
FreeObj(jComponente)
Return nil |
Aviso |
---|
|
Todos os exemplos demonstrados nesta documentação são fictícios, criados com intuito de orientar, cabendo ao desenvolvedor aplicar os conceitos demonstrados da forma que atenda plenamente as necessidades da operação. |