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árioExemplo
Processamento manualConta bancária com troca de arquivos via Internet Banking
Plano gratuitoNão possui integração automática via VAN ou API
Arquivo avulsoNecessidade de processar um arquivo específico
ConciliaçãoVerificar 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
HeaderValorObrigatórioDescrição
Content-Typemultipart/form-dataSimTipo do conteúdo (upload de arquivo)
Acceptapplication/jsonSimFormato da resposta desejada
AuthorizationBasic {credenciais}SimAutenticação HTTP Basic com API Key
CampoTipoObrigatórioTamanho MáximoDescrição
arquivofileSim5 MBArquivo de retorno CNAB (.ret, .txt)

ValidaçãoRegraCódigoMensagem
Arquivo obrigatórioCampo arquivo deve conter um arquivo400Arquivo de retorno é obrigatório
Tamanho máximoArquivo não pode exceder 5 MB400Arquivo excede o tamanho máximo permitido
Formato válidoArquivo deve ser CNAB válido400Formato de arquivo inválido
Conta existenteDados bancários devem corresponder a uma conta cadastrada500Conta bancária não encontrada
Arquivo duplicadoArquivo já foi processado anteriormente409Arquivo já processado
AutenticaçãoAPI Key válida401Não autorizado

Indica que o arquivo foi processado com sucesso.

HeaderExemploDescrição
X-BoletoCloud-Tokenm1pKbdCyI9T9qJPC4n...Token identificador do arquivo processado
Location/api/v1/arquivos/cnab/retornos/m1pK...URL para consulta posterior
Content-Typeapplication/json; charset=utf-8Tipo do conteúdo retornado
X-BoletoCloud-Version1.x.xVersã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ódigoStatusCausaSolução
400Bad RequestArquivo ausente ou formato inválidoVerifique o arquivo enviado
401UnauthorizedAPI Key inválida ou ausenteVerifique as credenciais
409ConflictArquivo já processadoUse GET para consultar o resultado
500Internal Server ErrorConta bancária não encontradaVerifique se a conta está cadastrada

CampoTipoDescrição
tokenstringToken identificador do arquivo processado
criadodatetimeData/hora do processamento (ISO 8601)
CampoTipoDescrição
banco.codigostringCódigo do banco (3 dígitos)
banco.nomestringNome do banco
numerointegerNúmero sequencial do arquivo
gravacaodateData de gravação do arquivo pelo banco
CampoTipoDescrição
tokenstring|nullToken do boleto na plataforma Boleto Cloud. Será null se o título não corresponder a um boleto cadastrado (apenas plano personalizado)
numerostringNosso Número do boleto
documentostringNúmero do documento/fatura
valordecimalValor nominal do boleto
vencimentodateData de vencimento original
ocorrenciasarrayLista de ocorrências do arquivo
CampoTipoDescrição
situacaostringTipo da ocorrência (ver tabela abaixo)
codigointegerCódigo numérico da ocorrência
datadateData da ocorrência
descricaostringDescrição textual da ocorrência
motivosarrayLista de motivos (para rejeições)
infoobjectInformações adicionais (para liquidações)
CampoTipoDescrição
valorPagodecimalValor efetivamente pago
jurosMoradecimalValor de juros/mora cobrado
dataDePagamentodateData em que o pagamento foi efetuado
dataDeCreditodateData do crédito na conta
situacaostringSempre LIQUIDACAO
CampoTipoDescrição
codigostringCódigo do motivo de rejeição
descricaostringDescrição do motivo

SituaçãoDescrição
LIQUIDACAOBoleto foi pago/liquidado
REGISTRO_CONFIRMADORegistro confirmado pelo banco
REGISTRO_REJEITADORegistro rejeitado (verificar motivos)
BAIXABoleto foi baixado
PROTESTOBoleto foi protestado
CANCELAMENTO_PROTESTOProtesto foi cancelado
ABATIMENTOAbatimento concedido
CANCELAMENTO_ABATIMENTOAbatimento cancelado
ALTERACAO_VENCIMENTOVencimento 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