The layer after Stripe

Paid. Delivered.Attributed.

Stripe takes the payment. After Rail does the rest: records the order, hands the buyer their files from your domain, sends the email from your address, and reports the sale back to Meta and GA4 with the match data hosted checkout throws away.

Built for people already selling courses, downloads, templates, license keys, and memberships through their own Stripe account.

Your accounts, your credentials, your data

Stripe paymentCloudflare R2 storageAmazon S3 storagePostmark emailSMTP emailMeta conversions apiGoogle Analytics 4 measurement protocolGoogle Ads conversionsTikTok events apiStripe paymentCloudflare R2 storageAmazon S3 storagePostmark emailSMTP emailMeta conversions apiGoogle Analytics 4 measurement protocolGoogle Ads conversionsTikTok events api

01 Where the money leaks

Hosted checkout can’t carry a pixel.

The buyer leaves your page, pays on Stripe’s, and the purchase event fires from a server with no browser context. No click ID, no cookie, no landing page. Meta and Google can’t match it to the ad that brought them.

So every paid-traffic decision gets made on broken data. After Rail captures the attribution before the redirect and carries it through to the conversion report.

See what changes
Purchase event · without After Railunmatched
source
stripe receipt webhook
event_id
none
fbc / fbp
none
gclid
none
landing_page
unknown
attributed to
nothing
Purchase event · with After Rail✓ matched
source
checkout_sessions → stripe-webhook
event_id
9c1e…f47a · deduped vs browser
fbc / fbp
fb.1.1725… · fb.1.1719…
gclid
Cj0KCQjw…
landing_page
/lp/spring-launch
attributed to
spring_launch · ad set 3 · 4.8× ROAS

02 One chain, four links

From payment
to delivered.

Every purchase moves through the same chain. Each link is written before the next begins, and each one is idempotent, so a webhook that arrives five times still produces exactly one order.

The entitlement is why one pipeline handles every kind of digital product. Delivery is just one way of honoring it, so the same order flow works whether the buyer gets a file, a key, or ongoing access.

one-off downloadversioned releaselicense keysubscriptionmembership access

03 What After Rail handles

Everything Stripe
leaves undone.

Not a storefront builder. Not a checkout. Not a payment processor. After Rail assumes you already have a site and a Stripe account, and does the work those leave on your desk.

Deliver from your domain.

Buyers download from downloads.yourbrand.com. Links expire, cap, and revoke. The token exists only in the email; the database keeps a hash.

expiringcappedrevocablelogged

Every order has a timeline.

Paid, recorded, entitled, emailed, downloaded. Then each ad destination with its attempt history, so you can see why a conversion did or didn’t land.

Email from your address, never ours.

Buyer mail goes through your own Postmark or SMTP. Your domain, your sending reputation. Enforced at the database, not by policy.

postmarksmtpbranded template

Know which landing page made the sale.

Landing pages are first-class. UTMs, click IDs, and browser IDs are captured before the redirect to Stripe and ride the order all the way to the report, so return on ad spend is measured per page, not per month.

utmfbclid · gclid · ttclid_fbp · _fbc · _gaevent_id dedup
landing pageordersrevenueroas
/lp/spring-launch142
4.8×
/lp/for-freelancers96
3.1×
/lp/agency-bundle41
2.2×
/lp/retarget-cart27
1.4×

Refunds, retries, renewals.

A refund revokes access and reverses the conversion where the platform allows it. Renewals extend access, cancellations end it. Failed sends retry with backoff and stay visible.

idempotentbackoffaudit log

04 The operator console

See why a conversion
did, or didn’t.

Open any order and read its life in one column: every step, every destination, every attempt. The retries are there too, because a failure you can see is one you can fix.

app.afterrail.com / orders / ord_3f9a…c2

Orders / ord_3f9a…c2

Brand Strategy Course DELIVERED

$149.00 · alex@studio.co · paid 3 min ago · /lp/spring-launch · utm_campaign=spring_launch

Delivery timelineevery step, every attempt
PaidStripe · evt_1P…9Q · signature verified
14:02:07
Order recorded1 item · price snapshot frozen · idempotent on provider id
+0.2s
Entitlement createdrelease v3 · 2 assets · expires in 30 days
+0.3s
Delivery email senthello@studio.co → alex@studio.co · Postmark · opened
+41s
Conversion reported1 canonical event · 3 destinations
+58s
Meta Conversions APIdeduped · event_id
Google Analytics 4delivered
Google Ads3rd attempt
Downloadeddownloads.studio.co · 1 of 5 · IP hashed
+3m 12s
Buyer accessactive
Downloads used1 of 5
ExpiresOct 2, 2026
Release pinnedv3
PDF
Brand-Strategy-Workbook.pdfsha256 · 8c1f…e2a0
14.2 MB
ZIP
Templates-and-Canvases.zipsha256 · 21bd…70c4
96.7 MB
Orders

The full delivery timeline

Paid → recorded → entitled → emailed → downloaded, with each ad destination’s attempts underneath. Resend, revoke, or refund from the same screen.

Analytics

Return on ad spend per landing page

Revenue by brand, product, and page. The storefront funnel from view to checkout to paid, and traffic sources by UTM.

Workspaces

Several brands, one login

Each brand has its own Stripe, sending domain, storage, and pixels. Workspaces are isolated at the row level, so one can never see another’s data.

05 Bring your own everything

Your Stripe.
Your domain. Your pixels.

After Rail holds no platform Stripe account and sends no buyer email of its own. Each integration is yours, its secret stored per brand in a vault, referenced and never shared.

Payment
  • Stripe
Storage
  • Cloudflare R2
  • Amazon S3
Email
  • Postmark
  • SMTP
Tracking
  • Meta Conversions API
  • Google Analytics 4
  • Google Ads
  • TikTok Events API

06 Getting started

Live in an afternoon.

Three connections and a Buy button. Your site stays your site; After Rail only takes over once the buyer clicks.

  1. Connect

    Point Stripe at After Rail

    Paste your Stripe keys, then copy your workspace’s webhook URL into your Stripe dashboard. Every event is logged before it is processed.

    …/stripe-webhook/<your-integration-id>
  2. Publish

    Add a product and its files

    Upload straight to your R2 or S3 bucket, map a Stripe price, set the download cap and expiry. New version? Cut a new release; old buyers keep theirs.

  3. Report

    Wire email and tracking

    Your Postmark or SMTP for the delivery email. Your Meta pixel, GA4 property, and Google Ads account for the conversions. Then drop the Buy button on your landing page.

Create your workspace Free while you set up. Pay when you sell.

For people who sell digital products

Stop losing the sale
after the sale.

Connect Stripe, add a product, and give every buyer a secure path from payment to access. Then watch the conversions finally land where you spent the money.

Start for free After Rail is not a payment processor and never touches buyer funds. Bring your Stripe account and your existing site.