Cobrança de renovação gerada
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
{
"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"
}
}
}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 criada POST
**Evento:** `TRANSACTION_CREATED` Uma venda foi registrada. **Quando dispara:** logo depois da criação da venda, no checkout da PagPolar ou pela API, em `POST /v1/payments/pix`, `POST /v1/payments/boleto`, `POST /v1/payments/credit-card` e `POST /v1/plans/offer/{id}/subscribe`. **O que fazer:** registre a venda pelo `transaction.id` e ligue ao seu pedido. Não libere o que foi vendido: espere `TRANSACTION_PAID`. **Atenção:** confira `transaction.status`. No cartão, a venda recusada pelo gateway na criação chega como `FAILED` e não recebe outro evento. O payload é montado na hora do envio, então a venda pode chegar com um status posterior, como `PAID`. Use `source.channel` para saber se a venda veio do checkout ou da API. ### Exemplo de payload ```json { "id": "550e8400-e29b-41d4-a716-446655440000", "event": "TRANSACTION_CREATED", "creation_date": "2026-01-29T14:00:05.000Z", "version": "1.0.0", "data": { "transaction": { "id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d", "identifier": "PPO0087103960", "status": "PROCESSING", "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" }, "order_bumps": [ { "transaction": { "id": "d4e5f6a7-b8c9-4123-8def-456789012345", "identifier": "PPO0087103961", "status": "PAID", "type": "BILLING", "payment_method": "CREDIT_CARD", "total_amount": "47.0000", "net_amount": 47, "effective_value": "43.5000", "base_tax": "3.5000", "installment_tax": "0.0000", "base_fixed_tax": "0.9900", "base_percentage_tax": "2.5100", "installments": 1, "cycle": 1, "paid_at": "2026-01-29T14:35:00.000Z", "created_at": "2026-01-29T14:00:00.000Z" }, "items": [ { "id": "a12bc34d-56ef-4890-abcd-ef1234567890", "quantity": 1, "amount": "47.0000", "original_amount": "47.0000", "discount_value": "0.0000", "product": { "id": "7c3aeb2d-5b8e-4bad-9cdd-3a1d8c4eab7e", "name": "E-book Estratégias Avançadas", "type": "DIGITAL" }, "price": { "id": "3d1f8ace-dd0f-4d4f-bd7f-cd0f1ddf6def", "title": "Oferta Especial", "price": "47.0000", "identifier": "PPP1234567891" } } ], "product": { "id": "7c3aeb2d-5b8e-4bad-9cdd-3a1d8c4eab7e", "name": "E-book Estratégias Avançadas", "type": "DIGITAL" } } ] } } ```
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" } } } ```