Navigation
14.2. Configure Tenant Billing Defaults for Currency, Document Numbering, Tax, and Renewals
Configure tenant-wide AlgaPSA billing defaults including currency, document numbering for invoices, credit notes, quotes, and sales orders, zero-dollar handling, tax calculation source, tax regions, and renewal automation.
Navigate to Settings > General in the sidebar to open Admin Settings, then select Billing (under Time & Billing). This page controls tenant-wide billing defaults that apply to every client unless explicitly overridden on the client record.
The page is organized into sub-tabs:
- General — currency, zero-dollar handling, renewal automation.
- Numbering: number format, including prefix, optional date format, padding, and starting value, for invoices, credit notes, quotes, and sales orders.
- Payments — Enterprise Edition only. The OSS build shows a placeholder.
- Cost Rates — set internal labor cost rates used by profitability reporting.
Use this page when you stand up a new tenant, change accounting providers, or need to tighten up how zero-dollar invoices and contract renewals are handled across the book of business.
Tax calculation sources, regions, and rates are managed together under Billing > Tax, rather than in an Admin Settings sub-tab. The billing tab and sidebar entry are both named Tax.
General Sub-Tab
Default Currency
Sets the tenant-wide base currency and controls how monetary amounts are displayed throughout AlgaPSA.
- Pick the currency from the searchable dropdown. Type a currency code such as
EURto narrow the choices. Currency dropdowns throughout AlgaPSA support search, including service pricing and document currency selectors. - Additional currencies: Swedish Krona (SEK,
kr) and South African Rand (ZAR,R) are available, with their symbols used on documents. - UI display scope: The configured currency symbol (€, £, C$, etc.) is used throughout both the MSP portal and the client portal — on contract line rates, invoice previews, usage charts, pricing inputs, and every other place money appears. AlgaPSA derives the symbol from the currency code automatically; there is no separate display configuration.
- Outbound email: Invoice totals and credit-expiry notification amounts in outbound emails are formatted using the invoice's own currency code. The tenant default is the fallback when neither the invoice nor the client record carries a currency.
- New record defaults: This value is also the default currency pre-filled when creating new products, services, contracts, and quotes.
- Per-client overrides: Individual clients can set a different currency on their billing configuration (see 14.5. Client Billing Settings). The tenant setting is the fallback when no client-level override exists.
- Propagation on change: When you change the tenant default currency, AlgaPSA updates the currency on every client whose stored default still matches the previous tenant default. Clients whose currency was explicitly set to something different are preserved. After saving, the page reports how many client defaults were updated and how many overrides were preserved. Because historical clients carry no provenance bit, a client explicitly set to a value equal to the previous tenant default will follow the tenant change — the UI copy describes this before you confirm.
Zero-Dollar Invoices
Two independent settings control how invoices with no net charges are handled.
| Setting | Options | Behavior |
|---|---|---|
| Invoice Handling | Create as Draft (default) | Zero-dollar invoices are created as drafts so a billing reviewer can confirm before sending. |
| Create and Finalize | Zero-dollar invoices are automatically finalized with no review step. | |
| Suppress Empty Invoices | Off / On | When on, invoices with no line items at all are skipped entirely and never created. |
Note: Invoice Handling applies to invoices with a zero net total (for example, fully credited). Suppression applies to invoices with no line items at all. These are distinct scenarios controlled separately.
Per-client overrides for zero-dollar handling are configured on the Billing tab of the client record. See 14.5. Client Billing Settings.
Renewal Automation
Configures the default behavior when a contract reaches its renewal date.
| Field | Options | Notes |
|---|---|---|
| Due Date Action | Create ticket (default) | Automatically opens a ticket when a renewal becomes due. |
| Queue only | Surfaces the renewal in the Upcoming Renewals queue without creating a ticket. | |
| Renewal Ticket Board | Any active board | Visible only when Create ticket is selected. |
| Renewal Ticket Status | Statuses scoped to the selected board | Visible only when Create ticket is selected. |
Click Save to apply.
Individual contracts can override these defaults using the Use Tenant Renewal Defaults toggle in the contract's renewal settings.
Caveat: The default renewal mode and default notice period for new contracts are managed inside the contract wizard's renewal section, not from this page. Settings on this page govern the due-date action (ticket vs. queue) and the ticket board/status — not the renewal mode itself. See 14.9. Contract Renewals.
Tax Setup under Billing > Tax
Open Billing > Tax to review the calculation source and the expandable Tax Regions and Rates table in one place.
Tax Calculation Source
Controls where invoice tax amounts are calculated.
| Source | Behavior |
|---|---|
| Internal (AlgaPSA) (default) | Taxes are calculated automatically based on the rates configured in Billing > Tax. |
| External (Accounting Package) | Invoices are exported without tax. Your accounting system calculates tax and the results are imported back into AlgaPSA. |
When External is selected, an info panel appears describing the external tax workflow. Click Save Settings to apply.
If an external accounting adapter is connected but tax is still set to Internal, a tax delegation banner on Billing > Tax suggests switching to External calculation. You can accept the suggestion or dismiss the banner.
Tax Regions and Rates
Manages the geographic or jurisdictional identifiers used to assign tax rates to clients (for example, CA, TX, EU-VAT).
- The table shows each region's name and code, Current rate, and number of Rates. Inactive regions are identified.
- Click Add Tax Region to add a new region:
- Region Code (required, max 10 characters) — the short identifier used in client billing settings.
- Region Name (required, max 100 characters) — the display name.
- Active (toggle).
Expand a region to see its rates, descriptions, effective dates, and Current, Scheduled, Expired, or Inactive status. Select Add rate inside that region to create a rate. The rate editor exposes an Active switch; inactive rates are ignored when invoices are taxed.
The current-rate summary flags overlapping applicable rates with a combined-rate warning. Review the expanded rows before billing, and resolve conflicting date ranges. See 14.4. Configure MSP Tax Rates by Region with Composite, Bracket, and Holiday Support for rates and advanced settings.
Numbering Sub-Tab
Use this sub-tab to configure the number format for all document types. Each document type has its own collapsible card. Click a card header to expand it and edit Number Prefix, Date Format, Minimum Digits, and the sequence settings.
All four document types are managed here:
| Document Type | Default Prefix | Example Number | With Date Format {YYYY}-{MM}- |
|---|---|---|---|
| Invoices | INV- | INV-000001 | INV-2026-09-000001 |
| Credit Notes | CM- | CM-000001 | CM-2026-09-000001 |
| Quotes | QUO- | QUO-0001 | QUO-2026-09-0001 |
| Sales Orders | SO | SO00001 | SO2026-09-00001 |
Each tenant's number sequence is initialized with these defaults the first time a document of that type is generated. Settings you save here apply to all documents generated after the change; existing document numbers are not affected.
Credit notes and sales orders have their own sequences rather than drawing from the invoice sequence, so a gap in your invoice numbers no longer has to be explained to an auditor as "that was a credit note."
Add an optional date to document numbers
Date Format is a text field, not a list of named date presets. Leave it empty to omit the date, or combine these exact tokens with separators:
| Token | Meaning | September 17, 2026 example |
|---|---|---|
{YYYY} | Four-digit year | 2026 |
{YY} | Two-digit year | 26 |
{MM} | Two-digit month | 09 |
{DD} | Two-digit day | 17 |
For an invoice with Number Prefix INV-, Date Format {YYYY}-{MM}-, Minimum Digits 6, and a next sequence value of 5, the Next Number Preview is INV-2026-09-000005 when issued in September 2026. Select Save Changes after checking the preview.
The date is inserted between the literal prefix and the padded counter. Adding or changing the date format does not require changing the prefix or resetting the counter. The sequence remains continuous across days, months, and years, and already-issued numbers stay unchanged.
The date is evaluated when the number is issued, using the default timezone configured in Settings. Every numbered record uses the same numbering service, so the configured date-token rules apply consistently wherever a number is issued. Each record type still has its own sequence and settings.
All billing-document numbering is configured on this one tab. Tickets, projects, and opportunities are numbered by the same service with the same tokens, but their cards live with their own settings: 10.5. Configure Ticket Numbering, Boards, Statuses, Priorities, and Categories, 10.6. Configure Project Numbering, Statuses, Task Statuses, and Priorities, and 21.5. Configure Opportunity Stages, Steps, Suggestion Thresholds, and Numbering.
For quote-specific numbering, see also 14.10. Quoting.
Payments Sub-Tab
Configures Stripe integration for online invoice payments. Full details in 14.16. Online Payments.
This sub-tab is available in the Enterprise Edition. The OSS build shows a placeholder.
Default Time Entry Service
The Default Time Entry Service card in Billing Settings lets you choose a tenant-wide fallback service that pre-populates the Service field in the ticket time entry dialog. When a technician opens the time entry drawer on any ticket, AlgaPSA resolves the service to show in this order: client default → tenant default → none. If neither is configured, the Service field remains empty and required as before.
The setting accepts any active hourly service that is applicable to the client under existing contract-line eligibility, re-validated at resolve time. If the configured service is deactivated or becomes ineligible, the field returns to a required manual selection for affected clients.
Individual clients can override this with their own default on the client's Billing Configuration page. See 14.5. Client Billing Settings.
Cost Rates Sub-Tab
Defines the internal labor cost rates used to calculate gross margin in profitability reports.
How cost rates work
Each rate record sets a cost-per-hour for a specific user over a date range. When the profitability report calculates labor cost for a time entry, it looks up the rate for the user on the work date:
- User-specific rate effective for that date.
- Tenant-wide default rate (user set to none) if no user-specific rate matches.
- If neither exists, the time entry contributes to the Uncosted hours warning counter on the report.
Managing rates
| Action | How |
|---|---|
| Add a rate | Click + Add Cost Rate, choose a user (or leave blank for the tenant default), enter the hourly cost, and set an effective-from date. |
| Edit a rate | Click the pencil icon on any row. |
| Delete a rate | Click the trash icon. If the rate covers already-invoiced periods, a confirmation dialog warns you that historical margin figures will change. |
Requires billing.update permission. Viewing rates requires billing.read.
See 14.24. Profitability Reporting for how these rates feed into the report.
