Contract Billing: Periodic Billing
Billing setup, schedules, templates, and troubleshooting
Periodic Billing
Overview
The Periodic Billing screen is used to generate invoices for recurring lease rentals.
It:
Pulls lease charges from the Contract Lease screen
Includes Credit and Inertia charges
Does not include:
Recharges
Booking invoices
Typical Use
Operating leases → Invoiced monthly (usually at the beginning of the month)
Novated leases → Invoiced according to pay cycle
Charges displayed are those due on or before today’s date
Due dates are set in Contracts → Billing
If transactions are missing:
Check Clients → Contract Defaults → Billing Type
Only “Periodic” or “Any” clients appear here
Note:
Packaged Contracts (linked to items) cannot be invoiced from this screen.
Automation (Highly Recommended)
Catch-e recommends scheduling Periodic Billing via the Scheduler.
Benefits:
“Set and forget” process
Emails sent automatically
Can run after hours
Reduces disruption caused by system locks
Important:
Billing creates system locks that prevent editing in various areas.
Channel Billing
If separate invoice templates exist for specific Channels:
Select the required template from the bottom-right template list.
Once selected:
The Channel Code field becomes read-only.
Other filters return only records for that Channel.
Click Go to apply.
Example templates:
“Standard Periodic Invoice” (default)
“CHANNEL Periodic Invoice”
Filters
Use filters to invoice all clients or selected groups.
Channel Code (Lookup)
Search by Channel.
Group Code (Lookup)
Search by Client Group.
Client Code (Lookup)
Search by individual Client.
Reg No (Lookup)
Search by Registration Number.
Delivery (Drop Box)
Select:
Email
Post
⚠ The Invoice button remains disabled until delivery is selected.
Special case:
If Packaged Contracts are invoiced by a Channel Accounts user with Email selected:
Output defaults to Text (CSV)
Emailing is suppressed.
Group (Drop Box)
Filter by Contract Type Group.
Type (Drop Box)
Filter by Contract Type.
Pay Cycle (Drop Box)
Filters contracts based on the Periodic Interval field in Contracts → Billing.
Invoice From (Date)
Visible only if * = yes.
Adds a “From” date to the invoice header.
Invoice To (Date)
Visible only if * = yes.
Displays transactions with a Contract Lease “Period” date up to this date.
Default = today
Changing this updates the Invoice Date automatically.
Dated / Invoice Date (Date)
Default = today
Appears as:
“Dated” if
* = no“Invoice Date” if
* = yes
Can be changed to invoice in advance
⚠ Warning:
If Invoice To and Invoice Date fall in different months, a reconciliation warning appears.
Go Button
Executes filtering.
If disabled, current filters are already applied.
Validations & Alerts
Invalid Date
“Invalid date! You must enter a valid date as DD/MM/YYYY”
Correct the date and try again.
Billing Locked
“Invoicing locked by user: '{user_login}'”
Another user is running billing.
Try again later.
Recharge Billing
Recharges are usually invoiced at month end but can be processed anytime.
Automation
Scheduling recharge billing is recommended for the same reasons as Periodic Billing:
Automated
Email included
Runs after hours
Reduces lock disruptions
Recharge Transactions
Recharge transactions come from:
Approvals
Registration / CTP Renewals
Card Services
They appear on:
Contracts → Maintenance
Before invoicing:
Displayed in blue text
Flagged as:
is = 'Y'
type = 'recharge'
Booking Charges
Recharge invoices can also include:
Bookings → Invoice transactions
Fuel Recharges
By default:
Fuel is excluded from standard recharge invoices.
Fuel transactions have Class = ‘F’.
Options:
Include fuel to create one combined recharge invoice
ORUse Billing → Recharge → Fuel to create separate fuel invoices
Fuel transactions are summarized to one row per contract.
Client Visibility Rules
If transactions are not visible:
Check Clients → Contract Defaults → Billing Type
Only clients with:
“Periodic”
“Any”
Will appear on this screen.
Recharge Filters
Channel Code
Filter by Channel.
Group Code
Filter by Client Group.
Client Code
Filter by Client.
Reg No
Filter by Registration Number.
Delivery
Select:
Email
Post
Invoice button remains disabled until selected.
Group
Filter by Contract Type Group.
Type
Filter by Contract Type.
Class
Filter by Budget/Class.
Dated
Displays transactions up to this date.
Invoice generated uses this date.
Default = today.
Exclude Fuel
Check to exclude fuel charges (Class ‘F’).
Go Button
Executes filtering.
Recharge Validations
Invalid Date
Must be DD/MM/YYYY or blank.
Billing Locked
Another user is running billing.
Wait and retry.
VaryContractBilling (Beta API)
Allows billing changes to a contract after billing has started.
Uses alternative authentication.
HTTP Method
POST
Headers
Required:
Content-Type: application/jsonOR
Content-Type: application/hjsonOptional (if permitted):
Audit-User-IdJSON Input Fields
Required
contract_id (int)
Optional
inertia_flag (“yes” or “no”)
billing_interval (valid pay cycle code)
remaining_billing_periods (1–999)
next_billing_date (YYYY-MM-DD)
billing_common_day (1–31 or “eom”)
payment_method:
direct-debit
cheque
cash
other
credit-card
eft
⚠ Do not use 29, 30, or 31 as billing_common_day due to date logic inconsistencies.
Example Request
POST https://api.catch-e.com/beta/fm/contract/billing/vary{
"contract_id": 100000,
"inertia_flag": "no",
"billing_interval": "monthly",
"remaining_billing_periods": 10,
"next_billing_date": "YYYY-MM-DD",
"billing_common_day": 1,
"payment_method": "direct-debit"
}Successful Response
{
"result": "OK"
}Error Response Example
{
"validation_messages": {...},
"status": 422,
"title": "Unprocessable Entity"
}Common Validation Errors
Additional API Responses
422 – Unprocessable Entity
Validation failed.
423 – Locked
Contract is being edited or billing is running.
403 – Forbidden
User lacks permission.