Pular para o conteúdo

Checkouts customizados

Estes endpoints não exigem autenticação (@Public()) e são usados por páginas de checkout consumidas pelo pagador final. A criação/edição de payment links e checkouts é feita no painel; aqui documentamos apenas o consumo público.

Os endpoints são chaveados por slug.

Só checkouts de empresas ACTIVE com todos os produtos ativos (senão 404).

Resposta: id, slug, name, companyName, status: "ACTIVE", layout (ver abaixo), products[]: { id, name, description|null, priceCents, currency }.

Body (PublicCheckoutOrderDto):

  • customer (obrigatório): name (1–255), email, phone (8–20), documentNumber (11–18), documentType (CPF|CNPJ).
  • address (opcional): zipCode, street, streetNumber, complement (opc), neighborhood, city, state (len 2), country (default "BR"). Se address for enviado, os campos (exceto complement) precisam ser não-vazios.
  • selectedBumps array de string (default []).
  • paymentMethod enum ['PIX'] default "PIX".
  • couponCode string 1–64 opcional.

Resposta (201):

{
"orderId": "string",
"status": "PENDING",
"pix": { "qrcode": "string", "expiresAt": "ISO" },
"amount": { "value": 10000, "currency": "BRL" }
}

status ∈ PENDING | PAID | FAILED | CANCELED.

POST /public/checkouts/:slug/coupon-preview → 200

Seção intitulada “POST /public/checkouts/:slug/coupon-preview → 200”

Body: couponCode (1–64, obrigatório), selectedBumps (array, default []). Resposta (union): igual à do payment-link coupon-preview.

Objeto layout (retornado em detalhes de checkout): version: 4, pageTitle, primaryColor (#RRGGBB), customerFields[] (name|email|phone|document), mainProductId, bumpProductIds[], showLogo, logoUrl|null, collectAddress, tracking ({ googleTagId, metaPixelId }), successRedirectUrl, themeOverrides ({ vars, logoUrl|null }).