Skip to main content
subscription.new is the deprecated flat event for a user taking out a paid subscription to a creator. It requires the read:creator scope, and new integrations use creator.subscription.activated instead.
Don’t build new integrations on subscription.new. It keeps firing during the migration window, after which only creator.subscription.activated is delivered. Subscribe to creator.subscription.activated and move existing consumers before the window closes.

When this fires

subscription.new fires when a user takes out a paid subscription to a creator. A free follow doesn’t fire it; free follows come through the separate New Follower event (follow.new). Amounts are in minor units (for USD, cents).

Payload

The payload carries both the subscription detail and the payment information, so you don’t need a separate payment event to get the amount charged. price vs subscription.price. price is what the fan paid, and 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, with one exception: intervalMonths, the plan’s billing cycle length, is on the endpoint only. You get the same subscription state whether you poll that endpoint or consume this event, but take the cycle length from the endpoint; see Billing cycle length. Neither carries the amount charged. For that, use the top-level price on this event.

Example payload