Venda expirada

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

{
  "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"
    }
  }
}

Header Parameters

Authorization?string

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.

X-PagPolar-Test?string

true só nos envios de teste feitos pelo Playground de webhooks do portal. Os eventos reais não trazem este header.

Value in"true"
idstring

Id desta tentativa de entrega. Cada nova tentativa do mesmo evento chega com outro id: não use este campo para evitar processamento duplicado.

Formatuuid
eventstring

Nome do evento.

creation_datestring

Data e hora (UTC) em que esta tentativa foi montada.

Formatdate-time
versionstring

Versão do formato do payload.

test?boolean

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.

dataTransactionEventData

Dados do evento. Chega vazio ({}) se a venda ou a assinatura não for encontrada no momento do envio.

Response Body

Venda paga POST

**Evento:** `TRANSACTION_PAID` O pagamento da venda foi confirmado. **Quando dispara:** quando o gateway confirma o pagamento do PIX, do boleto ou do cartão. Também vale para a cobrança de renovação de assinaturas em PIX ou boleto. **O que fazer:** libere o que foi vendido e marque o pedido como pago. **Atenção:** o mesmo evento pode chegar mais de uma vez para a mesma venda, por novas tentativas de entrega ou por mais de um aviso do gateway. Antes de liberar, confira se o pedido já está pago no seu sistema. ### Exemplo de payload ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "event": "TRANSACTION_PAID", "creation_date": "2026-01-29T14:35:05.000Z", "version": "1.0.0", "data": { "transaction": { "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "identifier": "PPO0087103960", "status": "PAID", "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" }, "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": { "id": "5f2c8b1a-9d3e-4a7b-8c6d-1e2f3a4b5c6d", "code": "PROMO10", "name": "Promoção de Janeiro", "fixed_value": null, "percentage_value": 10 }, "subscription": null, "affiliate": { "identifier": "PAO1234567890", "name": "Parceiro Digital", "commission_type": "COMMISSION", "commission_value": 90, "product_quantity": null }, "source": { "channel": "API", "api_credential_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7" } } } ```

Venda cancelada POST

**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 ```json { "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" } } } ```