Plans, Limits & Preferences
Your subscription plan sets hard limits — how many companies you can own, how many invoices each company can hold, and your monthly AI capture quota. The accounting module is available on every plan. Per-company Preferences (favorites and saved products) are separate from your plan and available to everyone. This page documents the exact tier limits, how they are enforced, and what the Preferences screen holds.
Plans at a glance
Four tiers ship seeded: Free, Basic, Premium, and Custom.
| Plan | Invoices per company | Companies | Captures / month | Captures retained |
|---|---|---|---|---|
| Free | 100 | 1 | 2 | 1 |
| Basic | 10,000 | 5 | 200 | 100 |
| Premium | 200,000 | 50 | 2,000 | 1,000 |
| Custom | per agreement | per agreement | per agreement | per agreement |
- Free is what a self-serve signup lands on, and also the fallback when an account has no plan assigned.
- Custom limits are not fixed — they are set per account when the plan is assigned (see Custom plan).
- The accounting module (Capture, ledger, receivables/payables, reports) is available on every plan; the AI capture quota and retained-document cap vary by tier as above.
Plans carry a monthly price field internally, but Bilvx has no self-serve billing today: there is no in-app checkout, and plans are assigned by the platform operator.
How the limits are enforced
Company limit. When you already own your plan's maximum number of companies, the New Company button disappears and the create form refuses. Nothing you already own is touched. The limit is enforced both in the request handler and by a database trigger.
Invoice limit. Each company can hold up to your plan's invoice maximum. Creating an invoice past that limit is refused; existing invoices are unaffected. This too is enforced in the handler and backed by a database trigger on insert.
No assignment → Free. An account with no plan assignment (or one pointing at a missing plan) resolves to the Free limits — 100 invoices / 1 company — so it can start working immediately. The database triggers use the same Free fallback, so the gate and the backstop enforce one rule.
For the field-by-field company and invoice forms these limits apply to, see Managing Companies, Customers & Suppliers and Creating & Managing Invoices.
Custom plan
The Custom tier does not have fixed numbers. Its invoice and company limits come from the plan assignment, not the plan itself:
| Setting | Source |
|---|---|
| Max invoices | The assignment's custom invoice limit (0 if unset) |
| Max companies | The assignment's custom company limit (0 if unset) |
| Captures / month and retained | The assignment's custom capture limits (0 if unset) |
The operator assigns Custom — and sets its custom limits — from the admin plans screen.
Assigning a plan (operators)
Plans are assigned by the platform operator, not chosen by users. There is no self-serve upgrade. If you hit a limit, ask the operator to change your plan. Operators manage assignments from the admin portal; see Deploying & Operating Bilvx for the admin surfaces and seeded roles.
Preferences
Under Workspace → Preferences, each company keeps two kinds of convenience data. Preferences are scoped to the selected company and are independent of your plan.
Favorites
The LHDN code lists (units, tax types, MSIC classifications, and so on) are long. Mark the entries you actually use and they float to the top of every dropdown that draws on that list. Favorites are managed per list, one entry at a time, and stored per company.
Saved Products
Reusable line-item presets for the things you sell. On the invoice form, a per-line picker fills a saved product's values into the line. Managed at the Saved Products screen (/preferences/products). Each product holds:
| Field | Type / default | Description |
|---|---|---|
| Description | text, required | The product name/description placed on the invoice line. |
| Unit price | required | The default price per unit. |
| Quantity | number, up to 3 decimals, default 1.000 | The default quantity; must be positive. |
| Tax type | 2-character LHDN tax-type code, default 06 | The default tax classification; 06 is "Not Applicable". Validated against the LHDN tax-type list. |
Saved products are company-scoped and are removed automatically if the company is deleted.
What plans don't cover
To save you looking: Bilvx has no bulk import of customers or invoices, no payroll, no tax filing, and the MyInvois intermediary appointment cannot be done from inside the app (it happens on LHDN's portal). If any of these matter to you, tell the operator — real requests drive the plan. For more of these boundaries, see the FAQ.