Are you keeping utms tied to subscription invoices for eu vat audits?

We moved first purchase to the web and I started keeping campaign data all the way to the payment gateway. I’m not putting UTMs on the PDF, but I add them as metadata on the customer, invoice, and charge: campaign_source, campaign_medium, campaign_name, campaign_id, and a click_id. I also attach the two location proofs we use for VAT (IP + billing country) and keep a join key so I can reconcile invoices back to the ad click in our warehouse.

This has been helpful when finance asks where a surge in France came from, and I can show revenue by campaign with the matching VAT rate and OSS report. My worry is data retention and GDPR: how long do you keep campaign identifiers tied to tax records? Also, for B2B reverse-charge, do you still attach UTMs to the invoice metadata or only to the customer record?

Curious how you’re handling this:

  • Which UTM fields do you persist in the gateway vs. the warehouse only?
  • Do you hash or shorten anything on the invoice object to reduce risk?
  • Any gotchas with changing attribution models mid-quarter and keeping tax reports consistent?

What’s your cleanest setup that helps during EU VAT audits without leaking too much marketing data into finance documents?

I store UTMs as metadata on the Stripe Customer and Invoice. Keep it boring: source, campaign, ad_id, click_id. Hash if in doubt.

My web funnel pushes those fields automatically. I wired it once using Web2Wave to forward query params to Stripe. Finance reads invoices by metadata, warehouse joins by click_id. Simple and audit‑friendly.

I keep UTMs in the web session, then write a minimal set to the invoice: source, campaign, click_id. Full payload goes to the warehouse.

With Web2Wave, I tweak which fields get sent without a rebuild, so experiments don’t break tax docs. Fast to adjust mid‑test if finance flags something.

I would not print UTMs on invoices.

Store them as invoice metadata and keep a short list only. Push full UTMs to your warehouse and set a retention rule. That way audits are clean and marketing can still report.

Keep UTMs in metadata not PDFs

Two goals: defend revenue sources during an audit and keep privacy risk low. Minimum on the invoice object: source, campaign, and a click or session id. Everything else lives in your warehouse. Add invoice_number to your event table so finance can trace either way.

Keep two location evidences with timestamps. Freeze attribution rules per quarter in reporting, even if marketing changes models mid‑flight. Document the mapping once, then don’t touch it during filing.

If you need cross-channel clarity, add a normalized field like channel=paid_search|paid_social|affiliate. That’s enough for VAT reporting cuts by channel. Keep subchannel details in the warehouse only to avoid bloated invoice metadata.

We keep just campaign and click id on invoices. Rest goes to analytics.

Short retention helps. We trim UTMs after filing periods end.