Skip to main content

API de assinatura

A assinatura de um documento por meio do script pode ser feita por arquivo ou por lote. Apenas documentos nos formatos xml, pdf, txt e p7s podem ser assinados. Todo processo de assinatura envolve a criação de dois scripts, um para chamada da api de assinatura e outro de call-back, que é executado após a assinatura e pode receber o arquivo assinado e o arquivo original como parâmetro.

Assinando documentos

A seguir, veja como um exemplo de script de assinatura de um documento no formato pdf.

assinar(arquivo, opcoes)

arquivo = parametros.arquivo.valor;

opcoes = [
nome: 'pdfassinado', // nome do arquivo enviado por parâmetro para o script de callback
tipo: 'pdf',
lote: false, // indica se é lote ou não
retorno: [
script: 'callback_assinatura', // identificador do script de callback que deve ser executado após assinar o documento/lote
parametro: 'assinado', // nome do parâmetro do tipo arquivo no script de callback que recebe o arquivo assinado
notificacao: true
],
parametros: [
original: arquivo
]
];

Assinador.assinar(arquivo, opções) ;

A seguir, veja como um exemplo de script de assinatura de um documento no formato xml.

arquivo = parametros.arquivo.valor;

opcoes = [
nome: 'xmlassinado', // nome do arquivo enviado por parâmetro para o script de callback
tipo: 'xml',
lote: false, // indica se é lote ou não
tagAssinatura: 'TEXTO', // nome da tag do xml que deve ser assinada
retorno: [
script: 'callback_assinatura', // identificador do script de callback que deve ser executado após assinar o documento/lote
parametro: 'assinado', // nome do parâmetro do tipo arquivo no script de callback que recebe o arquivo assinado
notificacao: true
],
parametros: [
original: arquivo
]
];

Assinador.assinar(arquivo, opcoes);

Assinando lote de documentos

Exemplo de script de assinatura de um lote de documentos de formato xml.

assinar(arquivo, opcoes)

arquivo = parametros.arquivo.valor;
zip = Arquivo.novo('arquivos.zip', 'zip');
zip.adicionar(arquivo, 'a.xml');
zip.adicionar(arquivo, 'b.xml');

opcoes = [
nome: 'xmlassinado', // nome do arquivo enviado por parâmetro para o script de callback
tipo: 'xml',
lote: true, // indica se é lote ou não
tagAssinatura: 'TEXTO', // nome da tag do xml que deve ser assinada
retorno: [
script: 'callback_assinatura', // identificador do script de callback que deve ser executado após assinar o documento/lote
parametro: 'assinado', // nome do parâmetro do tipo arquivo no script de callback que recebe o arquivo assinado
notificacao: true
],
parametros: [
original: zip
]
];

Assinador.assinar(zip, opcoes);

Múltiplos assinantes

Exemplo de script de assinatura de um documento PDF com múltiplos assinantes:

  • Observação: Apenas documentos do tipo PDF podem utilizar o recurso de múltiplos assinantes.

assinar(arquivo, opcoes)

arquivo = parametros.arquivo.valor;

opcoes = [
nome: 'pdfassinado',
tipo: 'pdf',
lote: false,
assinantes: [
incluirUsuarioCorrente: true, //indica se o usuário que solicitou a execução do script deve assinar o documento
usuarios: [ // lista de assinantes
'joao',
'maria.silva'
]
],
retorno: [
script: 'callback_assinatura',
parametro: 'assinado',
notificacao: true
],
parametros: [
original: arquivo
]
];

Assinador.assinar(arquivo, opcoes);

Script de callback

O script de callback é o script executado automaticamente após a execução do script que chama a api de assinatura com Assinador.assinar(arquivo, opcoes).

Com base no script de assinatura do exemplo anterior, o script de callback deve ter dois parâmetros do tipo arquivo, que são:

  • assinado: o que foi definido no script de assinatura no item retorno.parametro do objeto de opções.
  • original: o que também foi definido no script de assinatura no item parametros do objeto de opções.

E por último o identificador que também foi definido no script de assinatura no item script do objeto de opções.