Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice


01. VISÃO GERAL

A classe TCIWritten foi desenvolvida para viabilizar o acesso aos dados gravados nas tabelas F2D e CJ3 do Configurador de Tributos (FISA170) de uma forma dinâmica e intuitiva. 

Este documento tem o objetivo de demonstrar

...

o funcionamento da classe TCIWritten (Tax Configurator Integration Written) e seus os métodos.

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:

id

Neste atributo deverá ser informado o número do id que será relacionado a F2D que deseja obter os dados, podendo ser preenchido das seguintes formas:

id: "369ca132-2b3b-ac96-6b78-3247afcc2219": Pode-se passar o número, para o obter os dados;

id: {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}: Pode-se passar um array contendo os Id's que deseja obter os dados.

Utilizando os métodos disponíveis deve-se informar o ID (ou IDs) que se deseja obter os dados, feito isso será retornado o dado em tipo caractere estruturado como Json.

03. MÉTODOS

New()

New() é o método construtor da classe TCIWritten.

Exemplo de implementação

Bloco de código
languagejs
themeMidnight
titleExemplo implementação New()
using totvs.protheus.backoffice.fiscal.tciclass
Function Exemplo()
	oDados := JsonObject():New()
	
	oDados := TCIWritten():New()

return	
	

SetId()

O método SetId() serve para informa o Id ou Id's que deseja obter as informações.

Exemplo de implementação

...

Bloco de código
languagejs
themeMidnight
titleRequisição ItensExemplo de implementação SetId()
using totvs.protheus.backoffice.fiscal.tciclass
Function Exemplo()
	oDados := JsonObject():New()
	aIds := {--Exemplo ID: Com apenas 1 identificador
{
    "id": "369ca132-2b3b-ac96-6b78-3247afcc2219",
}


--Exemplo ID: Com mais de um identificador
{
    "id": [
        "369ca132-2b3b-ac96-6b78-3247afcc2219",
        "a5dcda40-d145-28d1-c57f-1047e15ce1fe",}
	
	oDados    ]
}

dados_cabecalho

Com este atributo irá obter os dados do cabeçalho da operação, preenchendo o valor como "sim":

:= TCIWritten():New()
	oDados:SetId(aIds)

return	 

GetDataId()

O método GetDataId() serve para retornar os dados obtidos das tabelas F2D e CJ3 do ID(s) solicitado através do método SetId()

Exemplo de implementação

...

Bloco de código
languagejs
themeMidnight
titleExemplo requisição dados_cabecalho
{
            "id": "369ca132-2b3b-ac96-6b78-3247afcc2219",
            "dados_cabecalho": "sim"
}

Descrição dos atributos contidos em dados_cabecalho

...

de implementação GetDataId()
using totvs.protheus.backoffice.fiscal.tciclass
Function Exemplo()
	oDados := JsonObject():New()
	aIds := {"ec451397-7b97-8114-a231-74a1490e1417"}
	cResponse := ""
	
	oDados := TCIWritten():New()
	oDados:SetId(aIds)
	cResponse := oDados:GetDataId()

return cResponse
Informações
titleInformação

Para o correto funcionamento do método GetDataId() é imprescindível informar o(s) ID(s) que deseja os dados através do método SetId(), caso contrário será retornado um "erro - Necessita informar Id"

Exemplo de retorno GetDataId()


