Pular para o conteúdo principal

DPS por Web Service - Nota Nacional

A partir da necessidade de atender a Reforma Tributária e as adequações da Nota Nacional, o e-Nota passa a contemplar API para receber automaticamente as Declarações de Prestação de Serviço (DPS) enviadas por Web Service, pelos sistemas próprios dos prestadores de serviços.

Nesta página, você encontra todas as informações necessárias para configurar o recebimento das DPS no padrão adotado pela Betha Sistemas, incluindo layout, schema XML, documentação de integração e URLs de comunicação.

Importante: A integração via Web Service para recebimento das DPS estará ativa e operacional a partir do dia 20/11.

Layout da Betha Sistemas

O layout adotado pela Betha Sistemas para o recebimento das DPS segue o padrão oficial definido pela Receita Federal, contendo todas as implementações e atualizações previstas até a Nota Técnica nº 004 – Versão 1.1

📄 Baixar Layout | Layout oficial da Betha Sistemas para recepção das DPS.

📄 Baixar Layout | Layout oficial da Betha Sistemas para recepção do cancelamento e substituição das DPS.

Documentação Técnica - Web Service DPS (Declaração de Prestação de Serviço)

⚠️ Atenção: Esta documentação está em construção. Recomenda-se verificar periodicamente a tabela de alterações.

Este documento auxilia desenvolvedores na integração com o Web Service SOAP para recepção e validação de DPS (Declaração de Prestação de Serviço). Todos os dados são considerados dados de teste.

Versão Atual: Sistema recepciona e valida DPS. Processamento completo com geração de NFS-e será implementado em versão futura.

Versionamento

VersãoDataAutorAlteração
1.0.017/11/2025Douglas Felipe da SilvaVersão inicial
1.1.018/11/2025Lucas CoelhoCorreções críticas e melhorias

Índice


Ambientes

AmbientesURL BasetpAmbWSDL
Homologaçãohttp://nota-eletronica-release.test.betha.cloud/dps2/ws/dps.wsdl
Produçãohttp://nota-eletronica.betha.cloud/dps1/ws/dps.wsdl

Fluxo de Processamento

⚠️ IMPORTANTE: Processamento Assíncrono

O processamento da DPS é ASSÍNCRONO:

1. RecepcionarDps → Retorna protocolo imediatamente
Status: "Aguardando validação do ambiente nacional"

2. Sistema valida e armazena a DPS
- Valida estrutura XML
- Valida assinatura digital
- Valida campos obrigatórios
- Armazena no XML

3. ConsultarDps → Verifica status da recepção
Status: "Aguardando validação do ambiente nacional"

Fluxo de Recepção da DPS

graph LR
A[Assinar DPS] --> B[RecepcionarDps]
B --> C{Validação}
C -->|Sucesso| D[Recebe Protocolo]
C -->|Erro| E[Mensagem Erro]
D --> F[ConsultarDps]
F --> G[Status: Aguardando]

Fluxo de Cancelamento

graph LR
A[Ter NFS-e] --> B[RecepcionarEventoCancelamento]
B --> C{Validação}
C -->|Sucesso| D[Recebe Protocolo]
C -->|Erro| E[Mensagem Erro]

Endpoints

1. RecepcionarDps

Recebe XML da DPS assinado digitalmente para processamento.

Endpoint: POST /ws

