When this fires
Triggered when a user takes out a paid subscription to a creator.This is the paid subscription event. A free follow does not fire this event;
free follows come through the separate New Follower
event (
follow.new).Payload
This single event carries both the subscription detail and the payment information, so you do not need a separate payment event to obtain the amount charged.price: The amount actually charged for this subscription, in minor unitssubscription: The subscriber’s subscription detail. Omitted when the subscription row cannot be resolved at emission time. Fields:status:active,cancelled,pending_confirmation, orpausedprice: The plan’s list (original) price, in minor units — the amount charged on renewalcurrentPeriodStart: ISO 8601 start of the current period, anchored on the latest paid charge. Falls back to the subscription’s creation time when nothing has been charged yet (for example, a fan still inside a free trial)currentPeriodEnd: ISO 8601 end of the current period, ornullif the subscription has no expiry setautoRenewalEnabled: Whether the subscription is in an auto-renewing state. This reflects the renewal setting only — not whether a future charge would succeed
recipientUuid: UUID of the creator who was subscribed tosender: The user who subscribed (uuid, handle, displayName, avatarUrl)transactionOrderId: The Fanvue transaction/order identifier for this payment, matching thetransactionOrderIdon/insights/earnings. Lets you reconcile the event against earnings without a second call. Included when the payment has settled; omitted otherwise (for example, a free trial with no billable transaction).transactionOrderStatus: Payout state of the transaction at the time of the event —availableForPayout(cleared) orpendingBalance(still in the chargeback/fraud retention window). This is a snapshot at event time and may change as the payment matures. Included alongsidetransactionOrderId.timestamp: ISO 8601 time the event occurred
price vs subscription.price. price is what the fan actually paid;
subscription.price is the plan’s list price and the amount they would be
charged on renewal. They differ when a discount applies. For a paid plan with
a 100%-off promotion the fan pays nothing, so price is 0 while
subscription.price stays the plan price. There is no coupon field on the
payload, so compare the two amounts to detect a discount.The
subscription object carries the same fields as the subscription field
on Get creator subscribers, so you
get the same subscription state whether you poll that endpoint or consume this
event. Note that neither carries the amount actually charged — for that, use
the top-level price on this event.