Envio pela API da Sefin Nacional
A API não recebe os campos da DPS em JSON. O JSON é só o envelope: a DPS vai dentro dele como XML assinado, compactado em GZip e codificado em base64. A comunicação usa TLS com autenticação mútua por certificado ICP-Brasil.
- Montar o XML da DPSUTF-8, com
xmlns="http://www.sped.fazenda.gov.br/nfse"no elemento raiz e sem prefixos de namespace. Sem zeros não significativos, espaços nas pontas, comentários ou quebras de linha entre as tags. Valide contra o XSD do Pacote de Liberação. - Assinar o grupo infDPSXMLDSig enveloped sobre
<infDPS>, referenciado pelo atributo Id (URI="#…"). Canonicalização C14N. O certificado (A1 ou A3, ICP-Brasil) precisa ter o CNPJ ou CPF do emitente. Não inclua X509SubjectName, X509IssuerSerial, KeyValue e afins. - Compactar e codificarCompacte o XML assinado em GZip e codifique o resultado em base64.
- Enviar o JSON
POST /nfsecom o corpo{"dpsXmlGZipB64": "…"}. O processamento é síncrono: a resposta já traz a NFS-e gerada ou a lista de erros. - Ler o retornoEm caso de sucesso, guarde a
chaveAcessoe descompactenfseXmlGZipB64(base64 → GZip → XML da NFS-e). Em caso de rejeição, os códigos emerrosestão na aba Regras e erros.
Requisição · POST /nfse
| Campo | Conteúdo | Fonte |
|---|---|---|
| dpsXmlGZipB64 | XML da DPS assinado, compactado em GZip, em base64 | confirmado |
Resposta de sucesso
Resposta de rejeição
Campos da resposta
| Campo | Conteúdo | Fonte |
|---|
confirmado: nome usado por implementações públicas alinhadas à especificação OpenAPI oficial. conferir: nome conhecido da API, mas não confirmado em fonte aberta nesta pesquisa; confira no Swagger antes de codificar.
Rotas descritas no manual
| Método e rota | O que faz |
|---|
Documentação técnica das APIs (Swagger): contribuintes ISSQN · produção restrita. O acesso pode exigir certificado digital.
Validações na recepção (antes das regras de cada campo)
| Código | Regra | Mensagem |
|---|
Analisar rejeição
Cole o retorno de erro da Sefin Nacional: o JSON completo, só a lista erros ou o texto com os códigos. A página identifica cada código (E0310, E0854…), mostra a regra oficial do Anexo VI e o campo da DPS envolvido. A análise roda no seu navegador; nada é enviado.
Regras de negócio e códigos de erro
| Código | Campo | Regra | Mensagem de erro | Nível |
|---|
Códigos de tributação nacional
Lista nacional de serviços usada em cTribNac, com a regra de localidade de incidência (LI) do ISSQN e os grupos da DPS que cada serviço exige.
- EP
- Estabelecimento ou domicílio do prestador
- LP
- Local da prestação do serviço
- ET
- Estabelecimento ou domicílio do tomador
- Importação
- Quando o emitente é tomador ou intermediário e o prestador ou o local da prestação está no exterior, a LI é o estabelecimento ou domicílio do emitente; essa regra prevalece sobre o art. 3º da LC 116/03.
| Código | Descrição | Incidência | Grupo exigido |
|---|
Cenários de comércio exterior
Como a Sefin trata cada combinação de locais (tomador, intermediário e local da prestação) e de resposta do emitente sobre a tributação do ISSQN, e quais informações passam a ser exigidas: NBS, país do resultado (cPaisResult) e grupo comExt.
| # | End. tomador | End. intermediário | Local da prestação | LI pelo subitem | Imune, exportação ou não incidência? | Tributação do ISSQN | Exportação p/ ISSQN | Exportação p/ RFB | Resultado | Local de incidência | NBS | País resultado | Grupo comExt |
|---|
Tipos e notação do leiaute
Como ler as colunas ELE, TIPO, OCOR. e TAM. dos anexos.
ELE · elemento
- Raiz
- Elemento raiz do documento (DPS ou NFSe).
- G
- Grupo. Vira objeto no JSON; com ocorrência máxima maior que 1, vira lista.
- CG
- Grupo de escolha: informe apenas um dos grupos alternativos.
- E
- Elemento com valor.
- CE
- Elemento de escolha: informe apenas um dos elementos alternativos (por exemplo CNPJ, CPF ou NIF).
- A
- Atributo da tag (versao). No JSON desta página aparece com o prefixo
@. - ID
- Atributo identificador (Id), usado como referência da assinatura.
TIPO e TAM.
- C
- Caractere (texto).
- N
- Numérico.
- D
- Data (AAAA-MM-DD) ou data e hora UTC (AAAA-MM-DDThh:mm:ssTZD).
- 14
- Tamanho exato.
- 1-60
- Tamanho mínimo e máximo.
- 1-15V2
- Numérico com 1 a 15 dígitos inteiros e 2 casas decimais.
OCOR. · ocorrência
- 1-1
- Obrigatório. Dentro de um grupo opcional, só é obrigatório quando o grupo é informado.
- 0-1
- Opcional.
- 1-99
- Lista com 1 a 99 itens.
- 0-1000
- Lista opcional com até 1000 itens.