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

Conforme a Nota Técnica nº 004 – Versão 2.0 do Projeto Reforma Tributária do Consumo – Adequações NFS-e, publicada em 10/12/2025, informamos que, a partir de 01/01/2026, o ambiente nacional deixará de aplicar as regras de validação relativas à obrigatoriedade do grupo IBSCBS na DPS para geração da nota fiscal.

No layout da Betha, esse grupo continua disponível, entretanto, a tag de IBSCBS não deve ser enviada pois a mesma não será recepcionada neste momento.

Assim que o ambiente nacional retomar as validações para esse grupo, atualizaremos esta documentação.

Para acessar na íntegra a Nota Técnica Nº 004 clique aqui.

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: Este documentação está em construção e os dados descritos aqui podem mudar sem aviso prévio. Recomenda-se verificar periodicamente a tabela de alterações.

Este artigo tem como objetivo auxiliar desenvolvedores a prepararem seus sistemas para o processamento das DPS, apresentando as requisições e respostas esperadas para cada endpoint a ser consumido, juntamente com a descrição dos erros já mapeados.

Versionamento

VersãoDataAutorTipo de alteração
1.0.018/11/2025Douglas Felipe da SilvaDisponibilizado primeira versão do documento
1.1.018/11/2025Lucas CoelhoCorreções críticas e melhorias
1.1.519/11/2025Douglas Felipe da SilvaAdição de mais exemplos para endpoints e informações de assinatura/certificado
1.1.620/11/2025Douglas Felipe da SilvaAtualização do XML de envio para cancelamento e substituição e do WSDL
1.707/01/2026Douglas Felipe da SilvaAtualização dos exemplos de todos os eventos juntamente com adição da importação do WSDL via SoapUI. Remoções de informações não mais usadas

Índice


Importar requests das operações através do WSDL no SoapUI

Para criação automática de todas as operações suportadas pelo WS no SoapUI, use a seguinte URL:

  • https://nota-eletronica.betha.cloud/dps/ws/service.wsdl (Prod)

Após a importação, o SoapUI deve disponibilizar quatro eventos com os exemplos da estrutura XML devidamente gerado:

  1. ConsultarStatusDps
  2. RecepcionarDps
  3. RecepcionarEventoCancelamento
  4. RecepcionarEventoSubstituicao

Fluxo de Processamento

⚠️ IMPORTANTE: Processamento Assíncrono

O processamento da DPS é ASSÍNCRONO:

1. Eventos (Emissão/Cancelamento/Substituição):
- Valida estrutura XML
- Valida assinatura digital
- Valida campos obrigatórios
- Armazena o XML
- Gera protocolo
- Agenda processamento do evento
- Retorna resposta:
- Protocolo para consulta
- Status: "Não processado"

Padrão de Certificado Digital

Como forma de flexibilizar o uso do sistema, porém sem perder a segurança na comunicação entre contribuinte e prefeitura apenas o certificado ICP-Brasil (e-CPF , e-CNPJ, e-PJ) será aceito. O certificado deverá ser dos tipos A1, A3. Os certificados digitais serão exigidos em dois momentos distintos para a integração entre o sistema do contribuinte e o Web Service das Secretarias Municipais de Fazenda:

  1. Assinatura de mensagens: O certificado digital utilizado para essa função deverá conter o CNPJ do estabelecimento emissor da NFS-e ou o CNPJ do estabelecimento matriz. O certificado digital deverá ter o “uso da chave” previsto para a função de assinatura digital, respeitando a Política do Certificado;
  2. Transmissão (durante a transmissão das mensagens entre os servidores do contribuinte e os serviços disponibilizados pelas Secretarias Municipais de Fazenda): O certificado digital utilizado para identificação do aplicativo do contribuinte deverá conter o CNPJ do responsável pela transmissão das mensagens, mas não necessita ser o mesmo CNPJ do estabelecimento emissor da NFS-e, devendo ter a extensão extended Key Usage com permissão de "Autenticação Cliente".

Padrão de Assinatura Digital

As mensagens enviadas aos serviços disponibilizados pelas Secretarias Municipais de Fazenda são documentos eletrônicos elaborados no padrão XML e devem ser assinados digitalmente com um certificado digital que contenha o CNPJ do estabelecimento matriz ou o CNPJ do estabelecimento emissor da NFS-e objeto do pedido. Para garantir minimamente a integridade das informações prestadas e a correta formação dos arquivos XML, o contribuinte deverá submeter as mensagens XML para validação pela linguagem de Schema do XML (XSD – XML Schema Definition), disponibilizada pelas Secretarias Municipais de Fazenda antes de seu envio. Os elementos abaixo estão presentes dentro do Certificado do contribuinte, tornando desnecessária a sua representação individualizada no arquivo XML. Portanto, o arquivo XML não deve conter os elementos:

<X509SubjectName>
<X509IssuerSerial>
<X509IssuerName>
<X509SerialNumber>
<X509SKI>

Deve-se evitar o uso das TAGs abaixo, pois as informações serão obtidas a partir do Certificado do emitente:

<KeyValue>
<RSAKeyValue>
<Modulus>
<Exponent>

Validação de Assinatura Digital pelo Web Service

Para a validação da assinatura digital, seguem as regras que serão adotadas pelas Secretarias Municipais de Fazenda:

  1. Extrair a chave pública do certificado;
  2. Verificar o prazo de validade do certificado utilizado;
  3. Montar e validar a cadeia de confiança dos certificados, validando também a LCR (Lista de Certificados Revogados) de cada certificado da cadeia;
  4. Validar o uso da chave utilizada (Assinatura Digital), de tal forma a aceitar certificados somente do tipo A (não serão aceitos certificados do tipo S);
  5. Garantir que o certificado utilizado é de um usuário final e não de uma Autoridade Certificadora;
  6. Adotar as regras definidas pelo RFC 3280 para LCR e cadeia de confiança;
  7. Validar a integridade de todas as LCRs utilizadas pelo sistema;
  8. Prazo de validade de cada LCR utilizada (verificar data inicial e final).

A forma de conferência da LCR fica a critério de cada Secretaria Municipal de Fazenda, podendo ser feita de duas maneiras: on-line ou download periódico. As assinaturas digitais das mensagens serão verificadas considerando o horário fornecido pelo Observatório Nacional.

Uso de Assinatura com Certificado Digital

Para garantir a autenticidade dos dados gerados, algumas informações deverão ser assinadas digitalmente. Abaixo segue as informações que deverão ser assinadas e quem deverá fazê-lo em cada momento:

  1. A DPS, pelo contribuinte, antes do envio do mesmo;
  2. O pedido de cancelamento da NFS-e, pelo contribuinte;
  3. A confirmação de cancelamento da NFS-e, pela prefeitura;
  4. O pedido de cancelamento por substituição pelo contribuinte;
  5. A confirmação do pedido de substituição pela prefeitura;

1. Endpoints para consumo

Abaixo serão apresentados os endpoints desenvolvidos e suas definições, juntamente com os XMLs de requisição e resposta e os erros esperados.

A URL base para todas as requisições é:

  • URL_BASE = https://nota-eletronica.betha.cloud/dps

1.1 Recepcionar uma DPS

Recepcionar uma DPS

1.1.1 Request

