O objetivo da Consulta é que você receba um json contendo todos os campos de seu boleto.
Neste json, você poderá consultar a Situação em que este boleto se encontra, consultar as informações de pagamento, motivo de erros e é a interface utilizada para que você atualize seu sistema com base nas informações que nós te retornamos.
Um boleto pode ter 7 situações diferentes, que podem ser verificadas neste link.
Para verificar quais campos são retornados nesta consulta, clique aqui.
OBS: Para verificar o status da API, não é recomendado realizar várias consultas por minuto, mas recomendamos o uso da rota http://plugboleto.com.br/status Essa rota permite que você obtenha informações atualizadas sobre o status da API em tempo real.
GET
Homologação:
https://homologacao.plugboleto.com.br/api/v1/boletos
Produção:
https://plugboleto.com.br/api/v1/boletos
Headers
| Nome | Descrição | Exemplo |
| cnpj-sh | CNPJ da Software House | 01001001000113 |
| token-sh | Token da Software House | f22b97c0c9a3d41ac0a3875aba69e5aa |
| cnpj-cedente | CNPJ do Cedente | 01001001000113 |
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 |
Status dos boletos
Segue abaixo uma tabela no qual
| Status | Significado |
| SALVO | Indica que o boleto está em processamento pela API ou aguardando o processamento do banco (Web Service). |
| FALHA | Refere-se a um boleto com problemas identificados pela Tecnospeed, que podem estar relacionados ao banco. |
| EMITIDO | O boleto foi gerado na API, mas ainda não foi registrado no banco. |
| PENDENTE_RETENTATIVA | Esta situação irá ocorrer quando houve alguma falha no momento de registrar o boleto, e será realizado uma nova tentativa de registro em 1 minuto. (Web Service). |
| REGISTRADO | O boleto foi registrado no banco e está pronto para pagamento. |
| REJEITADO | O boleto foi rejeitado diretamente pelo banco. |
| BAIXADO | O boleto foi cancelado no banco. |
| LIQUIDADO | O boleto foi pago. |
OBS: Incluiremos uma nota destacando que, sempre que o boleto retornar com status FALHA ou REJEITADO, o cliente deve verificar o campo "motivo" retornado pela API. Esse campo fornecerá informações específicas sobre o motivo da falha ou rejeição, auxiliando na resolução de problemas.
Personalizando a consulta
A consulta acima retorna todos os boletos daquele cedente, paginando de acordo com o limite da API. Entretanto, é possível utilizar os parâmetros da URL (querystring) para personalizar a consulta. Veja nos exemplos abaixo:
PAGINAÇÃO
Utilize os parâmetros limit* (para limitar a quantidade) e skip (para pular registros).
http://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?limit=5
http://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?sort=TituloNumeroDocumento,-situacao
*limit máximo = 1000
ORDENAÇÃO
Utilize o parâmetro sort e adicione os campos desejados para a ordenação, adicionando - como prefixo para utilizar ordem decrescente. Caso haja mais de um campo, utilize , como separador.
Utilize os parâmetros limit (para limitar a quantidade) e skip (para pular registros).
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?sort=situacao
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?skip=10
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?limit=5&skip=5
FILTRO
Para fazer uma consulta utilizando filtros adicione nos parâmetros de URL os campos disponíveis para consulta que são "idintegracao, titulodataemissao, titulodatavencimento, titulonumerodocumento, sacadocpfcnpj, sacadonome e situacao". No filtro é possivel fazer uma comparação (Maior ou menor) para isso depois do sinal de = deve se informar um dos operadores <, >, <= e >=. Um exemplo TituloDataEmissao=>=2017/12/26 (maior ou igual). Para buscar por um conteúdo parcial utilize o prefixo $. É possível adicionar mais de um filtro por campo, repetindo o campo desejado nos parâmetros de URL.
Para filtrar os boletos de uma única não precisa ser utilizado as condicionais apenas passar a data desejada. Exemplo: TituloDataEmissao=2017/12/26, dessa forma será retornado todos os boletos da data informada.
| Campos disponíveis para filtro na querystring: | Significado: |
| idintegracao | Identificador único do título retornado na inclusão do boleto - Ex: 2RS0O1ED3 |
| titulodataemissao | Data em que o boleto foi emitido |
| titulodatavencimento | Data de vencimento do boleto |
| titulonumerodocumento | Número de Documento/Seu Número |
| sacadocpfcnpj | CPF/CNPJ do Pagador |
| sacadonome | Nome do Pagador |
| situacao* | Situação do Boleto (Situações disponíveis) |
| TituloCodigoReferencia | Campo livre, valor de identificação secundária - Ex: 1234 |
| PagamentoData | Data de Pagamento do Boleto - Ex: |
| titulonossonumero | Nosso Número do Boleto - Ex: 1234 |
| id_convenio | ID numérico do Convênio (coletado na consulta do convênio na API) |
| codConta | ID da Conta numérico da Conta (coletado na consulta da conta na API) |
| contacodigobanco | Código do Banco - Ex: 341 |
| atualizado |
Data da última atualização - AAAA-MM-DD |
| conta |
Número da conta sem o DV |
| conta_dv |
DV da conta |
*Possiveis situações de um boleto: SALVO, EMITIDO, FALHA, BAIXADO, REGISTRADO, LIQUIDADO, REJEITADO, PENDENTE_RETENTATIVA
Não há um limite exato de quantos boletos são possíveis de consultar de uma vez, existe apenas um limite de caracteres permitidos na rota, que nesse caso seria 2048 caracteres. Considerando a consulta por ID integração, por exemplo, que contém 9 caracteres, juntando vírgula e todos outros caracteres fixos, é possível definir um limite seguro de 180 IDs por vez para consulta.
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?situacao=EMITIDO
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?id=>1
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?SacadoNome=$jose&SacadoNome=$silva&situacao=BAIXADO
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?IdIntegracao=HylCKRX7be,H1leBL4XWx
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?PagamentoData=2020/08/01&TituloDataEmissao=2020/07/01
https://homologacao.cobrancabancaria.tecnospeed.com.br/api/v1/boletos?contacodigobanco=341
Retorno
Exemplo de retorno:
{
"_status": "sucesso",
"_dados": [
{
"IdIntegracao": "HkgMri2cHl",
"SacadoCPFCNPJ": "28436161661",
"SacadoEmail": "email@sacado.com",
"SacadoEnderecoNumero": "987",
"SacadoEnderecoBairro": "Centro",
"SacadoEnderecoCEP": "87098765",
"SacadoEnderecoCidade": "Maringá",
"SacadoEnderecoComplemento": "Fundos",
"SacadoEnderecoLogradouro": "Rua teste, 987",
"SacadoEnderecoPais": "Brasil",
"SacadoEnderecoUF": "PR",
"SacadoNome": "Teste de Souza",
"SacadoTelefone": "4499999999",
"TituloDataDesconto": "05/01/2020 00:00:00",
"TituloDataEmissao": "01/01/2020 00:00:00",
"TituloDataVencimento": "01/01/2020 00:00:00",
"TituloDataMulta": null,
"PagamentoData": null,
"PagamentoDataCredito": null,
"TituloPrazoProtesto": "30",
"TituloMensagem01": "Juros de 0,01 ao dia",
"TituloMensagem02": "Nao receber apos 30 dias de atraso",
"TituloLinhaDigitavel: "34191.75621 34567.890123 45678.901234 5 67890000123456",
"TituloMensagem03": "Titulo sujeito a protesto apos 30 dias",
"TituloOcorrencias": [
{
"codigo": "02",
"mensagem": "Tarifa de Manutenção de Título Vencido",
"criado": "29/06/2018 18:45:22",
"atualizado": "29/06/2018 18:45:22"
},
{
"codigo": "03",
"mensagem": "Liquidação no Guichê de Caixa em Dinheiro",
"criado": "29/06/2018 18:45:22",
"atualizado": "29/06/2018 18:45:22"
},
{
"codigo": "06",
"mensagem": "Movimento: Liquidação",
"criado": "29/06/2018 18:45:22",
"atualizado": "29/06/2018 18:45:22"
},
{
"codigo": "28",
"mensagem": "Movimento: Débito de Tarifas/Custas",
"criado": "29/06/2018 18:45:22",
"atualizado": "29/06/2018 18:45:22"
}
],
"TituloMovimentos": [
{
"codigo": "28",
"mensagem": "Movimento: Débito de Tarifas/Custas",
"data": "04/05/2018 00:00:00",
"ocorrencias": [
{
"codigo": "02",
"mensagem": "Tarifa de Manutenção de Título Vencido"
}
]
},
{
"codigo": "06",
"mensagem": "Movimento: Liquidação",
"data": "04/05/2018 00:00:00",
"ocorrencias": [
{
"codigo": "03",
"mensagem": "Liquidação no Guichê de Caixa em Dinheiro"
}
]
}
],
"TituloNossoNumero": "1",
"TituloNumeroDocumento": "01012020",
"TituloOrigemDocumento": null,
"PagamentoRealizado": null,
"TituloValorJuros": "0,01",
"TituloInstrucao1": "04",
"TituloInstrucao2": "05",
"PagamentoValorCredito": "0,00",
"TituloValorDesconto": "0,01",
"TituloValorOutrosAcrescimos": "0,00",
"TituloValorMulta": "0,00",
"TituloValorMultaTaxa": "0,00",
"PagamentoValorPago": "0,00",
"PagamentoValorTaxaCobranca": "0,00",
"TituloValorAbatimento": "0,00",
"PagamentoValorOutrasDespesas": "0,00",
"PagamentoValorIOF": "0,00",
"PagamentoValorOutrosCreditos": "0,00",
"TituloValor": "0,02",
"situacao": "LIQUIDADO",
"impressao_visualizada": false,
"motivo": null,
"PagamentoValorDesconto": "0,00",
"PagamentoValorAcrescimos": "0,00",
"PagamentoValorAbatimento": "0,00",
"UrlBoleto": "https://homologacao.plugboleto.com.br/api/v1/boletos/impressao/HkgMri2cHl",
"CedenteAgencia": "4321",
"CedenteAgenciaDV": null,
"CedenteCodigoBanco": "341",
"CedenteConta": "54321",
"CedenteCarteira": "109",
"CedenteNumeroConvenio": "321"
}
],
"_meta": {
"_itens_por_pagina": 20,
"_paginacao": {
"_proximo": false,
"_anterior": false
},
"_total": 1
}
}
Exemplo de retorno com erro:
{
"_status": "sucesso",
"_mensagem": "Nenhum registro encontrado",
"_dados": [],
"_meta": {
"_itens_por_pagina": 20,
"_paginacao": {
"_proximo": false,
"_anterior": false
},
"_total": 0
}
}
Se ao consultar o IdIntegracao a situação do boleto for retornada como EMITIDO, podemos seguir o fluxo de emissão, e ir para o próximo passo, que é realizar a geração do PDF.
O que são movimentos e ocorrências?
Os movimentos nada mais são do que a mensagem encaminhada pelo banco sobre um determinado boleto, com uma própria movimentação do título, como por exemplo.
O Boleto encontrava-se como EMITIDO e o status foi alterado para REGISTRADO, desta forma nos movimentos do título irá constar:
TituloMovimentos": [
{
"codigo": "02",
"mensagem": "Movimento: Entrada Confirmada",
"data": "30/08/2021 00:00:00",
"taxa": "1,59",
"ocorrencias": [
{
"codigo": "76",
"mensagem": "Pagador Eletrônico DDA- PRe motivo somente será disponibilizado no arquivo retorno para as empresas cadastradas nessa condição"
}
]
}
Onde "02" seria referente ao código de movimento de entrada confirmada.
Porém ao verificarmos, dentro de um movimento consta uma ocorrência, que neste caso acabou sendo o código "76". Atualmente nem todos os bancos acatam os mesmos códigos disponibilizados pela Febraban, pois os mesmos podem possuir alguns códigos disponibilizados particularmente pelo próprio banco.
Simplificando:
O Movimento é uma mensagem de mudança ou como próprio nome já diz, "Movimento" de algo do boleto (Registro, Alteração acatada ou rejeitada, Liquidação), enquanto a ocorrência deve-se ao motivo do mesmo.
Mas e quando ao consultar o boleto, não consta o código de ocorrência?
Conforme citamos acima, alguns bancos não possuem os mesmos códigos disponibilizados pela Febraban, portanto caso o banco tenha disponibilizado o arquivo de retorno onde consta uma ocorrência, porém a mesma acabou não sendo apresentada ao consultar o boleto, basta nos informar através dos canais de atendimento pois provavelmente o banco acabou atualizando o manual, e com isso iremos atualizar nossa aplicação.
Comentários
0 comentário
Por favor, entre para comentar.