Once you have defined your Product and the Billable Metrics you want to charge for, the next step is to set the actual cost. This is done through Plans and Prices.

Plans

A Plan acts as a rate card for a specific Product. It groups together a set of Prices, where each Price defines the cost for a specific Billable Metric belonging to that Product.

  • Association: A Plan is always associated with exactly one Product.
  • Purpose: Plans are used to create Subscriptions for Customers. A Subscription essentially links a Customer to a Plan, defining the rates they will pay for using the associated Product.
  • Flexibility: You can create multiple Plans for a single Product to offer different pricing tiers or customized deals.

Tiered Plans: For a self-service product, you might create Starter, Growth, and Enterprise Plans, each with different Prices (or included quantities) for the same Billable Metrics.

Sales-Led Deals: For enterprise customers, you might create a unique Plan per customer, reflecting negotiated Prices.

Plan Properties

When creating a Plan, you define several key properties:

productId
ID
required

The ID of the Product this Plan applies to.

name
string
required

The internal name for the Plan (e.g., “Pro Tier”, “Customer X Custom Plan”).

invoiceDisplayName
string
required

The name of the Plan as it should appear on customer invoices and statements (e.g., “Professional Plan”).

description
string

A brief description of the Plan, often shown during checkout.

billingInterval
enum
required

How often usage is aggregated and statements/invoices are generated (e.g., monthly, yearly). Note: Payments for usage are still real-time via Wallets.

currency
enum
required

The currency for all Prices within this Plan. Currently only USD is supported.

prices
list[Price ID]
required

A list of Price object IDs associated with this Plan. Each Price must correspond to a Billable Metric from the Plan’s Product. A Billable Metric cannot be listed more than once in a single Plan.

Prices

A Price object defines the cost per unit of a specific Billable Metric within the context of a Plan.

  • Association: A Price links a Billable Metric to a specific pricing structure.
  • Context: Prices only exist within a Plan.

Price Properties

billableMetricId
ID
required

The ID of the Billable Metric this Price applies to.

model
enum
required

The pricing model used (e.g., standard, dynamic, volume). See details below.

invoiceDisplayName
string
required

How this pricing component should appear as a line item on invoices (e.g., “API Calls”, “Compute Time”).

properties
object
required

An object containing the specific parameters for the chosen model. See details below.

Pricing Models

Sulu supports several pricing models to cater to different business needs.

Model: standard

A fixed price per unit of the Billable Metric.

Properties:

unitPrice
string (decimal)
required

The fixed cost per unit of the associated Billable Metric in the Plan’s currency (e.g., “0.001” for $0.001).

Example: $0.01 per API request.

With Products, Billable Metrics, Plans, and Prices defined, you are ready to onboard users. Learn how in Customers and Subscriptions.