Extrair os registros solicitados pelo Governo para atender o SPED1601


Conforme orientações do guia prático da EFD-ICMS/IPI, o registro 1601 - Operações com Instrumentos de Pagamentos Eletrônicos (Válido a partir de 01/01/2022) deve ser informado sempre que o recurso financeiro transitar por uma instituição financeira, instituição de pagamento ou intermediador online (marketplace).

Este registro destina-se a identificar o valor total das operações realizadas pelo declarante por meio de instrumentos de pagamentos eletrônicos, discriminado por instituição financeira e de pagamento, integrante ou não do Sistema de Pagamentos Brasileiro – SPB (Convênio ICMS nº 134/2016).
Deve-se consultar o contrato firmado entre a instituição e o informante do arquivo, para se ratificar a existência da prestação do serviço, quando couber.
Deve ser informado o valor total destas operações, excluídos os estornos e cancelamentos. A informação desse registro é facultativa para as escriturações do exercício de 2.022. A obrigatoriedade deste registro deve ser verificada junto a cada uma das unidades federativas a partir de 2.023.

Tutorial Registro 1601 Manual/Importado

Produto:

Datasul

Versões:

A partir da 12.1.2311

Ocorrência:

Extrair os registros de liquidação e antecipação dos Pagamentos Eletrônicos para enviar no SPED 1601

Passo a passo:

Contexto Geral

Vamos considerar todos os Movimentos de Liquidações com Portador diferente de Caixa e as Implantações de Antecipação que tem Portador informado e que este Portador seja diferente de Caixa.

Esta API será executada por um programa da Equipe Fiscal e retornará duas tabelas temporárias, sendo uma com os Movimentos extraídos e a outra com as informações dos Participantes , depois o mesmo programa do Fiscal irá chamar o Faturamento para identificar na Nota qual valor é ISS ou ICMS.

API: prgfin/acr/acr575za

Esta API será executada pelo programa LF0202 do Fiscal, onde será informando a Faixa de Estabelecimento EMS2 e Faixa de Data. O Financeiro irá extrair os registros e devolver esta informação a equipe do Fiscal e depois eles irão verificar no Faturamento quais valores são referente a ISS e ICMS.

O usuário poderá Consultar para Validar ou Manipular os registros através do LF0203 - Consulta e Manutenção dos MLF

Posteriormente o programa LF0501 do Fiscal irá consolidar os registros e este agrupamento que será enviado.


Financeiro (ACR)

API deve receber 6 parâmetros:

- Input: 1 Estabelecimento  (no LF0202 EMS2 é faixa, mas vai passar para API um Estab de cada vez)                                               

- Input: Data Inicial

- Input: Data Final

- Output: Tabela Temporária tt_dwf_pagto_eletr_particip 

- Output: Tabela Temporária tt_dwf_pagto_eletr_movto

- Output: Tabela Temporária tt_log_erros_extracao


Regra geral: Extrair todos os Movimentos de Liquidações com Portador diferente de Caixa e as Implantações de Antecipação que tem Portador informado e que este Portador seja diferente de Caixa.

   

Esta API irá ler a base de dados, considerando os parâmetros de input recebidos, ou seja, o Estabelecimento e a Faixa de Datas.

  • O Estabelecimento recebido é do EMS2 e será traduzido para ser utilizado no EMS5. 
  • E extrair todos tipos de liquidações com exceção das pagas em dinheiro, ou seja, desconsiderar as Liquidações com Portador igual a Caixa.
  • E mais as Antecipações que tem portador e este portador seja diferente de Caixa.


Regras para as Liquidações que serão enviada:

Ler todos Movimentos de liquidações de títulos Normais (tit_acr.ind_tip_espec_docto = Normal) desconsiderando Portador Caixa (movto_tit_acr.cod_portador, verificar na tabela portador.ind_tip_portad <> Caixa).

Ler também as Implantações de Antecipação (tit_acr.ind_tip_espec_docto = "Antecipação") com Portador (tit_acr.cod_portador <> “”), desconsiderando Portador Caixa.

Se o movimento de Liquidação ou a Antecipação foi “Estornada” não deve ser considerado!

Os campos da tt serão gravados com as informações da Movto_tit_acr.




xxxx


