Contracts

A contract represents a customer agreement that defines 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.

For more information, read about contracts in the Sage Intacct Help Center

List contracts

get/objects/contracts/contract

Returns a collection with a key, ID, and link for each contract. This operation is mostly for use in testing; use the query service to find objects that meet certain criteria and to specify properties that are returned.

SecurityOAuth2
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "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
    }
}

Create a contract

post/objects/contracts/contract

Creates a new contract. If document sequencing is not enabled for contracts, id is required. If it is enabled, the id is optional unless you wish to override the system-generated id.

SecurityOAuth2
Request
Request Body schema: application/json
required
id
string

Unique identifier for the contract.

Example: "CON-0045-1"
name
string

Name of the contract.

Example: "Nexora Solutions Inc - Cloud Platform Licensing Agreement"
description
string or null

Description of the contract.

Example: "Annual licensing agreement for cloud platform services. Covers standard enterprise subscription terms and service-level commitments.\n"
status
string
Default: "active"

Object status. Active objects are fully functional. Inactive objects are essentially hidden and cannot be used or referenced.

Enum: "active" "inactive"
Example: "active"
state
string
Default: "inProgress"

Indicates the current state of the contract. Use draft when creating a contract not yet ready for posting to the general ledger.

draft - The contract is saved, but not posted. A draft contact is not included in the General Ledger.
inProgress - The contract is active and posted. It remains in this state until renewed, cancelled or ended without renewal.
canceled - All revenue, expense and billing schedules for all associated contract lines have been canceled.
notRenewed - The contract completed its term and was not renewed. Applies only when contractTermType is set to termed.
renewed - The contract has been renewed. Applies only when contractTermType is set to termed.

Enum: "canceled" "draft" "inProgress" "notRenewed" "renewed"
Example: "inProgress"
application
string
Default: "contracts"

Defines how a contract is used within Sage Intacct.

contracts - Standard contract used for billing and revenue recognition. Available in the Contracts application which support subscription billing and revenue management.
orderEntry - Tracking-only contracts used for reporting or analysis. Available in both the Contracts and Order Entry applications and can be used as a dimension.

For more information, read about the types of contracts tracked in the Sage Intacct Help Center.

Enum: "contracts" "orderEntry"
Example: "contracts"
startDate
string <date>

Indicates the date the contract begins. Once a contract line has been posted, the start date cannot be changed.

For evergreen contracts, the start date also determines the start of each recurring billing period. The billing frequency on the contract line (monthly, quarterly, or annually) defines the length of each period.

For more information, read the quick reference guide for evergreen contracts in the Sage Intacct Help Center.

Example: "2025-01-01"
endDate
string <date>

Indicates the date the contract ends. This date determines the timing of the renewal process and is required when contractTermType is set to termed.

Example: "2024-12-31"
object

Specifies the contact details associated with the contract.

object

Specifies the shipping contact details associated with the contract. If not provided, the shipTo contact defined in the customer record is used.

key
string

Unique key for the shipping contact.

Example: "1482"
id
string

Identifier for the shipping contact.

Example: "Gruppen (Estate Europe) Services"
object

Specifies the billing contact details associated with the contract. If not provided, the billTo contact defined in the customer record is used.

key
string

Unique key for the billing contact.

Example: "1482"
id
string

Identifier for the billing contact.

Example: "Gruppen (Estate Europe) Services"
object

Specifies any additional contact details associated with the contract. (Order Entry).

key
string or null

Unique key for the additional contact.

Example: "1482"
id
string or null

Identifier for the additional contact.

Example: "Gruppen (Estate Europe) Services"
cancellationDate
string or null <date>

Specifies the date the contract cancellation takes effect. This marks the end of all billing, revenue, and expense schedules associated with the contract.

Example: "2023-04-01"
billingFrequency
string or null
Default: null

Specifies how often the customer is billed under the contract and determines the interval for generating billing schedules.

Enum: "annually" "monthly" null "quarterly"
Example: "monthly"
object

Specifies the Accounts Receivable (AR) payment term for the contract.

key
string

Unique key for the payment term.

Example: "16"
id
string

Identifier for the payment term.

Example: "N90"
object

Specifies the price list used to determine billing rates for all contract lines. Ensures consistent pricing across the contract.

