member.converted
Trial converts to a paying subscription.
Fires exactly once per trial conversion.
When this fires
A trial subscription successfully converts to a paying subscription — the subscription reaches active while the subscriber was previously in trialing status. Fires once per conversion.
This event is currently emitted for Stripe only. Trials taken through PayPal, Paystack, Razorpay, Skrill, CeyPay, or CoinPayments do not produce a conversion event; detect those by watching payment.succeeded against a subscription you know began in trial.
Required ability
project-user:view — token must carry this at mint time to subscribe an endpoint to this event.
Payload
{
"id": "evt_01HX...",
"type": "member.converted",
"created_at": "2026-05-25T10:05:00Z",
"api_version": "2026-05-01",
"project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13",
"data": {
"subscription_id": "5b7e2d40-1a86-4c39-97f2-e83d0b16c5a4",
"plan_id": "c4e82f16-93a7-4d5b-b81c-6e0f27a94d3b",
"subscriber_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80",
"provider": "stripe"
}
}Field reference
| Field | Type | Notes |
|---|---|---|
id | string ULID | Unique event id, prefixed evt_. Use for idempotent processing. |
type | string | Always member.converted for this event. |
created_at | ISO 8601 timestamp | Server-side emission time. |
api_version | string | Webhook API contract version. |
project_id | string UUID | Project this event belongs to. |
data.subscription_id | string UUID | Subscription that converted. |
data.plan_id | string UUID | Plan the subscription is on. |
data.subscriber_id | string UUID | Subscriber's project-scoped user id. |
data.provider | string | Provider slug for the converting charge. |
Caveats
- Pairs with
payment.succeededfor the converting charge.subscription.activateddoes not fire at conversion — it already fired when the trialing subscription was first created. - A subscriber who churns and starts a new trial later does not re-emit
member.convertedfor the prior trial — each trial-conversion is its own bounded event.
Related events
member.trial_joined— predecessor.subscription.activated— fired earlier, when the trialing subscription was created; it does not repeat at conversion.- Member events overview — back to family overview.
How is this guide?