Pular para o conteúdo

Processar Arquivo de Retorno

Processa um arquivo CNAB de retorno enviado via upload e retorna um JSON com as ocorrências dos boletos (pagamentos, confirmações de registro, baixas, etc.).

Este endpoint:

  • Recebe o arquivo de retorno CNAB via upload (multipart/form-data)
  • Processa o conteúdo extraindo as ocorrências dos títulos
  • Cria o registro do arquivo no sistema (evita reprocessamento)
  • Retorna JSON com todas as ocorrências encontradas

Cenário Exemplo
Processamento manual Conta bancária com troca de arquivos via Internet Banking
Plano gratuito Não possui integração automática via VAN ou API
Arquivo avulso Necessidade de processar um arquivo específico
Conciliação Verificar pagamentos de um período específico
  • Possuir uma conta bancária cadastrada com os mesmos dados do arquivo (convênio, agência, conta)
  • Arquivo de retorno no formato CNAB 240 ou CNAB 400
┌──────────────────┐
│ Banco processa │ Pagamentos, registros,
│ os boletos │ baixas, protestos
└────────┬─────────┘
┌──────────────────┐
│ Banco gera │ Arquivo CNAB de retorno
│ arquivo retorno │ disponível no Internet Banking
└────────┬─────────┘
┌──────────────────┐
│ Você baixa o │ Download do Internet Banking
│ arquivo │
└────────┬─────────┘
┌──────────────────┐
│ ★ PROCESSAR │ ◄── VOCÊ ESTÁ AQUI
│ RETORNO POST │
└────────┬─────────┘
┌──────────────────┐
│ Atualizar seu │ Pagamentos, baixas,
│ sistema │ status dos boletos
└──────────────────┘

POST https://sandbox.boletocloud.com/api/v1/arquivos/cnab/retornos

Produção:

POST https://app.boletocloud.com/api/v1/arquivos/cnab/retornos
Header Valor Obrigatório Descrição
Content-Type multipart/form-data Sim Tipo do conteúdo (upload de arquivo)
Accept application/json Sim Formato da resposta desejada
Authorization Basic {credenciais} Sim Autenticação HTTP Basic com API Key
Campo Tipo Obrigatório Tamanho Máximo Descrição
arquivo file Sim 5 MB Arquivo de retorno CNAB (.ret, .txt)

Validação Regra Código Mensagem
Arquivo obrigatório Campo arquivo deve conter um arquivo 400 Arquivo de retorno é obrigatório
Tamanho máximo Arquivo não pode exceder 5 MB 400 Arquivo excede o tamanho máximo permitido
Formato válido Arquivo deve ser CNAB válido 400 Formato de arquivo inválido
Conta existente Dados bancários devem corresponder a uma conta cadastrada 500 Conta bancária não encontrada
Arquivo duplicado Arquivo já foi processado anteriormente 409 Arquivo já processado
Autenticação API Key válida 401 Não autorizado

Indica que o arquivo foi processado com sucesso.

Header Exemplo Descrição
X-BoletoCloud-Token m1pKbdCyI9T9qJPC4n... Token identificador do arquivo processado
Location /api/v1/arquivos/cnab/retornos/m1pK... URL para consulta posterior
Content-Type application/json; charset=utf-8 Tipo do conteúdo retornado
X-BoletoCloud-Version 1.x.x Versão da plataforma
{
"arquivo": {
"meta": {
"token": "Rk5pQdCyI9T9qJPC4nUSE8-qLu0UbwWRQv6xcQqMa98=",
"criado": "2024-01-15T10:30:45.123Z"
},
"protocolo": {
"banco": {
"codigo": "237",
"nome": "BRADESCO"
},
"numero": 54321,
"gravacao": "2024-01-14"
},
"titulos": [
{
"token": "ulBx9quRyPkogs6rkvjO7SjqJb8ZnFmdyM0B5rasoDA=",
"numero": "00000000001-0",
"documento": "FAT-2024-001",
"valor": 250.00,
"vencimento": "2024-01-20",
"ocorrencias": [
{
"situacao": "REGISTRO_CONFIRMADO",
"codigo": 2,
"data": "2024-01-14",
"descricao": "Registro Confirmado",
"motivos": [],
"info": null
}
]
},
{
"token": "2mnFyTda_eamDnzS_lU24q7ZFHmBjGuKilqUSc45mlo=",
"numero": "00000000002-0",
"documento": "FAT-2024-002",
"valor": 180.50,
"vencimento": "2024-01-15",
"ocorrencias": [
{
"situacao": "LIQUIDACAO",
"codigo": 6,
"data": "2024-01-14",
"descricao": "Liquidação Normal",
"motivos": [],
"info": {
"valorPago": 182.00,
"jurosMora": 1.50,
"dataDePagamento": "2024-01-14",
"dataDeCredito": "2024-01-16",
"situacao": "LIQUIDACAO"
}
}
]
}
]
}
}