Para o Web Service recepcionar uma DPS, é necessário realizar uma requisição usando a {URL_BASE}/ws, enviando o seguinte exemplo XML com os dados da DPS:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.betha.com.br/e-nota-dps" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
<soapenv:Header/>
<soapenv:Body>
<RecepcionarDpsEnvio>
<DPS versao="1.01">
<infDPS id="DPS420460827215251600016200900000000000000001">
<tpAmb>1</tpAmb>
<dhEmi>2026-01-06T15:30:45</dhEmi>
<verAplic>nota_WS_1.1.0</verAplic>
<serie>900</serie>
<nDPS>1</nDPS>
<dCompet>2026-01-06</dCompet>
<tpEmit>1</tpEmit>
<cLocEmi>4204608</cLocEmi>
<prest>
<CNPJ>72152516000162</CNPJ>
<fone>4899999999</fone>
<email>teste@teste.com.br</email>
<regTrib>
<!--1 Não optante 2 mei 3 Optante-->
<opSimpNac>3</opSimpNac>
<!--1 SN normal 2 Utiliza aliq mun 3 Utiliza aliq mun-->
<regApTribSN>2</regApTribSN>
<!--Diferente de 0 não pode gerar ISS,indiferente de ser optante ou n-->
<regEspTrib>0</regEspTrib>
</regTrib>
</prest>
<toma>
<CNPJ>44872747000105</CNPJ>
<xNome>Tomador</xNome>
<end>
<endNac>
<cMun>4205407</cMun>
<CEP>88045600</CEP>
</endNac>
<xLgr>ALDO ALVES</xLgr>
<nro>543</nro>
<xBairro>SACO DOS LIMOES</xBairro>
</end>
<fone>48999999999</fone>
<email>teste@teste.com.br</email>
</toma>
<interm>
<CNPJ>91654122000157</CNPJ>
<xNome>Intermediário</xNome>
<end>
<endNac>
<cMun>4210506</cMun>
<CEP>89874000</CEP>
</endNac>
<xLgr>BR 282</xLgr>
<nro>SN</nro>
<xCpl>KM 606</xCpl>
<xBairro>INDUSTRIAL</xBairro>
</end>
<fone>48999999999</fone>
<email>teste@teste.com</email>
</interm>
<serv>
<locPrest>
<cLocPrestacao>4204608</cLocPrestacao>
</locPrest>
<cServ>
<cTribNac>040101</cTribNac>
<xDescServ>Illo at mollitia. Voluptates a aspernatur praesent</xDescServ>
<cNBS>101011200</cNBS>
</cServ>
<infoCompl>
<idDocTec>Número do documento de responsabilidade</idDocTec>
<docRef>Documento de referência</docRef>
<xInfComp>Informações complementares</xInfComp>
</infoCompl>
</serv>
<valores>
<vServPrest>
<vServ>1000.00</vServ>
</vServPrest>
<vDescCondIncond>
<vDescIncond>1.00</vDescIncond>
<vDescCond>0.00</vDescCond>
</vDescCondIncond>
<!--Reduções/deduções-->
<vDedRed>
<vDR>1.00</vDR>
</vDedRed>
<trib>
<tribMun>
<tribISSQN>1</tribISSQN>
<pAliq>5.00</pAliq>
<tpRetISSQN>1</tpRetISSQN>
</tribMun>
<tribFed>
<piscofins>
<CST>01</CST>
<vBCPisCofins>1000.00</vBCPisCofins>
<pAliqPis>2.00</pAliqPis>
<pAliqCofins>2.00</pAliqCofins>
<vPis>20.00</vPis>
<vCofins>20.00</vCofins>
<tpRetPisCofins>1</tpRetPisCofins>
</piscofins>
<vRetCP>1.00</vRetCP>
<vRetIRRF>2.00</vRetIRRF>
<vRetCSLL>3.00</vRetCSLL>
</tribFed>
<totTrib>
<pTotTrib>
<pTotTribFed>0.10</pTotTribFed>
<pTotTribEst>0.10</pTotTribEst>
<pTotTribMun>0.10</pTotTribMun>
</pTotTrib>
</totTrib>
</trib>
</valores>
</infDPS>
</DPS>
</RecepcionarDpsEnvio>
</soapenv:Body>
</soapenv:Envelope>

1.1.2 Response

Caso a estrutura esteja válida, o retorno esperado será o XML:

<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>

Caso contrário:

<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>

1.2 Evento de Cancelamento

1.2.1 Request

Para realizar o evento de cancelamento, dispare uma requisição para a {URL_BASE}/ws enviando o seguinte exemplo de XML com os atributos:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:e="http://www.betha.com.br/e-nota-dps" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
<soapenv:Header/>
<soapenv:Body>
<e:RecepcionarEventoCancelamentoEnvio>
<e:evento versao="1.0">
<e:infEvento id="EVT12345612345612345612345612345612345612345612345612345612345">
<!--Optional:-->
<e:verAplic>1.0</e:verAplic>
<!--Optional:-->
<e:ambGer>2</e:ambGer>
<!--Optional:-->
<e:nSeqEvento>1</e:nSeqEvento>
<!--Optional:-->
<e:dhProc>2025-01-20T10:30:00-03:00</e:dhProc>
<!--Optional:-->
<e:nDFe>2025000000011</e:nDFe>
<e:pedRegEvento versao="PRE12345678920902312312320325824321321320331231221312321321">
<e:infPedReg id="PRE45612345612345612345612345612345612345612345612345612345">
<e:chNFSe>01234567890123456789012345678901234567890123456789</e:chNFSe>
<!--Optional:-->
<e:CNPJAutor>11985661000130</e:CNPJAutor>
<e:dhEvento>2025-01-20T10:30:00-03:00</e:dhEvento>
<e:tpAmb>2</e:tpAmb>
<e:verAplic>1.0</e:verAplic>
<e:e101101>
<e:xDesc>Cancelamento de NFS-e</e:xDesc>
<e:cMotivo>1</e:cMotivo>
<!--Optional:-->
<e:xMotivo>Erro nos dados do serviço prestado</e:xMotivo>
</e:e101101>
</e:infPedReg>
</e:pedRegEvento>
</e:infEvento>
<!--Optional:-->
<xd:Signature Id="?">
<xd:SignedInfo Id="?">
<xd:CanonicalizationMethod Algorithm="?"/>
<xd:SignatureMethod Algorithm="?"/>
<!--1 or more repetitions:-->
<xd:Reference Id="?" URI="?" Type="?">
<xd:Transforms>
<!--1 or more repetitions:-->
<xd:Transform Algorithm="?">
<xd:XPath>?</xd:XPath>
</xd:Transform>
</xd:Transforms>
<xd:DigestMethod Algorithm="?"/>
<xd:DigestValue>cid:603429143588</xd:DigestValue>
</xd:Reference>
</xd:SignedInfo>
<xd:SignatureValue Id="?">cid:1125269176870</xd:SignatureValue>
<xd:KeyInfo Id="?">
<xd:X509Data>
<xd:X509Certificate>cid:1103401335064</xd:X509Certificate>
</xd:X509Data>
</xd:KeyInfo>
</xd:Signature>
</e:evento>
</e:RecepcionarEventoCancelamentoEnvio>
</soapenv:Body>
</soapenv:Envelope>

1.2.2 Response

Caso a estrutura esteja válida, o retorno esperado será:

<?xml version="1.0" encoding="UTF-8"?>
<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>

1.3 Evento de Cancelamento por Substituição

1.3.1 Request

