← Answers

Why doesn’t Stripe show me where my customers came from?

Short answer

Stripe processes payments and never sees the visit that led to one, so it has no way to know whether a customer arrived from search, an ad, an email or a direct link. It records what happened at the moment of purchase — amount, currency, card country, customer — and nothing about the browsing that preceded it. Filling the gap means either passing the source through yourself as metadata at checkout, which only works from the day you build it, or comparing Stripe totals against sessions by channel from an analytics tool, which works retroactively and needs no code.

What Stripe genuinely knows

  • The amount, currency and time of every charge, and whether it succeeded.
  • The billing country and the card details needed to process it.
  • Whether the customer record existed before, which is how first-time and returning payers are told apart.
  • Anything you attached yourself as metadata at checkout.

That last point is the only route to attribution inside Stripe, and it requires your checkout to capture the source and pass it through. Most setups never do.

Why the data never arrives

Stripe enters the story at the payment. The referrer, the campaign tags and the browsing history all belong to the pages before it, and are gone by the time a charge is created.

This is a boundary, not a missing feature. Any dashboard showing you channel revenue is joining Stripe to something else, whether or not it says so.

The two ways to close it

  • Pass the source through at checkout as Stripe metadata. Exact, and it works only from the day you implement it — it can tell you nothing about last year.
  • Compare aggregates: sessions by channel from analytics, orders and revenue from Stripe, same period and same timezone. Approximate, works retroactively across all your history, and needs no code.

Most small businesses want the second, because the question is usually about a period that has already happened.