Bloco de código
languagejs
themeMidnight
titleExemplo de retorno GetDataId()
{
  "dados_Id": {
    "ec451397-7b97-8114-a231-74a1490e1417": {
      "TRIB01-XIFIS26": {
        "filial": "XIFIS26",
        "tributo": "ICMS",
        "base_tributo ": 12130.8,
        "aliquota_tributo": 18,
        "valor_tributo": 2183.54,
        "valor_urf": 0,
Exemplo do retorno da requisição do atributo dados_cabecalho
Bloco de código
languagejs
themeMidnight
titleExemplo de retorno dados_cabecalho
{
    dados_cabecalho: 
        { "mva": 0,
            "codvalor_regrapauta": "TRIB01",
    0,
        "basepercentual_tribmajora": 50000,
            "valindice_aux_tribmajora": 3500,
            "regrtributo_finmajora": "",
            "idaliquota_cadastromajora": "1563de01-0c33-87af-5437-01401e2f4532"0,
            "codvalor_urfmajora": ""0,
            "percded_urfdependentes": 0,
            "valdados_depescriturados": 0,{
            "cod_regr_guia"filial": "XIFIS26",
            "valcodigo_majoradotributo": 0"TRIB01",
          "valor_tributado": 0,
          "id_tribcst": "00002190",
          }
}

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
languagejs
themeMidnight
titleExemplo requisição dados_itens
{
  "valor_isento": 0,
          "valor_outros": 12130.8,
          "valor_nao_tributado": 0,
          "valor_diferido": 0,
          "valor_majorado": 0,
          "perc_majorado": 0,
          "perc_diferido": 0,
          "idperc_reducao": "369ca132-2b3b-ac96-6b78-3247afcc2219"0,
            "dadosvalor_itenspauta": "sim"
}
Descrição dos atributos contidos em dados_itens

...

Exemplo do retorno da requisição do atributo dados_itens
Bloco de código
languagejs
themeMidnight
titleExemplo retorno da requisição dados_itens
{
    "dados_itens": {
0,
          "mva": 0,
          "ind_aux_mva": 0,
          "Ind_aux_majora": 0,
          "codigo_tab_cst": "000001",
          "valor_base_original": 0
        }
      },
      "TRIB02-XIFIS26": {
        "filial": "XIFIS26",
        "tributo": "IPI",
        "base_tributo ": 11028,
        "aliquota_tributo": 10,
        "valor_tributo": 1102.8,
        "valor_urf": 0,
        "mva": 0,
        "valor_pauta": 0,
        "percentual_majora": 0,
        "indice_aux_majora": 0,
        "tributo_majora": "",
        "aliquota_majora": 0,
        "valor_majora": 0,
        "ded_dependentes": 0,
        "dados_escriturados": {
          "filial": "XIFIS26",
          "codigo_tributo": "TRIB02",
          "valor_tributado": 0,
          "cst": "49",
          "valor_isento": 0,
          "valor_outros": 11028,
          "valor_nao_tributado": 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,
          "codigo_tab_cst": "000003",
          "codvalor_base_regraoriginal": "TRIB01",0
         "desc_regra": "REGRA ICMS CST 40 ISENTO"}
      },
        "base_trib"TRIB03-XIFIS26": 100,{
        "aliq_tribfilial": 7"XIFIS26",
        "val_tribtributo": 7,
		"retencaoPIS":false,
        "regrbase_financtributo ": ""11028,
        "idaliquota_cadastrotributo": "1563de01-0c33-87af-5437-01401e2f4532"1.65,
        "confvalor_arredtributo": true181.96,
        "identvalor_triburf": "000021"0,
        "formula_npimva": "BAS:TRIB01 ALQ:TRIB01 *"0,
        "idvalor_npipauta": "96b65263-8caf-bbef-dc01-758e1d5701dd"0,
        "codpercentual_cabec_npimajora": "VAL:TRIB01"0,
        "mvaindice_aux_majora": 0,
        "mvatributo_auxmajora": 0"",
        "valaliquota_pautamajora": 0,
        "percvalor_majora": 0,
        "indded_aux_majoradependentes": 0,
        "coddados_trib_majoraescriturados": "",{
          "ded_dependentesfilial": 0"XIFIS26",
          "cod_regr_tab_progrecodigo_tributo": "TRIB03",
          "cod_regr_ded_depenvalor_tributado": ""181.96,
          "aliq_servicocst": 0"70",
          "aliq_servico_lei_compvalor_isento": 0,
          "formulavalor_calc_isentooutros": "BAS:TRIB01"0,
          "formulavalor_calcnao_outrostributado": "BAS:TRIB01"0,
          "codvalor_regra_guiadiferido": ""0,
          "valvalor_zeromajorado": false0,
          "valperc_maximomajorado": 0,
          "valperc_minimodiferido": 0,
          "operadorperc_maximoreducao": ""0,
          "operadorvalor_minimopauta": 0,
          "mva": 0,
         }
}

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
languagejs
themeMidnight
titleExemplo requisição dados_itens com detalhes
{
    "itens": "369ca132-2b3b-ac96-6b78-3247afcc2219",
    "dados_itens": 
        [
 "ind_aux_mva": 0,
          "Ind_aux_majora": 0,
          "codigo_tab_cst": "000005",
          "valor_base_original": 0
        }
      "regras_base"},
      "TRIB04-XIFIS26": {
        "regras_aliquota"filial": "XIFIS26",
        "tributo": "COF",
        "detalhebase_livrotributo ": 11028,
            "regrasaliquota_escrituracao"
        ]
}
Descrição dos atributos contidos em regras_base

...

tributo": 7.6,
        "valor_tributo": 838.13,
        "valor_urf": 0,
        "mva": 0,
        "valor_pauta": 0,
        "percentual_majora": 0,
        "indice_aux_majora": 0,
        "tributo_majora": "",
        "aliquota_majora": 0,
        "valor_majora": 0,
        "ded_dependentes": 0,
        "dados_escriturados": {
          "filial": "XIFIS26",
          "codigo_tributo": "TRIB04",
          "valor_tributado": 838.13,
          "cst": "70",
          "valor_isento": 0,
          "valor_outros": 0,
          "valor_nao_tributado": 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,
          "codigo_tab_cst": "000006",
          "valor_base_original": 0
        }
      }
    }
  }
}


