Pular para o conteúdo

Consultar Situação do Lote/Carnê

Plano: Personalizado

Novo Consulta a situação de todos os boletos de um lote ou carnê em uma única chamada. Cada item de titulos[] traz exatamente o mesmo contrato do Consultar Situação individual — registro, pagamento, baixa, protesto, Pix e dados de conferência — sem que você precise consultar título por boleto.

Consultar situação do loteO usuário consulta um lote no navegador do seu sistema. O servidor envia GET /batch/boletos/{token}/situacao com Authorization: Basic … e Accept: application/json. A API Boleto Cloud responde 200 OK com JSON no envelope batch; o exemplo destaca total=2 e titulos[].situacao. O painel mostra os títulos fictícios CT-456/1 como PAGO e CT-456/2 como EM_ABERTO. Cada título deve ser relacionado pelo token ou tokenControleUsuario. Setas cheias indicam requisições e tracejadas indicam respostas.Consultar situação do loteSeu sistemasistema.com/lotesPainel do lote2 boletosConsultarSituação consultadaCT-456/1PAGOCT-456/2EM_ABERTOSeu sistemaServidorGET /batch/boletos/{token}/situacaoAuthorization: Basic …Accept: application/jsonAPI BoletoCloud200 OK · JSONbatch.total: 2batch.titulos[].situacaoUma chamada consulta a situação de todos os boletos do lote.Relacione cada título pelo token ou tokenControleUsuario.
  1. Devolve a situação de todos os boletos de um lote ou carnê em uma chamada.
  2. Aceita o token do lote ou o tokenControleUsuario informado na criação.
  3. A resposta 200 traz o envelope batch, com boletos[] e titulos[] do mesmo tamanho.
  4. Cada item de titulos[] segue o contrato da consulta individual, sem o envelope boleto.
Consultar situação do lote ou carnê — requisição e alternativas de respostaSeu sistema solicita uma das quatro rotas à API Boleto Cloud, com Accept: application/json: GET /batch/boletos/{token}/situacao, GET /carnes/{token}/situacao, GET /batch/boletos/controle/{tokenControleUsuario}/situacao ou GET /carnes/controle/{tokenControleUsuario}/situacao. Há uma única resposta por requisição. O fragmento alt reúne cinco alternativas: 400 Bad Request para token ou chave malformados; 403 Forbidden com código 8D1C5814 para Plano Personalizado não ativo; na rota por token, 404 Not Found quando o lote não existe para sua conta; na rota /controle/, 404 Not Found quando o lote não existe para sua conta, permitindo reenviar o POST; ou 200 OK com JSON contendo batch.token, batch.total e batch.titulos[]. O sucesso também inclui lote sem boletos ativos, com total: 0 e listas vazias. Correlacione cada boleto por token ou tokenControleUsuario, pois a ordem pode mudar entre respostas.O que este endpoint fazPlano: PersonalizadoSeu sistemaAPI Boleto CloudGET /batch/boletos/{token}/situacaoGET /carnes/{token}/situacaoGET /batch/boletos/controle/{tokenControleUsuario}/situacaoGET /carnes/controle/{tokenControleUsuario}/situacaoAccept: application/jsonUma única resposta por requisiçãoalt[token ou chave malformados]400 Bad Request[Plano Personalizado não ativo]403 Forbidden — código 8D1C5814[rota por token: lote não existe para sua conta]404 Not Found[rota /controle/: lote não existe para sua conta]404 Not FoundO POST pode ser reenviado.[sucesso, inclusive sem boletos ativos]200 OK — JSONbatch.token, batch.total, batch.titulos[]Correlacione cada boleto por token ou tokenControleUsuario.A ordem pode mudar entre respostas.Sem boletos ativos: total: 0 e listas vazias.

Use esta consulta para acompanhar um lote ou carnê inteiro sem pedir a situação boleto a boleto. Cada item repete o contrato da consulta individual. Para o arquivo do lote, use Obter PDF.

Cenário Recomendação
Acompanhar o registro de todos os boletos após criar um lote ou carnê Sim
Descobrir quais títulos têm impedimento (registro.erro) em uma chamada Sim
Conciliar pagamento/baixa das parcelas de um carnê Sim
Exibir um painel do lote (pagos, em aberto, com erro) no seu sistema Sim
Obter o PDF do lote Não — use Obter PDF

Depois de criar o lote ou o carnê, esta consulta mostra a situação de todos os títulos; em seguida, obtenha o PDF ou verifique se o lote está pronto.

  • Token do lote (batch.token) ou o batch.tokenControleUsuario informado na criação
  • Plano: Personalizado — sem o plano ativo, a rota responde 403 com o código 8D1C5814

A autenticação é HTTP Basic com a API Key. Veja Autenticação.

