Skip to main content

Subscription Lifecycle

State Diagram

trialing → active → past_due → unpaid → canceled
↘ canceled

Events

EventDescription
subscription.createdNew subscription created
subscription.updatedSubscription modified (plan change, etc.)
subscription.trial_will_endTrial ending in 3 days
invoice.payment_succeededRecurring payment successful
invoice.payment_failedRecurring payment failed
subscription.canceledSubscription ended

Upgrading / Downgrading

Update the subscription's price to change plans:

curl https://api.ikawaari.com/api/v1/billing/subscriptions/{id} \
-H "Authorization: Bearer ik_test_your_key" \
-H "Content-Type: application/json" \
-d '{
"items": [{ "id": "si_abc123", "price": "price_new_plan" }],
"proration_behavior": "create_prorations"
}'

Cancellation

curl -X POST https://api.ikawaari.com/api/v1/billing/subscriptions/{id}/cancel \
-H "Authorization: Bearer ik_test_your_key"

Detailed subscription updates should not be documented as PATCH until that endpoint appears in the generated reference.