Contract Budgets & Funds: Deferred Payments

Deferred payments, budget management, and funds checks

Deferred Payments

Overview

Finance Payments and Lease Billings can include deferred payments. If used, the number of payments and/or billings is reduced by the number of deferred periods. Lease budgets (e.g. maintenance) are then spread across the remaining repayment term.

A default value for new clients can be set in Clients / Contract Defaults → Periods Deferred.

Configuration

Client Defaults

Client preferences can be set in Clients / Contract Defaults:

  • Periods Deferred

  • Finance Budget Term Deferred

  • Budget Term Deferred

“Periods Deferred” is used as the default for Quotes / Finance → Months Deferred.

If Finance Budget Term Deferred and Budget Term Deferred are not enabled, budgets are spread across the full term.

Quotes

A value in Quotes / Finance → Months Deferred reduces finance payments (typically 1–2 months).

When a quote is accepted:

  • Months Deferred → Contracts / Finance → Finance Deferred

  • If Budget Term Deferred = YES:

    • Months Deferred → Contracts / Billing → Billing Deferred

If ECM is applied, deferral also affects post-tax deductions in year one (see Employee Contributions).

Contracts

Billing Behaviour

Contracts / Billing → Billing Deferred affects:

  • Total billing calculations

  • Default values for Finance Payment creation

Deferral Discussion

Finance Payment Deferral

Used to delay finance payments to improve cash flow alignment with financier arrangements.

Lease Billing Deferral

Used to align customer billing cycles with payroll or invoice cycles (common in novated leases).

Key considerations:

  • Cash flow alignment remains positive

  • Lease end alignment

  • Client/HR communication

  • Driver reporting impacts

  • Early termination payout effects

  • Accounting reconciliation

Deferral Scenarios

Desirable Scenarios

Cash Flow Alignment

  • Payments and billings align within lease term

  • No overshoot beyond lease end

Finance Budget Term Deferred = No

  • Billing and payment schedules reduce evenly

  • Lease structure remains aligned

Finance Budget Term Deferred = Yes

  • Billing and payment schedules may diverge where required

Undesirable Scenarios

Negative Cash Flow

  • Payment obligations exceed billing recovery timing

Term Misalignment

  • Payments or billings extend beyond lease end


API: Edit Budgets for Contract (Pre-Billing)

Overview

Beta API used to edit billing details for a contract before billing has started.

HTTP Method

POST

Request Structure

Headers

  • Content-Type: application/json or application/hjson

  • Audit-User-Id (optional, requires permission)

Body Fields

Contract Identification

  • contract_id (int, required)

Contract Dates & Term

  • term (number)

  • contract_start (date)

  • contract_end (date)

Billing Controls

  • start_periodic (date)

  • billingcommonday (int)

  • billing_interval (string)

  • initial_billings (string)

  • periodic_billings (string)

Flags

  • inertia_flag (yes/no)

  • overridewarnings_flag (yes/no)

Payment Method

  • payment_method (direct-debit, cheque, cash, other, credit-card, eft)

Example Request

{
 "contract_id": 100000,
 "inertia_flag": "no",
 "billing_interval": "monthly",
 "initial_billings": 0,
 "periodic_billings": 60,
 "payment_method": "direct-debit"
}

Responses

Success Response

{ "result": "OK" }

Errors

422 Unprocessable Entity

  • Invalid billing interval

  • Invalid contract ID

  • Missing contract start

  • Invalid billing configuration

423 Locked

  • Contract is currently in use or billing is processing

403 Forbidden

  • User lacks permission

Error Format Example

{
 "warning_messages": {},
 "validation_messages": {},
 "type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html",
 "title": "Unprocessable Entity",
 "status": 422,
 "detail": "Failed Validation"
}

Invalid Input Examples

  • contract_id not found

  • inertia_flag not yes/no

  • invalid billing_interval

  • invalid initial_billings rules

  • invalid payment_method values