Product Catalog

Organize your billable offerings into a nested structure: categories → products → product items. Use this to match your invoice line items to real-world product lines, enable revenue reporting by segment, and keep your billing system aligned with how you market and sell.


Why this matters

Developer: You need to understand the hierarchy so you can map usage events to the right product item when setting up meters and usage-based billing.

Finance/ops: You need to decide: Do you need categories at all? If you have multiple business units (acquired companies, separate product lines, team-based offerings), categories let you break down revenue and margin per segment on invoices and reports.

Product manager: Categories help you organize a growing catalog and simplify customer contracts. Each line item on an invoice maps cleanly to a product item.


What makes Solvimon’s approach different

Some other billing systems treat products as a flat list. Solvimon lets you organize hierarchically without being forced into rigid structures.

  • Flexible hierarchy: Categories are optional. Use them only when you need them. Add them later if your business scales without breaking existing setup.
  • Metering-aware: Product items connect directly to meters (how usage is measured). An API call event automatically maps to the right product item’s usage-based charge.
  • Invoice focus: The structure you build here determines how charges appear on customer invoices. One product item = one line item on the invoice.
  • Reporting by segment: Break down revenue by category, product, or item type. Useful for acquisitions, multi-tenant scenarios, or departmental P&L.

When you need categories

ScenarioUse categories?Why
Single product, simple pricingNoCategories add overhead
Two separate product lines (e.g., Platform + Consulting)YesTrack revenue separately for reporting
Multi-tenant or acquired companyYesSeparate P&L per business unit
SaaS with tiers (Starter/Pro/Enterprise)OptionalUse if you report by tier; skip if tiers are just variants of one product
Reseller or agency (offering products from multiple vendors)YesOrganize by vendor; simplify reconciliation

If unsure: start without categories. You can add them later without breaking anything.


The hierarchy

CategoryProductProduct Item

  • Category (optional): Logical grouping. Example: “Data Analytics”, “Consulting Services”
  • Product: What you sell. Example: “Standard Plan”, “Implementation”
  • Product Item: A billable charge type. Example: “Seats” (recurring), “API calls” (usage-based), “One-time setup” (one-off)


Detailed guides


Implementation

Via API

1

Create a category (optional)

Start by creating a product category if you want to organize your products into logical groups. This is useful if you have multiple business units, service lines, or acquired companies you want to track separately for reporting. Categories don’t affect billing, they’re purely organizational.

$curl -X POST https://test.api.solvimon.com/v1/product-categories \
> -H "X-API-KEY: <apiKey>" \
> -H "Content-Type: application/json" \
> -d '{
> "name": "Data Analytics",
> "externalId": "cat_analytics"
> }'

You’ll get back a category ID. You can skip this step and go straight to creating products as products can exist without a category.

2

Create a product in that category

A product represents what you sell: “Standard Plan”, “Professional Services”, “Data Storage”, etc. If you created a category in step 1, reference its ID here. Otherwise, leave categoryId blank.

Products are containers for product items. They don’t have pricing or charge types themselves. Those come in step 3.

$curl -X POST https://test.api.solvimon.com/v1/products \
> -H "X-API-KEY: <apiKey>" \
> -H "Content-Type: application/json" \
> -d '{
> "name": "Standard Plan",
> "categoryId": "cat_analytics",
> "externalId": "prod_standard"
> }'

Save the product ID from the response; you’ll need it for the next step.

3

Add product items

This is where billing happens. A product item is a specific, billable charge: “Monthly subscription at $99”, “API calls at $0.01 each”, “One-time setup fee”. You define the charge type here (recurring, usage-based, or one-off) and link it to a pricing plan later.

One product can have multiple items. For example, “Professional Plan” might have:

  • A recurring $500/month item for the base service
  • A usage-based item for overage API calls
  • An optional add-on item for priority support
$curl -X POST https://test.api.solvimon.com/v1/product-items \
> -H "X-API-KEY: <apiKey>" \
> -H "Content-Type: application/json" \
> -d '{
> "name": "Monthly Seats",
> "productId": "prod_standard",
> "chargeType": "recurring",
> "externalId": "item_seats"
> }'

Each item maps to a separate line item on customer invoices. When you set up pricing plans, you’ll assign charges to these items.

Via Desk

Or navigate manually:

  1. Open Products in the left sidebar
  2. Click + New Category (optional) or + New Product
  3. Fill in name and external ID
  4. Once a product exists, add product items by opening the product and clicking + Add Item

Best practices

Keep it in sync: Your Solvimon catalog should map to how you describe products in contracts, order forms, and your website. When a customer signs a contract for “Professional Plan”, that product should exist in Solvimon with the same name.

Use external IDs: Always set an externalId. This lets you sync your catalog programmatically (via API or integrations) without relying on Solvimon’s internal IDs.

Audit regularly: Review your catalog quarterly. Archive unused products; rename ambiguous ones. Inconsistent naming causes invoice errors and support tickets.


Edge cases

Changing category structure: Products can be moved between categories without breaking subscriptions or invoices. History is preserved.

Flat vs. hierarchical: If you add categories later, existing products without categories still work. You can mix both.