Skip to main content
A bundle groups several priced products so they can be added and managed as one thing. “Platform + onboarding + support”, always sold together, is a bundle: define it once and reference it by ID wherever items are chosen — a subscription, a plan, or a quote — instead of adding the same three products by hand each time. See How Alguna Works for where bundles sit in the object graph.

Bundle or plan?

The two are often confused because both collect products. They answer different questions. A plan can contain bundle items, so the two compose: a plan is the offer, a bundle is a unit of packaging inside it. If you only ever sell the group as a fixed offer with fixed terms, a plan alone is enough — reach for a bundle when the same grouping needs to appear inside several different offers, or on a quote a rep assembles item by item.

Creating a bundle

A bundle needs a name and its prices — the same price definitions you would give a product on a subscription. Each price names its product_id, its pricing type and model, whether it is fixed or metered, and when it bills.
A bundle can mix fixed and metered prices and different billing directions freely — the platform fee above bills in advance, the API calls in arrears — because each price keeps its own cadence. Amounts are strings, never floats. In the dashboard: Bundles → New Bundle, then add products and set each one’s price. Existing bundles are listed and edited from the same place.

Reading and updating

List takes limit and offset — see Pagination.
Editing a bundle changes the template, not the subscriptions already sold from it. A subscription holds its own copy of the priced items from the moment it was created, so existing customers keep the prices they agreed to. To change what an active customer pays, amend the subscription — see Amendments and Versioning.

Using a bundle

Wherever an item list accepts products, an entry is either a standalone item (product_id with its price) or a bundle item (bundle_id with its child items). You do not flatten a bundle into loose products — passing the bundle_id is what keeps it grouped downstream.
  • On a subscription — pass bundle_id and the bundle’s items in the subscription’s item list when creating a subscription.
  • On a plan — a plan item takes bundle_id plus a name and bundle_description for how the bundle is labelled in that offer, so the same bundle can read differently in two plans.
  • On a subscription version — bundle items appear in version items exactly as they do on creation, so a bundle can be added, changed or removed as part of an amendment like any other item.
  • On a quote — build the quote in the dashboard and add the bundle as a line; quoting is a dashboard flow, not an API one. See Create quotes.
The grouping survives the sale: a subscription version item created from a bundle carries its bundle_id, so the subscription still shows the bundle rather than a flat list of unrelated products, and a later amendment can address the bundle as a unit. Billing itself is unchanged — each price inside the bundle bills on its own cadence and produces its own charge.

Next steps

Configure products

The products a bundle groups.

Pricing models

Every price type and its model fields.

Manage plans

Turn packaging into a sellable offer with terms.

Amendments

Change what a customer is billed for mid-term.