Roteiro de implantação
Veja também:
Abaixo estão os passos gerais para implantação da NFS-e em seu sistema.
Antes de começar
Antes de começar a usar a Library em seu sistema, recomendamos que:
- Leia o manual de integração fornecido pela prefeitura para conhecer o funcionamento do projeto e principalmente o layout da NFS-e da prefeitura, pois muitas vezes existem diferenças no layout em relação ao padrão da ABRASF;
- Leia o manual complementar (se houver) fornecido pela prefeitura;
- Providencie um certificado digital válido. Alguns provedores de serviço permitem o uso de qualquer certificado digital em ambiente de homologação, mesmo que o certificado não seja do emissor da NFS-e. Em outros provedores somente é permitido o uso do certificado do próprio emissor, mesmo que em ambiente de homologação;
- Providencie o credenciamento para emissão da NFS-e. Em vários provedores, mesmo para emissão em ambiente de homologação, é necessário solicitar o credenciamento junto à prefeitura;
- Faça a configuração da NFSeLibrary em sua Workspace conforme especificado no tópico Configuração.
Passo-a-passo
1 – Gerar o lote RPS assinado
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.
Observações
- No caso das prefeituras atendidas pelo provedor DSF, a geração do lote é feita através da função NFSeGeraLoteRPSDSF, que funciona de forma análoga à função NFSeGeraLoteRPS.
- No caso das prefeituras que usam a versão 2.0 do padrão ABRASF, utilize a função NFSeGeraLoteRPS_V2.
2 – Enviar o lote RPS
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.
3 – Consultar a situação do lote
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).
4 – Consultar o lote processado
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.
5 – O lote foi processado com sucesso e agora?
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:
- GINFES: http://{prefeitura}.ginfes.com.br/birt/frameset?__report=nfe_ginfes.rptdesign&cdVerificacao={sCdVerificao}&numNota={sNrNota}
- TIPLAN: https://nfse.americana.sp.gov.br/nfse.aspx?ccm={IM}&nf={sNrNota}&cod={sCdVerificao}
- Prefeitura de São Paulo/SP: https://nfe.prefeitura.sp.gov.br/contribuinte/notaprint.aspx?inscricao={IM}&nf={sNrNota}&verificacao={sCdVerificacao}
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.
