Billing Catalog
Define the services and bundles you sell, keep them in step with Stripe, and see every client on Stripe billing with their recurring total and invoice history.
FinanceBilling Catalog is where you describe what you sell and see who is paying for it. It has three tabs: Catalog (your plans, service families and the Stripe reconcile card), Customers (every client portal on Stripe billing) and Terms (one shared set of general terms).
A plan here is a sellable service or bundle with a price, an interval, a category and a status — and a copy of it lives in your Stripe account.
Before you start
You need the client_billing plan feature and the Billing permission. Anything that touches Stripe also needs a connected Stripe account — SettingsIntegrationsStripe. Client billing charges money on your own Stripe account, so treat every sync and every compose as a live financial action.

Build a plan
Open the Catalog tab
FinanceBilling CatalogCatalog.
Add or edit a plan
Fill Name, Slug, Kind and Category, then the price, Interval and Status.
Write the client-facing copy
The Client summary and the feature list are what a client reads. Decide whether Show general terms on this plan is ticked.
Save, then sync to Stripe
Use the plan's sync action so the Stripe copy matches the catalog. A plan whose Stripe copy is out of date shows Needs sync.
Duplicate rather than retype
A plan row has a Duplicate action. Copying your standard maintenance plan and changing the price is faster and less error-prone than building the second one from scratch.
Settings reference
| Setting | What it changes | Default |
|---|---|---|
| Name | The plan name clients see. | — |
| Slug | The identifier used in URLs and references. | — |
| Kind | Service or Bundle. | — |
| Category | Web design, Hosting, Maintenance, SEO, Google Ads, Content, Google Business Profile, Bundle or Add-on. The list is filtered to your business type. | — |
| Add-on type | Which add-on family an add-on plan belongs to. | Choose an add-on type… |
| Price | The recurring amount charged. | 0.00 |
| Interval | Monthly or Yearly. | — |
| Status | Active, Coming soon, Archived or Hidden. Only Active plans are sellable. | — |
| Sort order | Position in client-facing lists. | — |
| Recommended plan | Flags the plan as recommended where plans are shown side by side. | — |
| Show general terms on this plan | Appends your shared Terms tab content to this plan. | — |
| Client summary | The short description shown to clients. | — |
| Terms | Terms specific to this plan, written in rich text. | — |
Service families
Service families are the groupings clients see above individual plans. Open Billing CatalogCatalogService families to rename them, add your own, or reset them to Zyan's default wording.
| Setting | What it changes | Default |
|---|---|---|
| Name | The family's display name. | — |
| Description | Supporting copy shown under the name. | — |
| Icon | The icon shown beside the family. | — |
| Sort order | Position in the list. | Default |
Rows are tagged Custom, Renamed or Platform words, so you can always see what you changed. A family can only be removed once its plans are archived.
Stripe reconcile
Drift is when a catalog plan's price or name no longer matches what is live on Stripe — usually because someone edited one side and not the other. The CatalogStripe reconcile card compares every plan and stamps a verification time.
| Verdict | What it means |
|---|---|
| In sync | The catalog and Stripe agree |
| Drifted | Both exist but a field differs — open the drift table |
| Missing on Stripe | The plan has never been pushed, or its Stripe copy was deleted |
| Check failed | The comparison itself could not run |
| Skipped | The plan was not eligible for comparison |
| Never verified | Reconcile has not been run against this plan yet |
The drift table lists Field / Catalog / Live on Stripe / What it means. Fix a drifted plan by running the plan's sync action, which pushes the catalog version to Stripe, then reconcile again to confirm.
Customers
The Customers tab lists every client portal on Stripe billing with its status, monthly recurring total, card on file, next billing date and invoice count. Filter chips — All, Past due, Open invoices, Cancelling — carry counts.
Click a row to drill into one customer's subscription, plan breakdown and invoice history. An amber dot on a row means Needs attention.
The Billing health review card is not an alarm
It flags portals whose billing records look out of step with Stripe and says so plainly: "Nothing here has affected a client; review when convenient."
Opening an invoice from here shows its payment attempts and a refund block. That is covered in Invoices and billing a client.
Terms
The Terms tab holds one set of general terms written in a rich-text editor. Whether a given plan shows them is decided per plan by Show general terms on this plan — writing them here does not attach them anywhere on its own.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| A plan shows Needs sync | The plan was edited in Zyan and Stripe still has the old copy | Run the plan's sync action |
| Reconcile reports Drifted or Missing on Stripe | The two copies no longer match, or the plan was never pushed | Read the field-level differences in the drift table, then sync the plan |
| "Stripe Connect is not configured on the platform yet." | The platform side of Stripe Connect is not armed for your workspace | Contact Zyan — there is nothing to fix on your side |
| The Customers tab is empty | No Stripe account is connected, or no portal has been put on Stripe billing yet | Connect Stripe as the owner, then use Bill this client on a client |
| "No active plans in the billing catalog yet." | Every plan is Archived, Hidden or Coming soon | Set at least one plan to Active |
| A service family will not delete | It still has plans attached | Archive its plans first |