Após fazermos a solicitação da geração da remessa de baixa, chegou a hora de consultar o protocolo obtido para efetivamente, receber o resultado da geração do PDF
Para fazermos essa consulta, vamos precisar do protocolo gerado na requisição anterior.
GET
A solicitação é feita através de uma requisição GET. A rota chamada deve ter a seguinte URL:
Homologação:
https://homologacao.plugboleto.com.br/api/v1/boletos/baixa/lote/:protocolo
Produção:
https://plugboleto.com.br/api/v1/boletos/baixa/lote/:protocolo
*Aqui temos um exemplo da URL completa, informando um número de protocolo:
Headers
Nome | Descrição | Exemplo |
cnpj-sh | CNPJ da Software House | 01001001000113 |
cnpj-cedente | CNPJ da Cedente | 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 |
Retorno
Exemplo de retorno:
{
"_status": "sucesso",
"_dados": {
"_sucesso": [
{
"numero": 4,
"arquivo": "COB_341_247033_010717_00004.rem",
"remessa": "MDFSRU1FU1NBMDFDT0JSQU5DQSAgICAgICAzNzg4MDAyNDcwMzMgICAgICAgIFRFQ05PU1BFRUQgVEVDTk9MT0dJQSBEQSBJTkZPUjM0MUJBTkNPIElUQVUgU0EgIDMwMDYxNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAwMDAwMQ0KMTAyMDgxODcxNjgwMDAxNjAzNzg4MDAyNDcwMzMgICAgMDAwMCAgICAgICAgICAgICAgICAgICAgICAgICAwMDAwMDYwMjAwMDAwMDAwMDAwMDAxMDkgICAgICAgICAgICAgICAgICAgICBJMDEwOTA4MTYgICAgMzAxMDE5MDAwMDAwMDAwMDAwMjM0MTAwMDAwOTlOMjExMDE2MDkwMDAwMDAwMDAwMDAwMDEwODExMTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMDA0Nzc5MjQ5OTk2RmVybmFuZG8gTWlnbGlvcmluaSBUZW5vcmlvICAgICAgICAgICAgIFJ1YSBDYXN0cm8gQWx2ZXMsIDcyOCwgNzI4LCBCTDEgQVAwNzUgICBab25hIDA2ICAgICA4NzAxNTQ0ME1hcmluZ2EgICAgICAgIFBSICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAwMDAwMDYwIDAwMDAwMg0KOSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAwMDAwMw0K",
"titulos": [
{
"idintegracao": "IdIntegracao1"
}
],
"mensagem": "Remessa gerada com sucesso",
"transmissaoAutomatica": false,
"situacao": "GERADA",
"CedenteContaNumero": "24703",
"CedenteConvenioNumero": "3788247033",
"CedenteContaCodigoBanco": "341"
}
],
"_falha": []
}
}
Neste JSON de resposta, dentro do objeto "remessa" você receberá o conteúdo da remessa encodado em base64. O próximo passo que seu sistema deve fazer é capturar este base64 e "decodar", para formato texto comum. Depois disso, você já pode salvar em arquivo e encaminhar ao banco.
Outro detalhe é que, caso os idIntegracao fornecidos JSON de solicitação da remessa pertençam ao mesmo convênio, será gerada uma única remessa contendo todos os boletos solicitados. Caso contrário, será gerada uma remessa por convênio.
Exemplo de retorno com erro:
{
"_status": "erro",
"_mensagem": "Protocolo inválido ou inexistente."
}
Exemplo de retorno com falha:
{
"_status": "sucesso",
"_dados": {
"_sucesso": [],
"_falha": [
{
"idintegracao": "HkfSusK6Q",
"_erro": "Boleto ainda não foi processado.",
"_status_http": 400
}
]
}
}
Exemplo de retorno usando Transmissão Automática:
{
"_status": "sucesso",
"_dados": {
"_sucesso": [
{
"CedenteContaCodigoBanco": "341",
"CedenteContaNumero": "54321",
"CedenteConvenioNumero": "321",
"arquivo": "COB_341_543210_040117_00001.rem",
"situacao": "GERADA",
"transmissaoAutomatica": false,
"remessa": "",
"mensagem": "Arquivo de remessa enviado ao banco"
"titulos": [
{
"idintegracao": "IdIntegracao1"
},
{
"idintegracao": "IdIntegracao2"
}
],
}
],
"_falha": []
}
}
Exemplo de retorno 'em processamento':
{
"_status": "sucesso",
"_mensagem": "Solicitação pendente de processamento",
"_dados" : {
"situacao": "PROCESSANDO"
}
}
O status acima indica que o arquivo ainda está em processamento na nossa API. Fique tranquilo, se você tiver esse retorno basta refazer a consulta (passando o mesmo protocolo informado inicialmente) até que o arquivo seja devolvido.
Uma implementação interessante neste caso, é colocar este método de consulta do protocolo em um While, que refaz a consulta caso a situação seja igual a "Processando", com um delay de pelo menos 5 segundos entre cada consulta.
As remessas geradas serão importadas no banco, que posteriormente irá devolver um arquivo. Esse é o arquivo que conhecemos como arquivo de retorno.
Consultando Baixa via WebService (apenas API Itaú V2 e Banco do Brasil V2):
{
"_status": "sucesso",
"_dados": {
"_sucesso": [
{
"idintegracao": "372WDI841",
"_erro": "",
"_status_http": "200",
"mensagem": "Baixa realizada com sucesso",
"situacao": "PROCESSADA",
"CedenteContaNumero": "21110",
"CedenteConvenioNumero": "0065550253",
"CedenteContaCodigoBanco": "341"
}
],
"_falha": []
}
}
Exemplo de retorno 'em processamento':
{
"_status": "sucesso",
"_mensagem": "Solicitação pendente de processamento",
"_dados" : {
"situacao": "PROCESSANDO"
}
}
O status acima indica que o arquivo ainda está em processamento na nossa API. Fique tranquilo, se você tiver esse retorno basta refazer a consulta (passando o mesmo protocolo informado inicialmente) até que o arquivo seja devolvido.
Comentários
3 comentários
Olá, poderiam postar um exemplo com o array _falha preenchido, fazendo um favor?
Olá Lennon,
Foi adicionada em nossa documentação um exemplo com o array _falha preenchido,
Qualquer dúvida estamos a disposição.
Olá Luiz,
Poderia me informar se esta funcionalidade quando utilizamos integração por Webservice continua somente para o Itaú v2? Pois queremos incluir a funcionalidade de baixa de boleto pelo nosso sistema porém se for para atender apenas quem utiliza Itaú fica inviável.
Desde já agradeço.
Por favor, entre para comentar.