key
string or null

Unique key for the billing price list.

Example: "12"
id
string or null

Identifier for the billing price list.

Example: "SoftwarePackages"
object

Specifies the price list used for multiple element arrangement (MEA) allocation. Only applicable when contractTermType is set to termed. (Contract Advanced Revenue Recognition subscription)

key
string or null

Unique key for the MEA price list.

Example: "12"
id
string or null

Identifier for the MEA price list.

Example: "Services MEA Price List"
holdBilling
boolean or null

Indicates whether the contract's billing schedule is on hold. When on hold, the system does not generate invoices from the schedule. Applicable only when contractTermType is set to termed.

Example: false
holdRevenue
boolean or null

Indicates whether the contract's revenue schedule is on hold. While on hold, revenues cannot be posted from the schedule.

Example: false
holdExpense
boolean or null

Indicates whether the contract's expense schedule is on hold. While on hold, the system does not post expenses from the schedule.

Example: false
object

For multi-currency companies, specifies the currencies used in the contract.

exchangeRateType
string

Specifies the exchange rate type used to convert foreign currencies. If not provided, the system uses the Intacct Daily Rate. Once a contract line has been posted, the exchange rate cannot be changed.

Example: "Corporate Rate"
baseCurrency
string

Base currency for the entity or company.

Example: "USD"
txnCurrency
string

Specifies the currency in which the contract transactions are recorded. If not set, the system uses the currency defined for the customer. All contract lines must use the same transaction currency. Once a contract line has been posted, the currency cannot be changed.

Example: "USD"
isRenewable
boolean
Default: false

Indicates whether the contract is enabled for renewal. Applicable only when contractTermType is set to termed.

Example: false
object

Contract renewal settings.

template
string or null

Specifies the template used to generate renewal contracts. Applicable only when renewal is seet to true.

Example: "Standard Annual SaaS Renewal - 12 Month Term"
contractTermType
string
Default: "termed"

Defines the duration structure of the contract.

termed - A fixed-duration contract that typically uses traditional payment terms, such as Net 30.
evergreen - A perpetual contract with no defined end date that continues until explicitly canceled.

Enum: "evergreen" "termed"
Example: "termed"
termLength
integer or null

Specifies how often the contract renews, measured in renewal term periods (days, months, or years). Applicable only when contractTermType is set to termed.

Example: 12
termPeriod
string
Default: "months"

Specifies the unit of time for the renewal term (days, months, or years). Applicable only when contractTermType is set to termed.

Enum: "days" "months" "years"
Example: "months"
triggerDate
string or null <date>

Specifies the date when Sage Intacct generates the the child renewal contract. It is the contract end date adjusted by the earlier of the following:

  • The number of days specified in the selected renewal or evergreen template.
  • The bill-in-advance period for the renewal.

This field has no value if the contract is not set to renew or if the contract's is in the draft state.

Example: "2024-12-01"
date
string or null <date>

Specifies the effective date of the renewal contract.

Example: "2024-12-01"
billInAdvanceLength
integer or null

Specifies the number of billInAdvancedPeriod units (days or months) before the renewal date to bill the customer. Overrides the bill-in-advance settings defined for the customer.

Example: 2
billInAdvancePeriod
string or null
Default: null

Specifies the time unit (days or months) used for billing in advance of the renewal date. Required if bill-in-advance is enabled for renewals.

Enum: "days" "months" null
Example: "days"
billInAdvanceLength
integer or null

Specifies the number of billInAdvancedPeriod units (days or months) before the contract start date to bill the customer. Overrides bill-in-advance settings defined for the customer.

Example: 1
billInAdvancePeriod
string or null
Default: null

Specifies the time unit (days or months) used for billing in advance of the contract start date.

Enum: "days" "months" null
Example: "months"
object

Specifies the contract type used to group and categorize the contract for reporting and tracking.

key
string or null

Unique key for the contract type.

Example: "1"
name
string or null
Deprecated

This field is deprecated, please use id field.

Example: "service"
id
string or null

Contract type name.

Example: "service"
deferEstimatedTimeBasedRevenueBy
string or null
Default: null

