Reembolsar uma venda
Reembolsa uma venda sua. Como quem pede é o próprio vendedor, o pedido já nasce aceito: o estorno é enviado ao gateway na hora, a assinatura da venda é cancelada e os acessos do comprador são revogados. Não há como desfazer.
O reembolso é sempre total. Reembolso de alguns itens continua só no painel.
A venda precisa estar paga ou já com um pedido de reembolso aberto; em qualquer outra
situação a resposta é 409. Só existe um pedido em andamento por venda.
A resposta traz a situação do pedido: REFUNDING enquanto o gateway não confirma e
FAILED quando ele recusa o estorno (por exemplo, por falta de saldo de um co-produtor).
A confirmação vem depois pelo webhook TRANSACTION_REFUNDED.
O header Idempotency-Key é obrigatório: reenviar a mesma chave devolve a resposta
original, sem pedir um segundo estorno.
Sem campo de autorização: o portal autentica por você com a sua chave de Homologação e as requisições rodam só no ambiente de testes.
Token de acesso devolvido por POST /auth/token. Envie como "Authorization: Bearer ". Vale 24 horas.
In: header
Header Parameters
length <= 255Código público da venda a reembolsar — o identifier que vem em GET /sales, na resposta da cobrança e no payload dos webhooks. São só dígitos; o prefixo e a URL do checkout que contenha o código também são aceitos. Não é o id (uuid) da venda: com o uuid a resposta é 404. A venda precisa ser da própria conta da credencial.
length <= 255Quem pediu o reembolso, para o registro ficar fiel: SELLER quando a decisão foi sua e CLIENT quando o comprador pediu por fora (e-mail, telefone, atendimento). O campo só muda o registro, que volta em requested_by na consulta — o estorno é imediato nos dois casos, porque quem chama a rota é o vendedor.
"SELLER""SELLER" | "CLIENT"Motivo do reembolso, em texto livre. Fica gravado no pedido e aparece em GET /refunds.
length <= 255Observação do comprador, quando houver.
length <= 255Response Body
curl -X POST "https://pagpolar-api.creativecode.dev.br/v1/refunds" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{ "sale_identifier": "PPO9876543210", "reason": "Cliente desistiu da compra" }'{
"data": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"status": "REFUNDED",
"requested_by": "CLIENT",
"is_partial": false,
"refund_amount": null,
"reason": "Não atendeu às expectativas",
"customer_observation": null,
"refused_reason": null,
"canceled_reason": null,
"return_tracking": {
"code": "BR123456789BR",
"provider": "string",
"sent_at": "2019-08-24T14:15:22Z",
"received_at": "2019-08-24T14:15:22Z"
},
"sale": {
"identifier": "PPO9876543210",
"status": "REFUNDED",
"payment_method": "PIX",
"total_amount": 197
},
"customer": {
"id": "e6f7a8b9-c0d1-4e2f-3a4b-5c6d7e8f9a0b",
"name": "Maria Souza",
"email": "maria@exemplo.com",
"document": "***.456.***-**",
"phone": "****4321",
"is_active": true,
"created_at": "2026-01-05T08:00:00.000Z"
},
"created_at": "2026-01-25T09:00:00.000Z",
"updated_at": "2026-01-27T16:20:00.000Z"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}Reembolsos
Liste os pedidos de reembolso e peça o reembolso de uma venda.
Listar reembolsos GET
Lista os pedidos de reembolso das suas vendas, do mais recente para o mais antigo — abertos pelo comprador ou por você. Cada pedido traz a situação, o motivo, o valor (quando parcial) e a venda a que pertence. Para ser avisado em tempo real, assine os webhooks `TRANSACTION_ASK_REFUNDING` (pedido recebido) e `TRANSACTION_REFUNDED` (estorno concluído).