GET https://sandbox.boletocloud.com/api/v1/batch/boletos/{token}/situacao
GET https://sandbox.boletocloud.com/api/v1/carnes/{token}/situacao
GET https://sandbox.boletocloud.com/api/v1/batch/boletos/controle/{tokenControleUsuario}/situacao
GET https://sandbox.boletocloud.com/api/v1/carnes/controle/{tokenControleUsuario}/situacao
Sandbox Desenvolvimento e testes
https://sandbox.boletocloud.com/api/v1/batch/boletos/{token}/situacao
https://sandbox.boletocloud.com/api/v1/carnes/{token}/situacao
https://sandbox.boletocloud.com/api/v1/batch/boletos/controle/{tokenControleUsuario}/situacao
https://sandbox.boletocloud.com/api/v1/carnes/controle/{tokenControleUsuario}/situacao
Produção Operação real
https://app.boletocloud.com/api/v1/batch/boletos/{token}/situacao
https://app.boletocloud.com/api/v1/carnes/{token}/situacao
https://app.boletocloud.com/api/v1/batch/boletos/controle/{tokenControleUsuario}/situacao
https://app.boletocloud.com/api/v1/carnes/controle/{tokenControleUsuario}/situacao

A rota é a mesma nos dois ambientes; só o host muda. Em Produção, use a API Key e o token da conta de Produção.

  • /batch/boletos/...: para lotes criados via POST /batch/boletos.
  • /carnes/...: para carnês criados via POST /carnes.
  • Rota por {token}: use quando você guarda o token do lote (batch.token) retornado no 201 da criação — o mesmo usado para obter o PDF.
  • Rota por controle/{tokenControleUsuario}: use quando você informou batch.tokenControleUsuario na criação e quer consultar pelo identificador do seu sistema — inclusive para recuperar a criação após timeout (404 = pode reenviar).

As quatro rotas retornam o mesmo contrato JSON (raiz batch). Use sempre a rota da família em que o lote foi criado.

Header Valor Obrigatório
Accept application/json Não
Authorization Basic {credenciais} Sim
Parâmetro Tipo Descrição
token string Token do lote/carnê (batch.token), retornado na criação
tokenControleUsuario string Valor de batch.tokenControleUsuario informado na criação (rota /controle/); resolve em qualquer caixa
Janela do terminal
# Lote (batch)
curl "https://sandbox.boletocloud.com/api/v1/batch/boletos/TOKEN_DO_LOTE/situacao" \
-H "Accept: application/json" \
-u "api-key_SUA-API-KEY:token"
# Carnê
curl "https://sandbox.boletocloud.com/api/v1/carnes/TOKEN_DO_CARNE/situacao" \
-H "Accept: application/json" \
-u "api-key_SUA-API-KEY:token"
# Resumo rápido com jq: situação de registro de cada boleto
curl -s "https://sandbox.boletocloud.com/api/v1/carnes/TOKEN_DO_CARNE/situacao" \
-H "Accept: application/json" -u "api-key_SUA-API-KEY:token" \
| jq -r '.batch.titulos[] | "\(.tokenControleUsuario // .token): \(.registro.situacao)"'

A consulta foi realizada, inclusive quando o lote não tem boletos ativos (total: 0). O body é JSON com a raiz batch.

Header Descrição
X-BoletoCloud-Token Ecoa o token do lote

Envelope raiz batch nas quatro rotas. Cenário do exemplo: carnê de 2 parcelas — a primeira registrada com PIX disponível, a segunda ainda com registro em progresso e sem encargos definidos.

{
"batch": {
"token": "vSD9nA6iTFXhTComVKF-cQoY9Wq5RJkuJoTLPje8zVE=",
"tokenControleUsuario": "contrato-456",
"total": 2,
"boletos": [
"TOKEN_DO_TITULO_1",
"TOKEN_DO_TITULO_2"
],
"titulos": [
{
"situacao": "EM_ABERTO",
"token": "TOKEN_DO_TITULO_1",
"tokenControleUsuario": "contrato-456-parcela-1",
"numero": "12345678901",
"documento": "CT-456/1",
"valor": 500.00,
"emissao": "2026-07-01",
"vencimento": "2026-08-01",
"pagador": {
"nome": "Lucas Mendes",
"cprf": "111.111.111-11"
},
"multa": {
"percentual": 2.00,
"valor": null,
"diasParaEncargos": 1
},
"juros": {
"percentualAoDia": 0.0333,
"valorFixoAoDia": null,
"diasParaEncargos": 1
},
"descontos": [
{
"percentual": 5.00,
"valor": null,
"dias": 10
}
],
"linhaDigitavel": "23790.50004 00000.000000 00000.000000 1 00000000050000",
"codigoDeBarras": "23791000000000500005000000000000000000000000",
"registro": {
"situacao": "REGISTRO_CONFIRMADO",
"registrar": true,
"data": "2026-07-01",
"erro": null,
"descricao": null
},
"pagamento": null,
"baixa": null,
"protesto": null,
"pix": {
"situacao": "PIX_GERADO",
"erro": null,
"txId": "tx-abc-123",
"codigoEMV": "00020126580014BR.GOV.BCB.PIX..."
}
},
{
"situacao": "EM_ABERTO",
"token": "TOKEN_DO_TITULO_2",
"tokenControleUsuario": "contrato-456-parcela-2",
"numero": "12345678902",
"documento": "CT-456/2",
"valor": 500.00,
"emissao": "2026-07-01",
"vencimento": "2026-09-01",
"pagador": {
"nome": "Lucas Mendes",
"cprf": "111.111.111-11"
},
"multa": null,
"juros": null,
"descontos": [],
"linhaDigitavel": "23790.50004 00000.000000 00000.000000 2 00000000050000",
"codigoDeBarras": "23792000000000500005000000000000000000000000",
"registro": {
"situacao": "REGISTRO_EM_PROGRESSO",
"registrar": true,
"data": null,
"erro": null,
"descricao": "Registro enviado ao banco; aguardando processamento."
},
"pagamento": null,
"baixa": null,
"protesto": null,
"pix": null
}
]
}
}
Campo Tipo Descrição
token string Token do lote/carnê na Boleto Cloud
tokenControleUsuario string | null Token de controle do lote (batch.tokenControleUsuario) informado na criação; null quando não usado
total integer Quantidade de boletos na resposta — sempre igual ao tamanho de boletos[] e de titulos[]
boletos[] array Token (string) de cada boleto, alinhado por índice com titulos[] — boletos[i] é o token de titulos[i]
titulos[] array Situação completa de cada boleto do lote, na ordem vencimento crescente (empate: ordem de criação)

