- conheça também:
- acronsoft
- acrondesign
DeveloperFlex - Soluções para Desenvolvedores Visual DataFlex
contato@developerflex.com.br | (55 11) 4378-1115
Abaixo estão os passos gerais para implantação da NFS-e em seu sistema.
Antes de começar a usar a Library em seu sistema, recomendamos que:
Para geração e assinatura do arquivo XML de lote de RPS, a NFSeLibrary fornece a função NFSeGeraLoteRPS. Dentre os parâmetros que devem ser passados para esta função, o mais importante é uma variável do tipo tNFSeRPS. O tipo tNFSeRPS é uma estrutura que contém todos os dados de um RPS. A estrutura foi criada para acomodar os campos de todas as prefeituras homologadas. Existem campos que são usados por algumas prefeituras e outros que não são. Por isso verifique o manual da respectiva prefeitura ao fazer o preenchimento da estrutura.
A estrutura tNFSeRPS está definida no pacote NFSeStructs.pkg. O Code Complete do Visual DataFlex Studio 12.0 ou superior facilita o preenchimento da estrutura, pois exibe os campos existentes conforme demonstrado na imagem que segue:
A NFSeLibrary é fornecida com uma Workspace de Exemplo que demonstra o preenchimento da estrutura e chamada da função NFSeGeraLoteRPS. Consulte o pacote NFSeGeraTXTRPSExemplo.pkg.
Uma vez gerado o arquivo XML do lote RPS, a próxima etapa é enviar o lote para o provedor da prefeitura. Para o envio a NFSeLibrary fornece a função NFSeEnviaLoteRPS. Verifique a documentação da mesma para mais detalhes.
Para prefeituras que trabalham com a versão 2.0 do padrão ABRASF, utilize a função NFSeGeraNFSe_V2. Esta função é síncrona e seu retorno já indicará se a NFS-e foi gerada ou não, não sendo necessária nenhuma etapa adicional.
Este passo não é necessário nas prefeituras que são atendidas pelo provedor DSF (ou que adotam o seu padrão), prefeituras que usam a versão 2.0 da ABRASF e na prefeitura de São Paulo/SP, pois não existe a funcionalidade de consulta de situação.
Para fazer a consulta da situação do lote a NFSeLibrary fornece a função NFSeConsultaSituacaoLoteRPS. É necessário informar o código do recibo de envio que foi obtido no passo (2). Os códigos de retorno da consulta da situação podem ser:
Não recebido;
Não processado;
Processado com erro;
Processado com sucesso.
Se o código de retorno for 1 significa que houve algum erro no processo de envio e o provedor não recebeu o lote. Neste caso retorne ao passo (2).
Se o código de retorno for 2 significa que ainda não houve tempo hábil do provedor processar o lote recebido. Neste caso aguarde alguns instantes e faça uma nova consulta.
Se o código de retorno for 3 ou 4, siga para o passo seguinte (4).
A consulta do lote processado é feita com a função NFSeConsultaLoteRPS.
Se o lote foi processado com sucesso esta função devolverá o número da NFS-e gerada e o código de verificação que garante sua autenticidade para consultas no portal do provedor/prefeitura.
Se o lote foi processado com erro esta função devolverá detalhes do erro que causou o não processamento/rejeição para que o RPS possa ser corrigido e uma nova tentantiva seja feita.
A rigor, se o lote foi processado com sucesso não é necessário fazer mais nada. O provedor se encarregará de enviar um e-mail para o tomador do serviço com um link onde ele poderá visualizar e/ou imprimir a NFS-e, se assim desejar.
Não existe exigência legal para a impressão da NFS-e, mas se você desejar fazê-la, imprima através do portal do provedor do serviço. Você pode fornecer um botão em sua aplicação que abra diretamente o link do provedor do serviço posicionando a NFS-e desejada. Consulte a documentação/suporte do seu provedor para verificar como construir este link. Abaixo estão alguns exemplos:
Onde:
{prefeitura} é o nome da prefeitura atendida pelo GINFES. Exemplo: guarulhos
{sCdVerificao} é o código de verificação da NFS-e (sem o traço, se houver)
{sNrNota} é o número da NFS-e
{IM} é a inscrição municipal do prestador, sem espaços e caracteres de formatação
Se for necessário cancelar uma NFS-e emitida, utilize a função NFSeCancelarNFSe.