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árioRecomendação
Emissão de boletos avulsosSim
Checkout de e-commerceSim
Geração sob demanda em sistemasSim
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 │
│ • 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
AmbienteURL Base
Sandbox (desenvolvimento)https://sandbox.boletocloud.com/api/v1/boletos
Produçãohttps://app.boletocloud.com/api/v1/boletos

HeaderValorObrigatório
AuthorizationBasic {credenciais_base64}Sim
Content-Typeapplication/x-www-form-urlencoded; charset=utf-8Sim

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.

CampoTipoExemploDescrição
boleto.conta.tokenstring"api-key_abc123..."Token da conta bancária cadastrada
boleto.emissaodate"2024-01-15"Data de emissão (formato AAAA-MM-DD)
boleto.vencimentodate"2024-02-15"Data de vencimento (formato AAAA-MM-DD)
boleto.documentostring"PED-12345"Número do documento/pedido
boleto.titulostring"DM"Tipo do título (ver tipos)
boleto.valordecimal"1250.43"Valor do boleto (até 8 inteiros, até 4 decimais)
boleto.pagador.nomestring"Alberto Santos Dumont"Nome completo do pagador
boleto.pagador.cprfstring"111.111.111-11"CPF ou CNPJ do pagador
boleto.pagador.endereco.cepstring"36240-000"CEP do pagador
boleto.pagador.endereco.ufstring"MG"Estado (2 letras)
boleto.pagador.endereco.localidadestring"Santos Dumont"Cidade
boleto.pagador.endereco.bairrostring"Centro"Bairro
boleto.pagador.endereco.logradourostring"Rua Principal"Logradouro
boleto.pagador.endereco.numerostring"123"Número (use "s/n" se não houver)
CampoTipoExemploDescrição
boleto.pagador.endereco.complementostring"Apto 101"Complemento do endereço
boleto.numerostring"12345678901-P"NIB específico (se não informado, usa sequencial automático)
boleto.sequencialinteger12345Sequencial para gerar NIB (alternativa ao numero)
boleto.instrucaostring"Não receber após 30 dias"Instruções ao caixa (até 3 linhas, envie múltiplas vezes)
boleto.infostring"Pedido #12345"Informações ao pagador (até 2 linhas de 100 caracteres)
boleto.jurosdecimal"1.00"Taxa de juros ao mês (%)
boleto.multadecimal"2.00"Percentual de multa por atraso (%)
boleto.descontodecimal"5.00"Percentual de desconto até o vencimento (%)
boleto.tokenControleUsuariostring"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.

HeaderDescriçãoExemplo
Content-TypeTipo do conteúdoapplication/pdf; charset=UTF-8
X-BoletoCloud-TokenToken único do boleto — guarde para operações futurasabc123def456...
X-BoletoCloud-NIB-Nosso-NumeroNosso Número do boleto00000012345-6
X-BoletoCloud-Token-Controle-UsuarioToken de controle enviado (se informado)pedido-12345-abc
LocationPath para acessar o boleto/api/v1/boletos/abc123def456
X-BoletoCloud-VersionVersão da plataforma2.0.0

Clientes do plano personalizado recebem headers extras:

HeaderDescriçãoExemplo
X-BoletoCloud-Codigo-De-BarrasCódigo de barras numérico (44 dígitos)23793.38128 60000.000003 00000.000400 1 84340000012543
X-BoletoCloud-Linha-DigitavelLinha digitável formatada23793.38128 60000.000003...
X-BoletoCloud-Pix-Codigo-EMVCódigo Pix copia-e-cola00020126580014br.gov.bcb...
X-BoletoCloud-Status-Registrado-BancoSe já foi registrado no bancotrue 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.

HeaderDescrição
Content-Typeapplication/json; charset=UTF-8
X-BoletoCloud-TokenToken do boleto existente
X-BoletoCloud-NIB-Nosso-NumeroNosso Número do boleto existente
X-BoletoCloud-Token-Controle-UsuarioToken de controle do boleto existente
LocationPath para o boleto existente
X-BoletoCloud-VersionVersã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.

HeaderDescrição
Content-Typeapplication/json; charset=UTF-8
X-BoletoCloud-VersionVersã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/"
}
]
}
}
CampoFormato IncorretoFormato Correto
boleto.emissao23/05/20242024-05-23
boleto.vencimento15-02-20242024-02-15
boleto.valor1.274,981274.98
boleto.sequencial12345678901234567890 (>18 dígitos)12345 (até 18 dígitos)
boleto.conta.carteira-1209 (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çãoComportamento
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çãoEndpointDescrição
Verificar registroGET /boletos/{token}/registroConfirmar se foi aceito pelo banco
Obter PDF novamenteGET /boletos/{token}Recuperar o PDF original
Obter PDF atualizadoGET /boletos/{token}/atualizado/vencimento/{data}PDF com juros/multa calculados
Alterar vencimentoPUT /boletos/{token}/vencimentoMudar a data de vencimento
Cancelar boletoPUT /boletos/{token}/baixaBaixar 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.