EventCheckout para um ou mais ingressos de um evento, captura a identidade do comprador, aplica opcionalmente um cupom de desconto e reserva o estoque. O checkout é criado com status PENDING e permanece pagável por 20 minutos (após isso transita para EXPIRED). Se o total final ficar abaixo de um centavo (por exemplo, com um cupom de 100%), o checkout é promovido automaticamente para FREE e os e-mails de confirmação são disparados.
O estoque é reservado contabilizando checkouts em PENDING/PAID/FREE contra a quantity do EventTicket — checkouts PENDING com mais de 16 minutos são expirados automaticamente antes da contagem.
Pré-requisitos
- O evento deve existir e ser acessível pelo contexto público.
- Cada id de ingresso enviado deve pertencer ao mesmo evento da URL.
- Para cada id de ingresso solicitado,
quantity_availabledeve cobrir a quantidade pedida, caso contrário um400é retornado. - Todas as
questionsconfiguradas no ingresso devem ser respondidas, com valores compatíveis com o tipo declarado (LIST,RADIO,STRING,INTEGER,DATE,EMAIL,PHONE,CPF). - Se
coupon_codefor informado, deve corresponder a um cupom do evento (case-insensitive — códigos são convertidos para maiúsculas no servidor).
Parâmetros de caminho
string (uuid)
required
Evento ao qual o checkout pertence.
Corpo da requisição
object
required
Identidade do comprador.
array
required
Uma entrada por ingresso individual sendo comprado (repita o mesmo
ticket id para comprar várias unidades do mesmo tipo).string
Opcional. É feito trim e conversão para maiúsculas antes da consulta.
Resposta
201 Created com o resumo do checkout.
string (uuid)
Use este id para acionar os endpoints de pagamento (
pay, payment_details, tickets).string
PENDING (pendente) para eventos pagos, FREE (gratuito) quando o total com desconto chega a zero.integer
Valor final a ser pago, em centavos de BRL.
integer
Soma dos
ticket.amount antes do desconto, em centavos de BRL.integer
Desconto aplicado, em centavos de BRL.
object
Eco dos dados do comprador enviados.
array
Cada entrada:
id (id do ingresso do checkout), ticket (id do tipo de ingresso), question_answers.Ações relacionadas no mesmo recurso
Estas rotas adicionais também são públicas:GET /event/event/{event_id}/checkout/{checkout_id}/— retorna dados de pagamento: status, totais, resumo dos ingressos epayment_plan(allowPix,allowCreditCard,maxInstallments,maxInstallmentsWithoutInterest). Expira o checkout automaticamente se a janela de 20 minutos já tiver passado.POST /event/event/{event_id}/checkout/{checkout_id}/pay/— envia os dados de pagamento (cartão ou PIX) e cria a transação subjacente. O corpo reutiliza o comprador capturado na criação. Retorna opayment_infodo gateway (por exemplo, QR Code PIX, desafio 3DS). Retorna400se o checkout não estiver pagável.POST /event/event/{event_id}/checkout/validate-coupon/— corpo{"code": "..."}. Retorna{valid, coupon:{id,name,code,type,value}}ou{valid: false, error}.GET /event/event/{event_id}/checkout/{checkout_id}/tickets/— quando o checkout está pago, faz streaming de um PDF com os ingressos adquiridos. Caso contrário, renderiza uma página HTML de “não pago”.