Skip to main content
POST
cURL

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:
  1. 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.
  2. Cobranças seguintes: são debitadas automaticamente, sem ação do cliente.
A resposta inclui o campo 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.
Nenhum método Pix retorna imagem do QR Code. Apenas qrCode (copia-e-cola) está disponível na resposta — gere a imagem no seu lado a partir desse texto.

Autenticação

Todas as requisições exigem um token OAuth2 válido obtido em POST /public_api/token/.

Escopo

A Chave de API utilizada deve ter o escopo payments habilitado. Configure no Painel Cakto.

Pré-requisitos

Pix Automático exige conta Cakto Banking. Pix Automático (pix_auto), Pix (pix) e Boleto (boleto) liquidam em uma conta Cakto Banking do produtor. Sem essa conta, a autorização é rejeitada com 400 antes de o contrato de recorrência ser criado na adquirente.Cartão (credit_card, threeDs) não exige conta Banking e continua funcionando normalmente.
A conta precisa atender às quatro condições ao mesmo tempo:
  • abertura concluída — a proposta chegou até o fim; conta em análise, em documentoscopia ou com proposta apenas aprovada ainda não vale;
  • ativa;
  • principal do produtor;
  • fora de encerramento — encerramento solicitado ou concluído invalida a conta, mesmo que ela ainda apareça como ativa.
Confira o status em Painel Cakto. A API pública (/public_api/) não expõe o status dessa conta — não há endpoint para consultá-lo antes de cobrar.

Idempotência

O header X-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.
1

Reuso com payload idêntico

A resposta original é devolvida (mesmo id e mesmo status HTTP). A autorização não é recriada. Janela de retenção: 24 horas.
2

Reuso com payload diferente

Resposta 409 Conflict com a mensagem Header X-Idempotency-Key reutilizado com payload diferente. Use uma nova chave para a nova cobrança.
3

Reuso enquanto a requisição original ainda processa

Resposta 409 Conflict com a mensagem Requisição idempotente em processamento. Aguarde a primeira finalizar.
4

Falha do servidor (5xx)

A chave é liberada automaticamente. A próxima retentativa com o mesmo header executa normalmente.
Gere a chave antes de chamar o endpoint e persista-a junto da operação de negócio. Use a mesma chave em todas as retentativas dessa operação.

Rate limit

Ao exceder qualquer um dos limites, a resposta é 429 Too Many Requests com o header Retry-After indicando os segundos restantes.

Corpo da requisição

Resumo dos campos

Detalhamento dos campos

enum<string>
required
Deve ser "pix_auto" para iniciar uma autorização de débito automático via Pix Automático.
object
required
Dados do pagador. O docType e docNumber são exigidos pelas adquirentes para criação do contrato de recorrência.
array<object>
required
Itens da cobrança. Deve conter exatamente um item.
object
Endereço do pagador. Obrigatório quando o produto exige entrega física.
string
short_id do afiliado responsável pela venda. Deve estar active e cadastrado para o produto.
string
Código do cupom de desconto. Até 255 caracteres.
object
Parâmetros de rastreio associados à cobrança.
integer
Expiração do QR Code de autorização em segundos. Mínimo 60. Deve respeitar o limite máximo configurado no produto (pixExpiresIn).O valor é repassado à adquirente que processar a autorização. Se ela impuser um limite próprio, vale o dela — confira sempre o pix.expirationDate devolvido na resposta. Omitindo o campo, vale o padrão da adquirente.

Resposta de sucesso

201 Created
string
Identificador único do pedido criado.
string
Código curto de referência do pedido.
string
Status inicial. Normalmente waiting_payment — aguardando o cliente escanear e autorizar o QR Code.
string
Método de pagamento confirmado: pix_auto.
string
Valor da primeira cobrança, em reais, como string decimal.
string
Valor base da oferta, antes de descontos.
string
Valor de desconto aplicado.
string
Taxas aplicadas pela Cakto, já consolidadas.
string
Identificador da transação na adquirente.
string
URL do checkout Cakto.
string<date-time>
Timestamp ISO 8601 com fuso horário.
object
Resumo do produto associado.
object
Resumo da oferta cobrada.
object
Dados da autorização Pix Automático. Contém apenas o código copia-e-cola — a API não devolve imagem do QR Code.

