Pular para o conteúdo

Documentação da API

Boleto Cloud

Olá! Seja bem-vindo à página da documentação de referência da API Boleto Cloud.

A API Boleto Cloud permite integrar qualquer sistema — seja site, aplicativo mobile, desktop ou servidor — em qualquer linguagem de programação. Ainda não oferecemos SDKs ou bibliotecas oficiais, mas os exemplos desta documentação são fáceis de adaptar para a linguagem que você preferir.

A API segue o estilo REST sobre HTTP. Isso significa que você lê e escreve dados através de chamadas HTTP comuns. Para a API, não importa de onde vem a requisição: mobile, desktop ou servidor — todas são tratadas da mesma forma.

Visão geral das conexões com a API

Emissão de Boletos

  • Criar boletos individuais com retorno imediato do PDF
  • Criar boletos em lote (múltiplos boletos em uma única requisição)
  • Gerar carnês com várias parcelas (3 boletos por página)
  • Configurar juros, multa e descontos escalonados
  • Vincular dados de Nota Fiscal Eletrônica (NF-e) ao boleto

Gestão do Ciclo de Vida

  • Consultar status de registro no banco (aceito/rejeitado)
  • Alterar data de vencimento de boletos ativos
  • Conceder abatimento (redução de valor)
  • Cancelar/baixar boletos da cobrança

Segunda Via e Consultas

  • Obter PDF original do boleto a qualquer momento
  • Gerar segunda via atualizada com juros e multa calculados para nova data
  • Disponibilizar link público para o pagador acessar o boleto

Integração Bancária

  • Registro automático via API/Webservice bancário (plano personalizado)
  • Geração de arquivos CNAB de remessa
  • Processamento de arquivos CNAB de retorno
  • Integração com Pix (QR Code no boleto)

Comunicação

  • Envio automático de boletos por e-mail (plano personalizado)
  • Múltiplos destinatários por boleto

A API Boleto Cloud oferece integração com os principais bancos brasileiros, incluindo Banco do Brasil, Bradesco, Itaú, Santander, Caixa, Sicredi, Sicoob e muitos outros. Consulte a lista completa em Bancos Suportados para verificar se o banco que você utiliza já está suportado ou se precisa ser adicionado.

O protocolo utilizado pela API é de fato HTTPS, porém, toda a semântica relacionada a arquitetura REST é pertinente ao HTTP versão 1.1. Base da implementação leva em consideração sua RFC principal: RFC2616, entretanto, alguns aspectos podem utilizar atualizações como a RFC7231.

Todos os serviços disponibilizados através da API em ambiente de produção, por questões de segurança, são realizados através do protocolo HTTPS, onde a URL base de acesso é https://app.boletocloud.com/api.

Como já dissemos, a API segue o estilo REST e sendo desta maneira, para que fique claro, os serviços são compostos e formados da seguinte forma:

Composição da URL

Onde:

  • Hostname - é o endereço principal dos serviços https://app.boletocloud.com
  • Versão - é a versão da API/serviço /api/v1
  • Recurso - é o nome do serviço /boletos

Portanto, existem apenas dois endpoints para acessar a API:

AmbienteURLFinalidade
Sandboxhttps://sandbox.boletocloud.com/apiDesenvolvimento e testes
Produçãohttps://app.boletocloud.com/apiOperação real com clientes

Os ambientes são completamente independentes — cadastros, tokens e dados de um ambiente não existem no outro.

FuncionalidadeSandboxProdução
Geração de boletos via APISimSim
Exportação manual de arquivo CNABSimSim
Registro online (API/Webservice bancário)NãoSim*
Integração via VANNãoSim*
Envio automático de remessaNãoSim*

*Disponível no plano personalizado

O Charset padrão utilizado para todas as chamadas à API é o UTF-8, em caso de dúvidas consulte a RFC3629.

O tráfego de dados na API, utiliza os formatos FORM, JSON e o PDF, dependendo do serviço consumido. Respectivamente a negociação de conteúdo deve levar em consideração o content type:

  • application/x-www-form-urlencoded para input
  • application/json para retorno de erros
  • application/pdf para os boletos gerados

