Skip to content
Bach.ai

How to Send Offline Sales to Meta in 2026

Published
Drafted with AI; facts checked against the linked sources on . How we write

How do I upload offline sales to Meta?

Create a dataset in Events Manager, assign it to your ad account, then send sales one of three ways: a CSV upload, a partner integration such as a point-of-sale or CRM connector, or the Conversions API with action_source set to physical_store. Upload daily, include order IDs, and send each sale within 62 days.

Offline sales now go to the same place as your website events: a dataset in Events Manager. Meta set end dates for the legacy Offline Conversions API and offline event sets, so a 2026 setup is a dataset plus one of three feeds: a manual CSV, a partner connector, or your own Conversions API call. Which fits depends on your order volume; the rules on timing and order IDs apply to all three.

What changed in how Meta takes offline sales?

Meta announced two cut-offs (Changes to the way you manage offline events):

  • Offline event set creation would be discontinued in May 2024. You create a dataset instead.
  • The Offline Conversions API would be discontinued in May 2025, “as the Conversions API now fully supports offline events”. From then, it can no longer upload to offline event sets.

If you still have an old offline event set, Meta’s route is to convert it: in Events Manager, open Data sources, select it, find the banner that says offline events are moving to datasets, and click Convert to dataset. Meta’s developer page now calls the old API “Meta’s legacy API for offline events” (Meta for Developers, offline events).

Which upload method should I use?

Method Best for Setup effort How often data arrives Source
CSV upload in Events Manager Low volume, or a first test None beyond a spreadsheet When you upload it Upload offline event data
Partner integration Stores already on a supported POS or CRM Connect in the partner’s tool Set by the partner Partner integrations for offline events
Conversions API, physical_store Your own POS, ERP or data warehouse Developer work As often as you send it Meta for Developers

Meta’s partner list for offline events includes Shopline, Stripe, Zapier, Segment, Tealium, Stape and Elevar, among others. If none fits, the choice is manual upload or the Conversions API.

How do I upload offline sales by CSV?

First create a dataset and assign it to an ad account, and make sure the people or agency uploading have access to the dataset. Then follow Meta’s steps (Upload offline event data):

  1. Go to Events Manager and select the business account you use for ads.
  2. Click the Data sources icon on the left and select the dataset you want to upload to.
  3. Select Upload events, then drag in your CSV file or click Select CSV file.
  4. Select Next: Map data and check that Meta mapped each column to the right data type.
  5. Edit any wrong column with the pencil icon, or set it to Ignore if it should not upload.
  6. Select Next: Review and read the row count, the estimated match rate and any warnings.
  7. Select Start upload when the warnings are resolved.

Meta says results can take up to 15 minutes to show in Events Manager and Ads Reporting. Read the warnings before step 7: once uploaded, offline data cannot be deleted or updated.

What should the CSV contain?

Meta’s best practices (Best practices for offline events data) and its troubleshooting page (Troubleshoot offline event upload issues) come down to five rules:

  • Event name. Use a standard event such as Purchase. Meta asks for event names in English CamelCase, or they arrive as custom events, and custom events cannot be used for optimisation or custom audiences (Standard and custom events for offline conversions).
  • Precise event time. Include minutes and seconds. If many rows share the same time, Meta treats them as duplicates and skips them.
  • Real value and currency. Send the actual transaction value with a three-letter currency code. Rows with a zero or negative purchase value are not accepted, and identical values across every row trigger a warning.
  • Order ID. One unique ID per transaction, plus an item number when one order has several rows. Meta asks for one event per order.
  • Customer details. Email, phone, name, city, postcode and country let Meta match the sale to a person. A low match rate usually means too few of these columns.

How do I send offline sales with the Conversions API?

Post the event to the dataset’s Conversions API endpoint, https://graph.facebook.com/{API_VERSION}/{DATASET_ID}/events (Meta for Developers). Three steps make it an offline sale:

  1. Set action_source to physical_store on every offline or store event.
  2. Send event_name, event_time, currency and value; the last two are required for Purchase.
  3. Add hashed customer information such as email and phone, plus order_id and, for multi-line orders, item_number.

Meta’s developer page says you should upload transactions within 62 days of the conversion, and recommends sending events as they happen or at least daily. Before you go live, test the payload with the Payload Helper and the Test events tab in Events Manager (Test your server events).

How late can I send an offline sale?

Meta states two limits, on two different pages:

  • Conversions API: Meta says to upload transactions within 62 days of the conversion when action_source is physical_store.
  • Manual upload: Meta matches uploaded events to impressions in the last 90 days. If a dataset gets no upload for 90 days, the window shrinks to 35 days until you upload again.

Both pages say the same thing about cadence: upload daily. Meta’s offline data quality score, out of 10, rewards uploads on at least 12 of the previous 14 days and data no older than 3.5 days (About offline data quality).

How does Meta stop the same sale counting twice?

Offline events deduplicate only against other offline events, never against pixel or website events. By default Meta uses the order ID together with the dataset, event time, event name and item number. Without an order ID, it falls back to matching customer details, and the deduplication window is at most 7 days (Meta for Developers). Meta also tells you not to send website sales as offline events.

That is why the same order should not reach Meta both as a website Purchase and an offline Purchase. If online and offline revenue in Ads Manager already looks too high against your books, why does Meta revenue never match my store revenue? walks through the usual causes.

Where do I see offline sales in Ads Manager?

Offline sales are only attributed to ads that track the dataset. When you create an ad, turn on offline events in the Tracking section; Meta notes that adding tracking to a running campaign only attributes events after the change (Enable offline event tracking).

To view results, open Ads Manager, click the Columns drop-down and choose Offline conversions, then use Customise columns to pick the events and set the attribution setting (View offline event results). For what that setting changes, see which Meta attribution window should I use? The wider question of how far to trust reported revenue is covered in the ROAS and attribution guide.

FAQ

Is the Offline Conversions API still available?

Meta said it would discontinue the Offline Conversions API in May 2025 and stop uploads to offline event sets. Its replacement is the Conversions API sending to a dataset, with action_source set to physical_store. Meta’s developer page now describes the old API as legacy.

Can I delete an offline upload that was wrong?

No. Meta says that once you upload offline event data you cannot delete or update it. Fix the warnings on the Review screen before you click Start upload, and if a file was wrong, correct your process for the next upload rather than re-sending the same orders.

Why is my offline match rate low?

Meta says a low match rate usually means you did not send enough customer identifiers. Add email and phone where you collect them, map every customer column on the Map data screen, and check formats. Meta uses only matched events for attribution and custom audiences.

Do I need a separate dataset for offline sales?

No. Meta built datasets to hold web, app, store and messaging events together, so one dataset can carry your online and offline sales. You still need to assign that dataset to the ad account and turn on offline tracking in your ads, or the uploaded sales will not show in Ads Manager.

Sources

Sources: Meta Business Help Center, Changes to the way you manage offline events, Upload offline event data, Best practices for offline events data, Troubleshoot offline event upload issues, Partner integrations for offline events, Standard and custom events for offline conversions, About offline data quality, Enable offline event tracking, View offline event results, Test your server events; Meta for Developers, Offline events using the Conversions API (checked 2 Oct 2026).

MeasurementMarketing Analytics

See what your Meta ads are really costing you.

Connect your account and Bach ranks potential revenue leaks with estimates and actions you can review. Free for 7 days, no credit card.

Start Free Audit
Start your free audit