Audience: anyone working with Solavel + Solabooks Difficulty: new user
What this covers
Definitions of every domain term used across the docs. If a term is linked elsewhere, the destination page explains the term in context.
AP (Accounts Payable) — The balance owed to suppliers for posted bills that have not yet been paid. Also the namespace of routes and permissions covering bills, expenses, debit notes, and bill payments.
AR (Accounts Receivable) — The balance customers owe for posted invoices that have not yet been settled. Also the namespace covering invoices, sales orders, quotes, credit notes, sales receipts, and customer payments.
App — One of the projects in the Solavel platform: the central
SaaS app (solavel), Solabooks (solavel-finance), HR (planned),
and Inventory (mounted as a sub-feature). Each app is a separate
Laravel codebase. See architecture/three-app-overview.md.
Bill — An AP document recording money owed to a supplier. Posted bills create AP balances. See accounting-rules.
Bundle — A pricing package that combines per-project plan tiers
into one subscription (e.g. Starter = standard finance + standard
inventory). Defined in database/seeders/BundleSeeder.php.
Chart of Accounts (COA) — The list of ledger accounts an organization uses to classify postings. Configured per tenant in Solabooks > Accounting > Chart of Accounts. Account types: asset, liability, equity, revenue, expense; subtypes refine reports.
Client — In the parent app, a client is a tenant — a customer of
Solavel itself. Each client has their own tenant database and one or
more organizations. Distinct from Customer (below).
Client Portal — The post-login surface in the parent app at
/portal/orgs/* where a tenant's owner manages organizations,
members, billing, and subscriptions. Confusingly named — Customer
Portal is a different system (see below).
Customer — A counterparty in Solabooks — someone the organization sells to. Lives in the tenant database. Receives invoices, quotes, etc. May have a Customer Portal account.
Customer Portal — The customer-facing surface at
/customer-portal/* where a customer signs in with their email and
password to view their invoices, quotes, payments, and orders. Backed
by a separate user model (CustomerPortalAccount) and a separate
auth guard. See customer-portal/overview.
Entitlement — The resolved value of a feature flag for a specific
organization, taking the plan tier, plan overrides, and org-level
settings into account. Computed by EntitlementResolver.
Feature — A toggle or limit defined in config/features.catalog.php
(parent) and config/finance_features.php (finance). Boolean features
gate UI; limit-type features cap usage.
Fiscal Year — A 12-month accounting window. Configured per organization. Periods belong to a fiscal year. Closing the final period of a fiscal year creates the year-end roll to retained earnings.
Invoice — An AR document billing a customer. Posted invoices create AR balances and (if VAT-enabled) Output VAT.
Journal Entry — A direct posting to the ledger: a balanced set of debit and credit lines. Used for adjustments, accruals, and any movement that doesn't have a higher-level document.
Ledger — The general ledger. The single source of truth for account balances. Every posted document writes to it.
Lock Date — The date below which no new postings are allowed. Set per organization. Independent of period close. See accounting-rules.
Multi-currency — Feature flag (multi_currency_enabled) that
turns on document-currency vs base-currency accounting, FX revaluation,
and the base-currency adjustment workflow.
Organization — The unit of accounting separation inside a client.
One client can have many organizations, each with its own COA, tax
profile, fiscal year, customers, vendors, and ledger. URL parameter
{org} in /portal/orgs/{org}/*.
Payment — A document recording money received from a customer or
paid to a supplier. Linked to one or more invoices/bills via
allocations. Polymorphic: sales.payments.* for AR,
purchases.bill_payments.* for AP.
Period — An accounting window inside a fiscal year, typically a
month. Status: open, locked, closed. See
accounting-rules.
Permission — A keyed capability on the parent (50 Spatie
permissions) or in finance (261 keys in config/finance_permissions.php).
A user has a permission if their role grants it. Enforced by route
middleware, policies, or @can directives.
Plan — A pricing tier on a project (free / standard / premium /
enterprise). Each plan carries feature_overrides. A subscription
points at one plan per project, or a bundle that wraps several.
Posting — Finalising a transactional document. Posting validates the data, writes a journal entry, locks the document number, and restricts further edits. Reverse via Unpost or Reverse.
Project — In the parent app, a project is one of the apps a client
can subscribe to (finance, hr, projects, inventory). In
Solabooks, tracker.manage_projects enables a per-customer
project work-tracking module — same word, different meaning.
Quote — A proposed sale, no accounting impact. Convertible to an
invoice. Can be sent to a customer via a public link
(/q/{token}) for accept/decline.
Recurring — A scheduled template that creates documents on a
cadence (invoices, bills, journals, expenses). Gated on
tracker.recurring_* features.
Reverse Charge — A VAT mechanism (reverse_charge_enabled) where
the buyer accounts for VAT on certain purchases instead of the seller.
Reversal — Posting a contra journal that cancels a posted document without deleting it. The original and the reversal both stay in the audit trail. See accounting-rules.
Role — A named set of permissions. Parent roles:
super-admin, admin, client_owner, client_manager, client_member.
Solabooks role keys: owner, manager, member (Accountant), approver.
A user has one or more roles; permission is the union.
Sales Order — An optional document between quote and invoice for
order management. Gated on sales.use_sales_orders.
Secure Link — A signed, hashed token URL at /i/{token} (or legacy
/portal/{token}) that lets a customer view a single document
without logging in. Expires 24 hours after creation regardless of
caller-requested expiry. See
customer-portal/secure-document-links.
Subscription — A row in client_subscriptions linking a client
to a plan (or bundle), with a billing cycle window. Status: active,
cancelled, etc.
Tenant — A separate per-client database (tenant_<clientId>) where
all of that client's organizations live. Resolved at runtime by the
spatie/laravel-multitenancy middleware. Contrast with the central
parent DB which holds users, clients, and subscriptions.
VAT Period — A reporting window (monthly, quarterly, annual) for VAT returns. Independent of accounting period. Configured per organization.