Somente os títulos que atendem as regras abaixo serão considerados para envio ao REINF:


  • Somente cliente Pessoa Jurídica;
  • Somente para quando a empresa do usuário logado for da localidade ‘BRA’;
  • Títulos com origem somente do ACR;
  • Espécie do Documento do tipo "Normal".
  • O campo 'log_mdo_emptda' precisa estar marcado;

Informações necessárias:
  • Mão de Obra/Empreitada (log_mdo_emptda): Indica se o título representa uma receita relacionado à mão-de-obra ou empreitada. Valores aceitos 'yes', 'no'.
  • Tipo Serviço Mão-de-Obra (num_tip_serv_mdo ): Número correspondente ao tipo de serviço prestado. Esse campo é obrigatório quando o campo "Mão de Obra/Empreitada" for 'yes'. O código deverá estar cadastrado no programa de Código de Serviço do INSS (CD1050). 
  • As informações de "mão de obra/empreitada" e "Tipo Serviço Mão de Obra" são inicialmente carregadas no título com as informações cadastradas no Cliente Financeiro (UFN011aa), podendo ser alterada diretamente no título.
  • Tipo Inscrição Obra (num_tip_obra): Caso a obra esteja vinculada a um CNPJ deverá ser informado '1', caso esteja vinculada a um CNO deverá ser informado '4'. Valor padrão desse campo é sempre '1';
  • Código da Obra (cod_obra): Esse campo é opcional. Porém, caso informado deverá estar cadastrado no programa Códigos de obras (CD2023);
  • Processo: Cadastro de processo (CD2021) já existente, apenas foram alteradas as rotinas do ACR para apresentarem o zoom desse cadastro no campo "Processo". Foram incluídos os campos "Número do processo" e "Valor não retido" de INSS na tela de crédito de imposto para pessoa jurídica.





Funcionamento

1. No programa chamador da API  devem ser declaradas as temp-tables tt_dwf_pagto_eletr_particip, tt_dwf_pagto_eletr_movto e tt_log_erros_extracao. Informar nos parâmetros de entrada os campos código do estabelecimento do EMS2, a data inicial e a data final para extrair os dados. Informar nos parâmetros de saída a tabela temporárias tt_dwf_pagto_eletr_particip, tt_dwf_pagto_eletr_movto e tt_log_erros_extracao.

2. Executar o programa API conforme exemplo de código a seguir:

def var v_hdl_programa as handle no-undo.

run prgfin/acr/acr575za.py persistent set v_hdl_programa.

run pi_extrair_pagto_eletronico in v_hdl_programa (input v_cod_estab_ems2, input v_dat_inicial, input param v_dat_final, output table tt_dwf_pagto_eletr_particip, output table tt_dwf_pagto_eletr_movto, output table tt_log_erros_extracao).

delete procedure v_hdl_programa.

3. Após a execução do programa, pode ser verificada se retornou algum erro durante o processo de importação através da temp-table tt_log_erros_extracao.

Parâmetros de entrada

v_cod_estab_ems2: Determina para qual Estabelecimento EMS2 será extraído os dados.

v_dat_inicial: Determina a data inicial que irá extrair os dados.

v_dat_final: Determina a data final que irá extrair os dados.




Tabelas Temporárias

Tabela Temporária

Descrição

Entrada/Saída

tt_dwf_pagto_eletr_particip

Conterá as informações do participante do pagamento eletrônico que será gerada, podendo ser da Instituição Financeira ou do Marketplace

Entrada/Saída

AtributoDescriçãoFormatoDescriçãoMandatórioObservação
ttv_cod_particip_instit_financcharacterx(30)Cód. ParticipanteSim
tta_nom_pessoacharacterx(40)NomeNão
tta_cod_paischaracterx(3)PaísNão
tta_nom_enderecocharacterx(40)EndereçoNão


def temp-table tt_dwf_pagto_eletr_particip no-undo
    field ttv_cod_particip_instit_financ   as character format "x(30)" label "Cód. Participante"
    field tta_nom_pessoa                   as character format "x(40)" label "Nome" column-label "Nome"
    field tta_cod_pais                     as character format "x(3)" label "País" column-label "País"
    field tta_nom_endereco                 as character format "x(40)" label "Endereço" column-label "Endereço"
    index tt_dwf_pagto_partic              is primary unique
          ttv_cod_particip_instit_financ   ascending
    .


Tabela Temporária

Descrição

Entrada/Saída

tt_dwf_pagto_eletr_movto

