Skip to main content
AffirmPayments and financing

Affirm closes the sale. Your ads get the credit wrong, or none at all.

Affirm's default checkout sends the shopper to Affirm's site to apply, then back to your confirmation URL only if they finish. That round trip is where the ad click goes missing: GA4 can hand the sale to affirm.com, and a thank-you-page tag keeps counting loans that are later voided or refunded. We save the click ID on your order before Affirm opens and report only captured Affirm charges, so Google Ads and Meta bid toward the rings, hot tubs and collision repairs that actually got financed.

Free30 minutesNo obligation

Affirm · what breaks

What goes wrong when Affirm closes the sale

  1. 01

    "GA4 says Affirm sold it, not our ads"

    The shopper leaves for Affirm's site to apply and comes back from it after checkout. Unless affirm.com is listed as an unwanted referral, GA4 can credit the financed sale to Affirm, and the Google or Meta campaign that paid for the click looks like it sold nothing, so it's the one you cut.

  2. 02

    "Meta says we sold more than Affirm's records show"

    A thank-you-page tag fires when the shopper lands on your confirmation URL, before your server has authorized the checkout and long before anything is captured. Voids and refunds never flow back, so return on ad spend stays inflated and bidding chases buyers who never paid.

  3. 03

    "Our showroom Affirm sales count for nothing"

    In-store, customers scan a QR code or text a store code, apply on Affirm's own landing page and pay with a virtual card at your terminal. The ad that drove the jewelry or kitchen showroom visit gets zero credit.

  4. 04

    "We added Affirm's analytics code and nothing changed"

    Affirm's confirmation-page analytics sends order data to Affirm, not to your ad accounts, and Affirm says its Enhanced Analytics plugin can no longer be used as of March 2025. Neither tells Google Ads or Meta which campaign sold the order.

Affirm · the fix

What changes — Affirm

  • Financed sales credited to the right campaign

    The click ID is written to your own order record, next to Affirm's order_id, before the shopper leaves for Affirm. Each captured charge then matches the Google or Meta click that started it, whatever referrer the return trip carries.

  • Bidding trained on captured money

    Checkout opens become a secondary signal. Only captured charges report as the purchase, at the captured amount.

  • Showroom financing back in the picture

    In-store Affirm sales are uploaded from your records and matched to earlier ad leads where you collected the customer's email or phone.

Affirm · architecture

What Affirm actually lets you hook into

Affirm's payments docs describe checkout, transaction and webhook hooks. The pages we reviewed describe no Google Ads, GA4 or Meta connection, so every ad-platform signal has to come from your side.

  1. 1

    The checkout object and confirmation URL

    You pass an order_id and a user_confirmation_url; after a successful checkout Affirm sends a checkout_token there by POST or GET. Redirect is the default, and modal is an option set in the checkout metadata.

  2. 2

    Transactions API

    Authorize, capture, void, refund and read endpoints, with order_id and reference_id for reconciling against your own records.

  3. 3

    Checkout webhooks, set up by Affirm

    Events for opened, approved, not_approved and confirmed. Only confirmed is guaranteed; merchants can't add endpoints themselves, so we confirm with Affirm support what your account has.

  4. 4

    In-store POS checkout

    Your POS triggers a checkout that Affirm sends to the customer by text or email, then Affirm posts a checkout ID to your server to authorize.

  5. 5

    Affirm Landing Page and virtual card

    QR or text-code signage, an Affirm-branded application and a virtual card at the terminal. No POS integration, so the only marker is the Affirm BIN or a POS flag you add.

Affirm · diagnose

Where Affirm tracking breaks, in diagnostic order

Start with what gets counted as a sale, because a purchase tag on the confirmation page counts loans your server hasn't authorized or captured yet.

  1. 01

    Find what fires the purchase event

    If it's the confirmation page load, unauthorized and later-voided loans are counted.

  2. 02

    Trace one ad click through the Affirm round trip

    Check out from an ad-tagged URL, then open the order carrying the Affirm order_id and see which source GA4 gave the session.

  3. 03

    Line captured charges up against platform purchases

    Order by order, at the captured amount, not the cart total.

  4. 04

    Check how voids and refunds are handled

    Did any ad platform hear about a refunded transaction?

  5. 05

    Separate in-store from online

    Flag showroom sales by POS checkout or Affirm BIN.

Affirm · prove

The QA evidence — Affirm

Run with Affirm's sandbox for the plumbing and a real captured order on your live site for the proof.

Source of truth

Affirm transaction records: authorized, captured, voided and refunded transactions by order_id and amount

  • A test checkout from an ad-tagged URL, with the click ID confirmed on the order before Affirm opens.
  • The GA4 session on that test order credited to the ad, not to affirm.com.
  • No purchase reported for a checkout that was opened, declined or abandoned.
  • One purchase per captured charge in Google Ads and Meta, with a shared event ID and the captured amount.
  • A voided authorization and a refunded order reversed at every destination.
  • Every captured Affirm order in a closed month accounted for by order_id.
  • Rechecked after 30 days, and again whenever your checkout or Affirm plugin changes.

Affirm · free audit

What we check in the free audit

  • Find what fires the purchase event
  • Trace one ad click through the Affirm round trip
  • Line captured charges up against platform purchases
  • Check how voids and refunds are handled
  • Separate in-store from online

Checked against

Affirm transaction records: authorized, captured, voided and refunded transactions by order_id and amount

Get my free conversion tracking audit

Free30 minutesNo obligation

Affirm · when not to buy

When you don't need this for Affirm

Plenty of Affirm merchants should spend nothing here.

  • If Affirm is a handful of orders a month and most sales are paid by card, fix card purchase tracking first.
  • If you don't run Google or Meta ads, Affirm's own reporting is enough.
  • If nearly all your Affirm volume comes from the QR signage in the store and you collect no customer details before the visit, there's nothing to match an ad click to, and we'll say so.
  • If your conversions already reconcile with Affirm's captured orders within a few percent, leave it alone.

Affirm · what we deliver

The event map on Affirm

  • Affirm checkout opened

    Fired on your page before the redirect or modal, with the click ID written to the order record that carries Affirm's order_id.

  • Approved (where Affirm shares it)

    A secondary signal from Affirm's approved webhook event, which only arrives for customers who opted into data sharing. Not_approved is excluded everywhere.

  • Loan confirmed and authorized

    Your server authorizes the checkout token from the confirmation URL or confirmed webhook. Logged, not yet revenue.

  • Charge captured

    The primary purchase conversion, sent server-side to Google Ads and Meta with the captured amount and a shared event ID.

  • In-store financed sale

    From POS-initiated checkouts or Affirm-BIN virtual card transactions, uploaded offline and matched by customer details, never by guesswork.

  • Void or refund

    Pulled back out of Google Ads and Meta when Affirm's transaction record shows the loan voided or refunded.

Written guarantee

95%+ tracking accuracy

Measured against Affirm transaction records: authorized, captured, voided and refunded transactions by order_id and amount. Miss it and we keep working at no cost.

Get my free conversion tracking audit

From $400 · See packages

FAQ

Affirm questions, answered

Not that Affirm's payments documentation describes. Financed sales reach Google Ads and Meta only if your own backend sends them, using the order_id and transaction data Affirm gives you.

Free · 30 min

Get your Affirm sales back into your ads

Free30 minutesNo obligation