Criar Cobrança Pix Automático
Inicia uma autorização de débito automático via Pix Automático. O cliente escaneia o QR Code para autorizar cobranças futuras recorrentes — não é uma cobrança pontual.
Visão geral
O Pix Automático (pix_auto) é um método de pagamento recorrente baseado na especificação de Pix Automático do Banco Central do Brasil. O fluxo é diferente de uma cobrança Pix comum:
- Primeira cobrança: sua aplicação chama este endpoint, a Cakto cria o contrato de recorrência junto à adquirente e retorna um QR Code. O cliente escaneia o QR Code no app do banco para autorizar os débitos automáticos futuros.
- Cobranças seguintes: são debitadas automaticamente, sem ação do cliente.
user_journey, que indica a jornada de autorização definida pelo banco do cliente conforme a especificação do BCB (JORNADA_1 a JORNADA_4). Sua aplicação deve exibir o QR Code e aguardar o evento de webhook purchase_approved para confirmar a autorização.
qrCodeBase64. Apenas qrCode (copia-e-cola) está disponível na resposta.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 criar contratos de recorrência duplicados.
Reuso com payload idêntico
id e mesmo status HTTP). A autorização 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 | "pix_auto" | 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 |
pixExpiresIn | integer (segundos) | 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, e deve ter pix_auto habilitado nos métodos de pagamento."pix_auto" para iniciar uma autorização de débito automático via Pix Automático.docType e docNumber são exigidos pelas adquirentes para criação do contrato de recorrência.short_id do afiliado responsável pela venda. Deve estar active e cadastrado para o produto.60. Deve respeitar o limite máximo configurado no produto (pixExpiresIn).Resposta de sucesso
201 Created
waiting_payment — aguardando o cliente escanear e autorizar o QR Code.pix_auto.qrCodeBase64 — apenas o código copia-e-cola.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 | pixExpiresIn acima do limite do produto. | { "pixExpiresIn": ["A expiração do Pix excede o limite do produto (3600 segundo(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
Fluxo de autorização
Boas práticas
- Exiba apenas
pix.qrCode(texto copia-e-cola) — o Pix Automático não retorna imagem base64. - Aguarde o webhook
purchase_approvedpara confirmar que o cliente autorizou os débitos. Não ative o acesso ao produto antes da confirmação. docTypeedocNumbersão essenciais — sem eles a adquirente pode rejeitar a criação do contrato de recorrência.- Persista o
idretornado para conciliar com webhooks e comGET /public_api/orders/{id}/. - Não reuse a chave de idempotência em situações distintas — uma nova intenção de assinatura exige uma nova chave.
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.
