Criar session
Cria uma Session já materializada a partir de um Link — opcionalmente com os dados do comprador pré-preenchidos, para levar seu usuário direto ao pagamento.
POST /checkout/sessions
Faz parte do recurso Links — o que é uma Session e os estados dela estão
lá.
Cria uma Session server-to-server, já materializada e pronta para pagar. Diferente do fluxo público — em que a própria página do comprador materializa a Session quando ele abre o Link — aqui você cria a Session pela API e recebe de volta a url da página de pagamento para redirecionar o comprador.
O body aceita duas formas (oneOf):
- A partir de um Link (
linkId): materializa uma Session reusando toda a configuração do Linkchk_*(itens, valor, métodos de pagamento, branding, splits). É a forma recomendada quando você já tem um Link. - Ad-hoc (body completo): cria uma Session sem Link, informando
items+paymentMethodsna própria requisição.
customer é opcional e serve para pré-preencher os dados do comprador.
Idempotency-Key para que um retry por timeout não crie duas Sessions
— sem ele, a segunda chamada gera outra cs_ e outra URL de pagamento. Veja
Convenções.Por que usar: pré-preencher e reduzir atrito
O caso clássico é uma plataforma SaaS com usuário logado — você já conhece os dados dele (nome, e-mail, documento…). Em vez de mandá-lo para o checkout e pedir que digite tudo de novo, você cria a Session com ocustomer preenchido e o redireciona direto para o pagamento. Na prática, é como se o comprador tivesse aberto a página e já tivesse preenchido o formulário — só que essa etapa é pulada.
O usuário clica em 'Pagar' na sua plataforma
Você cria a Session pela API
POST /checkout/sessions com o linkId do Link e o customer pré-preenchido. A resposta traz o id (cs_*) e a url.Redireciona para a `url`
customer é pré-preenchimento, não trava: o comprador ainda pode corrigir os dados na página. Os requiredFields do Link continuam valendo no confirm.Exemplo
url. Em produção, troque o host por https://api.z2pay.com/v1.
x-api-key (server-side) — nunca exponha a chave no navegador. É o oposto do fluxo do comprador, que é público e autenticado pela posse do cs_*.Authorizations
API key unificada (z2_{live|test}{sk|pk}...) — secret (sk) para integração backend, publishable (pk) para uso no frontend público
Body
Response
Session criada
Identificador único do registro.
Identificador do link de checkout que originou o registro; nulo em sessões ad-hoc.
Estado atual do registro.
Modo do checkout: 'payment' (pagamento único) ou 'subscription' (assinatura).
Moeda no padrão ISO 4217 (ex.: BRL).
Idioma do checkout (ex.: pt-BR, en-US, es-ES).
Snapshot da configuração do checkout (formas de pagamento, itens e personalização visual).
Dados do comprador (nome, e-mail, documento e demais informações).
Valores preenchidos nos campos personalizados, indexados pela key de cada campo.
Forma de pagamento selecionada pelo comprador na sessão (ex.: credit_card, pix, boleto).
Soma dos itens antes dos descontos, em centavos.
Total de descontos aplicados, em centavos.
Valor total a ser cobrado, em centavos.
Descontos aplicados ao valor da sessão.
Quantidade de tentativas de pagamento realizadas na sessão.
Identificador da transação gerada pelo pagamento da sessão; nulo até haver pagamento.
Identificador da assinatura criada a partir da sessão; nulo até a ativação.
Metadados livres (pares chave-valor) para uso do integrador; não afeta o processamento.
Data e hora de criação do registro (ISO 8601).
Data e hora da última atualização do registro (ISO 8601).
Data e hora em que a sessão foi aberta pelo comprador (ISO 8601); nula se ainda não aberta.
Data e hora em que o pagamento foi confirmado (ISO 8601); nula se não pago.
Data e hora do cancelamento (ISO 8601); nula se não cancelado.
Data e hora de expiração (ISO 8601).
URL pública do checkout para o comprador finalizar o pagamento.