Emitindo NFS-e no padrão nacional
A emissão segue os seguintes passos:
- Geração do XML;
- Assinatura do XML com certificado digital (A1 / Arquivo);
- Envio do XML para o servidor do governo:
- Se der erro, deve-se corrigir as críticas retornadas e reenviar;
- Se der certo será retornado um protocolo para consulta;
- Consultar protocolo:
- Verificar se veio erro, e corrigir de acordo o retorno;
- Se o XML foi aceito será retornado a resposta assinada (XML);
- Baixar o PDF da nota.
DICAS: Tenha em mãos um XML válido (emitido no site do governo) de uma NFS-e similar, com uma estrutura parecida da que deseja construir.
Inicialização (Criar conector)
A primeira chamada consiste em inicializar o conector, ele será usado nas demais funções da API. Para criar um conector chame a função “NFS-e Nacional – Inicializar” passando os seguintes parâmetros:
- Ambiente (Lógico): Verdadeiro para PRODUÇÃO ou Falso para HOMOLOGAÇÃO;
- Tipo de certificado (Letras): Valor fixo “A1” (arquivo);
- Caminho (Letras): Caminho completo do certificado A1 (PFX);
- Senha (Letras): Senha de abertura do arquivo com o certificado.
DICA: Um mesmo conector pode ser utilizado para enviar diversas notas em lote. É importante que cada envio ocorra numa transação INDIVIDUAL, gravando os dados de cada nota assim que enviada.
Geração do XML da NFS-e
As sequencia de funções a ser usada na geração é resumidamente: “NFS-e Nacional – Inicializar” (discutido anteriormente), chamar a “NFS-e Nacional – XML – Criar“, depois chamar “NFS-e Nacional – XML – Definir Valor” para cada uma das tags que deseja adicionar, e por fim chamar a função “NFS-e Nacional – XML – Montar XML” para obter o XML final. O detalhamento vai a seguir.
Criar o XML
- Chamar a função “NFS-e Nacional – XML – Criar” passando:
- Conector (Variante): Criado anteriormente;
- Tag principal (Letras): Valor fixo “DPS“;
- Versão (Letras): “1.01” versão vigente (março de 2026).
- Chamar a função “NFS-e Nacional – XML – Definir Valor” passando os seguintes parâmetros:
- XML (Variante): Retorno da função anterior;
- Caminho das tags (Letras);
- Valor (Inteiro / Letras / Data / …);
- Máscara (Letras): Manter em branco (nulo).
- Dados básico
- “infDPS/tpAmb“: 1 para produção, 2 para homologação;
- “infDPS/dhEmi”: Passar uma data e hora que será formatada internamente.
- “infDPS/serie“: Número apenas;
- “infDPS/nDPS“: Número sequencial;
- “infDPS/dCompet”
- “infDPS/tpEmit”
- “infDPS/cLocEmi”
- Dados do prestador
- “infDPS/prest/CNPJ” ou “infDPS/prest/CPF”: Só números.
- “infDPS/prest/fone”
- “infDPS/prest/email”
- “infDPS/prest/regTrib/opSimpNac”
- “infDPS/prest/regTrib/regEspTrib”
- Dados do tomador
- “infDPS/toma/CNPJ” ou “infDPS/toma/CPF“: Só números.
- “infDPS/toma/xNome”
- “infDPS/toma/end/endNac/cMun”
- “infDPS/toma/end/endNac/CEP”
- “infDPS/toma/end/xLgr”
- “infDPS/toma/end/nro”
- “infDPS/toma/end/xCpl”
- “infDPS/toma/end/xBairro”
- “infDPS/toma/email”
- Dados do serviço
- “infDPS/serv/locPrest/cLocPrestacao”
- “infDPS/serv/cServ/cTribNac”
- “infDPS/serv/cServ/xDescServ”
- “infDPS/serv/cServ/cNBS”: Consultar a Nomenclatura Brasileira de Serviços https://www.gov.br/mdic/pt-br/assuntos/sdic/comercio-e-servicos/nbs-nomenclatura-brasileira-de-servicos
- “infDPS/serv/obra/end/CEP”
- Valores
- “infDPS/valores/vServPrest/vServ”
- “infDPS/valores/trib/tribMun/tribISSQN”
- “infDPS/valores/trib/tribMun/tpRetISSQN”
- “infDPS/valores/trib/tribFed/piscofins/CST”
- “infDPS/valores/trib/tribFed/piscofins/vBCPisCofins”
- “infDPS/valores/trib/tribFed/vRetCP”
- “infDPS/valores/trib/tribFed/vRetIRRF”
- “infDPS/valores/trib/tribFed/vRetCSLL”
- “infDPS/valores/trib/totTrib/indTotTrib”
OBS: A lista é um resumo, as tags variam de acordo com o tipo de empresa/tomador/serviço. Adicione e/ou remova de acordo as suas necessidades.
- Por fim chamar a função “NFS-e Nacional – XML – Montar XML” passando os seguintes parâmetros:
- XML (Variante);
- Assinar (Lógico): Indica se o XML deve ser assinado.
Enviar o XML
Depois de montar o XML utilize a função “NFS-e Nacional – Emitir NFS-e” para enviar, passando os seguintes parâmetros:
- Conector (Variante): Criado anteriormente;
- XML (Letras): Conteúdo do XML a ser enviado.
O retorno dessa função é um mapeamento contendo:
- “XML_RETORNO”: O conteúdo completo retornado pelo servidor.
- “ERRO_MENSAGEM“: Se houver erro este item virá preenchido;
- “RESPOSTA_CHAVE_ACESSO“: Chave da NFS-e.
Consulta situação do DPS usando a função “NFS-e Nacional – Verificar DPS“
Por fim obter o DPS com a função “NFS-e Nacional – Obter NFS-e“
Para obter o PDF da nota utilize a função “NFS-e Nacional – Obter DANFSe“.
Obtendo o PDF da nota fiscal (DANFSE)
Utilize a função “NFS-e Nacional – Obter DANFSe” para baixar o PDF da nota. Passando:
- Conector (Variante);
- Chave de acesso (Letras);
O retorno é um mapeamento com o caminho absoluto do PDF no servidor (Tomcat/Webrun). O arquivo DEVE ser LIDO ou MOVIDO para o destino desejado através das funções nativas do Maker (usar as funções nativas “Mover arquivo” ou “Ler todo arquivo em bytes”).
IMPORTANTE: O serviço tem apresentado INSTABILIDADES (erro 502 principalmente), esse erro vem diretamente do servidor REMOTO, não há o que fazer na API, basta aguardar e tentar novamente. (Mar/2026)
OBSERVAÇÕES
- Instruções sobre o preenchimento (conteúdo) de cada tag fogem do escopo do suporte;
- A ordem das tags devem ser preferencialmente colocadas na ordem em que devem aparecer no XML.
- Instruções sobre cadastro, acesso ao sistema do governo estão fora do escopo do suporte.
- Qualquer solicitação fora do escopo serão silenciosamentem ignoradas.