Skip to main content
POST
cURL

Escopo

Ao criar um produto, a Cakto já gera a oferta padrão, o checkout e o link de pagamento (https://pay.cakto.com.br/{id_da_oferta}). Não existe um endpoint separado para “criar checkout” — o checkout é a vitrine do produto.Para o passo a passo completo, veja o guia Criar um checkout.
O preço mínimo e máximo permitidos dependem da moeda da oferta (currency) — os limites são configurados por moeda, não um valor fixo em reais. Um preço fora da faixa retorna 400 com o limite e o símbolo da moeda na mensagem.

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.

Body

name
string
required

Nome do produto

Maximum string length: 255
description
string
required

Descrição do produto

price
string<decimal>

Preço do produto

Pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
currency
enum<string>

Moeda do produto

  • BRL - Real
  • EUR - Euro
  • MXN - Peso Mexicano
  • PEN - Sol Peruano
  • USD - Dólar
  • CLP - Peso Chileno
  • COP - Peso Colombiano
  • ARS - Peso Argentino
  • BOB - Boliviano
  • UYU - Peso Uruguayo
Available options:
BRL,
EUR,
MXN,
PEN,
USD,
CLP,
COP,
ARS,
BOB,
UYU
type
enum<string>

Tipo de venda do produto, ex.: venda única, assinatura...

  • unique - Pagamento único
  • subscription - Assinatura recorrente
Available options:
unique,
subscription
salesPage
string<uri> | null

Link da página de vendas do produto

Maximum string length: 2048
status
enum<string>

Status atual do produto

  • active - Ativo
  • waiting_config - Aguardando Configuração
  • blocked - Bloqueado
  • deleted - Deletado
Available options:
active,
waiting_config,
blocked,
deleted

Link a ser enviado por e-mail para acesso ao conteúdo após a compra

Maximum string length: 2048
contentDeliveries
enum<string>[]

Por qual(is) meio(s) o conteúdo será entregue ao cliente

Available options:
external,
cakto,
cakto_v2,
cakto_v3,
telegram,
discord,
emailAccess,
files,
disabled
paymentMethods
string[]

Métodos de pagamento disponíveis para o produto

Response

Corpo da resposta status 201

Secure file replacement (context)

When an update replaces an existing uploaded file (e.g. a profile picture), the old file usually remains in storage unless you explicitly delete it. Over time, this leaves orphaned files and increases storage costs.

What this class does

This is an opt-in base serializer that deletes old files from storage after a successful update that replaces (or clears) a Django models.FileField / models.ImageField.

It is configured via Meta.delete_replaced_files_fields:

  • As a list/tuple/set of field names, or
  • As a dict mapping field name → options.

Supported options (per field)

  • delete_on_clear (bool, default True): when the update sets the field to None/empty, delete the previous stored file.

Example usage (simple)

Example usage (per-field options)

name
string
required

Nome do produto

Maximum string length: 255
description
string
required

Descrição do produto

contentDeliveries
enum<string>[]
required

Métodos de entrega de conteúdo do produto

Available options:
external,
cakto,
cakto_v2,
cakto_v3,
telegram,
discord,
emailAccess,
files,
disabled
member_area
string
required
read-only

ID da área de membros

offers
object[]
required
read-only
paymentMethods
enum<string>[]
required

Métodos de pagamento que o produto aceita

  • pix - Pix
  • pix_auto - Pix Automático
  • boleto - Boleto
  • credit_card - Cartão de Crédito
  • debit_card - Cartão de Débito
  • threeDs - Cartão de Crédito 3DS
  • picpay - Pic Pay
  • pagaleve - Pagaleve
  • googlepay - Google Pay
  • applepay - Apple Pay
  • paypal_wallet - PayPal Wallet
  • openfinance_nubank - Nubank
  • mercadopago_wallet - Mercado Pago Wallet
  • oxxo - OXXO
  • spei - SPEI
  • pse - PSE
  • nequi - Nequi
  • safetypay - SafetyPay
Available options:
pix,
pix_auto,
boleto,
credit_card,
debit_card,
threeDs,
picpay,
pagaleve,
googlepay,
applepay,
paypal_wallet,
openfinance_nubank,
mercadopago_wallet,
oxxo,
spei,
pse,
nequi,
safetypay
bumps
object[]
required
read-only

Orderbumps do produto

tracking_pixels
object
required
createdAt
string<date-time>
required
read-only

Data e hora de criação

updatedAt
string<date-time>
required
read-only

Data e hora da última atualização

id
string

Identificador único do produto

Maximum string length: 255
short_id
string

Identificador curto do produto

Maximum string length: 40
status
enum<string>

Status atual do produto

  • active - Ativo
  • waiting_config - Aguardando Configuração
  • blocked - Bloqueado
  • deleted - Deletado
Available options:
active,
waiting_config,
blocked,
deleted
type
enum<string>

Tipo de venda do produto, ex.: venda única, assinatura...

  • unique - Pagamento único
  • subscription - Assinatura recorrente
Available options:
unique,
subscription
category
string | null

Categoria do produto

price
string<decimal>

Preço do produto

Pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
currency
enum<string>

Moeda do produto

  • BRL - Real
  • EUR - Euro
  • MXN - Peso Mexicano
  • PEN - Sol Peruano
  • USD - Dólar
  • CLP - Peso Chileno
  • COP - Peso Colombiano
  • ARS - Peso Argentino
  • BOB - Boliviano
  • UYU - Peso Uruguayo
Available options:
BRL,
EUR,
MXN,
PEN,
USD,
CLP,
COP,
ARS,
BOB,
UYU
installments
integer

Número máximo de parcelas que o produto pode ser dividido

Required range: -2147483648 <= x <= 2147483647
image
string<uri> | null
guarantee
integer

Número de dias que o produto aceita reembolso

Required range: -2147483648 <= x <= 2147483647
salesPage
string<uri> | null

Link da página de vendas do produto

Maximum string length: 2048
supportEmail
string<email> | null

E-mail para suporte ao cliente final do produto

Maximum string length: 254
supportWhatsapp
string | null

Número de WhatsApp para suporte ao cliente, em formato ITU E.164, ex.: +5511999993333

Maximum string length: 128

Link a ser enviado por e-mail para acesso ao conteúdo após a compra

Maximum string length: 2048
confirmEmail
boolean

Define se o cliente deve repetir o e-mail digitado no checkout antes de finalizar a compra

affiliate
boolean

Define se o produto é aberto para afiliações

affiliateRequest
boolean

Define se o produtor deve aprovar manualmente cada afiliação

affiliateCommission
string<decimal> | null

Porcentagem de comissão padrão para afiliados do produto

Pattern: ^-?\d{0,8}(?:\.\d{0,2})?$
affiliateContact
boolean

Define se informações do cliente serão compartilhadas com os afiliados após a venda

affiliateDescription
string | null

Descrição do produto que será exibida para os afiliados no marketplace e/ou páginas dedicadas a afiliação

affiliateSupportEmail
string<email> | null

E-mail para suporte aos afiliados do produto

Maximum string length: 254
affiliateMarketplace
boolean

Define se o produto será exibido no marketplace de afiliados

affiliateClick
enum<string>

Define como a comissão da venda será atribuída caso haja múltiplos cookies de afiliados rastreados na venda

  • first - Primeiro clique
  • last - Último clique
Available options:
first,
last

Quantidade de dias que o cookie de afiliado permanecerá ativo

Required range: -2147483648 <= x <= 2147483647
affiliateShareBump
boolean

Define se a comissão do orderbump será dividida com o afiliado

affiliateShareUpsell
boolean

Define se a comissão do upsell será dividida com o afiliado

affiliateCloneQuiz
boolean

Habilitar clonagem do quiz

affiliateCloneQuizUrl
string<uri> | null

Link para clonagem do quiz

Maximum string length: 2048
affiliateSalesPage
string<uri> | null

Página de vendas do afiliado

Maximum string length: 2048
upsell
boolean

Define se o produto terá uma oferta de upsell após a compra

upsellPage
string<uri> | null

URL da página de upsell para onde o cliente será redirecionado após a compra

Maximum string length: 2048
redirectUpsellWithBumpFail
boolean

Define se o cliente deve ser redirecionado para a página de upsell mesmo que um dos pagamentos de orderbump falhe

sendConfirmationEmail
boolean

Define se o cliente deve receber um e-mail de confirmação de compra

confirmationEmailDelay
integer

Quantidade de minutos que o e-mail de confirmação de compra deve atrasar para o envio

Required range: -2147483648 <= x <= 2147483647
whatsappAbandonmentRecovery
boolean

Define se o cliente que abandonou o checkout deve receber uma mensagem de recuperação no WhatsApp. Opt-in do produtor: nasce desligado e só dispara para abandono com celular válido

defaultPaymentMethod
string | null

Método de pagamento selecionado por padrão no checkout

showCouponField
boolean
showAddressFields
boolean

Exibe campos de endereço no checkout, como CEP, rua, número, etc

showDocNumberField
boolean

Exibe campo de documento no checkout, como CPF ou CNPJ

autoSelectOrderBumps
boolean

Se ativo, os order bumps deste produto entram pré-selecionados no checkout.

absorbInstallmentInterest
boolean

Produtor absorve o juro do parcelamento (cliente paga sem juros)

threeDsRetryEnabled
boolean

Caso o pagamento falhe no cartão de crédito, será tentado novamente via 3DS

invoiceDescription
string | null

Descrição que aparecerá na fatura do cartão de crédito do cliente

Maximum string length: 255
paymentsOrder
any

Ordem na qual os métodos de pagamento são exibidos no checkout

ticketExpiration
integer

Quantidade de dias que o boleto será válido para pagamento

Required range: -2147483648 <= x <= 2147483647
pixExpiresIn
integer

Vencimento do pix em segundos

Required range: -2147483648 <= x <= 2147483647
twoCardPayment
boolean
disable_orderbump_pixel_events
boolean

Define se eventos de orderbump não serão enviados no Pixel

producerName
string | null

Nome público do produtor ou empresa responsável pelo produto

Maximum string length: 255