Pular para o conteúdo

Criar Boletos em Batch

Cria múltiplos boletos de uma só vez, gerando um PDF com 1 boleto por página. Ideal para emissão em massa de boletos diversos (diferentes pagadores, valores ou vencimentos).

  1. Recebe array de boletos no formato JSON
  2. Valida os dados de cada boleto
  3. Cria os boletos na plataforma
  4. Retorna JSON com tokens para buscar o PDF
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ POST /batch/ │─────▶│ Validar e │─────▶│ Retornar │
│ boletos │ │ criar boletos │ │ tokens (JSON) │
└──────────────────┘ └──────────────────┘ └──────────────────┘
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Retornar PDF │◀─────│ Gerar PDF │◀─────│ GET /batch/ │
│ (1 por página) │ │ consolidado │ │ boletos/{token} │
└──────────────────┘ └──────────────────┘ └──────────────────┘

Cenário Descrição
Emissão em massa Gerar vários boletos de uma vez para diferentes clientes
Cobranças diversas Boletos com valores, vencimentos ou pagadores diferentes
Integração automatizada Processos batch que geram múltiplos boletos periodicamente
Endpoint Layout PDF Plano Limite Uso Típico
POST /batch/boletos 1 boleto/página Personalizado 300/req Emissão em massa
POST /carnes 3 boletos/página Personalizado 300/req Parcelamentos
POST /boletos 1 boleto (direto) Gratuito/Personalizado 1/req Boleto individual

POST https://sandbox.boletocloud.com/api/v1/batch/boletos
Ambiente URL Base
Sandbox https://sandbox.boletocloud.com/api/v1/batch/boletos
Produção https://app.boletocloud.com/api/v1/batch/boletos

Header Valor Obrigatório
Content-Type application/json; charset=utf-8 Sim
Accept */* Não
Authorization Basic {credenciais_base64} Sim
{
"batch": {
"boletos": [
{
"conta": {"token": "api-key_TOKEN-DA-CONTA"},
"pagador": {
"nome": "Cliente 1",
"cprf": "111.111.111-11",
"endereco": {
"cep": "36240-000",
"uf": "MG",
"localidade": "Santos Dumont",
"bairro": "Centro",
"logradouro": "Rua Principal",
"numero": "100"
}
},
"emissao": "2024-01-15",
"vencimento": "2024-02-15",
"valor": 150.00,
"documento": "DOC-001",
"sequencial": 1
},
{
"conta": {"token": "api-key_TOKEN-DA-CONTA"},
"pagador": {
"nome": "Cliente 2",
"cprf": "222.222.222-22",
"endereco": {
"cep": "01310-100",
"uf": "SP",
"localidade": "São Paulo",
"bairro": "Paulista",
"logradouro": "Av. Paulista",
"numero": "1000"
}
},
"emissao": "2024-01-15",
"vencimento": "2024-02-20",
"valor": 250.00,
"documento": "DOC-002",
"sequencial": 2
}
]
}
}

O lote foi criado com sucesso. A resposta contém os tokens necessários para buscar o PDF.

Header Descrição Exemplo
X-BoletoCloud-Version Versão da plataforma 2.0.0
X-BoletoCloud-Token Token do lote (para buscar PDF) abc123...
Location URL para buscar o PDF /api/v1/batch/boletos/abc123...
Content-Type Tipo do conteúdo application/json; charset=UTF-8
{
"batch": {
"token": "xYz789AbCdEfGhIjKlMnOpQrStUvWxYz-A1B2C3D4E5F=",
"boletos": [
{ "token": "token-boleto-1-abc123..." },
{ "token": "token-boleto-2-def456..." }
]
}
}
Campo Descrição
batch.token Token para buscar o PDF consolidado via GET
batch.boletos[].token Token individual de cada boleto (para operações específicas)

Retornado quando já existe um boleto com os mesmos dados únicos.

{
"erro": {
"status": 409,
"tipo": "conflito",
"causas": [
{
"codigo": "XXXXXXXX",
"mensagem": "Boleto já existe com esses dados.",
"suporte": "https://developers.boleto.cloud/"
}
]
}
}

Retornado quando há erros nos dados enviados.

{
"erro": {
"status": 400,
"tipo": "validacao",
"causas": [
{
"codigo": "XXXXXXXX",
"mensagem": "Campo obrigatório não informado.",
"suporte": "https://developers.boleto.cloud/"
}
]
}
}

Após criar o lote, use o token retornado para buscar o PDF consolidado:

GET https://sandbox.boletocloud.com/api/v1/batch/boletos/{token}

Os boletos criados via lote seguem o mesmo ciclo de vida de boletos individuais:

┌─────────────────────────────────────────────────────────────────────────────────┐
│ CRIAÇÃO DOS BOLETOS │
│ │
│ POST /batch/boletos │
│ ► Boletos criados com status: CRIADO │
│ ► PDF gerado e disponível via GET /batch/boletos/{token} │
│ │
└────────────────────────────────────┬────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────────┐
│ REGISTRO NO BANCO / PSP │
│ │
│ Via CNAB Remessa, API Bancária ou VAN │
│ ► Boletos enviados para registro │
│ ► Status: REGISTRADO (após confirmação) │
│ │
└────────────────────────────────────┬────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────────┐
│ PAGAMENTO │
│ │
│ Pagador efetua pagamento via boleto ou PIX │
│ ► Status: LIQUIDADO │
│ ► Informação disponível via CNAB Retorno ou Webhook │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘
Terminal window
curl -v "https://sandbox.boletocloud.com/api/v1/batch/boletos" \
-H "Content-Type: application/json; charset=utf-8" \
-H "Accept: */*" \
-X "POST" \
-u "api-key_SUA-API-KEY:token" \
-d '{
"batch": {
"boletos": [
{
"conta": {"token": "api-key_SEU-TOKEN-DA-CONTA"},
"pagador": {
"nome": "Alberto Santos Dumont",
"cprf": "111.111.111-11",
"endereco": {
"cep": "36240-000",
"uf": "MG",
"localidade": "Santos Dumont",
"bairro": "Casa Natal",
"logradouro": "BR-499",
"numero": "s/n"
}
},
"emissao": "2024-01-15",
"vencimento": "2024-02-15",
"valor": 150.43,
"titulo": "DM",
"documento": "EX1",
"sequencial": 1
},
{
"conta": {"token": "api-key_SEU-TOKEN-DA-CONTA"},
"pagador": {
"nome": "Alberto Santos Dumont",
"cprf": "111.111.111-11",
"endereco": {
"cep": "36240-000",
"uf": "MG",
"localidade": "Santos Dumont",
"bairro": "Casa Natal",
"logradouro": "BR-499",
"numero": "s/n"
}
},
"emissao": "2024-01-15",
"vencimento": "2024-02-15",
"valor": 150.43,
"titulo": "DM",
"documento": "EX2",
"sequencial": 2
}
]
}
}' \
-o batch-response.json
Terminal window
curl -v "https://sandbox.boletocloud.com/api/v1/batch/boletos/{token_do_batch}" \
-u "api-key_SUA-API-KEY:token" \
-o boletos-batch.pdf

Os tokens individuais retornados para cada boleto permitem operações específicas:

Operação Endpoint Descrição
Segunda via GET /boletos/{token} PDF de um boleto específico
Status do registro GET /boletos/{token}/registro Verificar se foi registrado
Baixa PUT /boletos/{token}/baixa Cancelar boleto específico