Tracking order refunds with Littledata

Updated on 2022-10-04

Littledata automatically integrates with Shopify/Shopify Plus and BigCommerce sites to capture every customer touchpoint, including sales, marketing, customer and product performance data.

In addition, the app captures every transaction, including recurring orders and refunds.


Read more about our connections and what we track here.

What is a refund event?

The refund event triggers when a customer is unhappy with what he ordered and wants a refund. After you confirm and accept the refund, clicking the Refund button in the Shopify Admin triggers a Refund event in the destinations that you have connected.

Being a server-side event, once you hit the Refund button, our webhook listener picks up the webhook from Shopify and fetches the information we need to build the Refund event. 

Here is how the order information is fetched so that the refund event includes the matching order information:

Refunds in Google Analytics

In Universal Analytics, you will see refunds in the Sales Performance report under Conversions - Ecommerce - Sales Performance.

In GA4, you can create a custom report similar to the Sales Performance report in Universal Analytics, add the ''refunds'' metric, and you will have an overview of your refund orders.

Refunds in Segment

In Segment, refunds will be found in your connected source debugger, by clicking the "Order Refunded" event.

Attribution for refund orders

Source/Medium may change: the Source and Medium dimensions of the refund data will reflect the campaign attribution and date used in the customer's last session. These may be different than the original transaction data.

Example: you have a transaction attributed to google/cpc from customer A on date 1. That customer then has a later session on date 2, attributed to google/organic. If you refund the original transaction, the refund data will be attributed to the most recent Source/Medium, which would be, google/organic, and the date will be set to the day the refund is uploaded.

Why net revenue might be different in Google Analytics vs Shopify

Google Analytics adds the refund to the date of the order, whilst Shopify will add it to the date of the refund. This will cause expected discrepancies between the Net Revenue reported by the two tools.

Supported refund types

Littledata supports all refund types that happen on your Shopify or BigCommerce store:

Full Refunds

A full refund happens when you refund an entire order.

Littledata will send a refund event containing all the products the customer wanted to refund, with all the correct information and parameters (clientIDs, shipping cost etc.) 

Partial Refunds

A partial refund happens when a customer wants to refund only one or two items from the order (e.g. 3 out of 5).

Littledata will send a refund event containing only the products the customer wanted to refund, with all the correct information and parameters (clientIDs, shipping cost etc.) 

Custom Refunds

A custom refund happens when you refund the customer for a specific amount.

Littledata will send a Refund event containing NO products, but only the amount refunded to your customer.

DestinationFull refundPartial refundCustom refund
Universal Analytics
Google Analytics 4
Facebook Conversions API❌❌

* Facebook does not have a predefined event for refunds

Refunds with presentment money
If your store supports presentment money, then the refunds will also support this.

What this means is that when you refund an order, the refund event sent by Littledata will have its values updated to match the presentment amount.

Above you can see how the Shopify shows the order before it is refunded, and below the order refunded, with the presentment money value.

Edge cases


Littledata stores the orders for seven days, as a cache for refund information and parameters.

If a refund is placed and we do not have the order in the database, we'll get the order information through an API call to Shopify. (If the order is not older than 60 days)

If the refund takes place more than 60 days after the original order was placed, we'd have no way of collecting the order information and passing that through to Google Analytics.

Return Logic case

If you are using an app that has access to refunds, be aware that it may be altering Littledata’s refund logic. Take, for example, the Refund Logic app in the Shopify App Store. This app will overwrite our refund logic that is listening to the `refund/create` webhook.

The app is designed to allow customers to exchange products for store credit or other products. Technically, Shopify sees this as a refund, but we do not as there is no webhook triggered for such a return/exchange - therefore, no refund event is sent to any destination.

Learn more