Request:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:dps="http://www.betha.com.br/e-nota-dps">
<soapenv:Body>
<dps:RecepcionarDpsEnvio>
<dps:DPS versao="1.0">
<dps:infDPS id="DPS123456">
<dps:tpAmb>2</dps:tpAmb>
<dps:dhEmi>2024-01-15T10:00:00</dps:dhEmi>
<dps:verAplic>1.0</dps:verAplic>
<dps:serie>00001</dps:serie>
<dps:nDPS>123456</dps:nDPS>
<dps:dCompet>2024-01-15</dps:dCompet>
<dps:tpEmit>1</dps:tpEmit>
<dps:cLocEmi>4205407</dps:cLocEmi>
<dps:prest>
<dps:CNPJ>11222333000181</dps:CNPJ>
<dps:regTrib>
<dps:opSimpNac>1</dps:opSimpNac>
<dps:regEspTrib>0</dps:regEspTrib>
</dps:regTrib>
</dps:prest>
<dps:serv>
<dps:locPrest>
<dps:cLocPrestacao>4205407</dps:cLocPrestacao>
</dps:locPrest>
<dps:cServ>
<dps:cTribNac>0101010</dps:cTribNac>
<dps:xDescServ>Serviço de consultoria</dps:xDescServ>
<dps:cNBS>11601010</dps:cNBS>
</dps:cServ>
</dps:serv>
<dps:valores>
<dps:vServPrest>
<dps:vServ>1000.00</dps:vServ>
</dps:vServPrest>
<dps:trib>
<dps:tribMun>
<dps:tribISSQN>2</dps:tribISSQN>
<dps:pAliq>5.00</dps:pAliq>
</dps:tribMun>
<dps:totTrib>
<dps:indTotTrib>0</dps:indTotTrib>
</dps:totTrib>
</dps:trib>
</dps:valores>
</dps:infDPS>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- Assinatura digital ICP-Brasil -->
</ds:Signature>
</dps:DPS>
</dps:RecepcionarDpsEnvio>
</soapenv:Body>
</soapenv:Envelope>

Response (Sucesso):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<dps:RecepcionarDpsResposta xmlns:dps="http://www.betha.com.br/e-nota-dps">
<dps:protocolo>1abc123def456</dps:protocolo>
<dps:dhRecebimento>2024-01-15T10:00:01</dps:dhRecebimento>
<dps:status>Aguardando validação do ambiente nacional</dps:status>
</dps:RecepcionarDpsResposta>
</soapenv:Body>
</soapenv:Envelope>

Response (Erro):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<dps:RecepcionarDpsResposta xmlns:dps="http://www.betha.com.br/e-nota-dps">
<dps:protocolo></dps:protocolo>
<dps:dhRecebimento>2024-01-15T10:00:01</dps:dhRecebimento>
<dps:status>Rejeitado</dps:status>
<dps:listaMensagens>
<dps:mensagem>
<dps:codigo>E022</dps:codigo>
<dps:mensagem>CNPJ do prestador inválido</dps:mensagem>
<dps:correcao>Verifique o CNPJ informado</dps:correcao>
</dps:mensagem>
</dps:listaMensagens>
</dps:RecepcionarDpsResposta>
</soapenv:Body>
</soapenv:Envelope>

2. ConsultarDps

Consulta status de processamento pelo protocolo (consulta simples).

Endpoint: POST /ws

Request:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:dps="http://www.betha.com.br/e-nota-dps">
<soapenv:Body>
<dps:ConsultarDpsEnvio>
<dps:protocolo>1abc123def456</dps:protocolo>
</dps:ConsultarDpsEnvio>
</soapenv:Body>
</soapenv:Envelope>

Response:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<dps:ConsultarDpsResposta xmlns:dps="http://www.betha.com.br/e-nota-dps">
<dps:protocolo>1abc123def456</dps:protocolo>
<dps:dhRecebimento>2024-01-15T10:00:01</dps:dhRecebimento>
<dps:status>Aguardando validação do ambiente nacional</dps:status>
<dps:idDps>DPS123456</dps:idDps>
</dps:ConsultarDpsResposta>
</soapenv:Body>
</soapenv:Envelope>

3. ConsultarStatusDps

Consulta detalhada do status de Emissão, Cancelamento ou Substituição.

Endpoint: POST /ws

Tipos de Integração

TipoDescrição
EMISSAOStatus da emissão da DPS
CANCELAMENTOStatus do cancelamento
CANCELAMENTO_POR_SUBSTITUICAOStatus da substituição

Request - Emissão

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:dps="http://www.betha.com.br/e-nota-dps">
<soapenv:Body>
<dps:ConsultarStatusDpsEnvio>
<dps:codigoIbge>4205407</dps:codigoIbge>
<dps:cpfCnpjPrestador>11222333000181</dps:cpfCnpjPrestador>
<dps:protocolo>1abc123def456</dps:protocolo>
<dps:tipoIntegracao>EMISSAO</dps:tipoIntegracao>
</dps:ConsultarStatusDpsEnvio>
</soapenv:Body>
</soapenv:Envelope>

