Venda cancelada
Evento: TRANSACTION_CANCELED
A venda foi cancelada sem ter sido paga.
Quando dispara: quando o cancelamento de uma venda ainda não paga é pedido à PagPolar, ou quando o gateway estorna uma venda que não contava como paga. No cancelamento pedido à PagPolar, os order bumps e upsells cancelados junto recebem o próprio evento.
O que fazer: cancele o pedido no seu sistema e não libere o que foi vendido.
Atenção: venda paga não é cancelada por este caminho. O estorno de uma venda paga chega como TRANSACTION_REFUNDED.
Exemplo de payload
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"event": "TRANSACTION_CANCELED",
"creation_date": "2026-01-30T09:00:05.000Z",
"version": "1.0.0",
"data": {
"transaction": {
"id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"identifier": "PPO0087103960",
"status": "CANCELED",
"type": "BILLING",
"payment_method": "CREDIT_CARD",
"total_amount": "555.2400",
"net_amount": 450,
"effective_value": "426.5500",
"base_tax": "23.4500",
"installment_tax": "105.2400",
"base_fixed_tax": "0.9900",
"base_percentage_tax": "22.4600",
"installments": 12,
"cycle": 1,
"paid_at": null,
"created_at": "2026-01-29T14:00:00.000Z"
},
"items": [
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"quantity": 1,
"amount": "450.0000",
"original_amount": "500.0000",
"discount_value": "50.0000",
"product": {
"id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"name": "Curso Completo de Marketing Digital",
"type": "DIGITAL"
},
"price": {
"id": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed",
"title": "Plano Anual",
"price": "500.0000",
"identifier": "PPP1234567890"
}
}
],
"product": {
"id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"name": "Curso Completo de Marketing Digital",
"type": "DIGITAL"
},
"buyer": {
"name": "João Silva",
"email": "joao.silva@email.com",
"document": "12345678900",
"phone": "11999999999"
},
"address": {
"street": "Rua das Flores",
"number": "123",
"complement": "Apto 4B",
"neighborhood": "Centro",
"city": "São Paulo",
"state": "SP",
"postal_code": "01000-000"
},
"payment_details": {
"origin": "DIRECT",
"qr_code": null,
"billet_barcode": null,
"billet_link": null,
"last_credit_card_digits": "4242",
"shipping_value": "0.00"
},
"coupon": null,
"subscription": null,
"affiliate": null,
"source": {
"channel": "API",
"api_credential_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7"
}
}
}Header Parameters
Bearer <webhook_authorization>: o token do webhook, exibido uma única vez na criação da credencial. Compare com o valor guardado antes de processar o evento.
true só nos envios de teste feitos pelo Playground de webhooks do portal. Os eventos reais não trazem este header.
"true"Id desta tentativa de entrega. Cada nova tentativa do mesmo evento chega com outro id: não use este campo para evitar processamento duplicado.
uuidNome do evento.
Data e hora (UTC) em que esta tentativa foi montada.
date-timeVersão do formato do payload.
Só aparece nos envios de teste feitos pelo Playground de webhooks do portal, junto com o header X-PagPolar-Test: true. Os eventos reais não trazem este campo: ignore em produção qualquer evento com test: true.
Dados do evento. Chega vazio ({}) se a venda ou a assinatura não for encontrada no momento do envio.
Response Body
Venda expirada POST
**Evento:** `TRANSACTION_EXPIRED` Um PIX ou boleto venceu sem pagamento. **Quando dispara:** na verificação de vencimentos, que roda a cada 3 horas. O PIX vence quando o QR Code expira; o boleto, 5 dias depois de criado. Também dispara quando a PagPolar gera a cobrança de um novo ciclo de assinatura e a cobrança anterior não foi paga. **O que fazer:** marque o pedido como não pago e não libere o que foi vendido. Para vender de novo, crie uma nova cobrança. **Atenção:** o evento pode chegar algumas horas depois do vencimento. Order bumps e upsells da venda vencem junto, sem evento próprio. Quando a venda é de uma assinatura, `subscription` vem preenchida. ### Exemplo de payload ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "event": "TRANSACTION_EXPIRED", "creation_date": "2026-02-01T03:00:05.000Z", "version": "1.0.0", "data": { "transaction": { "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "identifier": "PPO0087103960", "status": "EXPIRED", "type": "BILLING", "payment_method": "PIX", "total_amount": "450.0000", "net_amount": 450, "effective_value": "426.5500", "base_tax": "23.4500", "installment_tax": "0.0000", "base_fixed_tax": "0.9900", "base_percentage_tax": "22.4600", "installments": 1, "cycle": 1, "paid_at": null, "created_at": "2026-01-29T14:00:00.000Z" }, "items": [ { "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "quantity": 1, "amount": "450.0000", "original_amount": "500.0000", "discount_value": "50.0000", "product": { "id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", "name": "Curso Completo de Marketing Digital", "type": "DIGITAL" }, "price": { "id": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed", "title": "Plano Anual", "price": "500.0000", "identifier": "PPP1234567890" } } ], "product": { "id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", "name": "Curso Completo de Marketing Digital", "type": "DIGITAL" }, "buyer": { "name": "João Silva", "email": "joao.silva@email.com", "document": "12345678900", "phone": "11999999999" }, "address": { "street": "Rua das Flores", "number": "123", "complement": "Apto 4B", "neighborhood": "Centro", "city": "São Paulo", "state": "SP", "postal_code": "01000-000" }, "payment_details": { "origin": "DIRECT", "qr_code": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-4a7b-8c9d", "billet_barcode": null, "billet_link": null, "last_credit_card_digits": null, "shipping_value": "0.00" }, "coupon": null, "subscription": null, "affiliate": null, "source": { "channel": "API", "api_credential_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7" } } } ```
Reembolso solicitado POST
**Evento:** `TRANSACTION_ASK_REFUNDING` O cliente pediu reembolso. O dinheiro **ainda não** voltou para ele. **Quando dispara:** quando o cliente abre um pedido de reembolso, da venda inteira ou de parte dos itens. Pedido aberto pelo próprio vendedor ou pelo suporte não dispara este evento. **O que fazer:** registre o pedido e acompanhe em `GET /v1/refunds`. Mantenha o acesso até chegar `TRANSACTION_REFUNDED`. **Atenção:** pedido da venda inteira deixa a venda em `ASK_REFUND`; pedido de parte dos itens, em `ASK_PARTIAL_REFUND`. No pedido da venda inteira de uma assinatura, a PagPolar também pede o cancelamento da assinatura. `transaction.refund_at` chega `null`. ### Exemplo de payload ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "event": "TRANSACTION_ASK_REFUNDING", "creation_date": "2026-02-03T11:30:05.000Z", "version": "1.0.0", "data": { "transaction": { "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "identifier": "PPO0087103960", "status": "ASK_REFUND", "type": "BILLING", "payment_method": "CREDIT_CARD", "total_amount": "555.2400", "net_amount": 450, "effective_value": "426.5500", "base_tax": "23.4500", "installment_tax": "105.2400", "base_fixed_tax": "0.9900", "base_percentage_tax": "22.4600", "installments": 12, "cycle": 1, "paid_at": "2026-01-29T14:35:00.000Z", "created_at": "2026-01-29T14:00:00.000Z", "refund_reason": "Produto não atendeu às expectativas", "refund_at": null }, "items": [ { "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "quantity": 1, "amount": "450.0000", "original_amount": "500.0000", "discount_value": "50.0000", "product": { "id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", "name": "Curso Completo de Marketing Digital", "type": "DIGITAL" }, "price": { "id": "1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed", "title": "Plano Anual", "price": "500.0000", "identifier": "PPP1234567890" } } ], "product": { "id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", "name": "Curso Completo de Marketing Digital", "type": "DIGITAL" }, "buyer": { "name": "João Silva", "email": "joao.silva@email.com", "document": "12345678900", "phone": "11999999999" }, "address": { "street": "Rua das Flores", "number": "123", "complement": "Apto 4B", "neighborhood": "Centro", "city": "São Paulo", "state": "SP", "postal_code": "01000-000" }, "payment_details": { "origin": "DIRECT", "qr_code": null, "billet_barcode": null, "billet_link": null, "last_credit_card_digits": "4242", "shipping_value": "0.00" }, "coupon": null, "subscription": null, "affiliate": null, "source": { "channel": "API", "api_credential_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7" } } } ```