Cada item de titulos[] é exatamente o payload do Consultar Situação individual, sem o envelope boleto. Valem as mesmas regras — não redocumentadas aqui de propósito:

Não há estados novos na visão agregada: o que você já trata no individual, trata igual aqui.

Um lote envolve identificadores em níveis diferentes — não os confunda:

Identificador Nível Quem define Uso
batch.token Lote Boleto Cloud Obter PDF e consultar a situação agregada
batch.tokenControleUsuario Lote Você Token de controle do lote: recuperação após timeout e consulta pela rota /controle/
titulos[].token Título Boleto Cloud Operações individuais (segunda via, baixa, situação individual)
titulos[].tokenControleUsuario Título Você Correlacionar cada boleto com o seu sistema (Idempotência)
  • Correlacione por token ou tokenControleUsuario de cada boleto — nunca pela posição no array. A ordem é vencimento crescente (empate: ordem de criação). Os identificadores são o vínculo confiável com o seu sistema. O invariante dentro de uma resposta está em Campos do Envelope.
  • Boletos excluídos ficam fora de boletos[] e de titulos[] juntos, e total reflete a lista retornada. Um lote cujos boletos foram todos excluídos responde 200 com o envelope íntegro e as listas vazias — o lote existe, apenas não tem boletos ativos:
{
"batch": {
"token": "vSD9nA6iTFXhTComVKF-cQoY9Wq5RJkuJoTLPje8zVE=",
"tokenControleUsuario": "contrato-456",
"total": 0,
"boletos": [],
"titulos": []
}
}
  • Retrato por boleto: os títulos da mesma resposta podem refletir momentos diferentes.
Status Código Quando ocorre O que fazer
400 — Token ou chave malformados. Corrija o token ou o tokenControleUsuario na URL.
403 8D1C5814 Conta sem o plano Personalizado ativo. No sandbox, o 403 persiste até a ativação do plano na conta de sandbox. Ative o plano Personalizado. Veja Planos & API.
404 — Lote não existe para a sua conta. Na rota /controle/, não há lote com esse identificador. Na rota /controle/, reenvie o POST. Na rota por {token}, confira o token do lote.

A lista completa dos códigos está em Códigos de erro.

Ação Endpoint Plano Descrição
Obter PDF do lote GET /batch/boletos/{token} Plano: Personalizado Arquivo do lote, com um boleto por página
Obter PDF do carnê GET /carnes/{token} Plano: Personalizado Arquivo do carnê
Recuperar a criação GET .../controle/{tokenControleUsuario}/situacao Plano: Personalizado Idempotência no lote: 404 nessa rota permite reenviar o POST

Após criar um lote/carnê, a pergunta operacional é dupla: todos os boletos concluíram o registro? e algum boleto precisa de ação? A receita é aplicar as regras de leitura do individual sobre cada item:

  1. GET .../{token}/situacao no lote (uma chamada, não 300);
  2. Para cada boleto: registro.situacao em REGISTRO_CONFIRMADO, REGISTRO_REJEITADO ou REGISTRO_NAO_SOLICITADO = terminal; REGISTRO_PENDENTE/REGISTRO_EM_PROGRESSO = aguarde;
  3. Precisa de ação = REGISTRO_REJEITADO com registro.erro presente — o erro.codigo diz qual ação. Já REGISTRO_REJEITADO com erro: null é a supersessão do individual: o boleto foi pago ou baixado antes de o registro concluir; o motivo real está em pagamento/baixa e não há ação de registro a tomar;
  4. Repita a consulta em intervalos razoáveis enquanto houver registros pendentes.

Veja Uso responsável da API.