Defines how Sage Intacct determines actual revenue for the contract lines based on timesheet hours recorded against time and materials projects in the contract. Applicable only if contractTermType is set to termed and the company is set to defer revenue for time and materials projects.

project - Uses all timesheet hours linked to the project. A contract can include only one inProgress contract line for each project.
projectAndItem - Uses timesheet hours linked to both a specific project and item. Each project/item combination must be unique across contract lines in the project.
projectAndTask - Uses timesheet hours linked to both a specific task and project. Each task/project combination must be unique across contract lines in the project.

For more information, read about estimated time-based recognition in the Sage Intacct Help Center

Enum: null "project" "projectAndItem" "projectAndTask"
Example: "projectAndTask"
object

Supporting files related to the contract, such as signed agreements or terms.

key
string or null

Unique key for the attachment.

Example: "18"
id
string or null

Identifier for the attachment.

Example: "18"
postMemo
string or null

Additional comments or notes related to the posting of the contract.

Example: "Initial contract posted after legal approval."
object
object

Location or entity associated with the contract. This field is required in a multi-entity environment. Contract lines are restricted to the specified location or entity or to a child of the location or entity.

key
string

Location Key

Example: "22"
id
string

Location

Example: "LOC-22"
object

Department associated with the contract.

key
string or null

Department Key

Example: "11"
id
string or null

Department

Example: "DEP-11"
object
key
string or null

Class Key

Example: "731"
id
string or null

Class ID

Example: "REST_CLS_001"
object
id
string or null

Task ID

Example: "1"
key
string or null

Task Key

Example: "1"
object
key
string or null

Vendor Key

Example: "357"
id
string or null

Vendor ID

Example: "1605212096809"
object

Customer that the contract is associated with. The customer cannot be changed after a contract line has been posted to the contract.

key
string

Customer Key

Example: "250"
id
string

Customer ID

Example: "CUS-RT-0011"
object
key
string or null

Project Key

Example: "2"
id
string or null

Project ID

Example: "NET-XML30-2"
object
key
string or null

Employee Key

Example: "10"
id
string or null

Employee ID

Example: "EMP-10"
Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "id": "ProjectTime_Completed_Flows34_45_4",
  • "startDate": "2023-01-01",
  • "endDate": "2023-12-31",
  • "name": "ProjectTime_Completed_Flows",
  • "dimensions": {
    • "customer": {
      • "key": "6"
      },
    • "location": {
      • "key": "1"
      },
    • "department": {
      • "key": "11"
      }
    },
  • "currency": {
    • "baseCurrency": "USD",
    • "txnCurrency": "USD",
    • "exchangeRateType": "Intacct Daily Rate"
    },
  • "paymentTerm": {
    • "key": "1"
    }
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "124",
    • "id": "ProjectTime_Completed_Flows34_45_4",
    • "href": "/objects/contracts/contract/124"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get a contract

get/objects/contracts/contract/{key}

Returns detailed information for a specified contract.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the contract.

Example: 24
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "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",
    • "entity": {
      • "key": "54",
      • "id": "Western Region",
      • "name": "Western Region",
      • "href": "/objects/company-config/entity/54"
      },
    • "dimensions": {
      • "customer": {
        },
      • "location": {
        },
      • "department": {
        },
      • "project": {
        },
      • "vendor": {
        },
      • "employee": {
        },
      • "class": {
        }
      },
    • "contacts": {},
    • "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": "2025-02-15T03:03:31Z",
      • "modifiedDateTime": "2025-02-15T03:03:32Z",
      • "createdByUser": {
        },
      • "createdBy": "159",
      • "modifiedByUser": {
        },
      • "modifiedBy": "159"
      },
    • "attachment": {
      • "id": null,
      • "key": null
      },
    • "status": "active",
    • "contractType": {
      • "key": null,
      • "name": null
      },
    • "deferEstimatedTimeBasedRevenueBy": null,
    • "postMemo": null,
    • "contractTotalAmount": "1728",
    • "billedAmount": "1728",
    • "href": "/objects/contracts/contract/2"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a contract

patch/objects/contracts/contract/{key}

Updates an existing contract by setting field values. Any fields not provided remain unchanged.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the contract.

Example: 24
Request Body schema: application/json
name
string

Name of the contract.

Example: "Nexora Solutions Inc - Cloud Platform Licensing Agreement"
description
string or null

