Orientações sobre a Identificação e Referenciamento de Tags para Assinatura em XML

1,862 views
Skip to first unread message

wsnfsecampinas

unread,
Oct 23, 2024, 2:10:40 PM10/23/24
to wsnfsecampinas

Prezados,

Segue abaixo a orientação sobre como identificar as tags e referenciá-las corretamente para assinatura:


Para RPS Único
  • Identifique a tag <InfDeclaracaoPrestacaoServico> com um identificador único.
    Exemplo:
    <InfDeclaracaoPrestacaoServico Id="123456">
  • Imediatamente após o fechamento dessa tag </InfDeclaracaoPrestacaoServico>, deve vir a tag <Signature>.
  • Dentro da <Signature>, na tag <Reference>, é necessário referenciar o identificador da tag <InfDeclaracaoPrestacaoServico> utilizando o símbolo #.
    Exemplo:
    <Reference URI="#123456">

    Importante: Certifique-se de que o # esteja presente na referência.

Exemplo de Estrutura de XML - RPS Único:
<GerarNfse xmlns="http://nfse.abrasf.org.br"> <GerarNfseEnvio xmlns=""> <Rps> <InfDeclaracaoPrestacaoServico Id="123456"> <Rps> <IdentificacaoRps> <Numero></Numero> <Serie></Serie> <Tipo></Tipo> </IdentificacaoRps> <DataEmissao></DataEmissao> <Status></Status> </Rps> <Competencia></Competencia> <Servico> <Valores> <ValorServicos></ValorServicos> </Valores> <IssRetido></IssRetido> <ItemListaServico></ItemListaServico> <CodigoCnae></CodigoCnae> </Servico> <Prestador> <CpfCnpj> <Cnpj>0</Cnpj> </CpfCnpj> </Prestador> <Tomador> <IdentificacaoTomador> <CpfCnpj> <Cnpj></Cnpj> </CpfCnpj> </IdentificacaoTomador> <RazaoSocial></RazaoSocial> </Tomador> </InfDeclaracaoPrestacaoServico> <Signature Id="" xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <Reference URI="#123456"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>FDX6EweDXYxzeOx0G649</DigestValue> </Reference> </SignedInfo> </Signature> </Rps> </GerarNfseEnvio> </GerarNfse>

Para Lote de RPS
  • Identifique a tag <LoteRps> em vez da tag <InfDeclaracaoPrestacaoServico>.
    Exemplo:
    <LoteRps Id="78910">
  • Dentro da <Signature>, na tag <Reference>, referencie o identificador da tag <LoteRps>.
    Exemplo:
    <Reference URI="#78910">

    Importante: Não se esqueça do símbolo # na referência.

Exemplo de Estrutura de XML - Lote de RPS:
EnviarLoteRpsSincronoEnvio xmlns="http://www.abrasf.org.br/nfse.xsd"> <LoteRps Id="78910"> <NumeroLote></NumeroLote> <CpfCnpj> <Cnpj></Cnpj> </CpfCnpj> <QuantidadeRps></QuantidadeRps> <ListaRps> <Rps> <InfDeclaracaoPrestacaoServico> <Rps> <IdentificacaoRps> <Numero></Numero> <Serie></Serie> <Tipo></Tipo> </IdentificacaoRps> <DataEmissao></DataEmissao> <Status></Status> </Rps> <Competencia></Competencia> <Servico> <Valores> <ValorServicos></ValorServicos> </Valores> </Servico> </InfDeclaracaoPrestacaoServico> </Rps> </ListaRps> </LoteRps> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <Reference URI="#78910"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>SdRni4cFPzgmdIho/MM70AnSvuQ=</DigestValue> </Reference> </SignedInfo> </Signature> </EnviarLoteRpsSincronoEnvio>

Você pode utilizar estes sites para validar o seu xml assinado:
Message has been deleted

wsnfsecampinas

unread,
Dec 6, 2024, 8:53:34 AM12/6/24
to wsnfsecampinas
OBSERVAÇÃO IMPORTANTE SOBRE MÉTODOS DE CONSULTA
A ABRASF, e consequentemente o manual de integração utilizado como referência, não especifica a necessidade de assinatura para os métodos de Consulta.
No entanto, o manual da ABRASF, na página 19, prevê que a administração municipal pode realizar alterações no layout do XML para atender a necessidades próprias e/ou à legislação local. Assim, visando maior segurança, foi implementada uma solução própria para assinar as requisições de Consulta.

Importante: A principal diferença entre a assinatura do envio e a da consulta está no fato de que, para a Consulta, não se deve incluir o namespace na assinatura.
Reply all
Reply to author
Forward
Message has been deleted
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages