Emissão de NFS-e com os campos da reforma tributária
Uma API para gerar, validar e assinar a DPS, transmitir ao Emissor Público Nacional e acompanhar o resultado com segurança.
Primeiros passos
URL base da API (para chamadas de integração):
Site da documentação: developer.emissor.service.pes2b.com.
https://emissor.service.pes2b.com- Configure sua chave na credencial protegida da integração.
- Consulte
GET /api/v1/ambientee confirme o ambiente esperado. - Envie a DPS para
POST /api/v1/nfse/validar. Essa operação não transmite ao Fisco. - Após conferir os dados, emita com uma chave de idempotência estável.
- Guarde o identificador da solicitação e acompanhe seu status.
curl https://emissor.service.pes2b.com/api/v1/ambiente \
-H "X-API-Key: SUA_CHAVE"
curl https://emissor.service.pes2b.com/api/v1/nfse/validar \
-H "X-API-Key: SUA_CHAVE" \
-H "Content-Type: application/json" \
--data-binary @sua-dps.jsonAutenticação por empresa
Envie X-API-Key nas rotas /api/. A chave identifica o cliente, seu grupo de acesso e as empresas autorizadas. Os escopos são emitir, consultar e cancelar.
O certificado A1 é resolvido pelo serviço. Não envie certificado, senha, chave privada ou identificação do cofre no JSON. Na instalação atual, o acesso de homologação está limitado à Jorgepla.
Duas formas de preencher a DPS
| Formato | Quando usar | Estrutura |
|---|---|---|
| Simplificado | Integrações existentes e prestação nacional básica. | empresa_codigo, serie, numero, prestador, servico, valores, ibs_cbs |
| Completo · novo | Todos os grupos de entrada da DPS, incluindo os campos RTC. | empresa_codigo, leiaute, dados_dps |
Não misture os formatos. No completo, use os nomes e a hierarquia oficiais, incluindo maiúsculas. Códigos, decimais, percentuais, quantidades e datas são strings. Campos repetidos são arrays; campos opcionais ausentes devem ser omitidos.
{
"empresa_codigo": "EMPRESA_AUTORIZADA",
"leiaute": "restrita_20261020",
"dados_dps": {
"serie": "1",
"nDPS": "1",
"dhEmi": "2026-11-10T10:00:00-03:00",
"dCompet": "2026-11-10",
"finNFSe": "0",
"cLocEmi": "4314902",
"prest": { "CNPJ": "11222333000181", "regTrib": { "opSimpNac": "1", "regEspTrib": "0" } },
"serv": { "locPrest": { "cLocPrestacao": "4314902" }, "cServ": { "cTribNac": "170101", "xDescServ": "Exemplo fictício" } },
"valores": { "vServPrest": { "vServ": "100.00" }, "trib": { "tribMun": { "tribISSQN": "1", "tpRetISSQN": "1" }, "totTrib": { "indTotTrib": "0" } } },
"IBSCBS": {
"indFinal": "1", "cIndOp": "100301", "indDest": "0",
"valores": { "trib": { "CST": "000", "cClassTrib": "000001" } }
}
}
}Exemplo fictício para ilustrar a estrutura. Substitua empresa, CNPJ, datas e informações fiscais antes de validar. O serviço verifica se o prestador corresponde à empresa autorizada.
Id, tpAmb, verAplic e tpEmit são controlados pelo servidor. A emissão é feita pelo prestador. Série de 1 a 49999; número de DPS positivo, com até 15 dígitos; corpo limitado a 256.000 bytes.
Reforma tributária: IBS e CBS
A entrada completa segue os XSD oficiais de cada ambiente. Os campos são validados e serializados na ordem do leiaute, sem ignorar campos desconhecidos.
| Grupo | Informações recebidas |
|---|---|
| Operação e referências | Finalidade, consumidor final, indicador da operação, tipo de operação, ente governamental e NFS-e referenciadas. |
| Destinatário | CNPJ, CPF ou identificação no exterior; nome, endereço nacional ou estrangeiro e contato. |
| Imóveis e bens móveis | Cadastro, endereço, locação, unidades imobiliárias e ajustes; bens móveis no perfil restrito NT009. |
| Tributação | CST, classificação tributária, crédito presumido, tributação regular e diferimento estadual, municipal e federal. |
| Valores e documentos | Reembolsos, repasses, ressarcimentos ou ajustes de base nos grupos previstos em cada perfil. |
Escolha o perfil do ambiente
restrita_20261020: finalidade em dados_dps.finNFSe; CST e classificação diretamente em IBSCBS.valores.trib.
producao_20260209: finalidade dentro de IBSCBS; CST e classificação em IBSCBS.valores.trib.gIBSCBS. Esse perfil exige uma instalação em produção, que permanece bloqueada nesta implantação.
Catálogo completo dos campos
Consulte os caminhos disponíveis em cada perfil, incluindo todos os grupos de entrada da reforma tributária. Uma ocorrência 0..1 significa opcional no XSD; a operação pode exigir o campo pelas regras fiscais. Identificadores alternativos e outros grupos do tipo escolha são exclusivos.
Carregando catálogo…
| Caminho JSON | Tipo / ocorrência | Descrição oficial |
|---|
Operações da API
| Método | Rota | Finalidade |
|---|---|---|
| GET | /api/v1/ambiente | Conferir ambiente e efeito fiscal. |
| POST | /api/v1/nfse/validar | Validar a DPS, sem abrir certificado ou transmitir. |
| POST | /api/v1/nfse/emitir | Gerar, validar, assinar e transmitir. |
| POST | /api/v1/nfse/cancelar | Solicitar cancelamento pelo evento 101101. |
| GET | /api/v1/solicitacoes/{id} | Consultar resultado persistido. |
| POST | /api/v1/solicitacoes/{id}/reconciliar | Consultar a SEFIN sem novo envio. |
| GET | /api/v1/solicitacoes/{id}/xml | Recuperar XML fiscal integral. |
| GET | /api/v1/solicitacoes/{id}/danfse | Recuperar representação em PDF. |
| GET | /api/v1/solicitacoes/{id}/eventos | Recuperar eventos do documento. |
Idempotência e resultados
Em emissão e cancelamento, envie Idempotency-Key com 8 a 200 caracteres. Preserve o corpo, o número, a data e a chave ao repetir uma tentativa. Não troque o formato simplificado pelo completo em uma solicitação já existente.
AUTORIZADA confirma autorização. REJEITADA informa rejeição conhecida. Em PENDENTE ou RESULTADO_DESCONHECIDO, consulte e reconcilie; não gere outra DPS automaticamente.
{
"solicitacao_id": "UUID_DA_SOLICITACAO",
"status": "AUTORIZADA",
"idDPS": "DPS...",
"chaveAcesso": "CHAVE_NACIONAL_DE_50_DIGITOS",
"httpStatus": 201,
"requestId": "UUID_DA_REQUISICAO"
}O HTTP 200 da API também pode conter rejeição. Avalie sempre o campo status. HTTP 202 indica uma solicitação pendente ou de resultado desconhecido. httpStatus dentro da resposta é o retorno do provedor nacional.
Integração com n8n
Use HTTP Request com credencial Header Auth (X-API-Key) e permita o domínio emissor.service.pes2b.com. Confira o ambiente, valide a DPS e só então transmita. Desative retry automático no nó de emissão e preserve a chave de idempotência.
O formato simplificado anterior continua disponível. No Simples Nacional ME/EPP, preencha valores.total_tributos com tipo simples e o percentual informado pelo responsável fiscal. O percentual fictício usado na homologação não define o enquadramento da empresa.
Erros e diagnóstico
400 dados ou XSD inválidos · 401 autenticação · 403 acesso ou CNPJ · 409 conflito ou ambiente · 413 tamanho · 429 limite de requisições · 503 dependências indisponíveis.
Os erros contêm status, mensagem e requestId. Guarde o identificador para diagnóstico. Limite padrão: 60 requisições por minuto.
/health verifica o processo; /ready verifica as dependências da instalação.
Downloads para integração
Leiautes, fontes e compatibilidade
Base oficial conferida em 10/11/2026: homologação NT009 de 20/10/2026 e produção de 09/02/2026. Os pacotes originais e seus hashes são preservados no repositório.
A emissão básica da Jorgepla foi autorizada em homologação. A expansão dos campos RTC é testada localmente com os XSD e assinatura; cada cenário ainda depende das regras nacionais e dos dados reais da operação. Novos leiautes publicados exigem atualização.