Exemplo de resposta

Pix Automático

Respostas de erro

Erros 5xx indicam falha temporária da Cakto. A chave de idempotência é liberada automaticamente — a próxima retentativa executa normalmente.

Exemplo de requisição

Fluxo de autorização

Boas práticas

  • Exiba apenas pix.qrCode (texto copia-e-cola) — a API não retorna imagem base64 em nenhum método Pix; gere a imagem no seu lado.
  • Aguarde o webhook purchase_approved para confirmar que o cliente autorizou os débitos. Não ative o acesso ao produto antes da confirmação.
  • docType e docNumber são essenciais — sem eles a adquirente pode rejeitar a criação do contrato de recorrência.
  • Persista o id retornado para conciliar com webhooks e com GET /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

Authorization
string
header
required

Token de autenticação do tipo Bearer {access_token}, onde {access_token} é o token obtido no fluxo de autenticação.

Headers

X-Idempotency-Key
string
required

Identificador único por cobrança. Reuso com payload idêntico devolve a mesma resposta (24h). Máximo de 255 caracteres; recomenda-se UUID v4.

Body

paymentMethod
enum<string>
required

Método de pagamento.

  • pix - pix
  • pix_auto - pix_auto
  • boleto - boleto
  • credit_card - credit_card
  • threeDs - threeDs
Available options:
pix,
pix_auto,
boleto,
credit_card,
threeDs
customer
object
required

Dados do pagador. CPF e CPNJ aceitos conforme contrato existente do checkout.

items
object[]
required

Deve conter exatamente um item.

address
object | null

Endereço do pagador. Obrigatório quando o produto exige envio físico.

affiliateShortId
string

short_id do afiliado responsável pela venda, usado para resolver o split interno. Deve estar com status active e cadastrado para o produto informado.

Maximum string length: 40
coupon
string

Código do cupom de desconto.

Maximum string length: 255
metadata
object

Optional UTM/tracking metadata associated with the payment.

dueDate
string<date>

Somente para boleto. Data de vencimento (YYYY-MM-DD). Deve ser futura e respeitar o ticketExpiration do produto.

pixExpiresIn
integer

Somente para pix e pix_auto. Expiração do código Pix em segundos. Mínimo 60. Deve respeitar o pixExpiresIn do produto.

Required range: x >= 60
card
object

Dados do cartão de crédito. Obrigatório quando paymentMethod é credit_card ou threeDs.

threeDSecure
object

Dados de autenticação 3DS. Opcional para credit_card; recomendado para threeDs.

installments
integer | null

Número de parcelas. Aplicável apenas para pagamentos com cartão de crédito.

Required range: 1 <= x <= 12
antifraud_profiling_attempt_reference
string

Referência de profiling do antifraude. Obrigatório para credit_card e threeDs; deve ser o mesmo attemptReference usado ao inicializar o profiler no navegador.

Response

Corpo da resposta status 201

Cobrança criada pelo endpoint público.

id
string

Identificador único do pedido criado.

refId
string | null

Código curto de referência do pedido.

status
string | null

Status inicial do pedido. Para Pix e Boleto, normalmente waiting_payment.

paymentMethod
enum<string>

Método de pagamento da cobrança, ecoando o valor enviado na requisição.

  • pix - pix
  • pix_auto - pix_auto
  • boleto - boleto
  • credit_card - credit_card
  • threeDs - threeDs
Available options:
pix,
pix_auto,
boleto,
credit_card,
threeDs
amount
string

Valor final cobrado, em reais, como string decimal.

baseAmount
string | null

Valor da oferta antes de descontos.

discount
string | null

Desconto aplicado.

fees
string | null

Taxas da transação.

externalId
string | null

Identificador da transação no provedor.

checkoutUrl
string | null

URL do checkout Cakto.

createdAt
string<date-time> | null

Data e hora de criação da cobrança.

product
object

Produto resolvido a partir da oferta enviada.

offer
object

Oferta cobrada. Campos vazios no checkout são preenchidos com a oferta validada.

pix
object

Presente apenas para pix e pix_auto.

boleto
object

Presente apenas para boleto.