Pular para o conteúdo

Criar Boleto Individual

Emite um boleto bancário e retorna o PDF na mesma resposta. Este é o endpoint mais utilizado da API Boleto Cloud, ideal para emissão sob demanda onde você precisa do boleto imediatamente após a criação.

  1. Valida os dados do boleto enviados
  2. Gera o boleto no Boleto Cloud
  3. Envia para registro no banco (automático ou via CNAB)
  4. Retorna o PDF do boleto pronto para uso
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Enviar │─────▶│ Validar │─────▶│ Gerar │─────▶│ Registrar │
│ POST /boletos│ │ Dados │ │ Boleto │ │ no Banco │
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
┌──────────────┐ ┌──────────────┐ │
│ Usar PDF │◀─────│ Retornar │◀─────────────┘
│ e Token │ │ PDF + Token │
└──────────────┘ └──────────────┘

Cenário Recomendação
Emissão de boletos avulsos Sim
Checkout de e-commerce Sim
Geração sob demanda em sistemas Sim
Emissão de carnês (3 boletos por página) Não — use Criar Carnê
Emissão de boletos em lote (1 por página) Não — use Criar em Lote

O POST /boletos é o ponto de entrada para criar boletos individuais. Após a criação, o boleto entra no estado “Criado” e é enviado para registro no banco.

┌─────────────────────────────────────────────────────────────────────────────┐
│ CRIAÇÃO DO BOLETO │
│ │
│ ┌─────────────────────┐ │
│ │ ★ POST /boletos │ │
│ │ (individual) │ │
│ └──────────┬──────────┘ │
│ ▼ │
└───────────────────────────────[ CRIADO ]────────────────────────────────────┘
(envio automático ou via CNAB)
┌─────────────────────────[ REGISTRO PENDENTE ]───────────────────────────────┐
│ │
│ Próximos endpoints disponíveis: │
│ • GET /boletos/{token} → Obter PDF original │
│ • GET /boletos/{token}/registro → Consultar status do registro │
│ • GET /boletos/{token}/situacao → Consultar situação completa │
│ • PUT /boletos/{token}/baixa → Cancelar antes do registro │
│ │
└─────────────────────────────────┬───────────────────────────────────────────┘
┌────────────────┴────────────────┐
▼ ▼
[ REGISTRADO / ATIVO ] [ REJEITADO ]

Antes de usar este endpoint, certifique-se de ter:

  • Conta Boleto CloudCrie sua conta se ainda não tiver
  • API Key — Gerada na área de desenvolvedor da plataforma
  • Conta Bancária cadastrada — Com token de acesso gerado
  • Ambiente correto — Use Sandbox para desenvolvimento, Produção apenas em produção
POST https://sandbox.boletocloud.com/api/v1/boletos
Ambiente URL Base
Sandbox (desenvolvimento) https://sandbox.boletocloud.com/api/v1/boletos
Produção https://app.boletocloud.com/api/v1/boletos

Header Valor Obrigatório
Authorization Basic {credenciais_base64} Sim
Content-Type application/x-www-form-urlencoded; charset=utf-8 Sim

O corpo da requisição contém os campos do boleto no formato chave=valor. Use o token da conta bancária para simplificar a requisição — os dados do beneficiário e a numeração são obtidos automaticamente.