Utilize o código IBGE correspondente ao município onde a consulta será efetuada.

Response - Emissão

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsEmissaoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Aguardando validação do ambiente nacional</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-17T14:30:39.000-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>PROTO999</ns2:protocolo>
<ns2:idDps>DPS004</ns2:idDps>
</ns2:ConsultarStatusDpsEmissaoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Nota: Atualmente o sistema apenas recepciona e valida a DPS. O processamento completo com geração de NFS-e será implementado em versão futura.


4. RecepcionarEventoCancelamento

Recebe evento de cancelamento de NFS-e.

Endpoint: POST /ws

Request:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:evt="http://www.betha.com.br/e-nota-evento">
<soapenv:Body>
<evt:RecepcionarEventoCancelamentoEnvio>
<evt:evento versao="1.0">
<evt:infEvento id="EVT123456">
<evt:verAplic>1.0</evt:verAplic>
<evt:ambGer>2</evt:ambGer>
<evt:nSeqEvento>1</evt:nSeqEvento>
<evt:dhProc>2024-01-15T10:00:00</evt:dhProc>
<evt:nDFe>42054071122233300018100000012345601234567890</evt:nDFe>
<evt:pedRegEvento versao="1.0">
<evt:infPedReg id="PED123456">
<evt:chNFSe>42054071122233300018100000012345601234567890</evt:chNFSe>
<evt:CNPJAutor>11222333000181</evt:CNPJAutor>
<evt:dhEvento>2024-01-15T10:00:00</evt:dhEvento>
<evt:tpAmb>2</evt:tpAmb>
<evt:verAplic>1.0</evt:verAplic>
<evt:e105101>
<evt:xDesc>Cancelamento de NFSe</evt:xDesc>
<evt:cMotivo>1</evt:cMotivo>
<evt:xMotivo>Erro na emissão</evt:xMotivo>
</evt:e105101>
</evt:infPedReg>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- Assinatura digital -->
</ds:Signature>
</evt:pedRegEvento>
</evt:infEvento>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- Assinatura digital -->
</ds:Signature>
</evt:evento>
</evt:RecepcionarEventoCancelamentoEnvio>
</soapenv:Body>
</soapenv:Envelope>

Response:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<evt:RecepcionarEventoCancelamentoResposta xmlns:evt="http://www.betha.com.br/e-nota-evento">
<evt:protocolo>e9e648b0-ce82-4c28-9a00-997f3b23e35f</evt:protocolo>
<evt:dhRecebimento>2025-11-18T10:53:22.589-03:00</evt:dhRecebimento>
<evt:status>Aguardando validação do ambiente nacional</evt:status>
</evt:RecepcionarEventoCancelamentoResposta>
</soapenv:Body>
</soapenv:Envelope>

5. RecepcionarEventoSubstituicao

Recebe evento de cancelamento por substituição de NFS-e.

Endpoint: POST /ws

Request:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:evt="http://www.betha.com.br/e-nota-evento">
<soapenv:Body>
<evt:RecepcionarEventoSubstituicaoEnvio>
<evt:evento versao="1.0">
<evt:infEvento id="EVT123457">
<evt:verAplic>1.0</evt:verAplic>
<evt:ambGer>2</evt:ambGer>
<evt:nSeqEvento>1</evt:nSeqEvento>
<evt:dhProc>2024-01-15T10:00:00</evt:dhProc>
<evt:nDFe>42054071122233300018100000012345601234567890</evt:nDFe>
<evt:pedRegEvento versao="1.0">
<evt:infPedReg id="PED123457">
<evt:chNFSe>42054071122233300018100000012345601234567890</evt:chNFSe>
<evt:CNPJAutor>11222333000181</evt:CNPJAutor>
<evt:dhEvento>2024-01-15T10:00:00</evt:dhEvento>
<evt:tpAmb>2</evt:tpAmb>
<evt:verAplic>1.0</evt:verAplic>
<evt:e105102>
<evt:xDesc>Substituição de NFSe</evt:xDesc>
<evt:cMotivo>1</evt:cMotivo>
<evt:xMotivo>Correção de dados</evt:xMotivo>
<evt:chSubstituta>42054071122233300018100000012345601234567891</evt:chSubstituta>
</evt:e105102>
</evt:infPedReg>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- Assinatura digital -->
</ds:Signature>
</evt:pedRegEvento>
</evt:infEvento>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<!-- Assinatura digital -->
</ds:Signature>
</evt:evento>
</evt:RecepcionarEventoSubstituicaoEnvio>
</soapenv:Body>
</soapenv:Envelope>