Description of the contract.

Example: "Annual licensing agreement for cloud platform services. Covers standard enterprise subscription terms and service-level commitments.\n"
status
string
Default: "active"

Object status. Active objects are fully functional. Inactive objects are essentially hidden and cannot be used or referenced.

Enum: "active" "inactive"
Example: "active"
state
string
Default: "inProgress"

Indicates the current state of the contract. Use draft when creating a contract not yet ready for posting to the general ledger.

draft - The contract is saved, but not posted. A draft contact is not included in the General Ledger.
inProgress - The contract is active and posted. It remains in this state until renewed, cancelled or ended without renewal.
canceled - All revenue, expense and billing schedules for all associated contract lines have been canceled.
notRenewed - The contract completed its term and was not renewed. Applies only when contractTermType is set to termed.
renewed - The contract has been renewed. Applies only when contractTermType is set to termed.

Enum: "canceled" "draft" "inProgress" "notRenewed" "renewed"
Example: "inProgress"
application
string
Default: "contracts"

Defines how a contract is used within Sage Intacct.

contracts - Standard contract used for billing and revenue recognition. Available in the Contracts application which support subscription billing and revenue management.
orderEntry - Tracking-only contracts used for reporting or analysis. Available in both the Contracts and Order Entry applications and can be used as a dimension.

For more information, read about the types of contracts tracked in the Sage Intacct Help Center.

Enum: "contracts" "orderEntry"
Example: "contracts"
startDate
string <date>

Indicates the date the contract begins. Once a contract line has been posted, the start date cannot be changed.

For evergreen contracts, the start date also determines the start of each recurring billing period. The billing frequency on the contract line (monthly, quarterly, or annually) defines the length of each period.

For more information, read the quick reference guide for evergreen contracts in the Sage Intacct Help Center.

Example: "2025-01-01"
endDate
string <date>

Indicates the date the contract ends. This date determines the timing of the renewal process and is required when contractTermType is set to termed.

Example: "2024-12-31"
object

Specifies the contact details associated with the contract.

object

Specifies the shipping contact details associated with the contract. If not provided, the shipTo contact defined in the customer record is used.

key
string

Unique key for the shipping contact.

Example: "1482"
id
string

Identifier for the shipping contact.

Example: "Gruppen (Estate Europe) Services"
object

Specifies the billing contact details associated with the contract. If not provided, the billTo contact defined in the customer record is used.

key
string

Unique key for the billing contact.

Example: "1482"
id
string

Identifier for the billing contact.

Example: "Gruppen (Estate Europe) Services"
object

Specifies any additional contact details associated with the contract. (Order Entry).

key
string or null

Unique key for the additional contact.

Example: "1482"
id
string or null

Identifier for the additional contact.

Example: "Gruppen (Estate Europe) Services"
cancellationDate
string or null <date>

Specifies the date the contract cancellation takes effect. This marks the end of all billing, revenue, and expense schedules associated with the contract.

Example: "2023-04-01"
billingFrequency
string or null
Default: null

Specifies how often the customer is billed under the contract and determines the interval for generating billing schedules.

Enum: "annually" "monthly" null "quarterly"
Example: "monthly"
object

Specifies the Accounts Receivable (AR) payment term for the contract.

key
string

Unique key for the payment term.

Example: "16"
id
string

Identifier for the payment term.

Example: "N90"
object

Specifies the price list used to determine billing rates for all contract lines. Ensures consistent pricing across the contract.

key
string or null

Unique key for the billing price list.

Example: "12"
id
string or null

Identifier for the billing price list.

Example: "SoftwarePackages"
object

Specifies the price list used for multiple element arrangement (MEA) allocation. Only applicable when contractTermType is set to termed. (Contract Advanced Revenue Recognition subscription)

key
string or null

Unique key for the MEA price list.

Example: "12"
id
string or null

Identifier for the MEA price list.

Example: "Services MEA Price List"
holdBilling
boolean or null

Indicates whether the contract's billing schedule is on hold. When on hold, the system does not generate invoices from the schedule. Applicable only when contractTermType is set to termed.

Example: false
holdRevenue
boolean or null

Indicates whether the contract's revenue schedule is on hold. While on hold, revenues cannot be posted from the schedule.

