Para enviar uma nota à SEFAZ, é necessário realizar uma assinatura digital do XML. Esta assinatura é realizada utilizando um Certificado Digital. Este artigo está dividido em três etapas:
- Obtendo o nome do Certificado Digital;
- Informado o nome do Certificado Digital;
- Realizando a assinatura do XML.
Obtendo o nome do Certificado Digital
Cada certificado possui uma identificação única, que é o que o componente utilizará para selecionar o certificado correto ao realizar a assinatura. É possível listar todos os certificados digitais utilizando o método ListarCertificados.
Este método retornará uma lista com as identificações dos certificado, tanto do modelo A1 quanto do modelo A3 (que possui um cartão físico), instalados no repositório pessoal do Windows. A identificação é uma string semelhante a esta:
CN=TECNOSPEED S A:29062609000177, OU=Certificado PJ A1, O=ICP-Brasil, C=BR, S=, L=, E=, SE=26 41 18 05 02 40 D6 8A
Informado o nome do Certificado Digital
Para selecionar o Certificado Digital que será utilizado na assinatura, basta informar o nome do certificado (esta identificação que o método ListarCertificados retornou) na propriedade NomeCertificado.
Para configurar a propriedade, é possível utilizar um arquivo de configuração (.ini) ou configurar através do código fonte. O artigo Configurando as propriedades detalha o funcionamento das propriedades.
Realizando a assinatura do XML
Para assinar o XML de envio, é necessário utilizar o método AssinarNota. Como parâmetro, é necessário informar o XML sem assinatura como string. O método retornará o mesmo XML passado como parâmetro na função, porém ele terá as tags de assinatura em seu conteúdo.
É importante lembrar que é necessário que o CNPJ do emitente da nota seja o mesmo CNPJ do certificado digital utilizado para realizar a assinatura.
Comentários
0 comentário
Por favor, entre para comentar.