Connect the Snapchat Conversions API to your Shopify store
By the HonestTag team ยท Published October 16, 2026
HonestTag sends each verified Shopify purchase to Snapchat from its server through Snap's Conversions API, so orders from Snapchat ads are counted even when a browser tag is blocked. You connect it on the Snapchat card in the HonestTag app, either by signing in to Snapchat or by pasting a Conversions API token, plus the ID of your Snap Pixel. This page lists what you need, the steps, what is sent, how duplicates are avoided, and how to check it works.
What you need
- A Snap Pixel. HonestTag sends to a Pixel ID, the ID Snap uses for "Events taking place on a web property", as its Get Started page puts it. With Snapchat sign-in, the card lists the pixels your login can reach.
- Either a Snapchat login or a Conversions API token. Signing in asks you to approve HonestTag for two Snap permissions, which Snap describes as access to "the Snapchat marketing APIs" and "the Snapchat Conversions APIs". The pasted path uses a token from Ads Manager. Snap says: "you'll need to be an Organization Admin" to generate it, and "These tokenAds do not expire and you do not need to refresh access."
- The pixel and the token from the same organization. Snap: "You can only send events for the pixel and app IDs that belong to the Org where the token has been generated."
- One purchase source for that pixel. The card will not save until you confirm HonestTag is the only thing sending Snapchat purchase events for the store. See avoiding double counting below.
- A paid HonestTag plan for delivery. The free Mirror never sends anything to an ad platform. You can connect Snapchat on the Mirror; purchases start going to Snap, and HonestTag creates its custom conversions, when you move to a paid plan. See pricing.
Connect Snapchat, step by step
- Turn off other Snapchat purchase events. If a Snap Pixel in your theme, another Snapchat integration or another app sends purchase events to the pixel you will use, turn its purchase event off first. HonestTag asks you to confirm this before it saves.
- Open the Snapchat card. In your Shopify admin, open the HonestTag app, go to Setup, and find the Snapchat card.
- Sign in, or paste a token. Choose Connect Snapchat and approve HonestTag on Snapchat's page. Or open Paste a Conversions API token: in Snap Ads Manager, open the menu in the top corner, select Business Details, and under Conversions API Tokens click Generate Token. Only an Organization Admin can see that section.
- Pick the pixel and confirm. After sign-in, choose your Snap Pixel from the list (or type its ID). With a pasted token, paste the token and the Pixel ID. Tick HonestTag will be the only thing sending Snapchat purchase events for this store.
- Save. HonestTag sends Snap one test event to its validation endpoint, and the test must pass before the pixel is saved. A pasted token is stored only if Snap accepts it; a Snapchat sign-in completed before this save stays connected. On a paid plan with Snapchat sign-in, it also creates or adopts three custom conversions on the pixel.
The save-time check uses Snap's test endpoint, which Snap says lets advertisers verify events "without sending actual production events." On the pasted-token path, a token Snap refuses, or a pixel outside that token's organization, stops the save with the reason on the card, and nothing is stored. With sign-in, a pixel Snap refuses is not saved; your Snapchat sign-in stays connected so you can choose another pixel. If you sign in again later and the complete list of pixels your new login can reach does not include the saved one, HonestTag clears it, so purchases are not sent to a pixel that would refuse them.
The four purchase goals in Snapchat
Snap does not take free-form event names: its custom event slots are numbered (CUSTOM_EVENT_1 to CUSTOM_EVENT_5). So HonestTag sends one standard PURCHASE per order and marks it with two fields Snap uses to build custom conversions:
status:neworreturning. Snap's Parameters page says the value "is matched by the customer_status Custom Conversion rule key".event_tag: the order's most specific goal name,HonestTag_Purchase_NC,HonestTag_Purchase_RC, orHonestTag_Purchase_FCNCwhen a new customer's first recorded ad click was on Snapchat. Snap calls this field "Also usable as the event_tag Custom Conversion rule key."
The four goals map onto that one event like this:
- HonestTag_Purchase (all purchases): Snap's own
PURCHASEevent. - HonestTag_Purchase_NC: a custom conversion on
PURCHASE, customer status equal tonew. A first-click new customer's order also has statusnew, so it counts here too. - HonestTag_Purchase_RC: customer status equal to
returning. - HonestTag_Purchase_FCNC: event tag equal to
HonestTag_Purchase_FCNC, the tag only a first-click new customer's order carries.
With Snapchat sign-in on a paid plan, HonestTag creates those three custom conversions on your pixel when you save, using a case-insensitive match as Snap's Custom Conversions page recommends. If one with the same name already exists, HonestTag uses it as it is and never changes it. The card lists which ones are set up. With a pasted token, HonestTag cannot create them, so create them in Snap Ads Manager with the rules above. Snap says "Custom Conversion Rules should be created within Ads Manager first before sending events", so set them up when you connect. Because every order is one event, nothing is counted twice in Snap's own PURCHASE reporting. For which goal to bid on, see the HonestTag conversion actions; Snap describes optimization on custom conversions as "open beta".
What HonestTag sends to Snapchat
For each eligible order HonestTag sends one PURCHASE event to tr.snapchat.com/v3/{your pixel}/events. It holds:
- The order: the order time, an event ID derived from the order (the same on every retry), your Shopify order ID as
order_id, the order value without tax, the currency, and up to 50 products (product ID, quantity and unit price). A bundle is sent as one product. - The page: the order's landing page as
event_source_url, or your storefront address when the order has none. - Matching data: SHA-256 hashes of the buyer's email and phone, normalized as Snap specifies (email trimmed and lowercased; phone with its country code and digits only); a SHA-256 hash of HonestTag's random visitor ID as
external_id; the Snapchat click ID (ScCid), which Snap defines as "The ID value stored in the landing page URL's &ScCid= query parameter", when the visit came from a Snapchat ad; and the IP address and user agent Shopify recorded on the order. - The goal fields described above.
Snap's Using the API page requires "At least one of the following to match your events to Snapchatters:" and lists a hashed email (em), a hashed phone number (ph), client_ip_address together with client_user_agent, and a mobile advertising ID "for app events only". An order with no email, no phone and no IP address and user agent pair is not sent. Snap also says "The event_time cannot be more than 7 days in the past", so HonestTag does not send an older purchase. HonestTag marks an order delivered when Snap answers VALID.
Consent follows the rules on the server-side delivery page: for EU, EEA, UK and Swiss orders, a conversion with no visitor record is not sent, unless you asked HonestTag in writing to turn that gate off because you collect consent elsewhere. HonestTag sets no consent flag on the Snap event itself.
What HonestTag reads, and what it never touches
- Reads: with sign-in, your organizations, ad accounts and pixels, to fill the pixel list, and the custom conversions on the chosen pixel, to adopt ones that already exist.
- Does not read: Snapchat spend or Snapchat-reported conversions. Snapchat does not appear in the Mirror's comparison.
- Writes: purchase events to your pixel and, with sign-in on a paid plan, the three custom conversions above.
- Never touches: campaigns, ad sets, ads, budgets, bids or targeting, and never edits or deletes a custom conversion you made.
Avoid counting a purchase twice
Snap's Deduplication page gives two ways two copies of a purchase are matched: the "Cross-channel dedup id (e.g. Pixel SDK client_dedup_id <-> CAPI event_id for web)" within 48 hours, and "transaction_id <-> order_id" for PURCHASE events "up to 30 days". HonestTag's event ID is computed on its server from the order, so no browser tag can send the same ID, and what order reference another Snapchat integration sends is up to that integration. If a Snap Pixel in your theme, another Snapchat integration or another app also sends PURCHASE to the same pixel, Snap may receive two purchases for one order. That is why the card asks you to turn the other purchase event off and confirm HonestTag is the only source. The duplicate purchase events guide shows how to find every purchase source on a store.
Refunds, edits and which orders are sent
- Refunds: Snap's Conversions API pages list no refund or retraction event, so HonestTag sends none. The order's proof records "refund recorded; HonestTag sends Snap no refund or retraction event".
- Order edits: HonestTag sends Snap no correction; the value sent at purchase time stands.
- Online store orders are sent as web events.
- Point of sale orders and subscription renewals are kept out unless you switch them on in the app. Switched on, Snapchat receives them with
action_sourceOFFLINE, with no click ID and no page URL. Snap's Offline Events page says such events "use the same Conversions API endpoint as web events, but require a Pixel ID". When phone and draft order matching is on for your store, a staff-completed phone or draft order whose buyer's first ad click was on Snapchat is sent asphone_call, which Snap lists for "Call center or phone order conversions". - Other apps and sales channels are kept out unless you switch them on, as described in which orders are sent.
How to check it works
- On the card. After you save, the Snapchat card shows the pixel and, with sign-in, which custom conversions are set up.
- In Snap Events Manager. Snap says you "can also view your test events in the Events Manager", so the save-time test event can be checked there. Once orders flow, Snap's deduplication guide says to open your pixel in Events Manager, open the PURCHASE event's Diagnostics, and confirm the dedup identifiers are present; it says to "allow up to 24 hours" for diagnostics to update.
- In HonestTag order proof. After the next online order, open it in the HonestTag app. The proof shows Snapchat, the delivery status and the event ID, and names each goal: All purchases "sent as Snapchat's PURCHASE event", and NC, RC or FCNC as "the same PURCHASE event", with its customer status or tag.
Error messages and what to do
- "Snap did not accept this Conversions API token. Check that you copied the whole token." Generate a new token in Business Details and paste all of it.
- "Snap refused this token for pixel ... The token must be generated in the same Snap organization that owns the pixel." Use a token from the organization that owns the pixel, or pick a pixel from that organization.
- "the Snapchat account you signed in with cannot send events to pixel ..." Sign in with a member of the organization that owns the pixel.
- "Snap refused HonestTag's check event (...)" Snap's validation endpoint rejected the test event; its reason is in the brackets. Nothing was saved. Contact support if it repeats.
- "confirm that HonestTag will be the only thing sending Snap purchase events for this store" Tick the confirmation box after turning off other Snapchat purchase sources.
- "paste the Snap Pixel ID, letters, digits and dashes only" The Pixel ID field is empty or not an ID.
- "Custom conversions: none set up yet. Save again to create them." Snap refused to list or create them. Your connection still works; save again to retry.
- Reconnect needed. When Snap refuses a delivery with HTTP 401, 403 or 404, the token or sign-in no longer reaches the pixel. The card asks you to reconnect: sign in again or paste a new token.
Disconnecting
Disconnect from the Snapchat card, or uninstall the app. Delivery stops at once and the stored credential is deleted. Everything already measured stays, per the published retention schedule. Custom conversions HonestTag created stay in your Snap account. If you connected by sign-in, you can also remove HonestTag on Snapchat's side: Snap's FAQ points to accounts.snapchat.com/accounts/oauth2/apps and says "Delete the app in question from the list."
Frequently asked questions
How do I set up the Snapchat Conversions API on Shopify without code?
Install HonestTag, open the Snapchat card on the Setup page, and either sign in to Snapchat or paste a Conversions API token with your Snap Pixel ID. HonestTag sends each Shopify purchase to Snap from its server. There is nothing to add to your theme.
Who can create a Snap Conversions API token?
An Organization Admin. Snap says the Conversions API Tokens section of Business Details is visible only to an Organization Admin, and that a token only works for pixels that belong to the organization where it was generated.
Will Snapchat count a purchase twice if I keep the Snap Pixel?
It can, if the pixel also sends PURCHASE to the same Pixel ID. Snap merges two copies only when they share an event ID (within 48 hours) or an order reference (within 30 days), and no browser tag can send the event ID HonestTag uses. Turn the other source's purchase event off so each order reaches Snap once.
How do new-customer purchases show up in Snapchat?
Each order is one PURCHASE event that carries a customer status of new or returning and an event tag naming its goal. Custom conversions built on those fields count HonestTag_Purchase_NC, HonestTag_Purchase_RC and HonestTag_Purchase_FCNC. With Snapchat sign-in on a paid plan, HonestTag creates them for you; with a pasted token, you create them in Snap Ads Manager.
Does HonestTag send refunds to Snapchat?
No. Snap's Conversions API pages list no refund or retraction event, so HonestTag sends none and records the refund in the order's proof.
Does HonestTag read my Snapchat spend?
No. HonestTag has no Snapchat spend read, so Snapchat spend does not appear in HonestTag and the free Mirror does not show Snapchat claims. HonestTag sends purchase events and, with sign-in, sets up its three custom conversions.
Related: every HonestTag integration, server-side delivery, first-click attribution, which decides the FCNC goal, first-party tracking and switching from another tracking app.