Browse docs
Advanced Billing
Advanced Billing turns the mechanic tablet into a complete workshop invoicing workflow. Mechanics can invoice completed vehicle work or create their own invoice for a nearby customer without connecting a vehicle.
Configure the feature per mechanic job under /jobconfig → Mechanic Jobs → Billing. The shipped defaults are available in each job's billingSettings block in Config.Jobs; Config.Billing remains the fallback when no per-job value is available.
Estimates and invoices
Mechanics can choose between two document types:
| Type | Behavior |
|---|---|
| Estimate | Sent to the customer for acceptance or rejection and expires after the configured lifetime |
| Invoice | Immediately payable and assigned the configured due date |
When a customer accepts an estimate, it becomes an invoice, receives its deposit requirement, and starts a new payment term. Declined, expired, or cancelled documents retain their accounting positions without permanently blocking the related workshop work from being invoiced again.
Deposits and partial payments
depositPercent defines the required first payment. The server prevents a smaller first payment from bypassing that deposit.
When allowPartialPayments is enabled, customers can make multiple cash or card payments. Every successful payment is stored separately with its amount, payment method, payer, and timestamp. The invoice tracks:
- Total amount
- Amount paid
- Required and remaining deposit
- Outstanding balance
- Final payment status
minimumPartialPayment prevents meaningless small installments while still allowing a smaller final balance or exact remaining deposit.
Detailed and custom invoice positions
Invoices can combine existing unbilled maintenance work, configured custom positions, and mechanic-created positions. An own position contains:
- Label
- Category
- Cost type such as part, labor, service, or fee
- Quantity
- Unit price
Set allowManualItems and maximumManualItems to control whether mechanics may create these positions and how many they may add. A manually selected nearby customer allows a complete invoice to be created without a connected vehicle.
Limits and grade permissions
Global billing settings define the basic boundaries:
| Setting | Purpose |
|---|---|
minimumInvoiceAmount | Smallest permitted document total |
maximumInvoiceAmount | Global document ceiling |
maxDiscountPercent | Global discount ceiling |
taxPercent | Tax applied after the discount |
allowImmediatePayment | Enables direct invoice payment |
allowEstimates | Enables estimate creation |
allowPartialPayments | Enables deposits and installments |
allowAnalytics | Default access to billing reports |
gradeRules can further restrict each mechanic grade. A rule can set its own invoice and discount maximum and allow or deny estimates, own positions, cancellations, reminders, and accounting analytics.
The normal CREATE_BILLING, MANAGE_BILLING, and CANCEL_BILLING job permissions continue to apply. Grade rules narrow those permissions; they do not grant a permission the player does not already have.
Due dates and reminders
defaultDueDays controls when an invoice becomes overdue. Authorized mechanics can send a reminder only after reminderGraceDays have elapsed.
Every reminder can add reminderFee, is stored on the invoice, and cannot be repeated until the configured grace period has elapsed again. maximumReminders limits the complete reminder chain. When the customer is online, the reminder reopens the updated invoice so it can be paid immediately.
Accounting and tablet analytics
The billing ledger stores invoice totals, line categories, tax, discounts, reminder fees, payment state, and every individual payment. Authorized grades can view the configured analyticsPeriodDays in the tablet, including:
- Invoiced revenue
- Paid and outstanding amounts
- Overdue invoice count
- Open estimates
- Discounts, tax, and reminder fees
- Top invoice categories by quantity and revenue
Advanced Pricing profit analysis remains available separately in the Parts Shop tablet for supplier cost, labor, margin, refunds, and net profit.
Recommended rollout
- Configure the billing defaults and grade rules in JobConfig.
- Give the intended grades the billing permissions.
- Create and accept a test estimate.
- Pay the required deposit and complete the balance with a second payment.
- Create an own invoice for a nearby player without a vehicle.
- Test invoice limits, discount limits, expiry, cancellation, overdue status, and reminder spacing.
- Verify the payment ledger and tablet analytics.