Campo Tipo Exemplo Descrição
boleto.conta.token string "api-key_abc123..." Token da conta bancária cadastrada
boleto.emissao date "2024-01-15" Data de emissão (formato AAAA-MM-DD)
boleto.vencimento date "2024-02-15" Data de vencimento (formato AAAA-MM-DD)
boleto.documento string "PED-12345" Número do documento/pedido
boleto.titulo string "DM" Tipo do título (ver tipos)
boleto.valor decimal "1250.43" Valor do boleto (até 8 inteiros, até 4 decimais)
boleto.pagador.nome string "Alberto Santos Dumont" Nome completo do pagador
boleto.pagador.cprf string "111.111.111-11" CPF ou CNPJ do pagador
boleto.pagador.endereco.cep string "36240-000" CEP do pagador
boleto.pagador.endereco.uf string "MG" Estado (2 letras)
boleto.pagador.endereco.localidade string "Santos Dumont" Cidade
boleto.pagador.endereco.bairro string "Centro" Bairro
boleto.pagador.endereco.logradouro string "Rua Principal" Logradouro
boleto.pagador.endereco.numero string "123" Número (use "s/n" se não houver)
Campo Tipo Exemplo Descrição
boleto.pagador.endereco.complemento string "Apto 101" Complemento do endereço
boleto.numero string "12345678901-P" NIB específico (se não informado, usa sequencial automático)
boleto.sequencial integer 12345 Sequencial para gerar NIB (alternativa ao numero)
boleto.instrucao string "Não receber após 30 dias" Instruções ao caixa (até 3 linhas, envie múltiplas vezes)
boleto.info string "Pedido #12345" Informações ao pagador (até 2 linhas de 100 caracteres)
boleto.juros decimal "0.0333" Taxa diária de juros, em percentual ao dia. Para ~1% a.m., envie 0.0333 (taxa mensal ÷ 30)
boleto.multa decimal "2.00" Percentual de multa por atraso (%)
boleto.desconto decimal "5.00" Percentual de desconto até o vencimento (%)
boleto.tokenControleUsuario string "pedido-12345-abc" Token para idempotência (máx. 44 caracteres)
boleto.conta.token=api-key_SEU-TOKEN-DA-CONTA
boleto.emissao=2024-01-15
boleto.vencimento=2024-02-15
boleto.documento=PED-12345
boleto.titulo=DM
boleto.valor=1250.43
boleto.pagador.nome=Alberto Santos Dumont
boleto.pagador.cprf=111.111.111-11
boleto.pagador.endereco.cep=36240-000
boleto.pagador.endereco.uf=MG
boleto.pagador.endereco.localidade=Santos Dumont
boleto.pagador.endereco.bairro=Casa Natal
boleto.pagador.endereco.logradouro=BR-499
boleto.pagador.endereco.numero=s/n
boleto.instrucao=Não receber após o vencimento
boleto.instrucao=Pagamento exclusivo via rede bancária

O boleto foi criado com sucesso. O PDF está no body da resposta.

Header Descrição Exemplo
Content-Type Tipo do conteúdo application/pdf; charset=UTF-8
X-BoletoCloud-Token Token único do boleto — guarde para operações futuras abc123def456...
X-BoletoCloud-NIB-Nosso-Numero Nosso Número do boleto 00000012345-6
X-BoletoCloud-Token-Controle-Usuario Token de controle enviado (se informado) pedido-12345-abc
Location Path para acessar o boleto /api/v1/boletos/abc123def456
X-BoletoCloud-Version Versão da plataforma 2.0.0

Clientes do plano personalizado recebem headers extras:

Header Descrição Exemplo
X-BoletoCloud-Codigo-De-Barras Código de barras numérico (44 dígitos) 23793.38128 60000.000003 00000.000400 1 84340000012543
X-BoletoCloud-Linha-Digitavel Linha digitável formatada 23793.38128 60000.000003...
X-BoletoCloud-Pix-Codigo-EMV Código Pix copia-e-cola 00020126580014br.gov.bcb...
X-BoletoCloud-Status-Registrado-Banco Se já foi registrado no banco true ou false

O body contém o arquivo PDF do boleto, pronto para ser salvo ou enviado ao pagador.


Retornado quando já existe um boleto com o mesmo Nosso Número ou tokenControleUsuario. Isso indica que o boleto já foi criado anteriormente — a API está protegendo contra duplicação.

Header Descrição
Content-Type application/json; charset=UTF-8
X-BoletoCloud-Token Token do boleto existente
X-BoletoCloud-NIB-Nosso-Numero Nosso Número do boleto existente
X-BoletoCloud-Token-Controle-Usuario Token de controle do boleto existente
Location Path para o boleto existente
X-BoletoCloud-Version Versão da plataforma
{
"erro": {
"status": 409,
"tipo": "conflito",
"causas": [
{
"codigo": "2B257710",
"mensagem": "Campo (boleto.numero) - Conflito de dados, já existe um boleto com o mesmo conteúdo (12345678901-P) para este campo, localizado em (/api/v1/boletos/abc123def456).",
"suporte": "https://developers.boleto.cloud/"
}
]
}
}

Retornado quando há problemas de validação nos dados enviados.

Header Descrição
Content-Type application/json; charset=UTF-8
X-BoletoCloud-Version Versão da plataforma

Exemplo: Dados não informados

