Skip to main content
  1. Home
  2. Connectors
  3. Stripe - Meta Conversions API

Send events from your Stripe-billed app to the Meta Conversions API

Each event is resolved to a person against a 750M+ device graph before it reaches the Meta Conversions API, with restored click IDs, deduplicated conversions and delivery you can audit.

Upstack Signal showing Meta event match quality scores for each event
US device IDs in the graph
750M+
Match rate on events
90%+
Meta event match quality
7.5+
Most brands are live
<20 min

How it flows

How a Stripe event reaches the Meta Conversions API. Sent from your app, resolved to a person, then forwarded.

01 Capture

Captured from Stripe

For apps that bill through Stripe, send payment and subscription events to Upstack with the Upstack Pixel and JavaScript SDK, resolved to a customer before they reach the tools you spend on.

See the Stripe integration
StripeWhat it sends
  • subscription_initial_purchaseyou fire it for the first subscription order
  • subscription_recurring_purchaseon invoice.paid for an existing subscription
  • payment_succeededmaps to invoice.paid or charge.succeeded
  • payment_refundedmaps to charge.refunded
  • amount / currencyamount in cents, with invoiceId and subscriptionId

02 Understand

Resolved to one person before it leaves

Every Stripe event is matched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer rather than two strangers.

How resolution works
Upstack DataResolved before it is sent
  • IdentityMatched against a 750M+ device graph, so a phone browse and a desktop checkout resolve to one customer.
  • customer_typeNew or returning, resolved before send.
  • DeduplicationBrowser and server copies of the same purchase collapse on event ID, so nothing is counted twice.
  • Bot and fraud filteringAutomated traffic never reaches the model, because what you keep out of the training set matters as much as what goes in.

Ad platforms accept almost anything and tell you very little. These controls exist so you can see what was sent and what was accepted, rather than inferring it from a reporting gap.

03 Activate

Delivered to the Meta Conversions API

Forward deduplicated, identity-resolved conversions to Meta through the Conversions API, and give the model a customer instead of a session.

See the Meta Conversions API integration
Meta Conversions APIWhat it receives
  • em, ph (SHA-256)raise Event Match Quality
  • fbclid / _fbpcredit the click that drove it
  • external_idstable person across sessions
  • event_iddedupe against the browser pixel
  • value / currencyvalue-based bidding

Which events reach the Meta Conversions API

Each Upstack event is mapped to the Meta Conversions API event below before it is sent.

Upstack eventSent to Meta Conversions API asKey data on the event
Page viewPageViewURL, referrer, user agent
Product viewViewContentcontent_ids, content_type, value, currency
Add to cartAddToCartcontent_ids, value, currency
CheckoutInitiateCheckoutvalue, currency, num_items
PurchasePurchasevalue, currency, order_id, content_ids

Every event carries every available match key: em, ph, fn, ln, ct, st, zp and country, plus fbc, fbp and external_id. Personal data is hashed with SHA-256 before it leaves Upstack.

The catch

A retried payment produces several Stripe objects for one purchase.

Forwarding each as a conversion inflates reported performance by the retry rate, which is highest on exactly the campaigns bringing in the least reliable payment methods. Fire the Upstack event when Stripe reports the payment succeeded (invoice.paid or charge.succeeded), so only the settled payment becomes a conversion.

Where to check in the Meta Conversions APIDelivery you can audit

Events Manager your dataset Event Match Quality

Server events appear with a Server badge, and Event Match Quality is scored per event type.

What changes

What changes when Stripe feeds the Meta Conversions API. Two gains on the Meta Conversions API side, two on the Stripe side.

Meta Conversions API

Higher Event Match Quality

More hashed identifiers on every event (email, phone, external ID, click ID), so EMQ rises and Meta matches more of what you send.

Meta Conversions API

Pixel and CAPI, one install

One source of truth for both, with browser and server events deduplicated on event_id so purchases are never double-counted.

Stripe

Subscription purchases as events

Fire subscription_initial_purchase for the first order and subscription_recurring_purchase each time a renewal is paid, so first orders and renewals are reported separately.

Stripe

Payments and refunds

payment_succeeded, payment_failed and payment_refunded each map to a Stripe event (invoice.paid or charge.succeeded, invoice.payment_failed, charge.refunded), so money events reach Upstack when your app fires them.

Setup

Live in under 20 minutes.

You need admin access to Meta Business Manager.

Upstack dashboardExample
Facebook Advertising Destination Healthy
Read the full Meta Conversions API setup guide
  1. 01

    Install the Upstack Pixel and SDK

    Add the Upstack Pixel to your app, then fire the subscription and payment events with the JavaScript SDK when Stripe reports them, such as subscription_recurring_purchase when invoice.paid fires for an existing subscription.

  2. 02

    Add the Meta destination

    Under Destinations, add Facebook Advertising with your Pixel ID (a 15 or 16 digit number) and a Conversions API token generated in Events Manager, which starts with EAA.

  3. 03

    Check Event Match Quality

    Upstack marks the destination Healthy, and Events Manager lists the server events with a Server badge. Open your dataset’s Event Match Quality: it is scored per event type, and Meta takes 24 to 48 hours to score new events.

FAQ

Questions about Stripe and the Meta Conversions API.

What is Event Match Quality (EMQ) and why does it matter?

EMQ is Meta’s score, from 0 to 10, for how reliably it can match a conversion event back to a Meta user. Higher EMQ gives Meta’s algorithm more signal to optimize against, and server-side delivery through CAPI typically raises it because events carry more match keys and are not blocked by browser restrictions.

Will purchases be counted twice with the Pixel and the Conversions API both running?

No. Upstack sends a shared event_id on every server-side event, and Meta deduplicates against the matching browser Pixel event. As long as the Pixel ID in Upstack matches the Pixel ID firing in your storefront, deduplication is automatic.

Which events does the Meta Conversions API receive?

PageView, ViewContent, AddToCart, InitiateCheckout and Purchase, each mapped to the Meta Conversions API event of the same name.

Which customer parameters are sent to the Meta Conversions API?

Every event carries every available match key: em, ph, fn, ln, ct, st, zp and country, plus fbc, fbp and external_id. Personal data is hashed with SHA-256 before it leaves Upstack.

How do I check that Stripe events are reaching the Meta Conversions API?

Upstack marks the destination Healthy, and Events Manager lists the server events with a Server badge. Open your dataset’s Event Match Quality: it is scored per event type, and Meta takes 24 to 48 hours to score new events.

How long does it take to connect Stripe to the Meta Conversions API?

Most brands are live in under 20 minutes. Once Stripe events reach Upstack, every destination receives the same resolved events, the Meta Conversions API included.

Related connectors

See all 408 connectors

Get Stripe talking to Meta Conversions API.

A 15-minute walkthrough of this connector on your own account.

21-day free trial, no card. Month to month.