Example: false
holdExpense
boolean or null

Indicates whether the contract's expense schedule is on hold. While on hold, the system does not post expenses from the schedule.

Example: false
object

For multi-currency companies, specifies the currencies used in the contract.

exchangeRateType
string

Specifies the exchange rate type used to convert foreign currencies. If not provided, the system uses the Intacct Daily Rate. Once a contract line has been posted, the exchange rate cannot be changed.

Example: "Corporate Rate"
baseCurrency
string

Base currency for the entity or company.

Example: "USD"
txnCurrency
string

Specifies the currency in which the contract transactions are recorded. If not set, the system uses the currency defined for the customer. All contract lines must use the same transaction currency. Once a contract line has been posted, the currency cannot be changed.

Example: "USD"
isRenewable
boolean
Default: false

Indicates whether the contract is enabled for renewal. Applicable only when contractTermType is set to termed.

Example: false
object

Contract renewal settings.

template
string or null

Specifies the template used to generate renewal contracts. Applicable only when renewal is seet to true.

Example: "Standard Annual SaaS Renewal - 12 Month Term"
contractTermType
string
Default: "termed"

Defines the duration structure of the contract.

termed - A fixed-duration contract that typically uses traditional payment terms, such as Net 30.
evergreen - A perpetual contract with no defined end date that continues until explicitly canceled.

Enum: "evergreen" "termed"
Example: "termed"
termLength
integer or null

Specifies how often the contract renews, measured in renewal term periods (days, months, or years). Applicable only when contractTermType is set to termed.

Example: 12
termPeriod
string
Default: "months"

Specifies the unit of time for the renewal term (days, months, or years). Applicable only when contractTermType is set to termed.

Enum: "days" "months" "years"
Example: "months"
triggerDate
string or null <date>

Specifies the date when Sage Intacct generates the the child renewal contract. It is the contract end date adjusted by the earlier of the following:

  • The number of days specified in the selected renewal or evergreen template.
  • The bill-in-advance period for the renewal.

This field has no value if the contract is not set to renew or if the contract's is in the draft state.

Example: "2024-12-01"
date
string or null <date>

Specifies the effective date of the renewal contract.

Example: "2024-12-01"
billInAdvanceLength
integer or null

Specifies the number of billInAdvancedPeriod units (days or months) before the renewal date to bill the customer. Overrides the bill-in-advance settings defined for the customer.

Example: 2
billInAdvancePeriod
string or null
Default: null

Specifies the time unit (days or months) used for billing in advance of the renewal date. Required if bill-in-advance is enabled for renewals.

Enum: "days" "months" null
Example: "days"
billInAdvanceLength
integer or null

Specifies the number of billInAdvancedPeriod units (days or months) before the contract start date to bill the customer. Overrides bill-in-advance settings defined for the customer.

Example: 1
billInAdvancePeriod
string or null
Default: null

Specifies the time unit (days or months) used for billing in advance of the contract start date.

Enum: "days" "months" null
Example: "months"
object

Specifies the contract type used to group and categorize the contract for reporting and tracking.

key
string or null

Unique key for the contract type.

Example: "1"
name
string or null
Deprecated

This field is deprecated, please use id field.

Example: "service"
id
string or null

Contract type name.

Example: "service"
deferEstimatedTimeBasedRevenueBy
string or null
Default: null

Defines how Sage Intacct determines actual revenue for the contract lines based on timesheet hours recorded against time and materials projects in the contract. Applicable only if contractTermType is set to termed and the company is set to defer revenue for time and materials projects.

project - Uses all timesheet hours linked to the project. A contract can include only one inProgress contract line for each project.
projectAndItem - Uses timesheet hours linked to both a specific project and item. Each project/item combination must be unique across contract lines in the project.
projectAndTask - Uses timesheet hours linked to both a specific task and project. Each task/project combination must be unique across contract lines in the project.

For more information, read about estimated time-based recognition in the Sage Intacct Help Center

Enum: null "project" "projectAndItem" "projectAndTask"
Example: "projectAndTask"
object

Supporting files related to the contract, such as signed agreements or terms.

key
string or null

Unique key for the attachment.

Example: "18"
id
string or null

Identifier for the attachment.