Descrição das propriedades contidas no tributo

PropriedadeTipoDescrição
filialcaractereFilial da operação
tributocaractereSigla do tributo
base_tributonúmeroValor da base do tributo
aliquota_tributonúmeroAlíquota do tributo
valor_tributonúmeroValor do tributo
valor_urfnúmeroValor da URF
mvanúmeroValor do MVA
valor_pautanúmeroValor pauta
percentual_majoranúmeroPercentual majorado
indice

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

...

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
AtributoTipoDescrição
cstcaractereClassificação fiscal
valor_tributadonúmeroValor tributado
valor_isentonúmeroValor isento
valor_outrosnúmeroValor outros
valor_nao_tributnúmeroValor não tributado
valor_diferidonúmeroValor diferido
valor_majoradonúmeroValor majorado
perc_majoradonúmeroPercentual da Majoração
perc_diferidonúmeroPercentual do diferimento
perc_reducaonúmeroPercentual da redução
valor_pautanúmeroValor pauta
mvanúmeroMargem de valor agregado
ind_aux_mvanúmeroÍndice auxiliar de MVA
ind_aux_majoranúmeroÍndice auxiliar de majoração
codtributo_tab_cstmajoracaractereTabela CSTTributo majorado
valaliquota_base_originalmajoranúmeroValor base original
Descrição dos atributos contidos em regras_escrituracao

...

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
languagejs
themeMidnight
titleExemplo 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,
		    "retencao":false,
            "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
languagejs
themeMidnight
titleExemplo de requisição planilha_financeira
{
            "itens": "369ca132-2b3b-ac96-6b78-3247afcc2219",
            "planilha_financeira": "sim"
}
Descrição dos atributos contidos em planilha_financeira

...

Alíquota majorada
valor_majoranúmeroValor majorado
ded_dependentesnúmeroDedução por dependentes

Descrição das propriedades contidas em dados escriturados

