Skip to main content
purchase.new is deprecated. Use creator.payment.succeeded instead (source is post, message, or media). This event continues to fire during the migration window; new integrations should use the creator.* event.

When this fires

Triggered (purchase.new) 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 postUuid nor routeUuid is present
  • a fan experience, the payload carries experienceUuid and experienceAppUuid
Amounts are in minor units (for USD, cents).
On-platform refunds and disputes are delivered by the creator.refund.created / creator.dispute.* events; checkout-link payments use checkout_link.refund.created.

Payload

  • postUuid: UUID of the purchased post/content (included if the purchase was for a post)
  • routeUuid: UUID of the purchased message (included if the purchase was for a message)
  • price: Purchase amount in minor units
  • recipientUuid: UUID of the creator who received the purchase
  • sender: The user who purchased (uuid, handle, displayName, avatarUrl)
  • experienceUuid: UUID of the fan experience the purchase was for. Only on fan-experience purchases, and always paired with experienceAppUuid. The same UUID your app receives as experience.uuid when a launch token is exchanged, so it joins directly to your own experience records.
  • experienceAppUuid: UUID of the app the experience belongs to. Present whenever experienceUuid is.
  • trackingLinkId: Tracking link attributed to the purchaser, if one is set (omitted otherwise)
  • transactionOrderId: The Fanvue transaction/order identifier for this payment, matching the transactionOrderId on /insights/earnings. Lets you reconcile the event against earnings without a second call. Included when the payment has settled; omitted otherwise.
  • transactionOrderStatus: Payout state of the transaction at the time of the event, availableForPayout (cleared) or pendingBalance (still in the chargeback/fraud retention window). This is a snapshot at event time and may change as the payment matures. Included alongside transactionOrderId.
  • timestamp: ISO 8601 time the event occurred
The experience fields are scoped to the app that owns the experience. The rest of this 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 do not fire purchase.new, see Creator Experience Subscriptions for the access lifecycle and for how to reconcile recurring revenue.
A purchase of an off-platform checkout-link product fires purchase.new with neither postUuid nor routeUuid. For link-level detail (product, billing reason) subscribe to checkout_link.payment.succeeded.