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.
Refundis 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
valuefields. - 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
- Go to Modules > Module Manager in your Back Office
- Find Pixel Plus and click Configure
- Open the Trackable Events panel and locate the Refund / Cancellation Event section
- Enable Enable Refund event (
FCTP_REFUND_ENABLED) - Choose Only for paid orders (
FCTP_REFUND_PAID_ONLY) — recommended ON, so cancellations of unpaid orders don't fire false refunds - Select the Order states that trigger the Refund event (
FCTP_REFUND_STATUS) — typically Refunded, Cancelled, Returned - Click Save
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:
| Field | Value |
|---|---|
| event_name | Refund (custom event) |
| value | Refunded amount — positive number, in your shop's currency configuration (tax/shipping per Purchase event settings) |
| currency | ISO currency code of the order |
| content_type | product |
| content_ids | Product IDs (or references) of the refunded order |
| contents | Per-item array with id, quantity, price |
| num_items | Total items in the refunded order |
| order_id | PrestaShop order ID |
| order_reference | PrestaShop order reference (e.g. ABCDEF123) |
| event_id | Random 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:
- Is the new order status in the configured Order states that trigger the Refund event?
- 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 case | Supported? | Notes |
|---|---|---|
| See refund volume / value in Events Manager | ✅ | Custom 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 Refund | ✅ | Meta 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 Manager | ❌ | Meta does not do this. The original Purchase event is not retroactively reduced. |
| Reverse / cancel a previously sent Purchase event | ❌ | Not 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
Refundevent with the original order ID - (Optional) Build a custom audience or custom conversion in Meta Ads Manager based on the
Refundevent
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.