Skip to main content
checkout.refunded is off by default. It will not be delivered until you enable it in Dashboard → Developers. See Receiving Webhooks for instructions. Sandbox and production are separate accounts with separate webhook settings, so enable it in each.

Payload Structure

Example Response

Updating Your Internal Ledger

This event is triggered when a charge that previously succeeded is refunded to the customer — via the dashboard or the Refund a Charge endpoint. You need to “undo” the previous action — for deposits you should deduct the balance you credited when the charge succeeded. checkout.refunded differs from checkout.returned: a refund is deliberately issued back to the customer, while a return is a reversal initiated by the customer’s bank on a bank-rail payment (an ACH return such as NSF or closed account). Both reverse a payment you already credited, so your ledger handling is typically the same. A card chargeback is neither: it does not change the charge’s status and emits no charge event — see Disputes and chargebacks.