Para realizar o evento de cancelamento, realizar uma requisição para a {URL_BASE}/ws enviando o seguinte exemplo de XML com os atributos:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:e="http://www.betha.com.br/e-nota-dps" xmlns:xd="http://www.w3.org/2000/09/xmldsig#">
<soapenv:Header/>
<soapenv:Body>
<e:RecepcionarEventoSubstituicaoEnvio>
<e:evento versao="1.0">
<e:infEvento id="EVT123456">
<!--Optional:-->
<e:verAplic>1.0</e:verAplic>
<!--Optional:-->
<e:ambGer>2</e:ambGer>
<!--Optional:-->
<e:nSeqEvento>1</e:nSeqEvento>
<!--Optional:-->
<e:dhProc>2025-01-20T10:30:00-03:00</e:dhProc>
<!--Optional:-->
<e:nDFe>?</e:nDFe>
<e:pedRegEvento versao="?">
<e:infPedReg id="?">
<e:chNFSe>11243451124345112434511243451124345112434511243451</e:chNFSe>
<!--Optional:-->
<e:CNPJAutor>?</e:CNPJAutor>
<e:dhEvento>2025-01-20T10:30:00-03:00</e:dhEvento>
<e:tpAmb>2</e:tpAmb>
<e:verAplic>1.0</e:verAplic>
<e:e105102>
<e:xDesc>Cancelamento de NFS-e</e:xDesc>
<e:cMotivo>1</e:cMotivo>
<!--Optional:-->
<e:xMotivo>Erro na emissão</e:xMotivo>
<e:chSubstituta>01234567890123456789012345678901234567890123456789</e:chSubstituta>
</e:e105102>
</e:infPedReg>
</e:pedRegEvento>
</e:infEvento>
<!--Optional:-->
<xd:Signature Id="?">
<xd:SignedInfo Id="?">
<xd:CanonicalizationMethod Algorithm="?"/>
<xd:SignatureMethod Algorithm="?"/>
<!--1 or more repetitions:-->
<xd:Reference Id="?" URI="?" Type="?">
<xd:Transforms>
<!--1 or more repetitions:-->
<xd:Transform Algorithm="?">
<xd:XPath>?</xd:XPath>
</xd:Transform>
</xd:Transforms>
<xd:DigestMethod Algorithm="?"/>
<xd:DigestValue>cid:399119301780</xd:DigestValue>
</xd:Reference>
</xd:SignedInfo>
<xd:SignatureValue Id="?">cid:637905458630</xd:SignatureValue>
<xd:KeyInfo Id="?">
<xd:X509Data>
<xd:X509Certificate>cid:204486449786</xd:X509Certificate>
</xd:X509Data>
</xd:KeyInfo>
</xd:Signature>
</e:evento>
</e:RecepcionarEventoSubstituicaoEnvio>
</soapenv:Body>
</soapenv:Envelope>

1.3.2 Response

Caso a estrutura esteja válida, o retorno esperado será:

<?xml version="1.0" encoding="UTF-8"?>
<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>

1.4 Consulta do Status da DPS

Consulta do Status da DPS

1.4.1 Request

A Consulta do Status da DPS é dividida em três devido ao TipoIntegracao, sendo possível consultar de acordo com os valores abaixo:

TipoEvento/Integração
EMISSAOEmissão da DPS
CANCELAMENTOCancelamento
CANCELAMENTO_POR_SUBSTICAOCancelamento por Substituição

Para realizar a consulta do status, envie uma requisição para a {URL_BASE}/ws usando os seguintes exemplos de XML com os atributos:

1.4.1.1 Emissão
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:e="http://www.betha.com.br/e-nota-dps">
<soapenv:Header/>
<soapenv:Body>
<e:ConsultarStatusDpsEnvio>
<e:tpAmb>2</e:tpAmb>
<e:codigoIbge>4205407</e:codigoIbge>
<e:cpfCnpjPrestador>00456865000167</e:cpfCnpjPrestador>
<e:protocolo>123456789013245</e:protocolo>
<e:tipoIntegracao>EMISSAO</e:tipoIntegracao>
</e:ConsultarStatusDpsEnvio>
</soapenv:Body>
</soapenv:Envelope>
1.4.1.2 Cancelamento
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:e="http://www.betha.com.br/e-nota-dps">
<soapenv:Header/>
<soapenv:Body>
<e:ConsultarStatusDpsEnvio>
<e:tpAmb>2</e:tpAmb>
<e:codigoIbge>4205407</e:codigoIbge>
<e:cpfCnpjPrestador>00456865000167</e:cpfCnpjPrestador>
<e:protocolo>123456789013245</e:protocolo>
<e:tipoIntegracao>CANCELAMENTO</e:tipoIntegracao>
</e:ConsultarStatusDpsEnvio>
</soapenv:Body>
</soapenv:Envelope>
1.4.1.3 Cancelamento por Substituição
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:e="http://www.betha.com.br/e-nota-dps">
<soapenv:Header/>
<soapenv:Body>
<e:ConsultarStatusDpsEnvio>
<e:tpAmb>2</e:tpAmb>
<e:codigoIbge>4205407</e:codigoIbge>
<e:cpfCnpjPrestador>00456865000167</e:cpfCnpjPrestador>
<e:protocolo>123456789013245</e:protocolo>
<e:tipoIntegracao>CANCELAMENTO_POR_SUBSTITUICAO</e:tipoIntegracao>
</e:ConsultarStatusDpsEnvio>
</soapenv:Body>
</soapenv:Envelope>

1.4.2 Response

Atualmente a resposta da consulta pode retornar uma das três mensagens (statuses) abaixo:

MensagemSignificado
Processado com sucessoAmbiente nacional processou com sucesso
Processado com erroAmbiente nacional processou com erro
Aguardando validação do ambiente nacionalValidação pendente no Ambiente Nacional

Cada status retorna XMLs de respostas diferentes.

1.4.2.1 Emissão

Se a emissão da DPS ocorreu com sucesso:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsEmissaoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Processado com sucesso</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-12T10:51:14.997-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>d31fab23-accd-4269-888c-a5b78505d054</ns2:protocolo>
<ns2:idDps>91d9b79d-da8b-4713-8fb6-5702782133ca</ns2:idDps>
<ns2:chaveAcesso>0123456789012345678901234567980132456789</ns2:chaveAcesso>
<ns2:numeroDps>001/2025</ns2:numeroDps>
<ns2:serieDps>A25</ns2:serieDps>
<ns2:numeroNotaFiscal>198954</ns2:numeroNotaFiscal>
<ns2:linkPdf>https://notas.prefeitura.gov.br/pdf/NF-12345.pdf</ns2:linkPdf>
</ns2:ConsultarStatusDpsEmissaoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Se a emissão da DPS estiver com erro:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsEmissaoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Processado com erro</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-17T12:40:39.000-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>PROTO456</ns2:protocolo>
<ns2:mensagemErro>Mensagem de erro</ns2:mensagemErro>
<ns2:idDps>DPS002</ns2:idDps>
</ns2:ConsultarStatusDpsEmissaoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Se a emissão da DPS está sendo validada no ambiente nacional:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<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>
1.4.2.2 Cancelamento

Se o cancelamento ocorreu com sucesso:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsCancelamentoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Processado com sucesso</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-12T10:53:22.589-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>e9e648b0-ce82-4c28-9a00-997f3b23e35f</ns2:protocolo>
<ns2:idCancelamento>71675323-da47-43a4-a70d-3345fc406868</ns2:idCancelamento>
<ns2:chaveAcesso>0123456789012345678901234567980132456789</ns2:chaveAcesso>
<ns2:numeroNotaFiscal>198954</ns2:numeroNotaFiscal>
<ns2:linkPdf>https://notas.prefeitura.gov.br/pdf/NF-198954.pdf</ns2:linkPdf>
</ns2:ConsultarStatusDpsCancelamentoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Se o cancelamento resultou em erro:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsCancelamentoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Processado com erro</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-12T10:53:22.589-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>e9e648b0-ce82-4c28-9a00-997f3b23e35f</ns2:protocolo>
<ns2:mensagemErro>Mensagem de erro</ns2:mensagemErro>
<ns2:idCancelamento>71675323-da47-43a4-a70d-3345fc406868</ns2:idCancelamento>
</ns2:ConsultarStatusDpsCancelamentoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Se o cancelamento está pendente de validação:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsCancelamentoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Aguardando validação do ambiente nacional</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-12T10:53:22.589-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>e9e648b0-ce82-4c28-9a00-997f3b23e35f</ns2:protocolo>
<ns2:idCancelamento>71675323-da47-43a4-a70d-3345fc406868</ns2:idCancelamento>
</ns2:ConsultarStatusDpsCancelamentoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
1.4.2.3 Cancelamento por Substituição

