Webhook - Nova Venda
Este webhook é enviado sempre que uma nova venda é criada no sistema, independente do status de pagamento.
Quando é Disparado: Este webhook é disparado imediatamente após a criação de uma venda, quando o cliente finaliza o checkout e uma cobrança é gerada.
Atenção: Neste momento, o pagamento ainda está pendente. Use o webhook de Atualização de Status para confirmar quando o pagamento for aprovado.
Estrutura do Payload
O payload deste webhook é idêntico ao webhook de Atualização de Status,
mas sempre com status como "pending".
Exemplo de Webhook
{
"event": "order.created",
"title": "Wrath Store | Pedido gWswsHZo Created",
"platform": "AproveiCheckout",
"orderId": "gWswsHZo",
"status": "pending",
"statusName": "Pendente",
"paymentMethod": "pix",
"createdAt": "2026-02-20T00:28:39.000000Z",
"updatedAt": "2026-02-20T00:28:39.000000Z",
"approvedDate": null,
"refundedAt": null,
"customer": {
"name": "João Miguel Costa",
"email": "joaomiguel.costa@outlook.com",
"phone": "1522664885",
"document": "67743776450",
"ip": "127.0.0.1"
},
"products": [
{
"id": 25,
"name": "Cortina Blackout",
"quantity": 1,
"priceInCents": 4200,
"priceFinalInCents": 4200,
"image": null
}
],
"commission": {
"totalPriceInCents": 5100,
"checkoutFeeInCents": 77,
"gatewayFeeInCents": 528,
"userCommissionInCents": 1195
},
"address": {
"street": "Rua Coriolano Durand",
"number": "34159",
"complement": null,
"neighborhood": "Vila Santa Catarina",
"city": "São Paulo",
"state": "SP",
"zipcode": "04375050",
"country": "BR"
},
"trackingParameters": {
"src": null,
"sck": null,
"utm_source": null,
"utm_campaign": null,
"utm_medium": null,
"utm_content": null,
"utm_term": null
},
"trackingNumber": null,
"payments": [
{
"payment_method": "pix",
"transaction_id_gateway": "40694866",
"amount": "51.00",
"installments": 1,
"paid_at": null
}
],
"store": {
"id": 4,
"name": "Wrath Store",
"slug": "wrath-store"
}
}
Casos de Uso
Analytics
Registre métricas de vendas iniciadas, mesmo que o pagamento ainda não tenha sido confirmado.
Notificações
Envie um e-mail para o cliente confirmando que o pedido foi criado e está aguardando pagamento.
Registro
Crie um registro do pedido no seu sistema para acompanhamento, mesmo antes da confirmação do pagamento.
Remarketing
Adicione o cliente em listas de remarketing para recuperar vendas não concluídas.
Exemplo de Implementação
<?php
// Recebe o payload
$payload = file_get_contents('php://input');
$data = json_decode($payload, true);
// Extrai informações
$orderId = $data['orderId'];
$event = $data['event'];
$customer = $data['customer'];
$products = $data['products'];
$amount = $data['commission']['totalPriceInCents'];
// Verifica se já processou este webhook
if (webhookJaProcessado($orderId)) {
http_response_code(200);
echo json_encode(['status' => 'already_processed']);
exit;
}
// Cria o pedido no sistema com status "aguardando pagamento"
$pedidoId = criarPedido([
'order_id' => $orderId,
'customer_name' => $customer['name'],
'customer_email' => $customer['email'],
'customer_phone' => $customer['phone'],
'customer_cpf' => $customer['document'],
'amount' => $amount,
'products' => $products,
'status' => 'awaiting_payment',
'payment_method' => $data['paymentMethod'],
'created_at' => $data['createdAt']
]);
// Envia e-mail para o cliente
enviarEmailPedidoCriado($customer['email'], [
'pedido_id' => $pedidoId,
'nome' => $customer['name'],
'valor' => formatarValor($amount),
'produtos' => $products
]);
// Registra evento no analytics
registrarEventoAnalytics('venda_iniciada', [
'order_id' => $orderId,
'valor' => $amount,
'produtos' => count($products),
'utm_source' => $data['trackingParameters']['utm_source'] ?? null,
'utm_campaign' => $data['trackingParameters']['utm_campaign'] ?? null
]);
// Marca webhook como processado
marcarWebhookComoProcessado($orderId);
// Retorna sucesso
http_response_code(200);
echo json_encode([
'status' => 'success',
'pedido_id' => $pedidoId
]);
Fluxo Completo
Entenda o fluxo completo de webhooks de uma venda:
Nova Venda (Este Webhook)
Cliente finaliza o checkout → Venda criada com status pending
Pagamento Confirmado
Cliente paga via PIX → Webhook de Atualização enviado com status paid
Estorno (Opcional)
Se houver estorno ou chargeback → Webhook de Atualização com status refunded ou chargeback
Dica: Não confie apenas neste webhook para liberar produtos ou serviços. Sempre aguarde o webhook de Atualização de Status com status: "paid" antes de liberar o acesso.