Skip to main content

Webhooks - Refund

A purchase has been refunded.


This event is not trigerred for subscriptions still active, a subscription_expire event will be trigerred instead.
You can check the isRefunded property to detect a subscription expiring because of a refund.


This event is not trigerred for a refund due to a subscription replace.


We're refreshing every day the Google Voided Purchases API in order to detect refunds of Google subscriptions.
When you refund a subscription from the Google Play Console you must check the revoke option otherwise the refund won't be detected by IAPHUB.

Request body

ObjectThe latest data of the purchase related to the event, see the Get purchase API route response properties.
When receiving a webhook you can call the Get purchase API route in order to verify the purchase or refresh the data if your webhook processing got delayed and you're concerned the data might be outdated.


type: 'refund',
version: '2.0.0',
data: {
id: '5da20ea9fbd92641ae8d0c02',
purchaseDate: '2030-10-12T17:34:33.256Z',
quantity: 1,
platform: 'android',
country: 'IT',
tags: {},
orderId: 'GPA.2209-1028-4637-1551',
app: '5d86507259e828b8fe321f7e',
user: '5d865c10c41280ba7f0ce9c2',
userId: '62785074-8f32-42a5-b86b-90dbd79ce212',
product: '5d86507259e828b8fe321f8b',
listing: '5d86507259e828b8fe321f32',
store: '5d86507259e828b8fe321f84',
currency: 'EUR',
price: 9.99,
convertedCurrency: 'USD',
convertedPrice: 11.15,
isSandbox: false,
isRefunded: true,
refundDate: '2019-10-13T17:34:33.256Z',
refundReason: 'other',
isSubscription: false,
productSku: 'pack10_tier10',
productType: 'consumable'