Example: "18"
postMemo
string or null

Additional comments or notes related to the posting of the contract.

Example: "Initial contract posted after legal approval."
object
object

Location or entity associated with the contract. This field is required in a multi-entity environment. Contract lines are restricted to the specified location or entity or to a child of the location or entity.

key
string

Location Key

Example: "22"
id
string

Location

Example: "LOC-22"
object

Department associated with the contract.

key
string or null

Department Key

Example: "11"
id
string or null

Department

Example: "DEP-11"
object
key
string or null

Class Key

Example: "731"
id
string or null

Class ID

Example: "REST_CLS_001"
object
id
string or null

Task ID

Example: "1"
key
string or null

Task Key

Example: "1"
object
key
string or null

Vendor Key

Example: "357"
id
string or null

Vendor ID

Example: "1605212096809"
object

Customer that the contract is associated with. The customer cannot be changed after a contract line has been posted to the contract.

key
string

Customer Key

Example: "250"
id
string

Customer ID

Example: "CUS-RT-0011"
object
key
string or null

Project Key

Example: "2"
id
string or null

Project ID

Example: "NET-XML30-2"
object
key
string or null

Employee Key

Example: "10"
id
string or null

Employee ID

Example: "EMP-10"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "location": {
    • "key": "6"
    },
  • "contacts": {
    • "billTo": {
      • "key": "2"
      }
    }
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "121",
    • "id": "CON-0045-1",
    • "href": "/objects/contracts/contract/121"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a contract

delete/objects/contracts/contract/{key}

Deletes a contract (if there are no related records). You can delete a contract only if there are no related records, such as contract lines, expense lines or other associated records. If related records exist, your must delete them before deleting the contract. If a related record cannot be deleted, cancel the contract instead.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the contract.

Example: 24
Responses
204

No Content

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "ia::error": {
      • "code": "invalidRequest",
      • "message": "A POST request requires a payload",
      • "errorId": "REST-1028",
      • "additionalInfo": {
        },
      • "supportId": "Kxi78%7EZuyXBDEGVHD2UmO1phYXDQAAAAo"
      }
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 0,
    • "totalError": 1
    }
}

Renew a contract

post/workflows/contracts/contract/renew

Renews an existing contracts. Renewable contracts that are current and active, have the inProgress status. On the renewal trigger date, Sage Intacct sets the state of the original (source) contract to renewed and creates a new child contract, which only contains contract lines that were selected for renewal. The start date of the new contract is the source contract end date plus 1 day.

If a contract completes its term without being renewed, Intacct changes the contract state from inProgress to notRenewed. You cannot make changes to a contract that is notRenewed, but you can continue to generate invoices and recognize revenue and expenses as applicable.

For more information, read about contract renewals in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
key
required
string

System-assigned unique key of the contract.

Example: "518"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "key": "895"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "895",
    • "state": "renewed",
    • "href": "/objects/contracts/contract/895"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Expire a contract

post/workflows/contracts/contract/expire

Expires a contract. If a contract completes its term without being renewed, Sage Intacct changes the contract state from inProgress to notRenewed. You cannot make changes to a contract that is notRenewed, but you can continue to generate invoices and recognize revenue and expenses as applicable.

SecurityOAuth2
Request
Request Body schema: application/json
key
required
string

System-assigned unique key of the contract.

Example: "518"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "key": "895"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "895",
    • "state": "notRenewed",
    • "href": "/objects/contracts/contract/895"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Uncancel a contract

post/workflows/contracts/contract/uncancel

Uncancels a contract. When you uncancel a contract, Sage Intacct changes the contract state from canceled to inProgress and reverts all of the system-created journal entries that resulted from the cancellation.

For more information, read about the uncancel process in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
key
required
string

System-assigned unique key of the contract.

Example: "518"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "key": "895"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "895",
    • "state": "inProgress",
    • "href": "/objects/contracts/contract/895"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Hold contract schedules

post/workflows/contracts/contract/hold-schedules

Placing a contract schedule on hold temporarily pauses the revenue, billing, or expense schedule. This action sets the status of the contract schedule and its entries to onHold. The contract status remains inProgress when a contract schedule is placed on hold.

For more information, read about holding contract schedules in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
key
required
string

Contract line key

