Skip to main content

Refund Event

When a PrestaShop order is refunded, partially refunded, returned or cancelled, Pixel Plus can fire a custom Meta event named Refund through the Conversions API. This gives you visibility into post-purchase outcomes in Meta Events Manager and lets you build exclusion audiences and custom conversions around refunded orders.

Read this first — what the Refund event is and isn't
  • Refund is NOT a Meta standard event. Pixel Plus sends it as a custom event via CAPI.
  • The value is sent as a positive number, not negative. Meta's Conversion API does not accept negative value fields.
  • Meta does NOT automatically reduce previous Purchase events. Sending Refund does not retroactively correct ROAS or "Purchases conversion value" in Ads Manager. Meta records events; it does not reconcile them like accounting software.
  • What it's actually good for: refund visibility in Events Manager, exclusion / suppression audiences (e.g. serial refunders), custom conversions, and external reporting where you combine Purchase and Refund signals on your own side.

Treat the event name itself as the signal — that is the supported use case.

⚙️ Configuration

  1. Go to Modules > Module Manager in your Back Office
  2. Find Pixel Plus and click Configure
  3. Open the Trackable Events panel and locate the Refund / Cancellation Event section
  4. Enable Enable Refund event (FCTP_REFUND_ENABLED)
  5. Choose Only for paid orders (FCTP_REFUND_PAID_ONLY) — recommended ON, so cancellations of unpaid orders don't fire false refunds
  6. Select the Order states that trigger the Refund event (FCTP_REFUND_STATUS) — typically Refunded, Cancelled, Returned
  7. Click Save
Requires the Conversions API

The Refund event is server-side only (CAPI). Refunds happen in the Back Office, after the customer has left your site, so there is no browser to send a pixel event from. Make sure CAPI is configured with a valid access token — see Conversion API (CAPI).

📦 What data is sent

Pixel Plus sends a custom event named Refund with the following payload:

FieldValue
event_nameRefund (custom event)
valueRefunded amount — positive number, in your shop's currency configuration (tax/shipping per Purchase event settings)
currencyISO currency code of the order
content_typeproduct
content_idsProduct IDs (or references) of the refunded order
contentsPer-item array with id, quantity, price
num_itemsTotal items in the refunded order
order_idPrestaShop order ID
order_referencePrestaShop order reference (e.g. ABCDEF123)
event_idRandom ID generated by the module (CAPI-side dedup uses Meta's standard rules)

The event name is the signal that this is a refund. The positive value is required by Meta's API — it does not mean a new sale.

🔄 How it triggers in PrestaShop

The Refund event fires through PrestaShop's actionOrderStatusPostUpdate hook — i.e. whenever an order's status changes through the Back Office order management interface. Pixel Plus checks:

  1. Is the new order status in the configured Order states that trigger the Refund event?
  2. If Only for paid orders is enabled, was the order previously validated/paid (Order::valid = 1)?

If both conditions are met, the module builds the CAPI payload and sends it immediately. This works with all PrestaShop refund flows — standard refund, partial refund, return products, cancel products / cancel order — as long as the resulting status change matches one you've configured.

📊 What you can do with it

Use caseSupported?Notes
See refund volume / value in Events ManagerCustom event surfaces refund signals attributable to Meta-traffic orders.
Build exclusion audiences (e.g. serial refunders, last 30 / 60 / 180 days)Audiences based on the custom Refund event, then excluded from retargeting and re-engagement campaigns. Subject to your own consent/legal posture.
Create custom conversions based on RefundMeta supports custom conversions on any custom event. Useful for tracking refund rate from Meta-attributed traffic.
External / off-Meta reporting (gross vs refunded revenue)If you log Purchase + Refund locally, you can reconcile actual net revenue more accurately than Ads Manager alone.
Auto-correct ROAS or Purchases value in Ads ManagerMeta does not do this. The original Purchase event is not retroactively reduced.
Reverse / cancel a previously sent Purchase eventNot how Meta attribution works.

✅ Final Checklist

  • Confirm CAPI is enabled and a valid Access Token is configured (Conversion API guide)
  • Enable Enable Refund event in the Trackable Events panel
  • Select the order statuses that should fire it (Refunded, Cancelled, Returned)
  • Decide whether to keep Only for paid orders on (recommended) or also fire for cancelled-before-payment orders
  • Test: refund/cancel a test order in the Back Office and check Meta Events Manager → Test Events for an incoming Refund event with the original order ID
  • (Optional) Build a custom audience or custom conversion in Meta Ads Manager based on the Refund event

Is Refund a Meta standard event?

No. Pixel Plus sends it as a custom event named Refund through the Conversions API. There is no Meta standard event for refunds, and the live Meta event reference does not list one.

Why is the value sent as a positive number and not negative?

Meta's Conversion API does not accept negative value fields, so the module sends the refunded amount as a positive number. The event name 'Refund' is the signal that distinguishes it from a sale — not a negative value.

Will sending Refund events automatically correct my ROAS in Ads Manager?

No. Meta does not retroactively deduct refunded amounts from previous Purchase events. ROAS and Purchases conversion value in Ads Manager are not corrected when a Refund event arrives. The Refund event is useful for refund visibility, exclusion audiences and custom conversions — not for auto-reconciling revenue.

Does the Refund event require CAPI to be enabled?

Yes. Refunds happen in the PrestaShop Back Office after the customer has left the site, so there is no browser context to send a pixel event from. The Refund event is sent exclusively server-side through the Conversion API and requires a valid access token.

Does Pixel Plus support partial refunds and returns?

Yes. The Refund event fires through actionOrderStatusPostUpdate whenever an order reaches a status you have configured, regardless of which PrestaShop refund flow produced that status — standard refund, partial refund, return product, cancel product or cancel order all work.

What is the best way to use the Refund event in Meta Ads Manager?

Build a custom audience of users who triggered the Refund event in a recent window (for example the last 30, 60 or 180 days) and exclude it from your retargeting and re-engagement campaigns. You can also create a custom conversion based on the Refund event to monitor your refund rate from Meta-attributed traffic.

🆘 Need Help?