Integração Nota Fiscal de Serviço - NFSe
Nesse documento você entenderá os primeiros passos para fazer a integração da Nota Fiscal de Serviço Eletrônica (NFSe).
A partir da unificação da API de Contribuintes (2026.1), habilitar uma empresa para emitir NFS-e exige três recursos combinados: a própria Empresa (/v2/companies), o Certificado Digital (/v2/companies/{id}/certificates) e a Inscrição Municipal (/v2/companies/{id}/municipaltaxes). Veja a visão geral do Gerenciamento de Empresas para entender a estrutura completa.
A Nota Fiscal de Serviço Eletrônica é um documento digital fiscal utilizado para registrar a prestação de serviços de uma empresa, conforme as regras da prefeitura do município onde o serviço foi prestado.
Saiba mais: O que é nota fiscal eletrônica?
Ao final desse tutorial, você será capaz de:
1. Cadastrar uma empresa
2. Fazer upload de um certificado digital
3. Criar uma inscrição municipal
4. Emitir uma nota fiscal de serviço
Próximos passos
1. Consultar uma nota fiscal de serviço emitida
2. Consultar o XML de uma nota fiscal emitida
3. Consultar o PDF da nota fiscal emitida
Requisitos
- Empresa com CNPJ e CNAE de prestação de serviços
- Certificado digital A1 (arquivo .pfx)
- Integração via API REST, via Meio de Pagamento ou Planilha
- Verificar se a prefeitura é atendida pela NFE.io (lista de prefeituras)
Tutorial
A partir deste momento, faremos uma explicação de como realizar a integração da Nota Fiscal de Serviço com a API da NFE.io.
Veja mais sobre a Documentação da API de NFSe
Você pode realizar a importação da URL no Postman para ter todos os exemplos de requisição:
https://www.postman.com/nfe-io/workspace/nfe-io-public-api-demos/collection/29654924-09b8c724-7d9a-4735-93a3-518cc135989d?action=share&creator=29654924&active-environment=29463388-d0c59007-e68a-45c8-8fb8-16b53cb58c11
Tutorial de como importar a URL no Postman Clique aqui
Primeiros passos
Antes de tudo, você precisará realizar um cadastro na nossa plataforma app.nfe.io e pegar a chave de autorização da API.
Devemos atentar para copiar a autorização referente a "Nota Fiscal"
Veja como pegar a chave de autorização: Autenticação
Lembre-se: A chave deve ser adicionada em cada requisição na aba "Headers" com o campo
Authorization.
Ambiente: Testes ou Produção
A NFE.io oferece dois ambientes para emissão de NFS-e. O ambiente é configurado na Inscrição Municipal (campo Environment), não na empresa — uma mesma empresa pode ter IMs de cidades diferentes, cada uma com seu próprio ambiente.
| Recurso | Testes (Development) | Produção (Production) |
|---|---|---|
| Inscrição Municipal | Obrigatória, com Environment: "Development" | Obrigatória, com Environment: "Production" |
| Certificado Digital | ✅ Opcional | ⚠️ Obrigatório |
| Trânsito da nota | Servidores NFE.io que simulam a prefeitura | Prefeitura real |
| Validade fiscal | Sem validade fiscal | Com validade fiscal |
Por que o certificado é opcional em testes na NFS-e?
O ambiente de Testes da NFE.io para NFS-e roda em servidores que simulam o comportamento das prefeituras — a nota não trafega para a prefeitura real, então não há transmissão que exija assinatura digital ICP-Brasil. Isso permite testar a integração de ponta a ponta antes mesmo de adquirir um certificado.
Em Produção, a nota é enviada para a prefeitura real, que exige assinatura digital. Por isso o certificado vira obrigatório.
Para NF-e e NFC-e, o certificado digital é obrigatório mesmo em homologação, porque o ambiente de homologação da SEFAZ é o ambiente real do órgão (apenas marcado como teste) e exige assinatura digital. Veja a cadência para esses documentos em Primeiros Passos — NF-e.
1. Criar uma empresa
Cadastra a empresa emissora na plataforma NFE.io. A empresa é o recurso central: o certificado e a inscrição municipal serão vinculados a ela nas próximas etapas.
Endpoint:
POST: https://api.nfse.io/v2/companies
Exemplo de JSON:
{
"Company": {
"Name": "RAZAO SOCIAL DA EMPRESA",
"FederalTaxNumber": "12345678000199",
"TaxRegime": "SimplesNacional",
"Address": {
"State": "SP",
"City": {
"Code": "3550308",
"Name": "São Paulo"
},
"District": "Centro",
"Street": "Av. Exemplo",
"Number": "100",
"PostalCode": "01001000",
"Country": "BRA"
}
}
}
Será retornado o
Idque representa ocompanyId, usado nas próximas requisições.
Referência completa: API de Empresas (v2).
2. Enviar certificado digital
Esta etapa é opcional em ambiente de Testes (veja Ambiente: Testes ou Produção). Se você só quer validar a integração antes de ir para produção, pode seguir para a Etapa 3 sem enviar o certificado e voltar aqui depois.
Faz o upload do certificado A1 ICP-Brasil que será usado para assinar digitalmente as notas em Produção.
Endpoint:
POST: https://api.nfse.io/v2/companies/{companyId}/certificates
Você deve enviar o arquivo .pfx e a senha no corpo da requisição. Após o envio, o sistema informará a validade, status e dados do certificado.
Segurança: Os dados são criptografados e armazenados com segurança na plataforma da NFE.io.
Referência completa: API de Certificados (v2).
3. Criar uma inscrição municipal
Vincula à empresa os dados de Inscrição Municipal que você obteve junto à prefeitura. Sem essa inscrição, a NFE.io não tem como emitir a NFS-e em nome da empresa.
Endpoint:
POST: https://api.nfse.io/v2/companies/{companyId}/municipaltaxes
Exemplo de JSON:
{
"MunicipalTax": {
"City": {
"Code": "3550308",
"Name": "São Paulo",
"State": "SP"
},
"TaxNumber": "876543",
"Environment": "Production",
"RpsSerialNumber": "IO"
}
}
Campos obrigatórios:
City.Code— código IBGE de 7 dígitosCity.Name/City.State— nome e UF da cidadeEnvironment—Developmentpara testes (servidor NFE.io simulando prefeitura, sem validade fiscal) ouProductionpara emitir notas válidasRpsSerialNumber— série do RPS (ex.:IO,A1,1)
Use Environment: "Development" enquanto valida a integração — não é preciso certificado digital nesse ambiente. Quando estiver pronto para emitir notas reais, atualize a IM para Environment: "Production" e faça o upload do certificado.
Se a sua prefeitura exige credenciais de acesso ao webservice (login/senha ou token), envie também
LoginName,LoginPassworde/ouAuthIssueValue.
A resposta inclui o campo
FiscalStatus, que indica se a NFE.io tem integração homologada com a prefeitura daquela cidade.
Referência completa: API de Inscrições Municipais (v2).
4. Emitir uma nota fiscal de serviço
Endpoint:
POST: https://api.nfe.io/v1/companies/{companyId}/serviceinvoices
A emissão de NFS-e ainda é servida pela API v1 (api.nfe.io/v1/...) e continuará funcionando normalmente durante a transição. O gerenciamento de empresa (etapas 1–3 acima) já é feito pela API v2 de Contribuintes (api.nfse.io/v2/...).
Campos principais:
- Descrição do serviço (
description) - Código do serviço (
cityServiceCode) - Valor total do serviço (
servicesAmount) - Dados do tomador (
borrower: CNPJ ou CPF, nome, endereço)
Consulte a prefeitura para confirmar o código de serviço correto.
Por padrão, a NFE.io faz o cálculo automático dos impostos com base no cityServiceCode informado — você não precisa enviar issRate, issAmount ou outras retenções. Veja Cálculo Automático de Impostos para detalhes e para entender quando o cálculo manual se aplica.
Exemplo mínimo de payload:
{
"borrower": {
"type": "LegalEntity",
"name": "Cliente Exemplo",
"federalTaxNumber": "12345678000199",
"email": "[email protected]",
"address": {
"country": "BRA",
"postalCode": "01001000",
"street": "Rua Cliente",
"number": "200",
"district": "Centro",
"city": {
"code": "3550308",
"name": "São Paulo"
},
"state": "SP"
}
},
"cityServiceCode": "0101",
"description": "Consultoria em tecnologia",
"servicesAmount": 1000.00
}
O processamento é assíncrono. Após envio bem-sucedido, você receberá um
idque representa o id único da nota atribuído pela NFE.io. Acompanhe o status por consulta de nota.
Próximos passos
Consultar uma nota fiscal de serviço emitida
Consultar o XML de uma nota fiscal emitida
Consultar o PDF da nota fiscal emitida
Consultar o XML do evento de cancelamento (Ambiente Nacional)
Para notas emitidas no Ambiente Nacional (ADN), o cancelamento gera o evento e110001, cujo XML pode ser baixado em GET /v1/companies/{company_id}/serviceinvoices/{id}/cancellation-xml. O endpoint está disponível apenas para notas canceladas do Ambiente Nacional — provedores de layout municipal/ABRASF não possuem evento de cancelamento próprio e retornam 404.
Informações adicionais
Primeiros passos para integrar com nossa API de forma simples
Integre seu sistema com a nossa API para começar a emitir notas fiscais de forma automatizada. Em caso de dúvida em algum conceito utilizado aqui, visite nossa Página de Conceitos e saiba tudo que você precisa para emitir Nota Fiscal de Serviço Eletrônica (NFS-e).
Recomendamos que você use nosso Ambiente de Testes para fazer a integração e só depois mudar para o Ambiente de Produção. Assim você pode tirar suas dúvidas e evitar equívocos quando mudar para produção.
Caso você não seja um desenvolvedor ou sua empresa não possua uma equipe de TI, nós disponibilizamos outras formas de automatizar suas emissões, clique aqui e veja as outras possibilidades disponíveis.
Integração a partir de um meio de pagamento
A emissão automatizada de NFS-e depende da integração com o meio de pagamento usado por você. O meio de pagamento deve ter uma API por onde serão disponibilizadas as informações sobre os pagamentos que foram realizados.
Alguns meios de pagamento disponibilizam Webhooks para monitoramento dos pagamentos. Uma das opções de integrar com a nossa API é através desses Webhooks, que informarão sempre que um pagamento for realizado.
Outra opção é, de tempos em tempos, consultar a API do seu meio de pagamento para coletar os dados dos pagamentos que foram realizados.
Tendo os dados do pagamento, é só adicionar as informações pertinentes ao serviço prestado e enviar para nossa API, que emitirá a nota calculando os impostos automaticamente.
Observação: A maioria dos meios de pagamento não disponibilizam todas as informações necessárias para que a nota seja emitida. Ou seja, sua solução terá que agregar as informações faltantes com as informações cedidas pelo seu meio de pagamento.
Utilizando o Ambiente de Testes
Uma das vantagens da nossa API é que você pode testá-la gratuitamente, assim você pode garantir que a nossa solução atenda às suas demandas.
Abaixo temos um passo a passo para utilização do nosso Ambiente de Testes:
Observação: Para testar a API de NFS-e você precisa apenas de uma Inscrição Municipal configurada com
Environment: "Development". Certificado Digital e Inscrição Estadual não são necessários no ambiente de testes da NFS-e (Inscrição Estadual nunca é exigida para NFS-e). Veja a matriz completa em Ambiente: Testes ou Produção.
Módulos disponíveis
Para outras linguagens, use nossa Referência da API.
Mudando para o ambiente de produção
Após testar com sucesso, siga os passos abaixo:
- Verifique os dados ao criar sua empresa
- Certifique-se de que está credenciado na prefeitura para emissão de nota fiscal (como credenciar)
- Faça o upload do certificado digital
- Entre em contato com a equipe comercial para gerar sua fatura.
- Após o pagamento, vá até a aba "EMPRESAS", clique em "ALTERAR EMPRESA".
- Mude o ambiente de testes para produção na seção "Ambiente".