A contract is the container for the products or services that are provided to a specified customer. It can control settings such as renewals and terms, capture compliance information, and record the transaction history for all contract lines and expenses.
Returns up to 100 object references from the collection with a key, ID, and link for each contract. This operation is mostly for use in testing; use query to find objects that meet certain criteria and to specify properties that are returned.
Subscription | Contract Core Billing |
---|---|
User type | Business, Employee, Project Manager, Warehouse |
Permissions | List Contracts |
OK
Bad Request
/** * Requires libcurl */ $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer <YOUR_TOKEN_HERE>" ], CURLOPT_PORT => "", CURLOPT_URL => "https://api.intacct.com/ia/api/v1/objects/contracts/contract", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error #:" . $error; } else { echo $response; }
{- "ia::result": [
- {
- "key": "84",
- "id": "84",
- "href": "/objects/contracts/contract/84"
}, - {
- "key": "107",
- "id": "107",
- "href": "/objects/contracts/contract/107"
}, - {
- "key": "108",
- "id": "108",
- "href": "/objects/contracts/contract/108"
}, - {
- "key": "56",
- "id": "56",
- "href": "/objects/contracts/contract/56"
}
], - "ia::meta": {
- "totalCount": 4,
- "start": 1,
- "pageSize": 100,
- "next": null,
- "previous": null
}
}
Creates a new contract.
id
is required if document sequencing is not enabled for contracts. If document sequencing is enabled, you can provide an id
value to use instead of the document sequence value.
Subscription | Contract Core Billing |
---|---|
User type | Business |
Permissions | Add Contracts |
id | string Unique identifier for the contract. Example: "CON-0045-1" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
name | string Contract name. Example: "ACME Widgets - Service" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description | string or null Description of the contract. Example: "YMCA of Metro Atlanta - 360 Support" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string Default: "active" Object status. Active objects are fully functional. Inactive objects are essentially hidden and cannot be used or referenced. Example: "active" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string Default: "inProgress" State of the contract. Use
Example: "inProgress" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
application | string Default: "contracts" Contract Application.
Example: "contracts" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
startDate | string <date> Contract start date. The start date cannot be changed after a contract line has been posted to the contract. For evergreen contracts the start date determines the start day of each recurring billing period. The contract line billing frequency (Monthly, Quarterly, or Annually) determines the length of each recurring billing period. Example: "2025-01-01" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
endDate | string <date> Contract end date. The end date drives the renewal process. Required when Example: "2024-12-31" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Contract contacts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cancellationDate | string or null <date> The effective date for the contract cancellation. Example: "2023-04-01" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
billingFrequency | string or null Default: null Billing frequency. Example: "monthly" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object AR payment term for this contract. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Billing price to use for all contract lines. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object MEA price list. Only applicable if | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
holdBilling | boolean or null Indicates if the contract billing schedule is on hold. You cannot generate invoices from the schedule while it's on hold. Only applicable if Example: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
holdRevenue | boolean or null Indicates if the contract revenue schedule is on hold. You cannot post recognition from the schedule while it's on hold. Example: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
holdExpense | boolean or null Indicates if the contract expenses are on hold. Example: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Currencies used in the contract. Required if company is configured for multi-currency. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
isRenewable | boolean Default: false Indicates whether the contract is enabled for renewal. Only applicable if Example: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Contract renewal settings. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
billInAdvanceLength | integer or null Number of Example: 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
billInAdvancePeriod | string or null Default: null Bill in advance time units. Must be set to Example: "months" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Contract type for grouping this contract. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deferEstimatedTimeBasedRevenueBy | string or null Default: null Specifies how Intacct should combine the timesheet hours associated with a Time & Materials project:
Only applicable if Example: "projectAndTask" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contractTotalAmount | string The total flat/fixed amount value of the contract (does not include usage). Example: "2300" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
billedAmount | string The total amount invoiced from the contract. Example: "1000" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Supporting file attachments for the contract. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
postMemo | string or null Comments regarding the posting of the contract. Example: "Cash customer" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Created
Bad Request
/** * Requires libcurl */ $curl = curl_init(); $payload = array( "id" => "ProjectTime_Completed_Flows34_45_4", "startDate" => "2023-01-01", "endDate" => "2023-12-31", "name" => "ProjectTime_Completed_Flows", "dimensions" => array( "customer" => array( "key" => "1" ), "location" => array( "key" => "1" ), "department" => array( "key" => "1" ) ), "currency" => array( "baseCurrency" => "USD", "txnCurrency" => "USD", "exchangeRateType" => "Intacct Daily Rate" ), "paymentTerm" => array( "key" => "1" ) ); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer <YOUR_TOKEN_HERE>", "Content-Type: application/json" ], CURLOPT_POSTFIELDS => json_encode($payload), CURLOPT_PORT => "", CURLOPT_URL => "https://api.intacct.com/ia/api/v1/objects/contracts/contract", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "POST", ]); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error #:" . $error; } else { echo $response; }
{- "ia::result": {
- "key": "124",
- "id": "ProjectTime_Completed_Flows34_45_4",
- "href": "/objects/contracts/contract/124"
}, - "ia::meta": {
- "totalCount": 1,
- "totalSuccess": 1,
- "totalError": 0
}
}
Returns detailed information for a specified contract.
Subscription | Contract Core Billing |
---|---|
User type | Business, Employee, Project Manager, Warehouse |
Permissions | View Contracts |
key required | string System-assigned key for the contract. Example: 24 |
OK
Bad Request
/** * Requires libcurl */ const key = "YOUR_key_PARAMETER"; $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer <YOUR_TOKEN_HERE>" ], CURLOPT_PORT => "", CURLOPT_URL => "https://api.intacct.com/ia/api/v1/objects/contracts/contract/" . key, CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error #:" . $error; } else { echo $response; }
{- "ia::result": {
- "key": "2",
- "parent": {
- "key": null,
- "id": null
}, - "description": "contract with 2 lines all values",
- "id": "ProjectTime_Completed_Flows34_45_4",
- "state": "inProgress",
- "application": "contracts",
- "isRenewable": false,
- "renewedContract": {
- "key": null,
- "id": null
}, - "renewal": {
- "contractTermType": "termed",
- "template": "RC_24M_Price_SO",
- "termLength": 24,
- "termPeriod": "months",
- "billInAdvanceLength": null,
- "billInAdvancePeriod": null,
- "triggerDate": null,
- "date": null
}, - "startDate": "2016-01-01",
- "endDate": "2016-12-31",
- "cancellationDate": "2016-03-01",
- "name": "BaseSanity",
- "dimensions": {
- "customer": {
- "key": "2",
- "id": "2",
- "name": "Logic Solutions",
- "href": "/objects/accounts-receivable/customer/2"
}, - "location": {
- "key": "2",
- "id": "2",
- "name": "India",
- "href": "/objects/company-config/location/2"
}, - "department": {
- "key": "4",
- "id": "4",
- "name": "Human Resources",
- "href": "/objects/company-config/department/4"
}, - "project": {
- "key": null,
- "id": null,
- "name": null
}, - "vendor": {
- "key": "54",
- "id": "208",
- "name": "Quick and Easy Payroll",
- "href": "/objects/accounts-payable/vendor/54"
}, - "employee": {
- "key": "55",
- "id": "EM 2",
- "name": "Ravi",
- "href": "/objects/company-config/employee/55"
}, - "class": {
- "key": "15",
- "id": "vsoe_class_004_R",
- "name": "vsoe_class_name_004_R",
- "href": "/objects/company-config/class/15"
}
}, - "contacts": {
- "billTo": {
- "key": "117",
- "id": "Logic Solutions(C2)",
- "email1": "qa-auto-emails@intacct.com",
- "email2": "twoaddres@yahoo.com",
- "href": "/objects/company-config/contact/117"
}, - "shipTo": {
- "key": "117",
- "id": "Logic Solutions(C2)",
- "email1": "qa-auto-emails@intacct.com",
- "email2": "twoaddres@yahoo.com",
- "href": "/objects/company-config/contact/117"
}, - "additionalContact": {
- "key": "117",
- "id": "Logic Solutions(C2)",
- "email1": "qa-auto-emails@intacct.com",
- "email2": "twoaddres@yahoo.com",
- "href": "/objects/company-config/contact/117"
}
}, - "billingFrequency": "quarterly",
- "paymentTerm": {
- "key": "16",
- "id": "N90",
- "href": "/objects/accounts-receivable/term/16"
}, - "billingPriceList": {
- "key": "24",
- "id": "SaaSy Pricing",
- "href": "/objects/contracts/billing-price-list/24"
}, - "meaPriceList": {
- "id": "2009 VSOE Price List USD_R",
- "key": "2",
- "href": "/objects/contracts/mea-price-list/2"
}, - "holdBilling": false,
- "holdRevenue": false,
- "holdExpense": false,
- "currency": {
- "baseCurrency": "INR",
- "txnCurrency": "INR",
- "exchangeRateType": "EUR-Rate"
}, - "billInAdvanceLength": null,
- "billInAdvancePeriod": null,
- "audit": {
- "createdDateTime": "2022-07-13T04:42:34Z",
- "modifiedDateTime": "2022-07-13T04:42:34Z",
- "createdBy": "1",
- "modifiedBy": "1"
}, - "attachment": {
- "id": null,
- "key": null
}, - "status": "active",
- "contractType": {
- "key": null,
- "name": null
}, - "deferEstimatedTimeBasedRevenueBy": null,
- "postMemo": null,
- "contractTotalAmount": 1728,
- "billedAmount": 0,
- "href": "/objects/contracts/contract/2"
}, - "ia::meta": {
- "totalCount": 1,
- "totalSuccess": 1,
- "totalError": 0
}
}
Updates an existing contract by setting field values. Any fields not provided remain unchanged.
Subscription | Contract Core Billing |
---|---|
User type | Business |
Permissions | Edit Contract |
key required | string System-assigned key for the contract. Example: 24 |
name | string Contract name. Example: "ACME Widgets - Service" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description | string or null Description of the contract. Example: "YMCA of Metro Atlanta - 360 Support" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
status | string Default: "active" Object status. Active objects are fully functional. Inactive objects are essentially hidden and cannot be used or referenced. Example: "active" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
state | string Default: "inProgress" State of the contract. Use
Example: "inProgress" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
application | string Default: "contracts" Contract Application.
Example: "contracts" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
startDate | string <date> Contract start date. The start date cannot be changed after a contract line has been posted to the contract. For evergreen contracts the start date determines the start day of each recurring billing period. The contract line billing frequency (Monthly, Quarterly, or Annually) determines the length of each recurring billing period. Example: "2025-01-01" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
endDate | string <date> Contract end date. The end date drives the renewal process. Required when Example: "2024-12-31" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Contract contacts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cancellationDate | string or null <date> The effective date for the contract cancellation. Example: "2023-04-01" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
billingFrequency | string or null Default: null Billing frequency. Example: "monthly" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object AR payment term for this contract. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Billing price to use for all contract lines. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object MEA price list. Only applicable if | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
holdBilling | boolean or null Indicates if the contract billing schedule is on hold. You cannot generate invoices from the schedule while it's on hold. Only applicable if Example: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
holdRevenue | boolean or null Indicates if the contract revenue schedule is on hold. You cannot post recognition from the schedule while it's on hold. Example: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
holdExpense | boolean or null Indicates if the contract expenses are on hold. Example: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Currencies used in the contract. Required if company is configured for multi-currency. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
isRenewable | boolean Default: false Indicates whether the contract is enabled for renewal. Only applicable if Example: false | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Contract renewal settings. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
billInAdvanceLength | integer or null Number of Example: 1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
billInAdvancePeriod | string or null Default: null Bill in advance time units. Must be set to Example: "months" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Contract type for grouping this contract. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
deferEstimatedTimeBasedRevenueBy | string or null Default: null Specifies how Intacct should combine the timesheet hours associated with a Time & Materials project:
Only applicable if Example: "projectAndTask" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
contractTotalAmount | string The total flat/fixed amount value of the contract (does not include usage). Example: "2300" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
billedAmount | string The total amount invoiced from the contract. Example: "1000" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object Supporting file attachments for the contract. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
postMemo | string or null Comments regarding the posting of the contract. Example: "Cash customer" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
object | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
OK
Bad Request
/** * Requires libcurl */ const key = "YOUR_key_PARAMETER"; $curl = curl_init(); $payload = array( "location" => array( "key" => "6" ), "contacts" => array( "billTo" => array( "key" => "2" ) ) ); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer <YOUR_TOKEN_HERE>", "Content-Type: application/json" ], CURLOPT_POSTFIELDS => json_encode($payload), CURLOPT_PORT => "", CURLOPT_URL => "https://api.intacct.com/ia/api/v1/objects/contracts/contract/" . key, CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "PATCH", ]); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error #:" . $error; } else { echo $response; }
{- "ia::result": {
- "key": "121",
- "id": "CON-0045-1",
- "href": "/objects/contracts/contract/121"
}, - "ia::meta": {
- "totalCount": 1,
- "totalSuccess": 1,
- "totalError": 0
}
}
Deletes a contract. You can delete a contract if there are no related records. For example, you can delete a contract if there are no contract lines, no expense lines, no signed-off compliance tasks, no notes, and so on. If there are related records, delete each record and then delete the contract.
If you cannot delete a related record, cancel the contract instead.
Subscription | Contract Core Billing |
---|---|
User type | Business |
Permissions | Delete Contracts |
key required | string System-assigned key for the contract. Example: 24 |
No Content
Bad Request
/** * Requires libcurl */ const key = "YOUR_key_PARAMETER"; $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer <YOUR_TOKEN_HERE>" ], CURLOPT_PORT => "", CURLOPT_URL => "https://api.intacct.com/ia/api/v1/objects/contracts/contract/" . key, CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "DELETE", ]); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error #:" . $error; } else { echo $response; }
{- "ia::result": {
- "ia::error": {
- "code": "invalidRequest",
- "message": "A POST request requires a payload",
- "errorId": "REST-1028",
- "additionalInfo": {
- "messageId": "IA.REQUEST_REQUIRES_A_PAYLOAD",
- "placeholders": {
- "OPERATION": "POST"
}, - "propertySet": { }
}, - "supportId": "Kxi78%7EZuyXBDEGVHD2UmO1phYXDQAAAAo"
}
}, - "ia::meta": {
- "totalCount": 1,
- "totalSuccess": 0,
- "totalError": 1
}
}
Use the query service to find contracts that meet certain criteria and to specify the properties that are returned.
OK
Bad Request
/** * Requires libcurl */ $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_HTTPHEADER => [ "Authorization: Bearer <YOUR_TOKEN_HERE>" ], CURLOPT_PORT => "", CURLOPT_URL => "https://api.intacct.com/ia/api/v1/services/core/query", CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => "POST", ]); $response = curl_exec($curl); $error = curl_error($curl); curl_close($curl); if ($error) { echo "cURL Error #:" . $error; } else { echo $response; }
{- "ia::result": {
- "ia::error": {
- "code": "invalidRequest",
- "message": "A POST request requires a payload",
- "errorId": "REST-1028",
- "additionalInfo": {
- "messageId": "IA.REQUEST_REQUIRES_A_PAYLOAD",
- "placeholders": {
- "OPERATION": "POST"
}, - "propertySet": { }
}, - "supportId": "Kxi78%7EZuyXBDEGVHD2UmO1phYXDQAAAAo"
}
}, - "ia::meta": {
- "totalCount": 1,
- "totalSuccess": 0,
- "totalError": 1
}
}