Skip to main content
POST
Criar nova sessão de checkout

Authorizations

Authorization
string
header
required

A chave de API usada para autenticar a requisição e identificar a sua conta.

Exemplo: Authorization: ApiKey my-secure-key

Body

application/json

Dados da sessão de checkout que será criada

session
object
required

Response

Operação realizada com sucesso

id
string
required
read-only

ID único da sessão de checkout, no formato TypeID com prefixo cs_.

Pattern: ^cs_[0-9a-z]{26}$
Example:

"cs_01h455vb4pex5vsknk084sn02c"

object
enum<string>
required

Tipo do objeto. Sempre 'checkout_session'.

Available options:
checkout_session
Example:

"checkout_session"

amount
integer | null
required

Valor total em centavos. null quando o cliente ainda não foi informado e a fatura não foi gerada.

Example:

9990

created
integer<int64>
required
read-only

Timestamp Unix da criação da sessão.

Example:

1704672000

currency
enum<string>
required

Código da moeda (ISO 4217). Sempre 'brl' (Real brasileiro).

Available options:
brl
Example:

"brl"

customer
string | null
required

ID do cliente vinculado à sessão, no formato TypeID com prefixo cus_. null quando customer_id/customer não foram enviados na criação — o comprador preenche os dados na página de checkout e o cliente é criado nesse momento.

Example:

"cus_01h455vb4pex5vsknk084sn02p"

expires_at
integer<int64>
required

Timestamp Unix do prazo que a sessão publicou. Uma sessão nasce com uma hora de validade. Este campo não muda quando a sessão é encerrada, então uma sessão encerrada com POST /api/v1/checkout/sessions/{id}/expire carrega status expired com um expires_at ainda no futuro. Leia status para saber se a sessão aceita pagamento.

Example:

1704675600

invoice
string | null
required

ID da fatura gerada para a sessão, no formato TypeID com prefixo in_. null enquanto o cliente não foi informado — a fatura é criada depois que o comprador preenche os dados na página de checkout.

Example:

"in_01h455vb4pex5vsknk084sn02q"

line_items
object
required

Itens da sessão, como foram registrados na criação. O preço aparece como ID; o valor cobrado está em amount.

live_mode
boolean
required

Indica ambiente de produção (true) ou sandbox (false). Dados de sandbox são limpos periodicamente.

Example:

true

mode
enum<string>
required

Modo da sessão.

  • payment: Cobrança avulsa.
  • subscription: Assinatura recorrente.
Available options:
payment,
subscription
Example:

"subscription"

status
enum<string>
required

Situação da sessão, derivada do prazo de validade, do encerramento e da conclusão.

  • open: Aceita pagamento.
  • complete: Paga; permanece assim mesmo depois do prazo.
  • expired: Encerrada sem pagamento, pelo prazo vencido ou pelo merchant.
Available options:
open,
complete,
expired
Example:

"open"

success_url
string<uri>
required

URL para onde o comprador vai depois de pagar.

Example:

"https://example.com/success"

url
string<uri>
required

URL da sessão de checkout para redirecionar o cliente.

Example:

"https://besimplo.com/checkout/sessions/cs_01h455vb4pex5vsknk084sn02c"

discounts
object

Descontos aplicados à sessão. Ausente quando a sessão não tem desconto.

external_code
string | null

Código externo para integração com outros sistemas. Único por conta.

Example:

"CHECKOUT-SESSION-XYZ"

metadata

Metadados enviados na criação, devolvidos como foram armazenados. A API aceita uma lista de objetos livres; uma sessão criada sem metadados devolve um objeto vazio.

Example:
payment_intent
string | null

ID da cobrança vinculada à sessão, no formato TypeID com prefixo pi_. null enquanto nenhuma cobrança foi gerada.

Example:

"pi_01h455vb4pex5vsknk084sn02r"

return_url
string | null

URL para onde o comprador volta se cancelar o checkout.

Example:

"https://example.com/return"

subscription
string | null

ID da assinatura criada pela sessão, no formato TypeID com prefixo sub_. Presente apenas no modo subscription e depois que a fatura foi criada.

Example:

"sub_01h455vb4pex5vsknk084sn02s"