Overview
Contracts define the ongoing service relationship between your MSP and a client. They hold the billing terms, service level expectations, and the line items that get invoiced each cycle. Every client with recurring billing should have at least one active contract in PSA.
Creating a Contract
- Open the company record for the client.
- Click the Contracts tab, then New Contract.
- Enter a name (for example, "Managed Services Agreement — Acme Corp").
- Choose a contract type (see below).
- Set the start date and end date.
- Enter the contract value — this is the total or monthly amount depending on the type.
- Set the billing frequency (monthly, quarterly, annually).
- Optionally link an SLA policy so tickets for this client use the right targets.
- Click Save.
Contract Types
| Type | How it works |
|---|---|
| Block Hours | The client pre-purchases a block of hours. Time logged against the contract draws down the block. When the block is exhausted, additional time is billed at the overage rate or flagged for review. |
| Per-Device | Monthly billing scales with the number of managed devices. The line item quantity is updated each cycle to match the current device count. |
Adding Contract Line Items
Line items are what appear on invoices each billing cycle:
- Open the contract.
- Click Line Items, then Add Item.
- Enter a description, quantity, and unit price.
- Click Save.
Line items can be added manually or pushed in automatically from Hub for resold products. Each line item tracks whether it has been billed in the current cycle; completed billing runs mark items as billed and reset them for the next period.
Linking Contracts to Clients
A contract is always linked to a company. One company can have multiple contracts (for example, one for managed services and one for a specific project). When logging time or creating a ticket, you can reference the correct contract so billing is applied properly.
To link an existing contract to a ticket, edit the ticket and set the Contract field.
Contract Expiry and Renewals
A daily background job looks ahead 30 days and surfaces contracts that are about to expire. You will see renewal warnings in your dashboard and can create a renewal directly from the contract record:
- Open the expiring contract.
- Click Renew.
- PSA creates a new contract with the same settings and line items, starting from the end date of the current one.
- Review and adjust the new contract before saving.
Frequently Asked Questions
Can one client have contracts with different billing frequencies?
Yes. Each contract has its own billing frequency. Billing runs are run per period and pick up all active contracts in that window.
What happens if I delete a contract that has unbilled time?
Deleting a contract is not recommended if there are unbilled entries or open tickets linked to it. Mark the contract inactive instead to stop new billing while preserving the history.
Do contract line items carry over from month to month?
Yes. Line items are marked as billed after each run but remain on the contract for the next cycle. They are not one-time items unless you delete them after billing.