order.paid for fulfillment, and use broad updated events only when the application genuinely needs every mutation.
Customer and revenue lifecycle
Before payment: checkout
checkout.created
checkout.updated
checkout.expired
A session reached expiry without completing.
Customer identity and access snapshot
customer.created
A customer record now exists.
customer.updated
Stored customer details changed.
customer.deleted
The customer record was removed.
customer.state_changed
The combined access snapshot changed, including subscriptions or benefit grants.
Recurring relationship
subscription.created
A recurring relationship was created; this alone does not prove collection.
subscription.active
subscription.uncanceled
subscription.canceled
subscription.past_due
Collection failed and the customer may recover by replacing the payment method.
subscription.updated
Catch-all mutation signal also emitted around active, canceled, uncanceled, past-due, and revoked transitions.
order.created
Inspect
billing_reason to distinguish purchase, subscription_create, subscription_cycle, and subscription_update. A renewal uses subscription_cycle.subscription.revoked
Cancellation timelines
The default cancellation schedules the end of access at period end. Immediately after the customer or merchant requests it, Ruba emits:subscription.updatedsubscription.canceled
active with cancel_at_period_end: true. At period end, billing stops, benefits are removed, and Ruba emits:
subscription.updatedsubscription.revoked
canceled. With immediate merchant revocation, the complete transition arrives together:
subscription.updatedsubscription.canceledsubscription.revoked
Renewal timeline
At the renewal boundary, enabled endpoints first receive:subscription.updatedorder.created
current_period_start and current_period_end. The pending order contains the upcoming-cycle amount plus any prior-period usage. After successful collection, Ruba emits:
order.updatedorder.paid
paid state. Fulfillment should normally key off order.paid, not the earlier pending record.