Para efetuar o processo de solicitação do PDF no PlugBoleto, o primeiro passo é efetuar a solicitação do mesmo. O processo é assíncrono, ou seja, nesta primeira etapa você irá solicitar o PDF, e a API disponibilizará um protocolo. Na sequência, é necessário efetuar a consulta deste protocolo, e este processo estará descrito na próxima página de nossa documentação.
Importante: Como se trata de um processo assíncrono apenas 1 solicitação de impressão é necessária para cada pedido de impressão desejado. Ou seja, apenas 1 chamada nesta rota POST. O ideal é que a partir do momento em que se tenha acesso ao protocolo, o mesmo seja consultado na rota GET que devolverá o conteúdo da impressão.
Esta rota possui uma limitação de 5 chamadas por minuto para um mesmo idIntegracao (um mesmo boleto). Caso este valor seja excedido, a API retornará uma mensagem de erro indicando uso indevido.
*Protocolo*: Ao final da solicitação do PDF será devolvido pela API um protocolo que pode ser utilizado para consultar as informações da solicitação, não descarte esse dado, com ele pode consultar eventuais erros de processamento além de ser um insumo valioso para validações futuras em nosso atendimento!
POST
Homologação:
https://homologacao.plugboleto.com.br/api/v1/boletos/impressao/lote
Produção:
https://plugboleto.com.br/api/v1/boletos/impressao/lote
Headers
Nome | Descrição | Exemplo |
Content-Type | Indica o tipo de arquivo | application/json |
cnpj-cedente | CNPJ do Cedente | 01001001000113 |
cnpj-sh | CNPJ da Software House | 01001001000113 |
token-sh | Token da Software House | f22b97c0c9a3d41ac0a3875aba69e5aa |
Headers (Opcional)
Utilizar esses headers em caso de autenticação direto com as credenciais do cedente:
Nome | Descrição | Exemplo |
Content-Type | Indica o tipo de arquivo | application/json |
cnpj-cedente | CNPJ do Cedente | 01001001000113 |
token-cedente | Token do Cedente | f22b97c0c9a3d41ac0a3875aba69e5aa1 |
Objeto
Para solicitar o PDF, o objeto JSON pode ter os seguintes campos:
Campo | Tipo | Descrição |
TipoImpressao | string |
Valores aceitos: 0 - PDF normal. - limite de 100 boletos. 1 - PDF carnê duplo (paisagem). - limite de 100 boletos. 2 - PDF carnê triplo (retrato). - limite de 100 boletos. 3 - PDF dupla (retrato). - limite de 100 boletos. 4 - PDF normal (Com marca D'água). - limite de 100 boletos. 99 - PDF personalizada. - limite de 50 boletos. |
Boletos | array | Array de Ids de integração. Para mais de um boleto, deve-se usar a vírgula como separador. |
Personalizacao | Objeto | Objeto com variáveis livres, informadas na personalização. |
ocultarLinhaCodigo | boolean | (Opcional) Opção para indicar a ocultação da linha digitável e código de barras da impressão do boleto. Valor padrão false. |
senha | String | (Opcional) Informar uma senha para o PDF |
confirmarSenha | String | (Obrigatório caso a senha exista ) Confirmação da senha |
Body
Exemplo de JSON:
{
"TipoImpressao" : "1",
"Boletos" : [
"IdIntegracao1",
"IdIntegracao2"
]
}
Apenas as situações EMITIDO, REGISTRADO e LIQUIDADO permitem a geração do PDF. Ah, lembre-se que, para imprimir mais de um Id, você deve informar a vírgula como separador.
Exemplo de JSON utilizando a variável de personalização:
- Primeiramente, para utilizar a variável de personalização, você precisa acessar a área do cedente, e inserir sua variável no HTML de edição dos boletos, conforme demonstrado na nossa documentação de personalização (https://atendimento.tecnospeed.com.br/hc/pt-br/articles/360018691873-Como-personalizar-impress%C3%A3o) e exemplo deixado a seguir:
- Desse modo, na imagem disponibilizada acima, o usuário realizou a inserção da variável personalizada no corpo do HTML, conforme a nossa orientação: {personalizacao.variavel}.
- Após inserir a variável no corpo do HTML, basta enviar o JSON de acordo com o exemplo disponibilizado abaixo:
Obs 1: lembrando que você pode dar o nome que desejar para a sua variável, neste exemplo, foi utilizado o nome "variavel", mas você é livre para escolher o nome que preferir. A única parte que deve seguir o exemplo é {personalizacao.nomeDaSuaVariavel}.
- Por fim, caso você queira realizar a utilização de tabelas na impressão do seu boleto, recomendamos que no preenchimento do HTML na área do cedente, a tag "<tr>" seja substituída por "<br>".
Retorno
Exemplo de retorno:
{
"_status": "sucesso",
"_mensagem": "Impressão em processamento",
"_dados": {
"situacao": "PROCESSANDO",
"protocolo": "AE1D3XTM0"
}
}
Exemplo de retorno com erro:
{
"_status": "erro",
"_mensagem": "Id(s) informado(s) não encontrado(s).",
"_dados": [
{
"boletos": [
"IdIntegracao1",
"IdIntegracao2"
]
}
]
}
- Em nossa rota de impressão, possuímos um limite de solicitações de até 100 (cem) boletos por chamada, para os tipos: 0, 1, 2, 3 e 4.
- Para o tipo de impressão personalizada (99), possuímos um limite de 50 boletos por chamada em nossa rota de impressão.
Em caso de sucesso, a rota irá retornar um número de protocolo através do campo protocolo. Isso acontece pois a rota é assíncrona. Usando esse número de protocolo, nosso próximo passo é consultá-lo e verificar o resultado do processamento da geração do PDF.
Comentários
1 comentário
Por que o schema do retorno é diferente nos dois cenários?? No cenário de sucesso, a propriedade _dados retorna um objeto. No cenário de erro, retorna uma coleção??
Por favor, entre para comentar.