Autotask Contracts — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Autotask Contracts (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Contracts in Autotask define the service relationship with clients - what services you provide, how you bill for them, and what service levels apply. Contracts control how time and expenses flow to invoices and are critical for MSP financial management.
| Type | Description | Billing Method |
|---|---|---|
| Recurring Services | Monthly/annual managed services | Fixed recurring fee |
| Block Hours | Prepaid hour bank | Deduct from balance |
| Time & Materials | Pay as you go | Bill actual time |
| Fixed Price | Project-based fixed fee | Milestone billing |
| Retainer | Prepaid monthly hours | Use or lose |
| Field | Description | Required |
|---|---|---|
id | Unique identifier | System |
contractName | Contract name | Yes |
companyID | Client company | Yes |
contractType | Type of contract | Yes |
status | Contract status | Yes |
startDate | Contract start | Yes |
endDate | Contract end | Yes |
setupFee | One-time setup fee | No |
timeReportingRequiresStartStopTimes | Require start/stop | No |
serviceLevelAgreementID | SLA assignment | No |
| ID | Status | Description |
|---|---|---|
| 1 | Active | Current, billable |
| 2 | Inactive | Suspended |
| 3 | Cancelled | Terminated |
Services define what's included in a contract:
| Field | Description |
|---|---|
serviceName | Name of service |
unitPrice | Price per unit |
unitCost | Cost per unit |
periodType | Monthly, Quarterly, Annual |
isOptional | Required vs optional |
POST /v1.0/Contracts
Content-Type: application/json{
"contractName": "Acme Corp - Managed Services",
"companyID": 12345,
"contractType": 1,
"status": 1,
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"setupFee": 500.00,
"timeReportingRequiresStartStopTimes": true,
"serviceLevelAgreementID": 1
}POST /v1.0/ContractServices
Content-Type: application/json{
"contractID": 54321,
"serviceID": 111,
"unitPrice": 150.00,
"adjustedPrice": 150.00,
"quantity": 50,
"effectiveDate": "2024-01-01"
}POST /v1.0/Contracts
Content-Type: application/json{
"contractName": "Acme Corp - Block Hours",
"companyID": 12345,
"contractType": 4,
"status": 1,
"startDate": "2024-01-01",
"endDate": "2024-06-30"
}Then add block hours:
POST /v1.0/ContractBlocks
Content-Type: application/json{
"contractID": 54322,
"datePurchased": "2024-01-01",
"hoursPurchased": 40,
"hourlyRate": 150.00,
"isPaid": true
}Active contracts for a company:
{
"filter": [
{"field": "companyID", "op": "eq", "value": 12345},
{"field": "status", "op": "eq", "value": 1}
]
}Contracts expiring soon:
{
"filter": [
{"field": "status", "op": "eq", "value": 1},
{"field": "endDate", "op": "lte", "value": "2024-03-31"},
{"field": "endDate", "op": "gte", "value": "2024-01-01"}
]
}GET /v1.0/ContractBlocks/query?search={"filter":[{"field":"contractID","op":"eq","value":54322}]}Calculate remaining hours:
hoursPurchased - Sum of time entries against contractContracts can be linked to SLAs:
| SLA Metric | Description |
|---|---|
| Response Time | Time to first response |
| Resolution Time | Time to resolve |
| Uptime | System availability % |
| Business Hours | When SLA applies |
SLA violations trigger alerts and can affect contract terms.
| Code | Message | Resolution |
|---|---|---|
| 400 | Invalid contract type | Use valid contract type ID |
| 400 | EndDate before StartDate | Fix date sequence |
| 409 | Cannot modify - has billing | Adjust dates only |
| 404 | ServiceID not found | Verify service exists |
"CompanyID is required" - Must associate with a company
"StartDate is required" - All contracts need start date
"Invalid service for contract type" - Service must match contract type
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.