Skip to content
Proofline

Concepts

Receipts

Every commission has a receipt. It records the signals the engine considered, the rule that decided, the transaction, the calculation and the store references.

Receipt R-8F2K · Commission $5.39 · Locked 20 Nov 2026
Creator      Sarah Lee (@sarahmoves) · Program "Spring creators"
Decision     Apple-verified offer code (tier V1) · rules v3 · last touch
Signals      14 Oct 09:12  Link tap in Instagram (iOS in-app browser)   /sarah/k7Q2x
             14 Oct 09:13  Offer code SARAH20 redeemed (Apple)          ← winner
             14 Oct 09:15  First app open; user linked (appAccountToken set)
Transactions 21 Oct  First paid period  $11.99 → net $8.99  (store fee 15%, tax 10%)
Calculation  $8.99 × 60% (first 3 months) = $5.39 → 30-day hold → locked
Store refs   originalTransactionId 2000000…  · environment Production

Fields

Field What it holds
creator, program Who earned it, under which program
decision Tier, winning signal type, rules version and touch model
signals Every signal considered, with time, label and whether it won
transaction Price, net, currency, store fee and tax (basis points)
calculation The formula as text, amount in minor units, hold date and status
storeRefs originalTransactionId and environment (owner view only)

Money is always integer minor units with an ISO currency, and rates are basis points.

Replay

Receipts are produced by a pure function of the stored signals and the stored rules version. A nightly job re-runs the decision and checks that it reproduces every stored receipt. If you change rules, new conversions use the new version; existing receipts keep the version that made them.

The creator’s view

Creators see the same receipt with personal data removed: no store references or internal IDs, and never who subscribed. They do see the plan they bought (the store product), the amount, the commission’s current status and the lock date, but not the subscriber’s country.

Getting receipts

  • In the dashboard: click any number, then any commission.
  • Over the API: GET /api/v1/receipts/{commissionId} (see the REST API).
  • After a webhook: commission events carry the commissionId but not the receipt; fetch it with the API call above (see Webhooks).