4. Criar pedido e redirecionamento para checkout
Após o usuário adicionar itens ao carrinho e (opcionalmente) aplicar um cupom, crie o pedido e redirecione para a URL do checkout (whitelabel), onde o pagamento será concluído.
Escolha a abordagem que prefere:
Core SDK
Core SDK
const { order, clientSecret } = await sdk.orders.create({
eventId: 'event-id',
tickets: [
{ id: 'ticket-id', amount: 2 },
{ id: 'product-id', amount: 1 },
// Para ingressos com assentos: { id: 'ticket-id', amount: 1, seatIds: ['A1'] }
],
couponId: 'coupon-id', // opcional
utmSource: 'google',
utmCampaign: 'campaign-123',
});
// order.id é usado na URL do checkoutParâmetros de create:
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
eventId | Sim | ID do evento |
tickets | Sim | Array de { id, amount, seatIds? } |
couponId | Não | ID do cupom aplicado |
utmSource | Não | Origem da campanha (ex.: google) |
utmCampaign | Não | Nome da campanha |
URL do checkout (whitelabel)
Após criar o pedido, redirecione o usuário para a URL do checkout. O formato base é:
{CHECKOUT_URL}/checkout/{orderId}?{queryParams}Exemplo visual de como é a tela de checkout:

Parâmetros aceitos na URL
| Parâmetro | Obrigatório | Descrição |
|---|---|---|
orderId | Sim | ID do pedido (path: /checkout/{orderId}) |
icon_url | Não | URL do ícone exibido no checkout |
theme | Não | Tema do checkout (ex.: light, dark) |
primary_color | Não | Cor primária em formato hex (ex.: #7f56d9) |
callbackUrl | Recomendado | URL para onde o usuário será redirecionado após o pagamento |
Exemplo:
https://whitelabel.meaple.app/checkout/cml5d0rwd000dju0v1sam6u2o?icon_url=https%3A%2F%2Fwhitelabel.meaple.app%2Flogo.png&theme=light&primary_color=%237f56d9&callbackUrl=https%3A%2F%2Fwhitelabel.meaple.app%2Forders%2Fcml5d0rwd000dju0v1sam6u2oVariável de ambiente
Configure a URL base do checkout:
NEXT_PUBLIC_MEAPLE_CHECKOUT_URL=https://whitelabel.meaple.appO checkout (whitelabel) é uma aplicação separada que recebe o usuário nessa URL, exibe os dados do pedido e processa o pagamento. Parâmetros adicionais podem ser aceitos conforme a implementação do seu checkout.
Fluxo completo
- Usuário preenche o carrinho (ingressos + produtos)
- (Opcional) Aplica cupom
- Clica em “Finalizar compra”
- Sua aplicação chama
orders.createcom os itens do carrinho - Redireciona para
{CHECKOUT_URL}/checkout/{orderId}?{queryParams} - O checkout exibe o pedido e processa o pagamento
- Após o pagamento, o usuário pode ser redirecionado de volta ou para a página do pedido
Tratamento de erros
Em caso de erro na criação do pedido (ex.: estoque insuficiente, cupom inválido), a API retorna uma mensagem de erro. Trate o erro e exiba feedback ao usuário:
try {
const { order } = await createOrder.mutateAsync({ ... });
router.push(checkoutUrl);
} catch (err: any) {
const message = err?.response?.data?.message ?? 'Erro ao criar pedido';
// Exibir toast ou mensagem de erro
}