Se a substituição ocorreu com sucesso:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsCancelamentoSubstituicaoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Processado com sucesso</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-12T10:54:56.294-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>35e5d630-896e-4d22-a563-b57a7793eada</ns2:protocolo>
<ns2:idCancelamentoSubstituicao>daa968e6-f1a7-4a15-b3ad-bfe473232239</ns2:idCancelamentoSubstituicao>
<ns2:chaveAcessoSubstituida>0123456789012345678901234567980132456789</ns2:chaveAcessoSubstituida>
<ns2:numeroNotaFiscalSubstituida>198954</ns2:numeroNotaFiscalSubstituida>
<ns2:linkPdfSubstituida>https://notas.prefeitura.gov.br/pdf/NF-198954.pdf</ns2:linkPdfSubstituida>
<ns2:chaveAcessoSubstituta>98765431098765432109876543210</ns2:chaveAcessoSubstituta>
<ns2:numeroNotaFiscalSubstituta>198955</ns2:numeroNotaFiscalSubstituta>
<ns2:linkPdfSubstituta>https://notas.prefeitura.gov.br/pdf/NF-198955.pdf</ns2:linkPdfSubstituta>
</ns2:ConsultarStatusDpsCancelamentoSubstituicaoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Se a substituição resultou em erro:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsCancelamentoSubstituicaoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Processado com erro</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-12T10:54:56.294-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>35e5d630-896e-4d22-a563-b57a7793eada</ns2:protocolo>
<ns2:mensagemErro>Mensagem de erro</ns2:mensagemErro>
<ns2:idCancelamentoSubstituicao>daa968e6-f1a7-4a15-b3ad-bfe473232239</ns2:idCancelamentoSubstituicao>
</ns2:ConsultarStatusDpsCancelamentoSubstituicaoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Se a substituição está pendente de validação:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns2:ConsultarStatusDpsCancelamentoSubstituicaoResposta xmlns:ns2="http://www.betha.com.br/e-nota-dps">
<ns2:statusProcessamento>Aguardando validação do ambiente nacional</ns2:statusProcessamento>
<ns2:dataHoraRecebimento>2025-11-12T10:54:56.294-03:00</ns2:dataHoraRecebimento>
<ns2:protocolo>35e5d630-896e-4d22-a563-b57a7793eada</ns2:protocolo>
<ns2:idCancelamentoSubstituicao>daa968e6-f1a7-4a15-b3ad-bfe473232239</ns2:idCancelamentoSubstituicao>
</ns2:ConsultarStatusDpsCancelamentoSubstituicaoResposta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

1.5 Estrutura do XSD

É possível usar a seguinte URL (via navegador/GET no Postman) para consultar a estrutura de XSD que é usada pelo web service:

  • https://nota-eletronica.betha.cloud/dps/ws/schemas/nfse_dps_v01.xsd (Prod)

