Venda paga
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
{
"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"
}
}
}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
Cobrança de renovação gerada POST
**Evento:** `TRANSACTION_PENDING` A cobrança de renovação de uma assinatura em PIX ou boleto foi gerada e espera pagamento. **Quando dispara:** quando a PagPolar gera a nova cobrança do ciclo para o cliente. Assinaturas em PIX ou boleto nascem no checkout da PagPolar; pela API, a assinatura é sempre no cartão. **O que fazer:** mostre ao cliente o PIX (`payment_details.qr_code`) ou o boleto (`payment_details.billet_link` e `payment_details.billet_barcode`) do novo ciclo. Quando ele pagar, chega `TRANSACTION_PAID`. **Atenção:** é uma venda nova, com outro `transaction.id`. `transaction.cycle` indica o ciclo cobrado e `subscription` vem preenchida. Se a cobrança anterior não foi paga, ela chega antes como `TRANSACTION_EXPIRED`. ### Exemplo de payload ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "event": "TRANSACTION_PENDING", "creation_date": "2026-02-28T10:00:05.000Z", "version": "1.0.0", "data": { "transaction": { "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "identifier": "PPO0087103960", "status": "DRAFT", "type": "BILLING", "payment_method": "BOLETO", "total_amount": "555.2400", "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": 2, "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": null, "payment_details": { "origin": "DIRECT", "qr_code": null, "billet_barcode": "23793381286000000000300000000409184340000004990", "billet_link": "https://boletos.exemplo.com.br/a1b2c3d4.pdf", "last_credit_card_digits": null, "shipping_value": "0.00" }, "coupon": null, "subscription": { "id": "c3d4e5f6-a7b8-4012-8def-123456789012", "status": "PENDING_RENEWAL", "start_at": "2026-01-28T10:00:00.000Z", "next_billing_at": "2026-03-28T10:00:00.000Z" }, "affiliate": null, "source": { "channel": "API", "api_credential_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7" } } } ```
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" } } } ```