purchase.new is the deprecated flat event for a user buying a paid item from a creator. It requires the read:creator scope, and new integrations use creator.payment.succeeded instead, where source is post, message or media.
When this fires
purchase.new fires when a user buys a paid item from a creator. An item is one of:
- a paid post, the payload carries
postUuid - a locked (PPV) message, the payload carries
routeUuid - a checkout-link product, neither
postUuidnorrouteUuidis present - a fan experience, the payload carries
experienceUuidandexperienceAppUuid
purchase.new has no refund or dispute counterpart. On-platform refunds and disputes are delivered by the creator.refund.created and creator.dispute.* events, and checkout-link payments use checkout_link.refund.created.
Payload
The experience fields are scoped to the app that owns the experience. The rest of the payload fans out to every app holding the required scope for that creator.
experienceUuid and experienceAppUuid reach only the owning app and the creator’s own connector destinations. Every other consenting app receives the same purchase without them, so a creator-wide fan-out cannot tell app A which experience of app B a fan just bought.
Example payloads
Post purchase
Message purchase
Fan experience purchase
A one-off purchase of a paid fan experience. Recurring subscription charges for an experience don’t firepurchase.new; see Creator experience subscription events for the access lifecycle and for how to reconcile recurring revenue. Payments inside experiences describes the money flow on the app side.
Checkout-link product purchase
A purchase of an off-platform checkout-link product firespurchase.new with neither postUuid nor routeUuid. For link-level detail (product, billing reason) subscribe to checkout_link.payment.succeeded.