Reembolso solicitado

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

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

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.

dataRefundEventData

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

Response Body

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

Venda reembolsada POST

**Evento:** `TRANSACTION_REFUNDED` O estorno foi concluído e o dinheiro voltou para o cliente. **Quando dispara:** quando o gateway confirma o estorno de uma venda paga, com ou sem pedido de reembolso antes. **O que fazer:** revogue o acesso ao que foi vendido e marque o pedido como reembolsado. **Atenção:** no reembolso de parte dos itens, o evento só chega quando o último item da venda é estornado; antes disso a venda volta para `PAID` e nenhum evento é enviado. O estorno de uma venda que não contava como paga chega como `TRANSACTION_CANCELED`. ### Exemplo de payload ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "event": "TRANSACTION_REFUNDED", "creation_date": "2026-02-05T16:00:05.000Z", "version": "1.0.0", "data": { "transaction": { "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "identifier": "PPO0087103960", "status": "REFUNDED", "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": "2026-02-05T16: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" } } } ```