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.
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ão | Data | Autor | Tipo de alteração |
|---|---|---|---|
| 1.0.0 | 18/11/2025 | Douglas Felipe da Silva | Disponibilizado primeira versão do documento |
| 1.1.0 | 18/11/2025 | Lucas Coelho | Correções críticas e melhorias |
| 1.1.5 | 19/11/2025 | Douglas Felipe da Silva | Adição de mais exemplos para endpoints e informações de assinatura/certificado |
| 1.1.6 | 20/11/2025 | Douglas Felipe da Silva | Atualização do XML de envio para cancelamento e substituição e do WSDL |
| 1.7 | 07/01/2026 | Douglas Felipe da Silva | Atualizaçã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:
- ConsultarStatusDps
- RecepcionarDps
- RecepcionarEventoCancelamento
- 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:
- 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;
- 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:
- Extrair a chave pública do certificado;
- Verificar o prazo de validade do certificado utilizado;
- Montar e validar a cadeia de confiança dos certificados, validando também a LCR (Lista de Certificados Revogados) de cada certificado da cadeia;
- 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);
- Garantir que o certificado utilizado é de um usuário final e não de uma Autoridade Certificadora;
- Adotar as regras definidas pelo RFC 3280 para LCR e cadeia de confiança;
- Validar a integridade de todas as LCRs utilizadas pelo sistema;
- 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:
- A DPS, pelo contribuinte, antes do envio do mesmo;
- O pedido de cancelamento da NFS-e, pelo contribuinte;
- A confirmação de cancelamento da NFS-e, pela prefeitura;
- O pedido de cancelamento por substituição pelo contribuinte;
- 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
- URL onde consta todos os serviços: https://nota-eletronica.betha.cloud/dps/ws/schemas/nfse_dps_v01.xsd
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
- URL onde consta todos os serviços: https://nota-eletronica.betha.cloud/dps/ws/schemas/nfse_dps_v01.xsd
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:
| Tipo | Evento/Integração |
|---|---|
| EMISSAO | Emissão da DPS |
| CANCELAMENTO | Cancelamento |
| CANCELAMENTO_POR_SUBSTICAO | Cancelamento 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:
| Mensagem | Significado |
|---|---|
| Processado com sucesso | Ambiente nacional processou com sucesso |
| Processado com erro | Ambiente nacional processou com erro |
| Aguardando validação do ambiente nacional | Validaçã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ódigo | Mensagem de erro | Orientação | Categoria |
|---|---|---|---|
| E001 | XML mal formado | Verifique a estrutura do XML | Erros de Estrutura XML |
| E001A | Protocolo ausente | Informe o protocolo | Erros de Estrutura XML |
| E002 | Assinatura digital ausente | Assine digitalmente a DPS antes de enviar | Erros de Estrutura XML |
| E003 | Certificado digital inválido | Utilize certificado ICP-Brasil válido | Erros de Estrutura XML |
| E004 | Certificado digital expirado | Renove o certificado digital | Erros de Estrutura XML |
| E005 | CNPJ/CPF do certificado não corresponde ao prestador | Utilize certificado do prestador ou matriz/filial | Erros de Estrutura XML |
| E006 | Campo chNFSe é obrigatório | Informe a chave de acesso da NFS-e | Erros de Estrutura XML |
| E007 | Campo chNFSe inválido | Verifique a chave de acesso informada | Erros de Estrutura XML |
| E008 | Campo CNPJAutor ou CPFAutor é obrigatório | Informe o CNPJ ou CPF do autor | Erros de Estrutura XML |
| E009 | Campo chSubstituta é obrigatório | Informe a chave da NFS-e substituta | Erros de Estrutura XML |
| E010 | Campo tpAmb é obrigatório | Informe 1 para Produção ou 2 para Homologação | Erros de Campos Obrigatórios |
| E011 | Campo tpAmb inválido | Informe 1 para Produção ou 2 para Homologação | Erros de Campos Obrigatórios |
| E012 | Campo tpEmit é obrigatório | Informe o tipo de emitente | Erros de Campos Obrigatórios |
| E013 | Campo tpEmit inválido | Apenas tpEmit=1 (Prestador) é aceito | Erros de Campos Obrigatórios |
| E013A | Campo chSubstituta inválida | Verifique a chave de acesso da substituta | Erros de Campos Obrigatórios |
| E014 | Campo dhEmi é obrigatório | Informe a data/hora de emissão | Erros de Campos Obrigatórios |
| E015 | Campo verAplic é obrigatório | Informe a versão do aplicativo | Erros de Campos Obrigatórios |
| E0151 | Versão não informada | Informe a versão | Erros de Campos Obrigatórios |
| E0152 | Versão está em branco | Informe a versão | Erros de Campos Obrigatórios |
| E0153 | Versão deve conter apenas números e ponto (ex: 1, 1.0, 1.23) | Revise a versão e retire caracteres inválidos | Erros de Campos Obrigatórios |
| E0154 | Versão deve estar entre 0 e 9999 | Revise a versão | Erros de Campos Obrigatórios |
| E0155 | O valor decimal da Versão deve estar entre 0 e 99 | Revise a versão | Erros de Campos Obrigatórios |
| E015 | Campo verAplic inválido | O campo verAplic deve ter entre 1 e 20 caracteres | Erros de Campos Obrigatórios |
| E015A | Campo cMotivo é obrigatório | Informe o código do motivo | Erros de Campos Obrigatórios |
| E015B | Campo cMotivo inválido | Informe um código de motivo válido | Erros de Campos Obrigatórios |
| E015C | Campo xMotivo é obrigatório | Informe a justificativa no campo xMotivo | Erros de Campos Obrigatórios |
| E016 | Campo serie é obrigatório | Informe a série da DPS | Erros de Campos Obrigatórios |
| E017 | Campo nDPS é obrigatório | Informe o número da DPS | Erros de Campos Obrigatórios |
| E018 | Campo dCompet é obrigatório | Informe a data de competência | Erros de Campos Obrigatórios |
| E019 | Campo cLocEmi é obrigatório | Informe o código da localidade emissora | Erros de Campos Obrigatórios |
| E020 | Dados do prestador são obrigatórios | Informe os dados do prestador | Erros de Prestador |
| E021 | CNPJ ou CPF do prestador é obrigatório | Informe CNPJ ou CPF do prestador | Erros de Prestador |
| E021A | Dados do prestador inválidos | Verifique os dados informados | Erros de Prestador |
| E021B | Multiplos campos de identificação encontrados | Escolha entre CPF, CNPJ ou NIF | Erros de Prestador |
| E022 | CNPJ do prestador inválido | CNPJ deve ter exatamente 14 dígitos | Erros de Prestador |
| E023 | CPF do prestador inválido | CPF deve ter exatamente 11 dígitos | Erros de Prestador |
| E023A | IM do prestador inválido | IM deve ter no máximo 15 caracteres | Erros de Prestador |
| E023B | Nome do prestador inválido | xNome deve ter no máximo 150 caracteres | Erros de Prestador |
| E023C | Telefone do prestador inválido | Fone deve ter entre 6 e 20 caracteres | Erros de Prestador |
| E023D | Email do prestador inválido | Email deve ter no máximo 80 caracteres | Erros de Prestador |
| E024 | Regime tributário é obrigatório | Informe o regime tributário do prestador | Erros de Prestador |
| E030 | Dados do serviço são obrigatórios | Informe os dados do serviço prestado | Erros de Serviço |
| E031 | Código de tributação nacional é obrigatório | Informe o código de tributação nacional | Erros de Serviço |
| E031A | Código de tributação municipal identificado mas com padrão errado | Código de tributação municipal deve conter exatamente 3 caracteres | Erros de Serviço |
| E032 | Descrição do serviço é obrigatória | Informe a descrição do serviço | Erros de Serviço |
| E033 | Código NBS é obrigatório | Informe o código NBS | Erros de Serviço |
| E034 | Local de prestação é obrigatório | Informe o local de prestação do serviço | Erros de Serviço |
| E035 | Tipo de Integração desconhecido | Verifique se o tipo de integração está correto | Erros de Serviço |
| E036 | Código IBGE inválido | Código do IBGE tem 7 dígitos | Erros de Serviço |
| E040 | Valor do serviço é obrigatório | Informe o valor do serviço | Erros de Valores |
| E041 | Valor do serviço deve ser maior que zero | Informe um valor válido | Erros de Valores |
| E042 | Tributação do ISSQN é obrigatória | Informe a tributação do ISSQN | Erros de Valores |
| E050 | DPS já recepcionada anteriormente | O ID da DPS não pode ser reutilizado | Erros de Duplicidade |
| E051 | ID da DPS duplicado | O ID informado já existe | Erros de Duplicidade |
| E052 | Número e série da DPS duplicados | Esta combinação já foi utilizada | Erros de Duplicidade |
| E060 | Data de competência inválida | A data de competência não pode ser futura | Erros de Validação de Negócio |
| E061 | Data de emissão inválida | A data de emissão não pode ser futura | Erros de Validação de Negócio |
| E062 | Certificado não é ICP-Brasil | Utilize certificado ICP-Brasil A1 ou A3 | Erros de Validação de Negócio |
| E064 | NFS-e não encontrada | A NFS-e informada não existe | Erros de Validação de Negócio |
| E065 | NFS-e substituta não encontrada | A NFS-e substituta informada não existe | Erros de Validação de Negócio |
| E070 | Não há nenhuma DPS com os dados utilizados | Verifique os dados novamente | Erros de banco de dados |
| E080 | Finalidade da NFS-e inválida | Informe valores válidos | Erros do Grupo IBSCBS |
| E089 | Identificação do destinatário é obrigatória | Informe CNPJ, CPF ou NIF | Erros de Destinatário |
| E090 | CNPJ do tomador inválido | CNPJ deve ter exatamente 14 dígitos | Erros de Destinatário |
| E091 | CPF do tomador inválido | CPF deve ter exatamente 11 dígitos | Erros de Destinatário |
| E094 | Nome do destinatário é obrigatório | Informe o nome ou razão social | Erros de Destinatário |
| E099 | Código do país inválido | Informe código ISO 3166 | Erros de Destinatário |
| E900 | O processo de cancelamento via WS está temporariamente indisponível | O mesmo será disponibilizado em breve | Erros Genéricos |
| E901 | O processo de substituição via WS está temporariamente indisponível | O mesmo será disponibilizado em breve | Erros Genéricos |
| E999 | Erro interno no processamento | Contate o suporte técnico | Erros Genéricos |
| E70 | Inscrição Municipal do prestador divergente | Informe a IM correta | Regras 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.