Response:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<evt:RecepcionarEventoSubstituicaoResposta xmlns:evt="http://www.betha.com.br/e-nota-evento">
<evt:protocolo>35e5d630-896e-4d22-a563-b57a7793eada</evt:protocolo>
<evt:dhRecebimento>2025-11-18T10:54:56.294-03:00</evt:dhRecebimento>
<evt:status>Aguardando validação do ambiente nacional</evt:status>
</evt:RecepcionarEventoSubstituicaoResposta>
</soapenv:Body>
</soapenv:Envelope>

Códigos de Erro

CódigoMensagemCorreçãoCategoria
E001XML mal formadoVerifique a estrutura do XMLEstrutura XML
E001AProtocolo ausenteInforme o protocoloEstrutura XML
E002Assinatura digital ausenteAssine digitalmente a DPSEstrutura XML
E003Certificado digital inválidoUtilize certificado ICP-Brasil válidoEstrutura XML
E004Certificado digital expiradoRenove o certificado digitalEstrutura XML
E005CNPJ/CPF do certificado não correspondeUtilize certificado do prestadorEstrutura XML
E010Campo tpAmb é obrigatórioInforme 1=Produção ou 2=HomologaçãoCampos Obrigatórios
E011Campo tpAmb inválidoInforme 1=Produção ou 2=HomologaçãoCampos Obrigatórios
E012Campo tpEmit é obrigatórioInforme o tipo de emitenteCampos Obrigatórios
E013Campo tpEmit inválidoApenas tpEmit=1 (Prestador) aceitoCampos Obrigatórios
E020Dados do prestador obrigatóriosInforme os dados do prestadorPrestador
E021CNPJ ou CPF obrigatórioInforme CNPJ ou CPF do prestadorPrestador
E022CNPJ do prestador inválidoVerifique o CNPJ informadoPrestador
E023CPF do prestador inválidoVerifique o CPF informadoPrestador
E030Dados do serviço obrigatóriosInforme os dados do serviçoServiço
E040Valor do serviço obrigatórioInforme o valor do serviçoValores
E041Valor deve ser maior que zeroInforme um valor válidoValores
E050DPS já recepcionadaEsta DPS já foi enviadaDuplicidade
E051ID da DPS duplicadoO ID já existe para esta entidadeDuplicidade
E052Número e série duplicadosEsta combinação já foi utilizadaDuplicidade
E060Data de competência inválidaData não pode ser futuraValidação
E061Data de emissão inválidaData não pode ser futuraValidação
E064NFS-e não encontradaA NFS-e informada não existeValidação
E999Erro internoContate o suporte técnicoGenérico

XSD Schemas

Acessar XSDs

SchemaURL
DPS{URL_BASE}/schemas/dps.xsd
Evento Cancelamento{URL_BASE}/schemas/evento-cancelamento.xsd
Evento Substituição{URL_BASE}/schemas/evento-substituicao.xsd
Consulta Status{URL_BASE}/schemas/consulta-status.xsd

WSDL

{URL_BASE}/ws/dps.wsdl

Limites e Restrições

  • Tamanho máximo do XML: 5MB
  • Timeout: 60 segundos
  • Rate limit: 100 requisições/minuto
  • DPS por requisição: Apenas 1

Troubleshooting

Problema: Certificado digital inválido

Solução: Verifique se o certificado é ICP-Brasil tipo A1 ou A3 e está dentro da validade.

Problema: CNPJ/CPF não corresponde

Solução: O certificado deve ser do prestador ou da matriz (mesma raiz CNPJ).

Problema: DPS já recepcionada

Solução: Use ConsultarDps para verificar o status da DPS já enviada.

Problema: Status sempre Aguardando validação

Solução: Atualmente o sistema apenas recepciona e valida a DPS. O processamento completo será implementado em versão futura.