Conterá as informações dos movimentos de liquidação e antecipação extraídos.

Saída

Atributo

Tipo

Formato

Descrição

tta_cod_empresa

character

x(3)

Empresa

tta_num_id_tit_acr

integer

999999999

Token Cta Receber

tta_num_id_movto_tit_acr

integer

999999999

Token Movto Tit  ACR

ttv_cod_estab_ems2characterx(5)Estabelecimento EMS2
ttv_cod_ser_docto_fatcharacterx(5)Série Faturamento
tta_cod_nota_fisc_faturamcharacterx(16)Nota Fiscal
tta_cod_parcela_faturamcharacterx(2)Parcela Nota
tta_cod_proces_exportcharacterx(12)Processo Exportação
ttv_cod_estab_ems5characterx(5)Estabelecimento
tta_cod_espec_doctocharacterx(3)Espécie Documento
tta_cod_ser_doctocharacterx(5)

Série Documento

tta_cod_tit_acrcharacterx(16)Título
tta_cod_parcelacharacterx(02)Parcela
tta_cdn_clienteInteger>>>,>>>,>>9Cliente
tta_ind_trans_acr_abrevcharacter"x(04)Trans Abrev
ttv_dat_pagto_eletron_movtodate99/99/9999Data Pagto
tta_val_movto_tit_acrdecimal->>>,>>>,>>9.99Vl Movimento
tta_val_descontodecimal->>>,>>>,>>>,>>9.99Valor Desconto
tta_val_abat_tit_acrdecimal>>>>,>>>,>>9.99Vl Abatimento
tta_val_jurosdecimal>>>>,>>>,>>9.99Valor Juros
tta_val_multa_tit_acrdecimal>>>>,>>>,>>9.99Vl Multa
tta_val_despes_bciadecimal->>>,>>>,>>9.99Vl Desp Banc
tta_cod_portadorcharacterx(5)Portador
tta_cod_cart_bciacharacterx(3)Carteira
ttv_val_brut_icmsdecimal->>,>>>,>>>,>>9.99Valor ICMS
ttv_val_brut_issdecimal->>,>>>,>>>,>>9.99Vl Bruto ISS
ttv_val_brut_outrosdecimal->>,>>>,>>>,>>9.99Valor Bruto Outros
ttv_cod_particip_instit_financcharacterX(30)Céd. Particip Instit
ttv_cod_particip_intermcharacterX(20)Cód. Particip Interm
tta_ind_orig_tit_acrcharacterX(8)Origem Tit Cta Rec
ttv_log_autom_acrlogicalSim/NãoGerado Autom ACR
ttv_num_id_movto_tit_acr_reninteger999999999Token Movto Tit  ACR


 def temp-table tt_dwf_pagto_eletr_movto no-undo
    field tta_cod_empresa                  as character format "x(3)" label "Empresa" column-label "Empresa"
    field tta_num_id_tit_acr               as integer format "999999999" initial 0 label "Token Cta Receber" column-label "Token Cta Receber"
    field tta_num_id_movto_tit_acr         as integer format "999999999" initial 0 label "Token Movto Tit  ACR" column-label "Token Movto Tit  ACR"
    field ttv_cod_estab_ems2               as character format "x(5)"
    field ttv_cod_ser_docto_fat            as character format "x(5)" label "Série Faturamento" column-label "Série"
    field tta_cod_nota_fisc_faturam        as character format "x(16)" label "Nota Fiscal" column-label "Nota Fiscal"
    field tta_cod_parcela_faturam          as character format "x(2)" label "Parcela Nota" column-label "Parcela"
    field tta_cod_proces_export            as character format "x(12)" label "Processo Exportação" column-label "Processo Exportação"
    field ttv_cod_estab_ems5               as character format "x(5)" label "Estabelecimento" column-label "Estabelecimento"
    field tta_cod_espec_docto              as character format "x(3)" label "Espécie Documento" column-label "Espécie"
    field tta_cod_ser_docto                as character format "x(5)" label "Série Documento" column-label "Série"
    field tta_cod_tit_acr                  as character format "x(16)" label "Título" column-label "Título"
    field tta_cod_parcela                  as character format "x(02)" label "Parcela" column-label "Parcela"
    field tta_cdn_cliente                  as Integer format ">>>,>>>,>>9" initial 0 label "Cliente" column-label "Cliente"
    field tta_ind_trans_acr_abrev          as character format "X(04)" label "Trans Abrev" column-label "Trans Abrev"
    field ttv_dat_pagto_eletron_movto      as date format "99/99/9999"
    field tta_val_movto_tit_acr            as decimal format "->>>,>>>,>>9.99" decimals 2 initial 0 label "Vl Movimento" column-label "Vl Movimento"
    field tta_val_desconto                 as decimal format "->>>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Desconto" column-label "Valor Desconto"
    field tta_val_abat_tit_acr             as decimal format ">>>>,>>>,>>9.99" decimals 2 initial 0 label "Vl Abatimento" column-label "Vl Abatimento"
    field tta_val_juros                    as decimal format ">>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Juros" column-label "Valor Juros"
    field tta_val_multa_tit_acr            as decimal format ">>>>,>>>,>>9.99" decimals 2 initial 0 label "Vl Multa" column-label "Vl Multa"
    field tta_val_despes_bcia              as decimal format "->>>,>>>,>>9.99" decimals 2 initial 0 label "Vl Desp Banc" column-label "Vl Desp Banc"
    field tta_cod_portador                 as character format "x(5)" label "Portador" column-label "Portador"
    field tta_cod_cart_bcia                as character format "x(3)" label "Carteira" column-label "Carteira"
    field ttv_val_brut_icms                as decimal format "->>,>>>,>>>,>>9.99" decimals 2 label "Valor ICMS"
    field ttv_val_brut_iss                 as decimal format "->>,>>>,>>>,>>9.99" decimals 2 label "Bruto ISS"
    field ttv_val_brut_outros              as decimal format "->>,>>>,>>>,>>9.99" decimals 2 label "Valor Bruto Outros"
    field ttv_cod_particip_instit_financ   as character format "x(30)" label "C¢d. Participante"
    field ttv_cod_particip_interm          as character format "x(20)"
    field tta_ind_orig_tit_acr             as character format "X(8)" initial "ACREMS50" label "Origem Tit Cta Rec" column-label "Origem Tit Cta Rec"
    field ttv_log_autom_acr                as logical format "Sim/NÆo" initial yes
    field ttv_num_id_movto_tit_acr_ren     as integer format "999999999" initial 0 label "Token Movto Tit  ACR" column-label "Token Movto Tit  ACR"
    index tt_dwf_pagto_eletr               is primary unique
          ttv_cod_estab_ems2               ascending
          ttv_cod_ser_docto_fat            ascending
          tta_cod_nota_fisc_faturam        ascending
          tta_cod_parcela_faturam          ascending
          tta_cod_proces_export            ascending
          ttv_dat_pagto_eletron_movto      ascending
          ttv_cod_particip_instit_financ   ascending
          ttv_cod_particip_interm          ascending
          ttv_cod_estab_ems5               ascending
          tta_cod_portador                 ascending
          tta_cod_cart_bcia                ascending
          tta_num_id_tit_acr               ascending
          tta_num_id_movto_tit_acr         ascending
          ttv_num_id_movto_tit_acr_ren     ascending
    index tt_dwf_particip                 
          ttv_cod_particip_instit_financ   ascending
          ttv_dat_pagto_eletron_movto      ascending
    index tt_dwf_titulo                   
          ttv_cod_estab_ems5               ascending
          tta_cod_espec_docto              ascending
          tta_cod_ser_docto                ascending
          tta_cod_tit_acr                  ascending
          tta_cod_parcela                  ascending
    .


Tabela Temporária

Descrição

Entrada/Saída

tt_log_erros_extracao

Conterá as informações de erros na extração dos dados.

Saída

Atributo

Tipo

Formato

Descrição

ttv_num_mensagem

integer

>>>>,>>9

Número

ttv_des_msg_erro

character

x(60)

Mensagem Erro

ttv_des_msg_ajuda 

character

x(40)

Mensagem Ajuda


def temp-table tt_log_erros_extracao no-undo
    field ttv_num_mensagem                 as integer format ">>>>,>>9" label "N£mero" column-label "Número Mensagem"
    field ttv_des_msg_erro                 as character format "x(60)" label "Mensagem Erro" column-label "Inconsistência"
    field ttv_des_msg_ajuda                as character format "x(40)" label "Mensagem Ajuda" column-label "Mensagem Ajuda"
    .