Para o correto funcionamento do serviço alguns dados são padronizados como:

TipoFormatoExemploDescrição
Datas"aaaa-mm-dd""2014-07-01"Todas as datas devem ser informadas seguindo esse padrão (ISO 8601).
Valores Monetários"0000.00""1.83", "3095.72", "5200459.37"Todos os valores devem possuir apenas duas casas decimais. No exemplo "5200459.37" que normalmente é representado como R$ 5.200.459,37, não deve conter vírgula e no lugar dela apenas um ponto representa a parte fracionária. Todos os valores são, por padrão, considerados como valores em Real R$.

Os exemplos são disponibilizados em 11 linguagens/ferramentas diferentes, organizados em abas para facilitar a navegação. Todos os exemplos seguem o mesmo padrão e utilizam as bibliotecas nativas ou mais populares de cada linguagem.

LinguagemVersãoBiblioteca/FrameworkObservações
PostmanAmplamente utilizadaInterface gráficaDisponível em alguns exemplos para visualização
cURL7.x+Linha de comandoExemplo canônico, base para todas as linguagens
Java17+JAX-RS 2.x + Jersey 2.xCompatível com Java 11+, adaptável para versões anteriores
Kotlin1.8+OkHttp 4.xBiblioteca HTTP moderna e eficiente
C#.NET 6+HttpClient (nativo)Compatível com .NET Core 3.1+
Node.js18+https (módulo nativo)Sem dependências externas
Go1.20+net/http (padrão)Biblioteca padrão, sem dependências externas
PHP8.1+cURL extensionCompatível com PHP 7.4+
Python3.10+requestsBiblioteca mais popular para HTTP
Ruby3.1+net/http (padrão)Biblioteca padrão, sem gems externas
Clojure1.11+clj-httpCliente HTTP mais utilizado no ecossistema

Caso prefira, é possível executar os exemplos direto do browser, para isso, indicamos o Postman. Com essa ferramenta você poderá adaptar os exemplos colocando os valores de parâmetros descritos nos respectivos campos da interface gráfica.

Postman

Utilizamos o cURL como o principal meio de exemplificação das chamadas à API. É uma ferramenta de linha de comando largamente utilizada e disponível em diversos sistemas operacionais. Os exemplos cURL servem como especificação canônica e base para adaptação em outras linguagens.

No momento não disponibilizamos nenhuma biblioteca, DLL ou SDK específico, mas fornecemos exemplos completos em 10 linguagens de programação usando as bibliotecas mais populares de cada ecossistema.

Java - Utilizamos a Java API for RESTful Services (JAX-RS) 2.x com a implementação de referência Jersey 2.x. Os exemplos usam text blocks do Java 17, mas são facilmente adaptáveis para versões anteriores usando concatenação de strings.

Kotlin - Utilizamos o OkHttp 4.x, um cliente HTTP moderno e eficiente amplamente utilizado no ecossistema Kotlin/Android.

C# - Utilizamos o HttpClient nativo do .NET, disponível desde o .NET Core. Os exemplos são assíncronos usando async/await.

Node.js - Utilizamos o módulo https nativo, sem dependências externas. Os exemplos são compatíveis com o sistema de callbacks do Node.js.

Go - Utilizamos o pacote net/http da biblioteca padrão. Go oferece excelente suporte HTTP nativo sem necessidade de bibliotecas externas.

PHP - Utilizamos a extensão cURL do PHP, presente na maioria das instalações PHP. Os exemplos são compatíveis com PHP 7.4+.

Python - Utilizamos a biblioteca requests, o cliente HTTP mais popular do Python. Instale com pip install requests.

Ruby - Utilizamos o módulo net/http da biblioteca padrão do Ruby, sem necessidade de gems externas.

Clojure - Utilizamos o clj-http, o cliente HTTP mais utilizado no ecossistema Clojure. Adicione [clj-http "3.12.3"] às suas dependências.

Dados gerados pela API podem ser visualizados via interface gráfica no ambiente Sandbox, entretanto os dados são apagados de tempos e tempos, portanto não conte com uma vida prolongada dos dados gerados, exceto os dados de acesso referente a conta do usuário.