Skip to main content
POST
Criar venda rápida
POST /checkout/charges Faz parte do recurso Vendas rápidas — a relação com Link e Session está lá. Cria a compra com a configuração inline: itens, métodos, branding e splits vão no topo do corpo, com o mesmo formato que o Link aceita. A resposta é 201 com a Session (linkId: null) e a url para você enviar pelo seu canal. O objeto customer é opcional e serve para pré-preencher os dados na página — o comprador ainda pode corrigi-los, e os requiredFields continuam valendo na confirmação.
mode: "subscription" é recusado com 400. Recorrência só nasce de um Link de assinatura.
null explícito é recusado aqui. No Link, vários campos aceitam null; no corpo da venda rápida, não. Campo que você não vai usar deve ser omitido. É a diferença que mais derruba quem copia a configuração de um Link direto para cá — veja o clean() no exemplo abaixo.
Valores são inteiros em centavos, e o split exige soma 100 com exatamente um liable: true — as mesmas regras do Link. Veja Criar checkout link.
Endpoint idempotente. Envie Idempotency-Key para que um retry por timeout não crie duas cobranças — sem ele, a segunda chamada gera outro cs_ e outra URL. Veja Convenções.

Exemplo

Resposta 201

Já tem um Link com branding, métodos e splits ajustados e quer disparar uma cobrança individual com a mesma cara, mas com outro carrinho? Leia o Link, mova o config para o topo do corpo e poste aqui. É o mesmo caminho do “Duplicar como venda rápida” do painel.
A venda rápida resultante é independente: ela copia a configuração no momento da criação, não cria vínculo. Editar o Link depois não a alcança. Se você quer o vínculo vivo, compartilhe a URL do próprio Link.
1

Leia o Link

GET /checkout/links/{id}. A resposta traz items, paymentMethods, splits e branding dentro de config; o resto já vem no topo.
2

Mova o config para o topo

Os quatro campos aninhados sobem um nível. locale, currency, requiredFields, customFields, successUrl, cancelUrl, description, metadata e expirationMinutes são copiados direto.
3

Troque o que é seu

items vem do seu carrinho, não do Link. Omita name, slug e qualquer configuração de assinatura. Envie mode: "payment".
4

Poste

POST /checkout/charges201 com o cs_ e a url.
Quatro coisas não atravessam: mode: "subscription" e o objeto subscription (recusados); name e slug (são identidade do template); qualquer null (omita em vez de enviar); e chargeType recurring/activation nos itens — em pagamento único todo item é cobrança única.
As URLs de mídia (branding.logoUrl, faviconUrl, coverUrl e items[].imageUrl) copiam verbatim — são endereços públicos de CDN, sem novo upload.

Authorizations

x-api-key
string
header
required

API key unificada (z2_{live|test}{sk|pk}...) — secret (sk) para integração backend, publishable (pk) para uso no frontend público

Body

application/json
items
object[]
required

Itens da cobrança (unitAmount em centavos); ao menos 1 é obrigatório.

Minimum array length: 1
paymentMethods
object
required

Métodos de pagamento habilitados (card/pix/boleto/combined); ao menos um enabled.

mode
enum<string>
default:payment

Apenas 'payment' é aceito na venda rápida ad-hoc — 'subscription' é rejeitado (recorrência exige Link).

Available options:
payment,
subscription
currency
enum<string>
default:BRL

Moeda da cobrança. Só BRL — os gateways liquidam em real.

Available options:
BRL
locale
enum<string>
default:pt-BR

Idioma do checkout (default 'pt-BR').

Available options:
pt-BR,
en-US,
es-ES
splits
object[]

Divisão de receita por percentual; a soma deve ser exatamente 100.

branding
object

Customização visual do checkout.

customer
object

Pré-preenchimento dos dados do comprador.

requiredFields
enum<string>[]

Campos do comprador exigidos no checkout (email, document, phone, address).

Available options:
email,
document,
phone,
address
customFields
object[]

Campos customizados do formulário (máx. 20).

Maximum array length: 20
successUrl
string<uri>

URL de redirecionamento após pagamento aprovado.

Maximum string length: 2000
cancelUrl
string<uri>

URL de redirecionamento quando o comprador cancela.

Maximum string length: 2000
description
string

Descrição da venda rápida (exibida na listagem).

Maximum string length: 2000
metadata
object

Metadados do seller (string → string); propagados ao additionalInfo da Transaction e dos webhooks.

expirationMinutes
integer

Expiração da sessão em minutos (5 a 43200 = 30 dias).

Required range: 5 <= x <= 43200

Response

Venda rápida criada

id
string

Identificador único do registro.

Identificador do link de checkout que originou o registro; nulo em sessões ad-hoc.

status
string

Estado atual do registro.

mode
string

Modo do checkout: 'payment' (pagamento único) ou 'subscription' (assinatura).

currency
string

Moeda no padrão ISO 4217 (ex.: BRL).

locale
string

Idioma do checkout (ex.: pt-BR, en-US, es-ES).

config
object

Snapshot da configuração do checkout (formas de pagamento, itens e personalização visual).

customer
object | null

Dados do comprador (nome, e-mail, documento e demais informações).

customFieldValues
object | null

Valores preenchidos nos campos personalizados, indexados pela key de cada campo.

paymentMethodSelected
string | null

Forma de pagamento selecionada pelo comprador na sessão (ex.: credit_card, pix, boleto).

subtotal
integer

Soma dos itens antes dos descontos, em centavos.

discountTotal
integer

Total de descontos aplicados, em centavos.

amount
integer

Valor total a ser cobrado, em centavos.

discounts
object[] | null

Descontos aplicados ao valor da sessão.

paymentAttempts
integer

Quantidade de tentativas de pagamento realizadas na sessão.

transactionId
string | null

Identificador da transação gerada pelo pagamento da sessão; nulo até haver pagamento.

subscriptionId
string | null

Identificador da assinatura criada a partir da sessão; nulo até a ativação.

metadata
object | null

Metadados livres (pares chave-valor) para uso do integrador; não afeta o processamento.

createdAt
string<date-time>

Data e hora de criação do registro (ISO 8601).

updatedAt
string<date-time>

Data e hora da última atualização do registro (ISO 8601).

openedAt
string<date-time> | null

Data e hora em que a sessão foi aberta pelo comprador (ISO 8601); nula se ainda não aberta.

paidAt
string<date-time> | null

Data e hora em que o pagamento foi confirmado (ISO 8601); nula se não pago.

canceledAt
string<date-time> | null

Data e hora do cancelamento (ISO 8601); nula se não cancelado.

expiresAt
string<date-time>

Data e hora de expiração (ISO 8601).

url
string

URL pública do checkout para o comprador finalizar o pagamento.