Ao realizar a consulta, você verá o seguinte XSD:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
targetNamespace="http://www.betha.com.br/e-nota-dps"
xmlns:dps="http://www.betha.com.br/e-nota-dps"
elementFormDefault="qualified">
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="extras/xmldsig-core-schema_v01.xsd"/>
<xs:element name="RecepcionarDpsEnvio">
<xs:complexType>
<xs:sequence>
<xs:element name="DPS" type="dps:TDPS"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RecepcionarDpsResposta">
<xs:complexType>
<xs:sequence>
<xs:element name="protocolo" type="xs:string"/>
<xs:element name="dhRecebimento" type="xs:dateTime"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="listaMensagens" type="dps:TListaMensagens" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ConsultarDpsEnvio">
<xs:complexType>
<xs:sequence>
<xs:element name="protocolo" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ConsultarDpsResposta">
<xs:complexType>
<xs:sequence>
<xs:element name="protocolo" type="xs:string"/>
<xs:element name="dhRecebimento" type="xs:dateTime"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="listaMensagens" type="dps:TListaMensagens" minOccurs="0"/>
<xs:element name="idDps" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Tipos Complexos -->
<xs:complexType name="TDPS">
<xs:sequence>
<xs:element name="infDPS" type="dps:TInfDPS"/>
<xs:element ref="ds:Signature" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="versao" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TInfDPS">
<xs:sequence>
<xs:element name="tpAmb" type="dps:TTipoAmbiente"/>
<xs:element name="dhEmi" type="xs:dateTime"/>
<xs:element name="verAplic" type="xs:string"/>
<xs:element name="serie" type="dps:TSerie"/>
<xs:element name="nDPS" type="dps:TNumeroDPS"/>
<xs:element name="dCompet" type="xs:date"/>
<xs:element name="tpEmit" type="dps:TTipoEmitente"/>
<xs:element name="cMotivoEmisTI" type="xs:int" minOccurs="0"/>
<xs:element name="chNFSeRej" type="xs:string" minOccurs="0"/>
<xs:element name="cLocEmi" type="dps:TCodigoIbge"/>
<xs:element name="subst" type="dps:TSubstituicao" minOccurs="0"/>
<xs:element name="prest" type="dps:TPrestador"/>
<xs:element name="toma" type="dps:TTomador" minOccurs="0"/>
<xs:element name="interm" type="dps:TIntermediario" minOccurs="0"/>
<xs:element name="serv" type="dps:TServico"/>
<xs:element name="valores" type="dps:TValores"/>
<xs:element name="IBSCBS" type="dps:TIBSCBS" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TSubstituicao">
<xs:sequence>
<xs:element name="chSubstda" type="xs:string"/>
<xs:element name="cMotivo" type="xs:int"/>
<xs:element name="xMotivo" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TPrestador">
<xs:sequence>
<xs:choice>
<xs:element name="CNPJ" type="dps:TCnpj"/>
<xs:element name="CPF" type="dps:TCpf"/>
<xs:element name="NIF" type="xs:string"/>
</xs:choice>
<xs:element name="cNaoNIF" type="xs:int" minOccurs="0"/>
<xs:element name="CAEPF" type="xs:string" minOccurs="0"/>
<xs:element name="IM" type="xs:string" minOccurs="0"/>
<xs:element name="xNome" type="xs:string" minOccurs="0"/>
<xs:element name="xFant" type="xs:string" minOccurs="0"/>
<xs:element name="end" type="dps:TEndereco" minOccurs="0"/>
<xs:element name="fone" type="xs:string" minOccurs="0"/>
<xs:element name="email" type="xs:string" minOccurs="0"/>
<xs:element name="regTrib" type="dps:TRegimeTributario"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TTomador">
<xs:sequence>
<xs:choice>
<xs:element name="CNPJ" type="dps:TCnpj"/>
<xs:element name="CPF" type="dps:TCpf"/>
<xs:element name="NIF" type="xs:string"/>
</xs:choice>
<xs:element name="cNaoNIF" type="xs:int" minOccurs="0"/>
<xs:element name="CAEPF" type="xs:string" minOccurs="0"/>
<xs:element name="IM" type="xs:string" minOccurs="0"/>
<xs:element name="xNome" type="xs:string"/>
<xs:element name="end" type="dps:TEndereco" minOccurs="0"/>
<xs:element name="fone" type="xs:string" minOccurs="0"/>
<xs:element name="email" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TIntermediario">
<xs:sequence>
<xs:choice>
<xs:element name="CNPJ" type="dps:TCnpj"/>
<xs:element name="CPF" type="dps:TCpf"/>
<xs:element name="NIF" type="xs:string"/>
</xs:choice>
<xs:element name="cNaoNIF" type="xs:int" minOccurs="0"/>
<xs:element name="CAEPF" type="xs:string" minOccurs="0"/>
<xs:element name="IM" type="xs:string" minOccurs="0"/>
<xs:element name="xNome" type="xs:string"/>
<xs:element name="end" type="dps:TEndereco" minOccurs="0"/>
<xs:element name="fone" type="xs:string" minOccurs="0"/>
<xs:element name="email" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TEndereco">
<xs:sequence>
<xs:choice>
<xs:element name="endNac" type="dps:TEnderecoNacional"/>
<xs:element name="endExt" type="dps:TEnderecoExterior"/>
</xs:choice>
<xs:element name="xLgr" type="xs:string"/>
<xs:element name="nro" type="xs:string"/>
<xs:element name="xCpl" type="xs:string" minOccurs="0"/>
<xs:element name="xBairro" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TEnderecoNacional">
<xs:sequence>
<xs:element name="cMun" type="xs:string"/>
<xs:element name="CEP" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TEnderecoExterior">
<xs:sequence>
<xs:element name="cPais" type="xs:string"/>
<xs:element name="cEndPost">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="11"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="xCidade" type="xs:string"/>
<xs:element name="xEstProvReg" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TRegimeTributario">
<xs:sequence>
<xs:element name="opSimpNac" type="xs:int"/>
<xs:element name="regApTribSN" type="xs:int" minOccurs="0"/>
<xs:element name="regEspTrib" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TServico">
<xs:sequence>
<xs:element name="locPrest" type="dps:TLocalPrestacao"/>
<xs:element name="cServ" type="dps:TCodigoServico"/>
<xs:element name="comExt" type="dps:TComercioExterior" minOccurs="0"/>
<xs:element name="obra" type="dps:TObra" minOccurs="0"/>
<xs:element name="atvEvento" type="dps:TAtividadeEvento" minOccurs="0"/>
<xs:element name="infoCompl" type="dps:TInformacoesComplementares" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TLocalPrestacao">
<xs:choice>
<xs:element name="cLocPrestacao" type="dps:TCodigoIbge"/>
<xs:element name="cPaisPrestacao" type="xs:string"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="TCodigoServico">
<xs:sequence>
<xs:element name="cTribNac" type="dps:TCodigoTribNac"/>
<xs:element name="cTribMun" type="xs:string" minOccurs="0"/>
<xs:element name="xDescServ" type="xs:string"/>
<xs:element name="cNBS" type="dps:TCodigoNBS"/>
<xs:element name="cIntContrib" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TComercioExterior">
<xs:sequence>
<xs:element name="mdPrestacao" type="xs:int"/>
<xs:element name="vincPrest" type="xs:int"/>
<xs:element name="tpMoeda" type="xs:string"/>
<xs:element name="vServMoeda" type="xs:decimal"/>
<xs:element name="mecAFComexP">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="mecAFComexT">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="26"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="movTempBens">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="3"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="nDI" type="xs:string" minOccurs="0"/>
<xs:element name="nRE" type="xs:string" minOccurs="0"/>
<xs:element name="mdic" type="xs:int"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TObra">
<xs:sequence>
<xs:element name="inscImobFisc" type="xs:string" minOccurs="0"/>
<xs:choice>
<xs:element name="cObra" type="xs:string"/>
<xs:element name="cCIB" type="xs:string"/>
</xs:choice>
<xs:element name="end" type="dps:TEnderecoObra"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TEnderecoObra">
<xs:sequence>
<xs:choice>
<xs:element name="CEP" type="xs:string"/>
<xs:element name="endExt" type="dps:TEnderecoExterior"/>
</xs:choice>
<xs:element name="xLgr" type="xs:string"/>
<xs:element name="nro" type="xs:string"/>
<xs:element name="xCpl" type="xs:string" minOccurs="0"/>
<xs:element name="xBairro" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TAtividadeEvento">
<xs:sequence>
<xs:element name="xNome" type="xs:string"/>
<xs:element name="dtIni" type="xs:date"/>
<xs:element name="dtFim" type="xs:date"/>
<xs:choice>
<xs:element name="idAtvEvt" type="xs:string"/>
<xs:element name="end" type="dps:TEnderecoEvento"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TEnderecoEvento">
<xs:sequence>
<xs:choice>
<xs:element name="CEP" type="xs:string"/>
<xs:element name="endExt" type="dps:TEnderecoExterior"/>
</xs:choice>
<xs:element name="xLgr" type="xs:string"/>
<xs:element name="nro" type="xs:string"/>
<xs:element name="xCpl" type="xs:string" minOccurs="0"/>
<xs:element name="xBairro" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TInformacoesComplementares">
<xs:sequence>
<xs:element name="idDocTec" type="xs:string" minOccurs="0"/>
<xs:element name="docRef" type="xs:string" minOccurs="0"/>
<xs:element name="xPed" type="xs:string" minOccurs="0"/>
<xs:element name="xInfComp" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TValores">
<xs:sequence>
<xs:element name="vServPrest" type="dps:TValoresServico"/>
<xs:element name="vDescCondIncond" type="dps:TDescontos" minOccurs="0"/>
<xs:element name="vDedRed" type="dps:TDeducoes" minOccurs="0"/>
<xs:element name="trib" type="dps:TTributacao"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TValoresServico">
<xs:sequence>
<xs:element name="vReceb" type="xs:decimal" minOccurs="0"/>
<xs:element name="vServ" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TDescontos">
<xs:sequence>
<xs:element name="vDescIncond" type="xs:decimal" minOccurs="0"/>
<xs:element name="vDescCond" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TDeducoes">
<xs:choice>
<xs:element name="pDR" type="xs:decimal"/>
<xs:element name="vDR" type="xs:decimal"/>
<xs:element name="documentos" type="dps:TDocumentosDeducao"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="TDocumentosDeducao">
<xs:sequence>
<xs:element name="docDedRed" type="dps:TDocumentoDeducao" maxOccurs="1000"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TDocumentoDeducao">
<xs:sequence>
<xs:choice>
<xs:element name="chNFSe" type="xs:string"/>
<xs:element name="chNFe" type="xs:string"/>
<xs:element name="NFSeMun" type="dps:TNFSeMunicipal"/>
<xs:element name="NFNFS" type="dps:TNFNFS"/>
<xs:element name="nDocFisc" type="xs:string"/>
<xs:element name="nDoc" type="xs:string"/>
</xs:choice>
<xs:element name="tpDedRed" type="xs:int"/>
<xs:element name="xDescOutDed" type="xs:string" minOccurs="0"/>
<xs:element name="dtEmiDoc" type="xs:date"/>
<xs:element name="vDedutivelRedutivel" type="xs:decimal"/>
<xs:element name="vDeducaoReducao" type="xs:decimal"/>
<xs:element name="fornec" type="dps:TFornecedor" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TNFSeMunicipal">
<xs:sequence>
<xs:element name="cMunNFSeMun" type="xs:string"/>
<xs:element name="nNFSeMun" type="xs:string"/>
<xs:element name="cVerifNFSeMun" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TNFNFS">
<xs:sequence>
<xs:element name="nNFS" type="xs:string"/>
<xs:element name="modNFS" type="xs:string"/>
<xs:element name="serieNFS" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TFornecedor">
<xs:sequence>
<xs:choice>
<xs:element name="CNPJ" type="dps:TCnpj"/>
<xs:element name="CPF" type="dps:TCpf"/>
<xs:element name="NIF" type="xs:string"/>
</xs:choice>
<xs:element name="cNaoNIF" type="xs:int" minOccurs="0"/>
<xs:element name="CAEPF" type="xs:string" minOccurs="0"/>
<xs:element name="IM" type="xs:string" minOccurs="0"/>
<xs:element name="xNome" type="xs:string"/>
<xs:element name="end" type="dps:TEndereco" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TTributacao">
<xs:sequence>
<xs:element name="tribMun" type="dps:TTributacaoMunicipal"/>
<xs:element name="tribFed" type="dps:TTributacaoFederal" minOccurs="0"/>
<xs:element name="totTrib" type="dps:TTotalTributos"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TTributacaoMunicipal">
<xs:sequence>
<xs:element name="tribISSQN" type="xs:int"/>
<xs:element name="cPaisResult" type="xs:string" minOccurs="0"/>
<xs:element name="BM" type="dps:TBeneficioMunicipal" minOccurs="0"/>
<xs:element name="exigSusp" type="dps:TExigibilidadeSuspensa" minOccurs="0"/>
<xs:element name="tpImunidade" type="xs:int" minOccurs="0"/>
<xs:element name="pAliq" type="xs:decimal" minOccurs="0"/>
<xs:element name="tpRetISSQN" type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TBeneficioMunicipal">
<xs:sequence>
<xs:element name="nBM" type="xs:string"/>
<xs:element name="vRedBCBM" type="xs:decimal" minOccurs="0"/>
<xs:element name="pRedBCBM" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TExigibilidadeSuspensa">
<xs:sequence>
<xs:element name="tpSusp" type="xs:int"/>
<xs:element name="nProcesso" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TTributacaoFederal">
<xs:sequence>
<xs:element name="piscofins" type="dps:TPisCofins" minOccurs="0"/>
<xs:element name="vRetCP" type="xs:decimal" minOccurs="0"/>
<xs:element name="vRetIRRF" type="xs:decimal" minOccurs="0"/>
<xs:element name="vRetCSLL" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TPisCofins">
<xs:sequence>
<xs:element name="CST" type="xs:int"/>
<xs:element name="vBCPisCofins" type="xs:decimal" minOccurs="0"/>
<xs:element name="pAliqPis" type="xs:decimal" minOccurs="0"/>
<xs:element name="pAliqCofins" type="xs:decimal" minOccurs="0"/>
<xs:element name="vPis" type="xs:decimal" minOccurs="0"/>
<xs:element name="vCofins" type="xs:decimal" minOccurs="0"/>
<xs:element name="tpRetPisCofins" type="xs:int" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TTotalTributos">
<xs:sequence>
<xs:choice minOccurs="0">
<xs:element name="vTotTrib" type="dps:TValorTotalTributos"/>
<xs:element name="pTotTrib" type="dps:TPercentualTotalTributos"/>
</xs:choice>
<xs:element name="indTotTrib" type="xs:int" minOccurs="0"/>
<xs:element name="pTotTribSN" type="xs:decimal" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TValorTotalTributos">
<xs:sequence>
<xs:element name="vTotTribFed" type="xs:decimal"/>
<xs:element name="vTotTribEst" type="xs:decimal"/>
<xs:element name="vTotTribMun" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TPercentualTotalTributos">
<xs:sequence>
<xs:element name="pTotTribFed" type="xs:decimal"/>
<xs:element name="pTotTribEst" type="xs:decimal"/>
<xs:element name="pTotTribMun" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TIBSCBS">
<xs:sequence>
<xs:element name="finNFSe" type="xs:int"/>
<xs:element name="indFinal" type="xs:int"/>
<xs:element name="cIndOp" type="xs:string"/>
<xs:element name="tpOper" type="xs:int" minOccurs="0"/>
<xs:element name="tpEnteGov" type="xs:int" minOccurs="0"/>
<xs:element name="xTpEnteGov" type="xs:string" minOccurs="0"/>
<xs:element name="indPessoas" type="xs:int"/>
<xs:element name="dest" type="dps:TDestinatario" minOccurs="0"/>
<xs:element name="adq" type="dps:TAdquirente" minOccurs="0"/>
<xs:element name="valores" type="dps:TValoresIBSCBS"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TDestinatario">
<xs:sequence>
<xs:choice>
<xs:element name="CNPJ" type="dps:TCnpj"/>
<xs:element name="CPF" type="dps:TCpf"/>
<xs:element name="NIF" type="xs:string"/>
</xs:choice>
<xs:element name="cNaoNIF" type="xs:int" minOccurs="0"/>
<xs:element name="xNome" type="xs:string"/>
<xs:element name="end" type="dps:TEndereco" minOccurs="0"/>
<xs:element name="fone" type="xs:string" minOccurs="0"/>
<xs:element name="email" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TAdquirente">
<xs:sequence>
<xs:choice>
<xs:element name="CNPJ" type="dps:TCnpj"/>
<xs:element name="CPF" type="dps:TCpf"/>
<xs:element name="NIF" type="xs:string"/>
</xs:choice>
<xs:element name="cNaoNIF" type="xs:int" minOccurs="0"/>
<xs:element name="xNome" type="xs:string"/>
<xs:element name="end" type="dps:TEndereco" minOccurs="0"/>
<xs:element name="fone" type="xs:string" minOccurs="0"/>
<xs:element name="email" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TValoresIBSCBS">
<xs:sequence>
<xs:element name="trib" type="dps:TTributacaoIBSCBS"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TTributacaoIBSCBS">
<xs:sequence>
<xs:element name="gIBSCBS" type="dps:TGrupoIBSCBS"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TGrupoIBSCBS">
<xs:sequence>
<xs:element name="CST" type="xs:string"/>
<xs:element name="cClassTrib" type="xs:string"/>
<xs:element name="cCredPres" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TListaMensagens">
<xs:sequence>
<xs:element name="mensagem" type="dps:TMensagem" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TMensagem">
<xs:sequence>
<xs:element name="codigo" type="xs:string"/>
<xs:element name="mensagem" type="xs:string"/>
<xs:element name="correcao" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!-- Tipos Simples -->
<xs:simpleType name="TTipoAmbiente">
<xs:restriction base="xs:int">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TTipoEmitente">
<xs:restriction base="xs:int">
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
<xs:enumeration value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TCNaoNIF">
<xs:restriction base="xs:int">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
<xs:enumeration value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TCnpj">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{14}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TCpf">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{11}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TCodigoTribNac">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{6}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TCodigoNBS">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{9}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TNumeroDPS">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{1,15}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TSerie">
<xs:restriction base="xs:string">
<xs:maxLength value="5"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TInscImobFisc">
<xs:restriction base="xs:string">
<xs:maxLength value="30"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TEndPostal">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="11"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TCidade">
<xs:restriction base="xs:string">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TEstProvReg">
<xs:restriction base="xs:string">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TNumeroObra">
<xs:restriction base="xs:string">
<xs:maxLength value="60"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TComplementoObra">
<xs:restriction base="xs:string">
<xs:maxLength value="156"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TMecAFComexP">
<xs:restriction base="xs:string">
<xs:pattern value="0[0-8]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TMecAFComexT">
<xs:restriction base="xs:string">
<xs:pattern value="0[0-9]|1[0-9]|2[0-6]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TCodigoIbge">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{7}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TCpfCnpj">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{11}|[0-9]{14}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TTipoIntegracao">
<xs:restriction base="xs:string">
<xs:enumeration value="EMISSAO"/>
<xs:enumeration value="CANCELAMENTO"/>
<xs:enumeration value="CANCELAMENTO_POR_SUBSTITUICAO"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================= -->
<!-- CONSULTA STATUS DPS -->
<!-- ========================================= -->
<xs:element name="ConsultarStatusDpsEnvio">
<xs:complexType>
<xs:sequence>
<xs:element name="tpAmb" type="dps:TTipoAmbiente"/>
<xs:element name="codigoIbge" type="dps:TCodigoIbge"/>
<xs:element name="cpfCnpjPrestador" type="dps:TCpfCnpj"/>
<xs:element name="protocolo" type="xs:string"/>
<xs:element name="tipoIntegracao" type="dps:TTipoIntegracao"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ConsultarStatusDpsResposta">
<xs:complexType>
<xs:sequence>
<xs:element name="statusProcessamento" type="xs:string"/>
<xs:element name="dataHoraRecebimento" type="xs:dateTime"/>
<xs:element name="protocolo" type="xs:string"/>
<xs:element name="listaMensagens" type="dps:TListaMensagens" minOccurs="0"/>
<xs:element name="emissao" type="dps:TDadosEmissao" minOccurs="0"/>
<xs:element name="cancelamento" type="dps:TDadosCancelamento" minOccurs="0"/>
<xs:element name="cancelamentoSubstituicao" type="dps:TDadosCancelamentoSubstituicao" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="TDadosEmissao">
<xs:sequence>
<xs:element name="idDps" type="xs:string"/>
<xs:element name="chaveAcesso" type="xs:string" minOccurs="0"/>
<xs:element name="numeroDps" type="xs:string" minOccurs="0"/>
<xs:element name="serieDps" type="xs:string" minOccurs="0"/>
<xs:element name="numeroNotaFiscal" type="xs:string" minOccurs="0"/>
<xs:element name="linkPdf" type="xs:anyURI" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TDadosCancelamento">
<xs:sequence>
<xs:element name="idCancelamento" type="xs:string"/>
<xs:element name="chaveAcesso" type="xs:string" minOccurs="0"/>
<xs:element name="numeroNotaFiscal" type="xs:string" minOccurs="0"/>
<xs:element name="linkPdf" type="xs:anyURI" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TDadosCancelamentoSubstituicao">
<xs:sequence>
<xs:element name="idCancelamentoSubstituicao" type="xs:string"/>
<xs:element name="chaveAcessoSubstituida" type="xs:string" minOccurs="0"/>
<xs:element name="numeroNotaFiscalSubstituida" type="xs:string" minOccurs="0"/>
<xs:element name="linkPdfSubstituida" type="xs:anyURI" minOccurs="0"/>
<xs:element name="chaveAcessoSubstituta" type="xs:string" minOccurs="0"/>
<xs:element name="numeroNotaFiscalSubstituta" type="xs:string" minOccurs="0"/>
<xs:element name="linkPdfSubstituta" type="xs:anyURI" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!-- ========================================= -->
<!-- EVENTO CANCELAMENTO -->
<!-- ========================================= -->
<xs:element name="RecepcionarEventoCancelamentoEnvio">
<xs:complexType>
<xs:sequence>
<xs:element name="evento" type="dps:TEventoCancelamento"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RecepcionarEventoCancelamentoResposta">
<xs:complexType>
<xs:sequence>
<xs:element name="protocolo" type="xs:string"/>
<xs:element name="dhRecebimento" type="xs:dateTime"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="idEvento" type="xs:string" minOccurs="0"/>
<xs:element name="listaMensagens" type="dps:TListaMensagens" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="TEventoCancelamento">
<xs:sequence>
<xs:element name="infEvento" type="dps:TInfEventoCancelamento"/>
<xs:element ref="ds:Signature" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="versao" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TInfEventoCancelamento">
<xs:sequence>
<xs:element name="verAplic" type="xs:string" minOccurs="0"/>
<xs:element name="ambGer" type="xs:int" minOccurs="0"/>
<xs:element name="nSeqEvento" type="xs:int" minOccurs="0"/>
<xs:element name="dhProc" type="xs:dateTime" minOccurs="0"/>
<xs:element name="nDFe" type="xs:string" minOccurs="0"/>
<xs:element name="pedRegEvento" type="dps:TPedRegEventoCancelamento"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TPedRegEventoCancelamento">
<xs:sequence>
<xs:element name="infPedReg" type="dps:TInfPedRegCancelamento"/>
</xs:sequence>
<xs:attribute name="versao" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TInfPedRegCancelamento">
<xs:sequence>
<xs:element name="chNFSe" type="dps:TChNFSe"/>
<xs:element name="CNPJAutor" type="dps:TCnpj" minOccurs="0"/>
<xs:element name="CPFAutor" type="dps:TCpf" minOccurs="0"/>
<xs:element name="dhEvento" type="xs:dateTime"/>
<xs:element name="tpAmb" type="xs:int"/>
<xs:element name="verAplic" type="xs:string"/>
<xs:element name="e101101" type="dps:TE101101"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TE101101">
<xs:sequence>
<xs:element name="xDesc" type="xs:string"/>
<xs:element name="cMotivo" type="xs:int"/>
<xs:element name="xMotivo" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="TChNFSe">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{50}"/>
</xs:restriction>
</xs:simpleType>
<!-- ========================================= -->
<!-- EVENTO SUBSTITUICAO -->
<!-- ========================================= -->
<xs:element name="RecepcionarEventoSubstituicaoEnvio">
<xs:complexType>
<xs:sequence>
<xs:element name="evento" type="dps:TEventoSubstituicao"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RecepcionarEventoSubstituicaoResposta">
<xs:complexType>
<xs:sequence>
<xs:element name="protocolo" type="xs:string"/>
<xs:element name="dhRecebimento" type="xs:dateTime"/>
<xs:element name="status" type="xs:string"/>
<xs:element name="idEvento" type="xs:string" minOccurs="0"/>
<xs:element name="listaMensagens" type="dps:TListaMensagens" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="TEventoSubstituicao">
<xs:sequence>
<xs:element name="infEvento" type="dps:TInfEventoSubstituicao"/>
<xs:element ref="ds:Signature" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="versao" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TInfEventoSubstituicao">
<xs:sequence>
<xs:element name="verAplic" type="xs:string" minOccurs="0"/>
<xs:element name="ambGer" type="xs:int" minOccurs="0"/>
<xs:element name="nSeqEvento" type="xs:int" minOccurs="0"/>
<xs:element name="dhProc" type="xs:dateTime" minOccurs="0"/>
<xs:element name="nDFe" type="xs:string" minOccurs="0"/>
<xs:element name="pedRegEvento" type="dps:TPedRegEventoSubstituicao"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TPedRegEventoSubstituicao">
<xs:sequence>
<xs:element name="infPedReg" type="dps:TInfPedRegSubstituicao"/>
</xs:sequence>
<xs:attribute name="versao" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TInfPedRegSubstituicao">
<xs:sequence>
<xs:element name="chNFSe" type="dps:TChNFSe"/>
<xs:element name="CNPJAutor" type="dps:TCnpj" minOccurs="0"/>
<xs:element name="CPFAutor" type="dps:TCpf" minOccurs="0"/>
<xs:element name="dhEvento" type="xs:dateTime"/>
<xs:element name="tpAmb" type="xs:int"/>
<xs:element name="verAplic" type="xs:string"/>
<xs:element name="e105102" type="dps:TE105102"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
<xs:complexType name="TE105102">
<xs:sequence>
<xs:element name="xDesc" type="xs:string"/>
<xs:element name="cMotivo" type="xs:int"/>
<xs:element name="xMotivo" type="xs:string" minOccurs="0"/>
<xs:element name="chSubstituta" type="dps:TChNFSe"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
```

OBS: Todos os eventos estão no mesmo XSD, além de atributos que são de uso compartilhado entre eles.

2. Erros

A seguir estarão os erros mapeados, juntamente com a mensagem e a solução do erro.

CódigoMensagem de erroOrientaçãoCategoria
E001XML mal formadoVerifique a estrutura do XMLErros de Estrutura XML
E001AProtocolo ausenteInforme o protocoloErros de Estrutura XML
E002Assinatura digital ausenteAssine digitalmente a DPS antes de enviarErros de Estrutura XML
E003Certificado digital inválidoUtilize certificado ICP-Brasil válidoErros de Estrutura XML
E004Certificado digital expiradoRenove o certificado digitalErros de Estrutura XML
E005CNPJ/CPF do certificado não corresponde ao prestadorUtilize certificado do prestador ou matriz/filialErros de Estrutura XML
E006Campo chNFSe é obrigatórioInforme a chave de acesso da NFS-eErros de Estrutura XML
E007Campo chNFSe inválidoVerifique a chave de acesso informadaErros de Estrutura XML
E008Campo CNPJAutor ou CPFAutor é obrigatórioInforme o CNPJ ou CPF do autorErros de Estrutura XML
E009Campo chSubstituta é obrigatórioInforme a chave da NFS-e substitutaErros de Estrutura XML
E010Campo tpAmb é obrigatórioInforme 1 para Produção ou 2 para HomologaçãoErros de Campos Obrigatórios
E011Campo tpAmb inválidoInforme 1 para Produção ou 2 para HomologaçãoErros de Campos Obrigatórios
E012Campo tpEmit é obrigatórioInforme o tipo de emitenteErros de Campos Obrigatórios
E013Campo tpEmit inválidoApenas tpEmit=1 (Prestador) é aceitoErros de Campos Obrigatórios
E013ACampo chSubstituta inválidaVerifique a chave de acesso da substitutaErros de Campos Obrigatórios
E014Campo dhEmi é obrigatórioInforme a data/hora de emissãoErros de Campos Obrigatórios
E015Campo verAplic é obrigatórioInforme a versão do aplicativoErros de Campos Obrigatórios
E0151Versão não informadaInforme a versãoErros de Campos Obrigatórios
E0152Versão está em brancoInforme a versãoErros de Campos Obrigatórios
E0153Versão deve conter apenas números e ponto (ex: 1, 1.0, 1.23)Revise a versão e retire caracteres inválidosErros de Campos Obrigatórios
E0154Versão deve estar entre 0 e 9999Revise a versãoErros de Campos Obrigatórios
E0155O valor decimal da Versão deve estar entre 0 e 99Revise a versãoErros de Campos Obrigatórios
E015Campo verAplic inválidoO campo verAplic deve ter entre 1 e 20 caracteresErros de Campos Obrigatórios
E015ACampo cMotivo é obrigatórioInforme o código do motivoErros de Campos Obrigatórios
E015BCampo cMotivo inválidoInforme um código de motivo válidoErros de Campos Obrigatórios
E015CCampo xMotivo é obrigatórioInforme a justificativa no campo xMotivoErros de Campos Obrigatórios
E016Campo serie é obrigatórioInforme a série da DPSErros de Campos Obrigatórios
E017Campo nDPS é obrigatórioInforme o número da DPSErros de Campos Obrigatórios
E018Campo dCompet é obrigatórioInforme a data de competênciaErros de Campos Obrigatórios
E019Campo cLocEmi é obrigatórioInforme o código da localidade emissoraErros de Campos Obrigatórios
E020Dados do prestador são obrigatóriosInforme os dados do prestadorErros de Prestador
E021CNPJ ou CPF do prestador é obrigatórioInforme CNPJ ou CPF do prestadorErros de Prestador
E021ADados do prestador inválidosVerifique os dados informadosErros de Prestador
E021BMultiplos campos de identificação encontradosEscolha entre CPF, CNPJ ou NIFErros de Prestador
E022CNPJ do prestador inválidoCNPJ deve ter exatamente 14 dígitosErros de Prestador
E023CPF do prestador inválidoCPF deve ter exatamente 11 dígitosErros de Prestador
E023AIM do prestador inválidoIM deve ter no máximo 15 caracteresErros de Prestador
E023BNome do prestador inválidoxNome deve ter no máximo 150 caracteresErros de Prestador
E023CTelefone do prestador inválidoFone deve ter entre 6 e 20 caracteresErros de Prestador
E023DEmail do prestador inválidoEmail deve ter no máximo 80 caracteresErros de Prestador
E024Regime tributário é obrigatórioInforme o regime tributário do prestadorErros de Prestador
E030Dados do serviço são obrigatóriosInforme os dados do serviço prestadoErros de Serviço
E031Código de tributação nacional é obrigatórioInforme o código de tributação nacionalErros de Serviço
E031ACódigo de tributação municipal identificado mas com padrão erradoCódigo de tributação municipal deve conter exatamente 3 caracteresErros de Serviço
E032Descrição do serviço é obrigatóriaInforme a descrição do serviçoErros de Serviço
E033Código NBS é obrigatórioInforme o código NBSErros de Serviço
E034Local de prestação é obrigatórioInforme o local de prestação do serviçoErros de Serviço
E035Tipo de Integração desconhecidoVerifique se o tipo de integração está corretoErros de Serviço
E036Código IBGE inválidoCódigo do IBGE tem 7 dígitosErros de Serviço
E040Valor do serviço é obrigatórioInforme o valor do serviçoErros de Valores
E041Valor do serviço deve ser maior que zeroInforme um valor válidoErros de Valores
E042Tributação do ISSQN é obrigatóriaInforme a tributação do ISSQNErros de Valores
E050DPS já recepcionada anteriormenteO ID da DPS não pode ser reutilizadoErros de Duplicidade
E051ID da DPS duplicadoO ID informado já existeErros de Duplicidade
E052Número e série da DPS duplicadosEsta combinação já foi utilizadaErros de Duplicidade
E060Data de competência inválidaA data de competência não pode ser futuraErros de Validação de Negócio
E061Data de emissão inválidaA data de emissão não pode ser futuraErros de Validação de Negócio
E062Certificado não é ICP-BrasilUtilize certificado ICP-Brasil A1 ou A3Erros de Validação de Negócio
E064NFS-e não encontradaA NFS-e informada não existeErros de Validação de Negócio
E065NFS-e substituta não encontradaA NFS-e substituta informada não existeErros de Validação de Negócio
E070Não há nenhuma DPS com os dados utilizadosVerifique os dados novamenteErros de banco de dados
E080Finalidade da NFS-e inválidaInforme valores válidosErros do Grupo IBSCBS
E089Identificação do destinatário é obrigatóriaInforme CNPJ, CPF ou NIFErros de Destinatário
E090CNPJ do tomador inválidoCNPJ deve ter exatamente 14 dígitosErros de Destinatário
E091CPF do tomador inválidoCPF deve ter exatamente 11 dígitosErros de Destinatário
E094Nome do destinatário é obrigatórioInforme o nome ou razão socialErros de Destinatário
E099Código do país inválidoInforme código ISO 3166Erros de Destinatário
E900O processo de cancelamento via WS está temporariamente indisponívelO mesmo será disponibilizado em breveErros Genéricos
E901O processo de substituição via WS está temporariamente indisponívelO mesmo será disponibilizado em breveErros Genéricos
E999Erro interno no processamentoContate o suporte técnicoErros Genéricos
E70Inscrição Municipal do prestador divergenteInforme a IM corretaRegras de negócio do RPS reaproveitadas na DPS

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.