{
"erro": {
"status": 400,
"tipo": "requisicao",
"causas": [
{
"codigo": "4D4AAFB5",
"mensagem": "Dados do boleto não informados.",
"suporte": "https://developers.boleto.cloud/"
}
]
}
}

Exemplo: Múltiplos erros de validação

{
"erro": {
"status": 400,
"tipo": "requisicao",
"causas": [
{
"codigo": "842EF62A",
"mensagem": "Campo (boleto.emissao) - O valor informado (23/05/2024) não corresponde com o formato válido para este campo (AAAA-MM-DD).",
"suporte": "https://developers.boleto.cloud/"
},
{
"codigo": "842EF62A",
"mensagem": "Campo (boleto.valor) - O valor informado (1.274,98) não corresponde com o formato válido para este campo (00000000.0000 = até 8 dígitos parte inteira e até 4 dígitos para fracionada).",
"suporte": "https://developers.boleto.cloud/"
}
]
}
}
Campo Formato Incorreto Formato Correto
boleto.emissao 23/05/2024 2024-05-23
boleto.vencimento 15-02-2024 2024-02-15
boleto.valor 1.274,98 1274.98
boleto.sequencial 12345678901234567890 (>18 dígitos) 12345 (até 18 dígitos)
boleto.conta.carteira -12 09 (inteiro positivo)

Após a criação do boleto, a comunicação com o banco depende do tipo de integração configurado na conta:

Tipo de Comunicação Comportamento
API/Webservice (automático) O boleto é enviado automaticamente para registro no banco. O header X-BoletoCloud-Status-Registrado-Banco indica se já foi confirmado (plano personalizado).
Arquivo CNAB (manual) O boleto é incluído no próximo arquivo de remessa para você importar manualmente no banco.

Após criar o boleto com sucesso, você pode:

Ação Endpoint Descrição
Consultar situação GET /boletos/{token}/situacao Registro, pagamento, baixa, protesto, Pix e condições de emissão em JSON
Consultar por token de controle GET /boletos/controle/{tokenControleUsuario}/situacao Mesma consulta usando o identificador do seu sistema
Verificar registro GET /boletos/{token}/registro Confirmar se foi aceito pelo banco
Obter PDF novamente GET /boletos/{token} Recuperar o PDF original
Obter PDF atualizado GET /boletos/{token}/atualizado/vencimento/{data} PDF com juros/multa calculados
Alterar vencimento PUT /boletos/{token}/vencimento Mudar a data de vencimento
Cancelar boleto PUT /boletos/{token}/baixa Baixar da cobrança

Para evitar a criação de boletos duplicados em cenários de retry ou falhas de rede, use o campo boleto.tokenControleUsuario:

boleto.tokenControleUsuario=pedido-12345-abc

Se duas requisições forem enviadas com o mesmo token de controle, apenas a primeira será processada — a segunda retornará 409 Conflict com os dados do boleto existente.


Terminal window
curl -v "https://sandbox.boletocloud.com/api/v1/boletos" \
-H "Content-Type: application/x-www-form-urlencoded; charset=utf-8" \
-X "POST" \
-u "api-key_SUA-API-KEY:token" \
-d boleto.conta.token="api-key_SEU-TOKEN-DA-CONTA" \
-d boleto.emissao="2024-01-15" \
-d boleto.vencimento="2024-02-15" \
-d boleto.documento="PED-12345" \
-d boleto.titulo="DM" \
-d boleto.valor="1250.43" \
-d boleto.pagador.nome="Alberto Santos Dumont" \
-d boleto.pagador.cprf="111.111.111-11" \
-d boleto.pagador.endereco.cep="36240-000" \
-d boleto.pagador.endereco.uf="MG" \
-d boleto.pagador.endereco.localidade="Santos Dumont" \
-d boleto.pagador.endereco.bairro="Casa Natal" \
-d boleto.pagador.endereco.logradouro="BR-499" \
-d boleto.pagador.endereco.numero="s/n" \
-d boleto.instrucao="Não receber após o vencimento" \
-o boleto.pdf
# O token do boleto estará no header X-BoletoCloud-Token da resposta
# Use -v para ver os headers ou capture com -D headers.txt

Além de usar o endpoint da API, boletos também podem ser acessados pela URL pública:

https://sandbox.boletocloud.com/boleto/2via/{TOKEN}

Esta URL pode ser compartilhada com o pagador para que ele acesse o boleto diretamente no navegador.