curl --request POST \
--url https://api.sandbox.z2pay.com/v1/checkout/charges \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"items": [
{
"name": "<string>",
"quantity": 2,
"unitAmount": 2,
"description": "<string>",
"imageUrl": "<string>",
"metadata": {}
}
],
"paymentMethods": {},
"mode": "payment",
"currency": "BRL",
"locale": "pt-BR",
"splits": [
{
"recipientId": "<string>",
"percentage": 50.005,
"liable": true,
"processingFee": true
}
],
"branding": {
"primaryColor": "<string>",
"logoUrl": "<string>",
"merchantName": "<string>",
"faviconUrl": "<string>",
"coverUrl": "<string>"
},
"subscriptionConfig": {
"currency": "BRL",
"trialDays": 182,
"maxCycles": 1,
"collectionTiming": "prepaid",
"startAt": "2023-11-07T05:31:56Z",
"metadata": {},
"itemCovers": {},
"maxEnrollmentInstallments": 1
},
"scheduledAt": "2023-11-07T05:31:56Z",
"customer": {
"name": "<string>",
"email": "jsmith@example.com",
"document": "<string>",
"phone": "<string>",
"address": {
"zipCode": "<string>",
"street": "<string>",
"number": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"city": "<string>",
"state": "<string>",
"country": "BR"
}
},
"requiredFields": [],
"customFields": [
{
"key": "<string>",
"label": "<string>",
"options": [
"<string>"
],
"required": true
}
],
"successUrl": "<string>",
"cancelUrl": "<string>",
"description": "<string>",
"metadata": {},
"expirationMinutes": 21602
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
name: '<string>',
quantity: 2,
unitAmount: 2,
description: '<string>',
imageUrl: '<string>',
metadata: {}
}
],
paymentMethods: {},
mode: 'payment',
currency: 'BRL',
locale: 'pt-BR',
splits: [
{recipientId: '<string>', percentage: 50.005, liable: true, processingFee: true}
],
branding: {
primaryColor: '<string>',
logoUrl: '<string>',
merchantName: '<string>',
faviconUrl: '<string>',
coverUrl: '<string>'
},
subscriptionConfig: {
currency: 'BRL',
trialDays: 182,
maxCycles: 1,
collectionTiming: 'prepaid',
startAt: '2023-11-07T05:31:56Z',
metadata: {},
itemCovers: {},
maxEnrollmentInstallments: 1
},
scheduledAt: '2023-11-07T05:31:56Z',
customer: {
name: '<string>',
email: 'jsmith@example.com',
document: '<string>',
phone: '<string>',
address: {
zipCode: '<string>',
street: '<string>',
number: '<string>',
complement: '<string>',
neighborhood: '<string>',
city: '<string>',
state: '<string>',
country: 'BR'
}
},
requiredFields: [],
customFields: [{key: '<string>', label: '<string>', options: ['<string>'], required: true}],
successUrl: '<string>',
cancelUrl: '<string>',
description: '<string>',
metadata: {},
expirationMinutes: 21602
})
};
fetch('https://api.sandbox.z2pay.com/v1/checkout/charges', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.z2pay.com/v1/checkout/charges"
payload = {
"items": [
{
"name": "<string>",
"quantity": 2,
"unitAmount": 2,
"description": "<string>",
"imageUrl": "<string>",
"metadata": {}
}
],
"paymentMethods": {},
"mode": "payment",
"currency": "BRL",
"locale": "pt-BR",
"splits": [
{
"recipientId": "<string>",
"percentage": 50.005,
"liable": True,
"processingFee": True
}
],
"branding": {
"primaryColor": "<string>",
"logoUrl": "<string>",
"merchantName": "<string>",
"faviconUrl": "<string>",
"coverUrl": "<string>"
},
"subscriptionConfig": {
"currency": "BRL",
"trialDays": 182,
"maxCycles": 1,
"collectionTiming": "prepaid",
"startAt": "2023-11-07T05:31:56Z",
"metadata": {},
"itemCovers": {},
"maxEnrollmentInstallments": 1
},
"scheduledAt": "2023-11-07T05:31:56Z",
"customer": {
"name": "<string>",
"email": "jsmith@example.com",
"document": "<string>",
"phone": "<string>",
"address": {
"zipCode": "<string>",
"street": "<string>",
"number": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"city": "<string>",
"state": "<string>",
"country": "BR"
}
},
"requiredFields": [],
"customFields": [
{
"key": "<string>",
"label": "<string>",
"options": ["<string>"],
"required": True
}
],
"successUrl": "<string>",
"cancelUrl": "<string>",
"description": "<string>",
"metadata": {},
"expirationMinutes": 21602
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "cs_02f232c4dcf8eec4c29e0f3748476d1339b63c0e7ffab1dc",
"linkId": null,
"status": "created",
"mode": "payment",
"currency": "BRL",
"locale": "pt-BR",
"config": {
"paymentMethods": {
"card": {
"enabled": true,
"installments": {
"maxInstallments": 12
}
},
"pix": {
"enabled": true,
"expiresIn": 3600
},
"boleto": {
"enabled": false
}
},
"description": "Consultoria avulsa"
},
"customer": {
"name": "Maria Souza",
"email": "maria.souza@example.com",
"document": "12345678909",
"documentType": "cpf"
},
"customFieldValues": null,
"paymentMethodSelected": null,
"subtotal": 50000,
"discountTotal": 0,
"amount": 50000,
"discounts": [],
"paymentAttempts": 0,
"transactionId": null,
"subscriptionId": null,
"invoiceId": null,
"metadata": null,
"createdAt": "2025-06-29T13:45:30.000Z",
"updatedAt": "2025-06-29T13:45:30.000Z",
"openedAt": null,
"paidAt": null,
"canceledAt": null,
"expiresAt": "2025-06-30T13:45:30.000Z",
"url": "https://checkout.z2pay.com.br/c/s/cs_02f232c4dcf8eec4c29e0f3748476d1339b63c0e7ffab1dc"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"issues": [
{
"path": "status",
"message": "Status inválido. Valores aceitos: pending, waiting_payment, paid, refused, canceled, refunded"
},
{
"path": "startDate",
"message": "Data deve ser ISO 8601 com timezone (ex.: 2026-06-24T00:00:00Z)"
}
]
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Forbidden — insufficient permissions"
}
}{
"error": "A request with this idempotency key is already being processed"
}{
"error": "Idempotency key already used with a different request body"
}Criar venda rápida
Cria uma cobrança individual com os itens no corpo e devolve a URL de pagamento pronta para enviar.
curl --request POST \
--url https://api.sandbox.z2pay.com/v1/checkout/charges \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"items": [
{
"name": "<string>",
"quantity": 2,
"unitAmount": 2,
"description": "<string>",
"imageUrl": "<string>",
"metadata": {}
}
],
"paymentMethods": {},
"mode": "payment",
"currency": "BRL",
"locale": "pt-BR",
"splits": [
{
"recipientId": "<string>",
"percentage": 50.005,
"liable": true,
"processingFee": true
}
],
"branding": {
"primaryColor": "<string>",
"logoUrl": "<string>",
"merchantName": "<string>",
"faviconUrl": "<string>",
"coverUrl": "<string>"
},
"subscriptionConfig": {
"currency": "BRL",
"trialDays": 182,
"maxCycles": 1,
"collectionTiming": "prepaid",
"startAt": "2023-11-07T05:31:56Z",
"metadata": {},
"itemCovers": {},
"maxEnrollmentInstallments": 1
},
"scheduledAt": "2023-11-07T05:31:56Z",
"customer": {
"name": "<string>",
"email": "jsmith@example.com",
"document": "<string>",
"phone": "<string>",
"address": {
"zipCode": "<string>",
"street": "<string>",
"number": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"city": "<string>",
"state": "<string>",
"country": "BR"
}
},
"requiredFields": [],
"customFields": [
{
"key": "<string>",
"label": "<string>",
"options": [
"<string>"
],
"required": true
}
],
"successUrl": "<string>",
"cancelUrl": "<string>",
"description": "<string>",
"metadata": {},
"expirationMinutes": 21602
}
'const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
items: [
{
name: '<string>',
quantity: 2,
unitAmount: 2,
description: '<string>',
imageUrl: '<string>',
metadata: {}
}
],
paymentMethods: {},
mode: 'payment',
currency: 'BRL',
locale: 'pt-BR',
splits: [
{recipientId: '<string>', percentage: 50.005, liable: true, processingFee: true}
],
branding: {
primaryColor: '<string>',
logoUrl: '<string>',
merchantName: '<string>',
faviconUrl: '<string>',
coverUrl: '<string>'
},
subscriptionConfig: {
currency: 'BRL',
trialDays: 182,
maxCycles: 1,
collectionTiming: 'prepaid',
startAt: '2023-11-07T05:31:56Z',
metadata: {},
itemCovers: {},
maxEnrollmentInstallments: 1
},
scheduledAt: '2023-11-07T05:31:56Z',
customer: {
name: '<string>',
email: 'jsmith@example.com',
document: '<string>',
phone: '<string>',
address: {
zipCode: '<string>',
street: '<string>',
number: '<string>',
complement: '<string>',
neighborhood: '<string>',
city: '<string>',
state: '<string>',
country: 'BR'
}
},
requiredFields: [],
customFields: [{key: '<string>', label: '<string>', options: ['<string>'], required: true}],
successUrl: '<string>',
cancelUrl: '<string>',
description: '<string>',
metadata: {},
expirationMinutes: 21602
})
};
fetch('https://api.sandbox.z2pay.com/v1/checkout/charges', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sandbox.z2pay.com/v1/checkout/charges"
payload = {
"items": [
{
"name": "<string>",
"quantity": 2,
"unitAmount": 2,
"description": "<string>",
"imageUrl": "<string>",
"metadata": {}
}
],
"paymentMethods": {},
"mode": "payment",
"currency": "BRL",
"locale": "pt-BR",
"splits": [
{
"recipientId": "<string>",
"percentage": 50.005,
"liable": True,
"processingFee": True
}
],
"branding": {
"primaryColor": "<string>",
"logoUrl": "<string>",
"merchantName": "<string>",
"faviconUrl": "<string>",
"coverUrl": "<string>"
},
"subscriptionConfig": {
"currency": "BRL",
"trialDays": 182,
"maxCycles": 1,
"collectionTiming": "prepaid",
"startAt": "2023-11-07T05:31:56Z",
"metadata": {},
"itemCovers": {},
"maxEnrollmentInstallments": 1
},
"scheduledAt": "2023-11-07T05:31:56Z",
"customer": {
"name": "<string>",
"email": "jsmith@example.com",
"document": "<string>",
"phone": "<string>",
"address": {
"zipCode": "<string>",
"street": "<string>",
"number": "<string>",
"complement": "<string>",
"neighborhood": "<string>",
"city": "<string>",
"state": "<string>",
"country": "BR"
}
},
"requiredFields": [],
"customFields": [
{
"key": "<string>",
"label": "<string>",
"options": ["<string>"],
"required": True
}
],
"successUrl": "<string>",
"cancelUrl": "<string>",
"description": "<string>",
"metadata": {},
"expirationMinutes": 21602
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "cs_02f232c4dcf8eec4c29e0f3748476d1339b63c0e7ffab1dc",
"linkId": null,
"status": "created",
"mode": "payment",
"currency": "BRL",
"locale": "pt-BR",
"config": {
"paymentMethods": {
"card": {
"enabled": true,
"installments": {
"maxInstallments": 12
}
},
"pix": {
"enabled": true,
"expiresIn": 3600
},
"boleto": {
"enabled": false
}
},
"description": "Consultoria avulsa"
},
"customer": {
"name": "Maria Souza",
"email": "maria.souza@example.com",
"document": "12345678909",
"documentType": "cpf"
},
"customFieldValues": null,
"paymentMethodSelected": null,
"subtotal": 50000,
"discountTotal": 0,
"amount": 50000,
"discounts": [],
"paymentAttempts": 0,
"transactionId": null,
"subscriptionId": null,
"invoiceId": null,
"metadata": null,
"createdAt": "2025-06-29T13:45:30.000Z",
"updatedAt": "2025-06-29T13:45:30.000Z",
"openedAt": null,
"paidAt": null,
"canceledAt": null,
"expiresAt": "2025-06-30T13:45:30.000Z",
"url": "https://checkout.z2pay.com.br/c/s/cs_02f232c4dcf8eec4c29e0f3748476d1339b63c0e7ffab1dc"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed",
"issues": [
{
"path": "status",
"message": "Status inválido. Valores aceitos: pending, waiting_payment, paid, refused, canceled, refunded"
},
{
"path": "startDate",
"message": "Data deve ser ISO 8601 com timezone (ex.: 2026-06-24T00:00:00Z)"
}
]
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Forbidden — insufficient permissions"
}
}{
"error": "A request with this idempotency key is already being processed"
}{
"error": "Idempotency key already used with a different request body"
}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.
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.liable: true —
as mesmas regras do Link. Veja Criar checkout link.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
curl -X POST https://api.sandbox.z2pay.com/v1/checkout/charges \
-H "x-api-key: SUA_CHAVE_DE_SANDBOX" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7c9e6679-7425-40de-944b-e07fc1f90ae7" \
-d '{
"items": [{ "name": "Consultoria 1h", "quantity": 1, "unitAmount": 30000 }],
"paymentMethods": { "pix": { "enabled": true } },
"customer": { "name": "Cliente X", "email": "x@example.com" }
}'
{
"id": "cs_50b0abc54b632e7c57de3a73815413ace1d545dcd16da95c",
"linkId": null,
"status": "created",
"amount": 30000,
"currency": "BRL",
"customer": { "name": "Cliente X", "email": "x@example.com" },
"transactionId": null,
"createdAt": "2026-06-24T12:00:00.000Z",
"expiresAt": "2026-06-25T12:00:00.000Z",
"url": "https://pay.sandbox.z2pay.com/c/cs_50b0abc54b632e7c57de3a73815413ace1d545dcd16da95c"
}
Cobrança agendada
ComscheduledAt (só em mode: "payment"), a venda combina uma data em vez de cobrar agora. O
aceite do comprador não move dinheiro: a Session nasce com amount: 0, ele escolhe o método, e o
que vence na data é uma fatura, devolvida em invoiceId assim que o aceite acontece.
O que muda conforme o método que ele escolhe:
- Cartão: o aceite valida o cartão com uma cobrança de R$ 1,23, estornada na hora, e guarda esse cartão na fatura. Na data, ela é cobrada sozinha.
- PIX ou boleto: nada acontece no aceite. O link de pagamento chega ao comprador por e-mail antes do vencimento.
- A data precisa de folga, contada pelo maior prazo entre os métodos habilitados: 1 dia no cartão, 2 no PIX, 3 no boleto. Data próxima demais é recusada — o link precisa chegar antes.
- O link da venda expira na véspera da data. O que precisa acontecer a tempo é o aceite, não o pagamento.
- Pagamento combinado não vale aqui, porque nada é cobrado no aceite.
invoiceId nulo.
Consulte de novo em vez de tratar o nulo como erro. Se a criação falhar, o motivo fica em
metadata.scheduled_invoice_error — e o caso mais comum é a data já ter passado quando o comprador
aceitou, que se resolve criando outra venda com data nova.
Daí em diante quem manda é a fatura, com estados, régua de atraso e link próprios — veja
Faturas. Esta venda não gera mais nenhum evento de checkout depois
do aceite: o que acompanhar é a família invoice.*.
Assinatura na venda rápida
Commode: "subscription" e subscriptionConfig, a venda rápida vende uma assinatura recorrente —
um sem o outro é recusado. A diferença para o Link
é a origem do preço: aqui você monta a recorrência na própria requisição, em vez de apontar para um
plano publicado.
recurrenceecurrencysão obrigatórios — sem plano, não há de onde herdar a cadência nem a moeda.planIdé recusado.- As linhas vendidas ficam em
items, cada uma com o seuchargeType:recurringpara o que se repete a cada ciclo,activationpara a adesão, cobrada uma vez no aceite. - Adesão e período de teste se excluem, e com
trialDayso cartão precisa ser o único método habilitado — é ele que valida o cartão antes do primeiro ciclo. startAtadia o início da recorrência, não a adesão, que continua cobrada no aceite. Não convive com período de teste nem com item avulso (um item semchargeTypenunca seria cobrado), e a data precisa da mesma folga mínima da cobrança agendada: 1 dia no cartão, 2 no PIX, 3 no boleto.- Pagamento combinado não vale em assinatura, e a âncora
day_of_weekainda não é suportada.
subscriptionId. O que fazer
enquanto ele é nulo, e o que a Z2Pay grava no metadata da assinatura, está em
Assinaturas via Checkout — vale igual aqui.
Espelhar a configuração de um Link
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 oconfig para o topo do corpo e
poste aqui. É o mesmo caminho do “Duplicar como venda rápida” do painel.
Leia o Link
GET /checkout/links/{id}. A resposta traz items,
paymentMethods, splits e branding dentro de config; o resto já vem no topo.Mova o config para o topo
locale, currency, requiredFields,
customFields, successUrl, cancelUrl, description, metadata e expirationMinutes são
copiados direto.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".Poste
POST /checkout/charges → 201 com o cs_ e a url.name e slug (são identidade do template); qualquer null
(omita em vez de enviar); chargeType recurring/activation nos itens — em pagamento único todo
item é cobrança única; e o objeto subscription, que aqui se chama subscriptionConfig e não
aceita planId (veja Assinatura na venda rápida).const API = "https://api.sandbox.z2pay.com/v1";
const KEY = "SUA_CHAVE_DE_SANDBOX";
const link = await fetch(`${API}/checkout/links/${linkId}`, {
headers: { "x-api-key": KEY },
}).then((r) => r.json());
const { paymentMethods, splits, branding } = link.config;
const body = clean({
mode: "payment",
currency: link.currency,
locale: link.locale,
items: [{ name: "Pedido #4821", quantity: 1, unitAmount: 34780 }],
paymentMethods,
splits,
branding,
requiredFields: link.requiredFields,
customFields: link.customFields,
successUrl: link.successUrl,
cancelUrl: link.cancelUrl,
description: link.description,
metadata: link.metadata,
expirationMinutes: link.expirationMinutes,
customer: { email: "cliente@example.com" },
});
const charge = await fetch(`${API}/checkout/charges`, {
method: "POST",
headers: { "x-api-key": KEY, "Content-Type": "application/json" },
body: JSON.stringify(body),
}).then((r) => r.json());
// Remove as chaves nulas: o corpo da venda rápida recusa `null` explícito.
function clean(obj) {
return Object.fromEntries(Object.entries(obj).filter(([, v]) => v != null));
}
branding.logoUrl, faviconUrl, coverUrl e items[].imageUrl) copiam
verbatim — são endereços públicos de CDN, sem novo upload.Authorizations
API key unificada (z2_{live|test}{sk|pk}...) — secret (sk) para integração backend, publishable (pk) para uso no frontend público
Body
Itens da cobrança (unitAmount em centavos); ao menos 1 é obrigatório.
1Show child attributes
Show child attributes
Métodos de pagamento habilitados (card/pix/boleto/combined); ao menos um enabled.
Show child attributes
Show child attributes
'payment' (default) para cobrança única; 'subscription' para venda rápida recorrente — exige subscriptionConfig populado.
payment, subscription Moeda da cobrança. Só BRL — os gateways liquidam em real.
BRL Idioma do checkout (default 'pt-BR').
pt-BR, en-US, es-ES Divisão de receita por percentual; a soma deve ser exatamente 100.
Show child attributes
Show child attributes
Customização visual do checkout.
Show child attributes
Show child attributes
Configuração de assinatura; obrigatória (e exclusiva) quando mode='subscription'. Mesmo shape do subscription do Checkout Link — preço, cadência, ciclos e entrada opcional — exceto planId: assinatura a partir de plano publicado exige um Checkout Link.
Show child attributes
Show child attributes
Data de cobrança da venda rápida de pagamento único (ISO 8601 com offset), só com mode='payment'. Nada é cobrado no aceite: a Session nasce com amount: 0, o comprador escolhe o método e uma fatura vence nessa data — no cartão ela é cobrada sozinha (após validação de R$ 1,23, estornada); no PIX/boleto o link chega por e-mail antes do vencimento. Entre amanhã e +365 dias; a folga mínima segue o maior prazo entre os métodos habilitados (1 dia cartão, 2 PIX, 3 boleto). Incompatível com paymentMethods.combined. Não existe em Checkout Link.
Pré-preenchimento dos dados do comprador.
Show child attributes
Show child attributes
Campos do comprador exigidos no checkout (email, document, phone, address).
email, document, phone, address Campos customizados do formulário (máx. 20).
20Show child attributes
Show child attributes
URL de redirecionamento após pagamento aprovado.
2000URL de redirecionamento quando o comprador cancela.
2000Descrição da venda rápida (exibida na listagem).
2000Metadados do seller (string → string); propagados ao additionalInfo da Transaction e dos webhooks.
Show child attributes
Show child attributes
Expiração da sessão em minutos (5 a 43200 = 30 dias).
5 <= x <= 43200Response
Venda rápida 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.
Fatura gerada pela venda com data de cobrança (scheduledAt), criada quando o comprador aceita. Nula em toda outra venda — pagamento no ato não gera fatura.
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.