Indica que o arquivo já foi processado anteriormente.

{
"erro": {
"status": 409,
"mensagem": "Arquivo já foi processado anteriormente"
}
}

Código Status Causa Solução
400 Bad Request Arquivo ausente ou formato inválido Verifique o arquivo enviado
401 Unauthorized API Key inválida ou ausente Verifique as credenciais
409 Conflict Arquivo já processado Use GET para consultar o resultado
500 Internal Server Error Conta bancária não encontrada Verifique se a conta está cadastrada

Campo Tipo Descrição
token string Token identificador do arquivo processado
criado datetime Data/hora do processamento (ISO 8601)
Campo Tipo Descrição
banco.codigo string Código do banco (3 dígitos)
banco.nome string Nome do banco
numero integer Número sequencial do arquivo
gravacao date Data de gravação do arquivo pelo banco
Campo Tipo Descrição
token string|null Token do boleto na plataforma Boleto Cloud. Será null se o título não corresponder a um boleto cadastrado (apenas plano personalizado)
numero string Nosso Número do boleto
documento string Número do documento/fatura
valor decimal Valor nominal do boleto
vencimento date Data de vencimento original
ocorrencias array Lista de ocorrências do arquivo
Campo Tipo Descrição
situacao string Tipo da ocorrência (ver tabela abaixo)
codigo integer Código numérico da ocorrência
data date Data da ocorrência
descricao string Descrição textual da ocorrência
motivos array Lista de motivos (para rejeições)
info object Informações adicionais (para liquidações)
Campo Tipo Descrição
valorPago decimal Valor efetivamente pago
jurosMora decimal Valor de juros/mora cobrado
dataDePagamento date Data em que o pagamento foi efetuado
dataDeCredito date Data do crédito na conta
situacao string Sempre LIQUIDACAO
Campo Tipo Descrição
codigo string Código do motivo de rejeição
descricao string Descrição do motivo

Situação Descrição
LIQUIDACAO Boleto foi pago/liquidado
REGISTRO_CONFIRMADO Registro confirmado pelo banco
REGISTRO_REJEITADO Registro rejeitado (verificar motivos)
BAIXA Boleto foi baixado
PROTESTO Boleto foi protestado
CANCELAMENTO_PROTESTO Protesto foi cancelado
ABATIMENTO Abatimento concedido
CANCELAMENTO_ABATIMENTO Abatimento cancelado
ALTERACAO_VENCIMENTO Vencimento foi alterado

Terminal window
curl -X POST "https://sandbox.boletocloud.com/api/v1/arquivos/cnab/retornos" \
-H "Accept: application/json" \
-u "api-key_SUA-API-KEY:token" \
-F "arquivo=@/caminho/para/seu-arquivo-retorno.ret"

Salvando a resposta em arquivo:

Terminal window
curl -X POST "https://sandbox.boletocloud.com/api/v1/arquivos/cnab/retornos" \
-H "Accept: application/json" \
-u "api-key_SUA-API-KEY:token" \
-F "arquivo=@/caminho/para/seu-arquivo-retorno.ret" \
-o retorno-processado.json