AtributoTipoDescrição
FilialcaractereFilial da operação
valor_tributadonúmeroValor tributado
cstcaractereCST
valor_isentonúmeroValor isento
valor_outrosnúmeroValor outros
valor_nao_tributadonúmeroValor não tributado
valor_deferidonúmeroValor deferido
valor_majoradonúmeroValor majorado
perc_majoradonúmeroPercentual majorado
perc_diferidonúmeroPercentual diferimento
perc_reduçãonúmeroPercentual redução
valor_pautanúmeroValor pauta
mvanúmeroMVA
ind_aux_mvanúmeroÍndice auxiliar MVA
ind_aux_majoranúmeroÍndice auxiliar majorado
codigo_tab_cstcaractereCod. Tabela CST
valor_base_originalnúmeroValor base original

destroy()

O método destroy() vai limpar tudo que estiver em memória da classe TCIWritten

Exemplo de implementação

Exemplo do retorno planilha_financeira
Bloco de código
languagejs
themeMidnight
titleExemplo 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
titleInformação

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
languagejs
themeMidnight
titleExemplo de Json de retorno geral
{
    "id": [
        "369ca132-2b3b-ac96-6b78-3247afcc2219",
        {
            "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,
			    "retencao":false,
                "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 id, 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).

Notificação de erro

Caso haja a requisição de algum ID que não exista, ou que não tenha sido cadastrado pelo Configurador de tributos (FISA170) haverá o retorno de ID not exist.

Exemplo
Bloco de código
languagejs
themeMidnight
titleRequisição
{
    "id": [
        "369ca132-2b3b-ac96-6b78-3247afcc2219",
        "a5dcda40-d145-28d1-c57f-1047e15ce1fe"
    ],
    "dados_itens": [
        "regras_base",
        "regras_aliquota",
        "detalhe_livro",
        "regras_escrituracao"
    ]
}
Bloco de código
languagejs
themeMidnight
titleRetorno
{
    "id": [
        "369ca132-2b3b-ac96-6b78-3247afcc2219",
        {
            "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,
                "retencao": false,
                "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"
            }
        }
    ],
    "ID not exist": "a5dcda40-d145-28d1-c57f-1047e15ce1fe"
}

03. EXEMPLO DE IMPLEMENTAÇÃO

Abaixo é demonstrado 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
languagejs
themeMidnight
titleExemplo implementação 1
Function MontaObjetoRequisicao()

  Local oRequisicao as json
  Local jRequisicao as json

  //Exemplo composição Json não nativo
  oRequisicao                                      := JsonObject():New()
  oRequisicao["id"]                             := "369ca132-2b3b-ac96-6b78-3247afcc2219"
  oRequisicao["dados_cabecalho"]                   := "sim"
  oRequisicao["dados_itens"]                       := "sim"
  oRequisicao["planilha_financeira"]               := "sim"

  //Exemplo composição Json nativo (TL++)
  jRequisicao := {"itens": "369ca132-2b3b-ac96-6b78-3247afcc2219", "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
languagejs
themeMidnight
titleExemplo Json estruturado 1
{
    "id": "369ca132-2b3b-ac96-6b78-3247afcc2219",
    "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.

...

languagejs
themeMidnight
titleExemplo implementação

...

Bloco de código
languagejs
themeMidnight
titleExemplo Json estruturado 2de implementação destroy()
using totvs.protheus.backoffice.fiscal.tciclass
Function Exemplo()
	oDados := JsonObject():New()
	aIds := {"369ca132-2b3b-ac96-6b78-3247afcc2219","a5dcda40-d145-28d1-c57f-1047e15ce1fe"}
	cResponse := ""
	
	oDados := TCIWritten():New()
	oDados:SetId(aIds)
	cResponse := oDados:GetDataId()

	oDados:destroy()

return cResponse{
    "id": [
        "369ca132-2b3b-ac96-6b78-3247afcc2219",
        "a5dcda40-d145-28d1-c57f-1047e15ce1fe"
    ],
    "dados_cabecalho": "sim",
    "dados_itens": [
        "regras_base",
        "regras_aliquota",
        "detalhe_livro",
        "regras_escrituracao"
    ],
    "planilha_financeira": "sim"
}
Aviso
titleAtenção

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.