Hanzo
PlatformCommerce

Subscriptions

Recurring billing and usage-based pricing

Subscriptions

Manage recurring billing with fixed-price plans, usage-based metering, or hybrid pricing.

Create Subscription

const subscription = await commerce.subscriptions.create({
  customerId: 'cus_123',
  priceId: 'price_pro_monthly',
  paymentMethod: 'pm_xxx'
})

Usage-Based Billing

Record Usage

await commerce.usage.record({
  subscriptionId: 'sub_123',
  metric: 'api_calls',
  quantity: 1000,
  timestamp: new Date()
})

Get Usage Summary

const usage = await commerce.usage.get({
  subscriptionId: 'sub_123',
  startDate: '2026-01-01',
  endDate: '2026-01-31'
})

Lifecycle Events

EventDescription
subscription.createdNew subscription started
subscription.updatedPlan or billing changed
subscription.cancelledSubscription cancelled
subscription.pausedSubscription paused
subscription.resumedSubscription resumed
invoice.paidInvoice payment received
invoice.failedInvoice payment failed

Cancel Subscription

await commerce.subscriptions.cancel('sub_123', {
  reason: 'customer_request',
  cancelAtPeriodEnd: true  // finish current billing period
})

Update Subscription

await commerce.subscriptions.update('sub_123', {
  priceId: 'price_enterprise_monthly',  // upgrade plan
  prorationBehavior: 'create_prorations'
})

How is this guide?

Last updated on

On this page