Example: "2"
contractLineKeys
required
string

Contract lines key

Example: "2,3"
asOfDate
required
string <date>

The hold takes effect on the date that you mention and schedules will be on hold.

Example: "2022-01-01"
memo
required
string

Hold Memo

Example: "hold schedules for march month"
holdBilling
required
boolean

Billing to be hold

Example: true
holdRevenue
required
boolean

Revenue to be hold

Example: false
holdExpense
required
boolean

Expense to be hold

Example: true
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "key": "895",
  • "contractLineKeys": "1539,1540",
  • "asOfDate": "2024-01-01",
  • "memo": "Hold billing and revenue schedule for Logic Solutions",
  • "holdBilling": true,
  • "holdRevenue": true,
  • "holdExpense": false
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "895",
    • "state": "inProgress",
    • "href": "/objects/contracts/contract/895"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Resume contract schedules

post/workflows/contracts/contract/resume-schedules

Resumes a contract schedule. This releases the hold on a contract schedule and is effective as of the the resume date. This action sets the status of the contract schedule and its entries back to inProgress and allows the open periods to be available for posting or invoicing. The contract status remains inProgress when a contract schedule is resumed.

For more information, read about resuming contract schedules in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
key
required
string

Contract line key

Example: "2"
contractLineKeys
required
string

Contract lines key

Example: "2,3"
asOfDate
required
string <date>

resume date

Example: "2022-01-01"
memo
required
string

resume date

Example: "hold schedules for march month"
resumeBilling
required
boolean

Resume Billing

Example: true
resumeRevenue
required
boolean

Resume Revenue

Example: true
resumeExpense
required
boolean

Resume Expense

Example: true
revenueAdjustmentType
string
Default: "template"

Revenue adjustment type

Enum: "distributed" "oneTime" "template" "walkForward"
Example: "template"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "key": "895",
  • "contractLineKeys": "1539,1540",
  • "asOfDate": "2024-01-01",
  • "memo": "Resumed billing and revenue schedule for Logic Solutions",
  • "resumeBilling": true,
  • "resumeRevenue": true,
  • "resumeExpense": false,
  • "revenueAdjustmentType": "oneTime"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "895",
    • "state": "inProgress",
    • "href": "/objects/contracts/contract/895"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Clear last active MEA

post/workflows/contracts/contract/clear-last-active-mea

Clears the last active multiple element arrangement (MEA) allocation. This action resets the applicable revenue schedules to the amounts that existed prior to the MEA allocation. The contract status remains inProgress when an MEA allocation is cleared.

For more information, read about clearing MEA allocations in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
key
required
string

System-assigned unique key of the contract.

Example: "518"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "key": "895"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "895",
    • "state": "inProgress",
    • "href": "/objects/contracts/contract/895"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Clear all MEA allocations

post/workflows/contracts/contract/clear-all-mea

Clears all multiple element arrangement (MEA) allocations. This action resets the applicable revenue schedules to the amounts that existed prior to all MEA allocations. The contract status remains inProgress when MEA allocations are cleared.

For more information, read about clearing MEA allocations in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
key
required
string

System-assigned unique key of the contract.

Example: "518"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "key": "895"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "895",
    • "state": "inProgress",
    • "href": "/objects/contracts/contract/895"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Post a contract

post/workflows/contracts/contract/post

Posts a contract. You can save a contract as a draft without affecting the General Ledger (GL) or the Contracts subledger.

Posting a draft contract changes the status of the contract from draft to inProgress and sets all existing draft contract lines and expense lines to inProgress also. It also creates journal entries in the General Ledger (GL) for the flat/fixed amounts and expense amounts.

For more information, read about draft contracts in the Sage Intacct Help Center.

SecurityOAuth2
Request
Request Body schema: application/json
key
required
string

System-assigned unique key of the contract.

Example: "518"
glPostingDate
string <date>

GL posting date is the date when a financial transaction is recorded in the General Ledger.

Example: "2022-01-01"
postMemo
string

post date memo description.

Example: "hold schedules for march month"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "key": "895",
  • "glPostingDate": "2024-01-01",
  • "postMemo": "Post Draft contract"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "895",
    • "state": "inProgress",
    • "href": "/objects/contracts/contract/895"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}