Frontend API
Manage subscriptions associated with the logged-in customer's account.
Return a list of active and canceled subscriptions for an account.
Returns all subscriptions, with offset pagination using limit and page.
List subscriptions
await swell.subscriptions.list()
Return a single subscription by ID.
Get a subscription
await swell.subscriptions.get(id)
Methods to create, update, and pause a subscription.
Subscribe the customer to a new product for recurring billing.
Create a new subscription
await swell.subscriptions.create({
  product_id: '5c15505200c7d14d851e510f',
  // the following parameters are optional
  variant_id: '5c15505200c7d14d851e510g',
  quantity: 1,
  coupon_code: '10PERCENTOFF',
  items: [
    {
      product_id: '5c15505200c7d14d851e510h',
      quantity: 1
    }
  ]
})
Updates a single subscription.
Update a subscription
await swell.subscriptions.update('5c15505200c7d14d851e510f', {
  // the following parameters are optional
  quantity: 2,
  coupon_code: '10PERCENTOFF',
  items: [
    {
      product_id: '5c15505200c7d14d851e510h',
      quantity: 1
    }
  ]
})
Pauses a subscription indefinitely or skips a billing cycle.
Pause a subscription
await swell.subscriptions.update(subscription.id, {
  status: 'paused',
  date_pause_end: null
})
Cancel a single subscription.
Cancel a subscription
await swell.subscriptions.update('5c15505200c7d14d851e510f', {
  canceled: true
})
Methods to add, update, and remove an invoice item on a subscription.
Returns the updated subscriptions object.
Add an invoice item
await swell.subscriptions.addItem('5c15505200c7d14d851e510f', {
  product_id: '5c15505200c7d14d851e510f',
  quantity: 1,
  options: [
    {
      id: 'color',
      value: 'Blue'
    }
  ]
})
Returns the updated subscriptions object.
Update invoice item(s) on a subscription
await swell.subscriptions.updateItem('5c15505200c7d14d851e510f', '<item_id>', {
  quantity: 2
})
Returns the updated subscriptions object.
Remove invoice item(s) from a subscription
await swell.subscriptions.removeItem('5c15505200c7d14d851e510f', '<item_id>')