Client Financial Settings

Client Financial Settings control how NexusRMS prices, invoices, and tracks payments for each client. Every client has a pricing tier, credit limit, payment terms, discount structure, tax configuration, and banking details. These settings determine default values when creating projects and invoices for the client.

Pricing tiers

Each client is assigned one of four pricing tiers, which determines their base price level:

  • standard — The default tier assigned to all new clients. Uses a price_multiplier of 1.00 (no adjustment).
  • preferred — For returning clients who have earned modest discounts through loyalty or volume
  • vip — For high-value clients who receive the best rates and priority service. VIP clients are highlighted in the client list with a purple chip.
  • custom — For clients with individually negotiated pricing. Use the price_multiplier field to set a global price adjustment (e.g., 0.85 for a 15% reduction across all line items).

The price_multiplier field accepts any decimal value. A value of 1.00 means standard pricing, 0.90 means a 10% discount, and 1.10 means a 10% surcharge. This multiplier is applied globally to all rental and sale prices for the client.

Credit management

NexusRMS tracks credit usage in real time to prevent clients from exceeding their approved limits:

  • credit_limit — The maximum outstanding balance allowed for this client. Set to null for unlimited credit. Shown in the client's currency with a £/$/€ prefix.
  • credit_used — The current credit utilisation, automatically calculated from unpaid invoices
  • Available credit — Calculated as credit_limit minus the outstanding balance. Displayed on the client detail page's financial summary card. Shows "Unlimited" when no credit limit is set.

The isOverCreditLimit check is performed when creating new projects or invoices. If the client's outstanding balance plus the new amount would exceed their credit limit, a warning is displayed. Depending on your configuration, this can either warn the user or block the transaction entirely.

Payment terms

  • payment_terms — The number of days allowed for payment after invoice date (e.g., 30 for Net 30, 14 for Net 14)
  • default_payment_terms_id — A foreign key linking to predefined payment term records configured in Configuration > Financial Settings
  • payment_term_type — Indicates which standard payment terms template to use (e.g., Default, 7 days, 14 days, 30 days, 60 days)
  • invoice_moment — Determines when invoices are generated: at project creation, upon confirmation, or upon completion

Currency

Each client has a currency field using the ISO 4217 standard. Supported currencies are:

  • GBP (£) — British Pounds (default)
  • USD ($) — US Dollars
  • EUR (€) — Euros

The client's currency is automatically applied to all quotes, invoices, and financial reports for that client.

Discount types

NexusRMS supports seven granular discount fields per client. Per-service-type discounts override the general discount when set:

  • discount_percentage — General discount applied to all line items by default
  • discount_rental_equipment — Discount specifically for rental equipment line items
  • discount_sales_equipment — Discount specifically for equipment sales
  • discount_crew — Discount on crew and labour charges
  • discount_transport — Discount on transport and logistics costs
  • discount_total_price — Discount applied to the total project price after all other calculations
  • discount_subrent — Discount on sub-rented equipment from third-party suppliers

All discount values are stored as percentages with two decimal places. When a project is created for this client, the applicable discounts are pre-populated into the project financial settings. Per-service discounts take priority: if discount_rental_equipment is set, it overrides discount_percentage for rental equipment lines, while the general discount still applies to any line type without a specific override.

Tax settings

  • tax_number — The client's VAT or tax identification number
  • vat_number — An alias for tax_number maintained for compatibility
  • tax_rate_override — A client-specific tax rate that overrides the default rate configured in Configuration > Financial Settings. Leave empty to use the default rate.
  • tax_exempt — Boolean flag. When true, no tax is applied to invoices for this client regardless of other settings.
  • vat_scheme — Determines the VAT calculation method: Force 20%, Force 0%, Exempt, or the default scheme

Banking details

Optional banking information stored for the client:

  • bank_account_number — The client's bank account number for direct debit or reference
  • bic — Bank Identifier Code (SWIFT code) for international transactions
  • accounting_number — Reference number used in your accounting system for reconciliation
  • coc_number — Chamber of Commerce registration number
  • purchase_number — The client's purchase order number template or default value

Invoice settings

  • invoice_moment — When to generate invoices for this client
  • preferred_payment_method — The client's preferred way to pay (e.g., bank transfer, card, direct debit)
  • electronic_invoicing_id — The client's electronic invoicing identification number for e-invoicing
  • electronic_invoicing_scheme — The e-invoicing scheme used (e.g., Peppol, ZUGFeRD)

Insurance

  • contact_specific_insurance — Boolean flag. When true, a client-specific insurance percentage is applied instead of the global default.
  • insurance_percentage — The insurance surcharge percentage applied to projects for this client

Financial summary on detail page

The client detail page displays four financial summary cards calculated from live data:

  1. Total Revenue — Calculated by getLifetimeValue(), which sums the total of all paid invoices for this client
  2. Outstanding Balance — Calculated by calculateOutstandingBalance(), which sums total minus amount_paid across all unpaid invoices (statuses: sent, viewed, partial, overdue)
  3. Credit Available — Calculated by getAvailableCredit(), which returns credit_limit minus outstanding balance (minimum zero). Returns null if no credit limit is set.
  4. Active Projects — Count of projects in active status, with total count from total_projects

ZUGFeRD e-invoicing support

NexusRMS supports ZUGFeRD electronic invoicing for clients in participating European countries. Two methods facilitate this:

  • getBillingCountryCode() — Determines the client's billing country in ISO 3166-1 alpha-2 format by checking the billing address, visiting address, or country field. Defaults to GB if no country is found.
  • isInZugferdCountry() — Checks whether the client's billing country is in the list of ZUGFeRD-enabled countries configured in config/zugferd.php. Common ZUGFeRD countries include Germany (DE), France (FR), Italy (IT), and Austria (AT).

When a client is in a ZUGFeRD-enabled country and has an electronic_invoicing_id set, invoices can be exported in ZUGFeRD-compliant XML format alongside the standard PDF.

Tips

  • Set credit limits for new clients — Start with a conservative limit and increase it as trust builds through timely payments.
  • Use per-service discounts for large accounts — A client may negotiate different discounts for equipment hire versus crew labour. The granular discount fields let you model this precisely.
  • Review outstanding balances regularly — The financial summary cards on the detail page give you an instant health check. Use the "At Risk" segment filter on the client list to find clients who need attention.
  • Keep tax numbers current — Incorrect or missing VAT numbers can cause issues with cross-border invoicing and ZUGFeRD compliance.
  • Use the price_multiplier for custom pricing — Rather than adjusting individual line items on every quote, set a global multiplier that applies automatically to all pricing for the client.

Was this article helpful?