Criar Cobrança Boleto
Cria uma cobrança Boleto Bancário associada a um produto e oferta da sua conta. Retorna linha digitável, PDF do boleto e data de vencimento para apresentação ao pagador.
Visão geral
Este endpoint gera um boleto bancário e devolve os dados necessários para pagamento pelo cliente final.- Retorna
barcode(linha digitável),pdfUrlpara download do boleto edueDatecom a data de vencimento. - Use
dueDatepara definir o prazo de pagamento (deve respeitar o limite configurado no produto).
Autenticação
Todas as requisições exigem um token OAuth2 válido obtido emPOST /public_api/token/.
| Header | Obrigatório | Descrição |
|---|---|---|
Authorization | Sim | Bearer <access_token>. |
Content-Type | Sim | application/json. |
X-Idempotency-Key | Sim | Identificador único da cobrança (até 255 caracteres). Recomendado UUID v4. |
Escopo
payments habilitado. Configure no Painel Cakto.
Idempotência
O headerX-Idempotency-Key é obrigatório e permite reenviar a mesma requisição com segurança em caso de instabilidade de rede, sem gerar cobranças duplicadas.
Reuso com payload idêntico
id e mesmo status HTTP). A cobrança não é recriada. Janela de retenção: 24 horas.Reuso com payload diferente
409 Conflict com a mensagem Header X-Idempotency-Key reutilizado com payload diferente. Use uma nova chave para a nova cobrança.Reuso enquanto a requisição original ainda processa
409 Conflict com a mensagem Requisição idempotente em processamento. Aguarde a primeira finalizar.Rate limit
| Critério | Padrão |
|---|---|
| Por IP de origem | 60 requisições / minuto |
| Por token de acesso | 120 requisições / minuto |
429 Too Many Requests com o header Retry-After indicando os segundos restantes.
Corpo da requisição
Resumo dos campos
| Campo | Tipo | Obrigatório |
|---|---|---|
productId | string | Sim |
paymentMethod | "boleto" | Sim |
customer | object | Sim |
customer.name | string | Sim |
customer.email | string | Sim |
customer.phone | string | Sim |
customer.fingerprint | string | Sim |
customer.docType | enum (cpf, cnpj) | Não (obrigatório na prática) |
customer.docNumber | string | Não (obrigatório na prática) |
customer.birthDate | string (ISO 8601) | Não |
customer.ip | string | Não |
items (exatamente 1 item) | array | Sim |
items[].offerId | string | Sim |
items[].quantity | integer | Não (default 1) |
items[].offerType | enum (main) | Não (default main) |
address | object | Não (obrigatório se o produto exige entrega física) |
affiliateShortId | string | Não |
coupon | string | Não |
metadata | object | Não |
dueDate | string (ISO 8601, YYYY-MM-DD) | Não (respeita o limite do produto) |
antifraudProfilingAttemptReference | string | Sim |
Detalhamento dos campos
short_id (ex.: 19bruPi) ou o id em formato UUID. O produto deve pertencer ao tenant autenticado e estar ativo."boleto" para cobranças via Boleto Bancário.short_id do afiliado responsável pela venda. Deve estar active e cadastrado para o produto.YYYY-MM-DD). Deve ser futura e respeitar o limite máximo configurado no produto (ticketExpiration).Resposta de sucesso
201 Created
waiting_payment.boleto.Exemplo de resposta
Respostas de erro
| Código | Quando ocorre | Corpo de exemplo |
|---|---|---|
400 | Header X-Idempotency-Key ausente, vazio ou maior que 255 caracteres. | { "detail": "Header X-Idempotency-Key é obrigatório." } |
400 | productId ausente, inválido ou de outro tenant. | { "productId": ["Produto não encontrado."] } |
400 | paymentMethod ausente ou fora da lista aceita. | { "paymentMethod": ["Método de pagamento não suportado."] } |
400 | Oferta inexistente, inativa ou de outro produto. | { "items": ["Oferta não encontrada para o produto informado."] } |
400 | dueDate no passado ou acima do ticketExpiration do produto. | { "dueDate": ["A data de vencimento excede o limite do produto (7 dia(s))."] } |
400 | antifraudProfilingAttemptReference ausente. | { "antifraudProfilingAttemptReference": ["Este campo é obrigatório."] } |
400 | Conta do produtor bloqueada. | { "detail": "Conta bloqueada." } |
401 | Token ausente, inválido ou expirado. | { "detail": "As credenciais de autenticação não foram fornecidas." } |
403 | Chave de API sem escopo payments. | { "detail": "Você não tem permissão para executar esta ação." } |
409 | X-Idempotency-Key reutilizado com payload diferente. | { "detail": "Header X-Idempotency-Key reutilizado com payload diferente." } |
409 | X-Idempotency-Key em processamento. | { "detail": "Requisição idempotente em processamento." } |
429 | Rate limit excedido. | { "detail": "Request was throttled. Expected available in 60 seconds." } |
Exemplo de requisição
Boas práticas
- Gere uma chave de idempotência por intenção de compra, não por retentativa.
- Persista o
idretornado para conciliar com webhooks e comGET /public_api/orders/{id}/. - Alinhe
dueDatecom a política de cobrança do produto cadastrado no painel. Prazos muito curtos podem resultar em boletos vencidos antes do pagamento. - Exiba a linha digitável e ofereça o link do PDF — muitos pagadores preferem copiar o código ao invés de escanear.
- Não envie dados sensíveis em
metadata. Os campos UTM escksão propagados para webhooks e relatórios.
Authorizations
Token de autenticação do tipo Bearer {access_token}, onde {access_token} é o token obtido no fluxo de autenticação.
Headers
Identificador único da cobrança (até 255 caracteres). Recomendado UUID v4. Reuso com payload idêntico devolve a resposta original por 24h.
255Body
short_id ou id (UUID) do produto. O produto deve pertencer ao
tenant autenticado e estar ativo.
Método de pagamento da cobrança.
pix, pix_auto, boleto Deve conter exatamente um item.
1 elementshort_id do afiliado responsável pela venda. Deve estar com status
active e cadastrado para o produto informado.
40Código do cupom de desconto.
255Somente para boleto. Data de vencimento (YYYY-MM-DD). Deve ser
futura e respeitar o ticketExpiration do produto.
Somente para pix e pix_auto. Expiração do código Pix em segundos.
Mínimo 60. Deve respeitar o pixExpiresIn do produto.
x >= 60Response
Cobrança criada com sucesso.
Identificador único do pedido criado.
Código curto de referência do pedido.
Status inicial do pedido. Para Pix e Boleto, normalmente waiting_payment.
pix, pix_auto, boleto Valor final cobrado, em reais, como string decimal.
Identificador da transação no provedor.
URL do checkout Cakto.
Presente apenas para pix e pix_auto.
Presente apenas para boleto.
