metadata
title: Contract Lines | Sage Intacct Developer
url: https://developer.intacct.com/api/contracts-rev-mgmt/contract-lines/
Contract Lines | Sage Intacct Developer
- Contract Lines
- Get Contract Line Object Definition
- Query and List Contract Lines
- Query and List Contract Lines (Legacy)
- Get Contract Line
- Create Contract Line
- Update Contract Line
- Post Contract Line
- Deliver Contract Line
- Hold Contract Line
- Resume Contract Line
- Delete Contract Line
- Contract Line Expenses
- Get Contract Line Expense Object Definition
- Query and List Contract Line Expenses
- Query and List Contract Line Expenses (Legacy)
- Get Contract Line Expense
- Create Contract Line Expense
- Update Contract Line Expense
- Post Contract Line Expense
- Delete Contract Line Expense
A contract line is a product or service associated with the contract.
Contract Lines
Get Contract Line Object Definition
lookup
List all the fields and relationships for the contract line object:
<lookup>
<object>CONTRACTDETAIL</object>
</lookup>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTDETAIL |
Query and List Contract Lines
query
List the record number, line number, and associated contract ID for each contract line:
<query>
<object>CONTRACTDETAIL</object>
<select>
<field>RECORDNO</field>
<field>LINENO</field>
<field>CONTRACTID</field>
</select>
</query>
List the Evergreen template in use for each recurring contract line:
<query>
<object>CONTRACTDETAIL</object>
<filter>
<equalto>
<field>RECURRING</field>
<value>true</value>
</equalto>
</filter>
<select>
<field>RECORDNO</field>
<field>CONTRACTID</field>
<field>CONTRACT.EVERGREENMACRO</field>
</select>
</query>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTDETAIL |
| filter |
Optional |
object |
Filter expression to limit the response to only objects that match the expression. Check the value of a single field using operators such as equalto/like, or multiple fields using and/or. Query fields on related objects using the dot operator (for example, VENDOR.CREDITLIMIT on APBILL). |
| select |
Required |
sequence |
The names of the fields that you want included in the response, and an optional aggregate function such as count or sum. Returning all fields is not supported. |
| orderby |
Optional |
object |
Provide an order element with a field name and choose an ascending or descending sort order, for example: <order> <field>RECORDNO</field> <descending/> </order> |
| options |
Optional |
object |
Query options: * Set the caseinsensitive element to true for a case-insensitive query <caseinsensitive>true</caseinsensitive> * In a multi-entity company, set the showprivate element to true to query data in private entities: <showprivate>true</showprivate> * Specify the returnformat for the response: xml (default), json, or csv <returnformat>json</returnformat> |
| pagesize |
Optional |
integer |
Maximum number of matching objects to return in the response, between 1 and 2000 items (Default: 100) |
| offset |
Optional |
integer |
Point at which to start indexing into records (Default: 0) |
Query and List Contract Lines (Legacy)
readByQuery
<readByQuery>
<object>CONTRACTDETAIL</object>
<fields>*</fields>
<query></query>
<pagesize>100</pagesize>
</readByQuery>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTDETAIL |
| fields |
Optional |
string |
Comma-separated list of fields on the object to list. For best performance and predictability, limit the number of fields. To return all fields, omit the element or provide * for the value. |
| query |
Required |
string |
SQL-like query based on fields on the object. The following operators are supported: <, >, >=, <=, =, like, not like, in, not in, IS NOT NULL, IS NULL, AND, OR. Illegal XML characters must be properly encoded, and single quotes must be escaped with backslashes ('Jane\'s Deli'). Joins are not supported. |
| pagesize |
Optional |
integer |
Custom page size between 1 and 1000 items (Default: 100) |
query Fields
| Name |
Required |
Type |
Description |
| STATE |
Optional |
string |
State. Use P for In progress, O for Renewal only, C for Cancelled, N for Not renewed. |
| BILLINGMETHOD |
Optional |
string |
Billing method. Use F for Fixed price, Q for Quantity based. |
| BILLINGOPTIONS |
Optional |
string |
Flat/fixed amount frequency. Use O for One-time, U for Use billing template, or I for Include with every invoice. |
| LINETYPE |
Optional |
string |
Line type of the contract line. Use S for Sale (positive contract lines), D for Discount (contract lines with positive Quantity and negative Flat/Fixed), or B for Debook (contract lines with a negative Quantity and a positive Rate). |
Get Contract Line
read
<read>
<object>CONTRACTDETAIL</object>
<keys>1</keys>
<fields>*</fields>
</read>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTDETAIL |
| keys |
Required |
string |
Comma-separated list of contract line RECORDNO to get |
| fields |
Optional |
string |
Comma-separated list of fields on the object to get. To return all fields, omit the element or provide * for the value. For best performance and predictability, limit the number of fields. |
| returnFormat |
Optional |
string |
Data format for the response body: * xml (default) * json * csv |
Create Contract Line
History
| Release |
Changes |
| 2023 Release 4 |
Added REV_REC_ON_INVOICE |
| 2022 Release 2 |
Added RECURRING |
| 2021 Release 3 |
Added USAGELINETYPE, COMMITTEDUSAGEENDACTION, and COMMITTEDUSAGEEXCESS, and added Renewal only as an option for STATE |
| 2021 Release 2 |
Added BILLTOCONTACTNAME and BILLTOSOURCE |
| 2021 Release 1 |
Added SHIPTOSOURCE, SHIPTOCONTACTNAME, BILLINGFREQUENCY |
| 2020 Release 4 |
Added PRORATEBILLINGPERIOD |
| 2020 Release 1 |
Added STATE |
| 2019 Release 1 |
Added TASKID |
| 2018 Release 3 |
Added RENEWALBILLINGTEMPLATENAME |
| 2018 Release 2 |
Added GLPOSTINGDATE |
create
<create>
<CONTRACTDETAIL>
<CONTRACTID>CTRC-003</CONTRACTID>
<ITEMID>DWNL</ITEMID>
<BILLINGMETHOD>Fixed price</BILLINGMETHOD>
<BILLINGOPTIONS>One-time</BILLINGOPTIONS>
<BEGINDATE>09/01/2017</BEGINDATE>
<ENDDATE>09/01/2018</ENDDATE>
<BILLINGTEMPLATENAME>40-30-20-10</BILLINGTEMPLATENAME>
<FLATAMOUNT>1000.00</FLATAMOUNT>
<REVENUETEMPLATENAME>SL Man (Rev)</REVENUETEMPLATENAME>
<LOCATIONID>US</LOCATIONID>
</CONTRACTDETAIL>
</create>
Creates a line with its own ship to contact:
<create>
<CONTRACTDETAIL>
<CONTRACTID>CTRC-003</CONTRACTID>
<BEGINDATE>09/01/2017</BEGINDATE>
<ENDDATE>09/01/2018</ENDDATE>
<ITEMID>055</ITEMID>
<SHIPTOCONTACTNAME>Millian Group</SHIPTOCONTACTNAME>
<BILLINGMETHOD>Fixed price</BILLINGMETHOD>
<BILLINGOPTIONS>Use billing template</BILLINGOPTIONS>
<BILLINGTEMPLATENAME>12-months, equal</BILLINGTEMPLATENAME>
<BILLINGSTARTDATE>09/01/2017</BILLINGSTARTDATE>
<BILLINGENDDATE>09/01/2018</BILLINGENDDATE>
<FLATAMOUNT>1000.00</FLATAMOUNT>
<REVENUETEMPLATENAME>Daily rate</REVENUETEMPLATENAME>
<REVENUESTARTDATE>10/01/2017</REVENUESTARTDATE>
<REVENUEENDDATE>10/01/2018</REVENUEENDDATE>
</CONTRACTDETAIL>
</create>
Creates a line for a quantity-based billing method:
<create>
<CONTRACTDETAIL>
<CONTRACTID>CTRC-003</CONTRACTID>
<BEGINDATE>05/01/2020</BEGINDATE>
<ENDDATE>05/01/2021</ENDDATE>
<ITEMID>055</ITEMID>
<BILLINGMETHOD>Quantity based</BILLINGMETHOD>
<USAGELINETYPE>Variable</USAGELINETYPE>
<BILLINGOPTIONS>One-time</BILLINGOPTIONS>
<USAGEQTYRESETPERIOD>After each invoice</USAGEQTYRESETPERIOD>
<USAGEQTYRECUR>false</USAGEQTYRECUR>
<REVENUETEMPLATENAME>Daily rate</REVENUETEMPLATENAME>
<REVENUESTARTDATE>09/01/2020</REVENUESTARTDATE>
<REVENUEENDDATE>09/01/2021</REVENUEENDDATE>
</CONTRACTDETAIL>
</create>
Parameters
| Name |
Required |
Type |
Description |
| CONTRACTDETAIL |
Required |
object |
Object to create |
CONTRACTDETAIL
| Name |
Required |
Type |
Description |
| CONTRACTID |
Required |
string |
Contract ID |
| ITEMID |
Required |
string |
Item ID |
| STATE |
Optional |
string |
State in which to create the contract line. Use Draft for a contract line that will not yet post to the GL, Renewal only for a contract line that will be included in the next renewal, or In progress. To move a contract line from Draft to In progress, use the post function. (Default: In progress) |
| BEGINDATE |
Optional |
string |
Start date in format mm/dd/yyyy. Required for non-recurring contracts. |
| ENDDATE |
Optional |
string |
End date in format mm/dd/yyyy. Required for non-recurring contracts. |
| ITEMDESC |
Optional |
string |
Item description |
| RENEWAL |
Optional |
boolean |
Renewal. Use false for No, true for Yes. (Default: false) |
| EXCH_RATE_DATE |
Optional |
string |
Exchange rate date in format mm/dd/yyyy. Leave blank to use the start date (if the start is in the future, today’s date is used instead). |
| EXCHANGE_RATE |
Optional |
currency |
Exchange rate value. |
| BILLINGMETHOD |
Required |
string |
Billing method. Use either Fixed price or Quantity based. (Default: Fixed price) |
| BILLINGOPTIONS |
Optional |
string |
Flat/fixed amount frequency. Only used if BILLINGMETHOD is Fixed price. Use either One-time, Use billing template, or Include with every invoice. (Default: Use billing template) |
| BILLINGFREQUENCY |
Optional |
string |
Billing frequency, which is required if BILLINGOPTIONS is set to Include with every invoice. Use Monthly, Quarterly,Annually, or omit value to inherit from the contract level. (Default: billing frequency for the contract) |
| RECURRING |
Optional |
boolean |
Indicates whether the line is recurring for an Evergreen contract. Use false for No, true for Yes. Defaults to true for an Evergreen contract. |
| PRORATEBILLINGPERIOD |
Optional |
string |
Specifies whether to prorate partial months. Use true to prorate, false otherwise. The BILLINGMETHOD must be set to Fixed price and BILLINGOPTIONS must be set to Include with every invoice. (Default: false) |
| BILLINGTEMPLATENAME |
Optional |
string |
Billing template. Only used if BILLINGOPTIONS is Use billing template. |
| BILLINGSTARTDATE |
Optional |
string |
Billing start date in format mm/dd/yyyy. Only used if BILLINGOPTIONS is Use billing template. Leave blank to use line start date |
| BILLINGENDDATE |
Optional |
string |
Billing end date in format mm/dd/yyyy. Only used if BILLINGOPTIONS is Use billing template. Leave blank to use line end date |
| USAGEQTYRESETPERIOD |
Optional |
string |
Reset usage quantity. Determines when the included units are counted and determines when the system billing counter resets. Use either After each invoice or After each renewal. Only applicable if BILLINGMETHOD is set to Quantity based. Also, the contract must have a billing price list set (via PRCLIST). |
| USAGEQTYRECUR |
Optional |
boolean |
Usage quantity recurs. If set to true, every usage record for a line item is treated as a recurring usage record. This means that each period, new usage records are created in order to re-invoice the quantities (for example, user licenses). Changing this field affects how the system calculates usage billing. Only applicable if BILLINGMETHOD is set to Quantity based. |
| RENEWALBILLINGTEMPLATENAME |
Optional |
string |
Name of a renewal billing template. Ensure the renewal billing template term is less than or equal to the contract renewal term. Only used if RENEWAL is true. If BILLINGOPTIONS is set to Use billing template on the contract line, a billing template is required. If RENEWALBILLINGTEMPLATENAME is omitted, the system first defaults to the BILLINGTEMPLATENAME on the contract line, then to the default billing template defined on the item. |
| GLPOSTINGDATE |
Optional |
string |
Date the Unbilled AR and Unbilled deferred revenue posts, in format mm/dd/yyyy. Leave blank to use the contract line start date minus the bill-in-advance period (if this would occur in a closed period, the first date in the first available open period is used instead). |
| QUANTITY |
Optional |
number |
Flat/fixed amount calculate quantity. Only used if BILLINGMETHOD is Fixed price. |
| PRICE |
Optional |
number |
Flat/fixed amount calculate rate. Only used if BILLINGMETHOD is Fixed price. |
| MULTIPLIER |
Optional |
number |
Flat/fixed amount calculate multiplier. Only used if BILLINGMETHOD is Fixed price. |
| REV_REC_ON_INVOICE |
Opitional |
boolean |
Set to false to defer revenue for the contract line. Set to true to automatically post the contract line as revenue when it is invoiced. (Default: false) |
| DISCOUNTPERCENT |
Optional |
number |
Flat/fixed amount calculate discount. Only used if BILLINGMETHOD is Fixed price. |
| FLATAMOUNT |
Optional |
currency |
Base/flat fixed amount. |
| USAGELINETYPE |
Optional |
string |
Specifies the quantity type. Use Variable for a variable quantity or Committed to predefine a quantity to consume over the course of the contract. (Default: Variable) |
| COMMITTEDUSAGEENDACTION |
Optional |
string |
Specifies how to handle the unused quantity. Required when using the Committed quantity type (via USAGELINETYPE). Use Bill unused quantity, Cancel unused quantity or Do nothing. (Default: Bill unused quantity) |
| COMMITTEDUSAGEEXCESS |
Optional |
string |
Specifies the action to take when the contract detail end date occurs. Required when using the Committed quantity type (via USAGELINETYPE). Use Bill overage, Don’t allow overage or Do nothing. (Default: Bill overage) |
| REVENUETEMPLATENAME |
Optional |
string |
606 revenue template |
| REVENUESTARTDATE |
Optional |
string |
606 revenue start date in format mm/dd/yyyy. Leave blank to use line start date |
| REVENUEENDDATE |
Optional |
string |
606 revenue end date in format mm/dd/yyyy. Leave blank to use line end date |
| REVENUE2TEMPLATENAME |
Optional |
string |
Legacy revenue template |
| REVENUE2STARTDATE |
Optional |
string |
Legacy revenue start date in format mm/dd/yyyy. Leave blank to use line start date |
| REVENUE2ENDDATE |
Optional |
string |
Legacy revenue end date in format mm/dd/yyyy. Leave blank to use line end date |
| BILLTOCONTACTNAME |
Optional |
string |
Bill to contact name for the detail, which can override the Bill to contact name on the contract depending on the value of the Bill to source. |
| BILLTOSOURCE |
Optional |
string |
Specifies whether the Bill to contact name on the line is overridden when the Bill to contact name on the contract itself is modified. Use Contract value to allow this overriding or User-specified value to preserve the Bill to contact name on the line. (Default: If BILLTOCONTACTNAME is set and not equal to the contract Bill to, defaults to User-specified value, otherwise, defaults to Contract value). |
| SHIPTOCONTACTNAME |
Optional |
string |
Ship to contact name for the detail, which can override the Ship to contact name on the contract depending on the value of the Ship to source. |
| SHIPTOSOURCE |
Optional |
string |
Specifies whether the Ship to contact name on the line is overridden when the Ship to contact name on the contract itself is modified. Use Contract value to allow this overriding or User-specified value to preserve the Ship to contact name on the line. (Default: If SHIPTOCONTACTNAME is set and not equal to the contract Ship to, defaults to User-specified value, otherwise, defaults to Contract value) |
| LOCATIONID |
Required |
string |
Location ID |
| DEPARTMENTID |
Optional |
string |
Department ID |
| PROJECTID |
Optional |
string |
Project ID |
| TASKID |
Optional |
string |
Task ID |
| VENDORID |
Optional |
string |
Vendor ID |
| EMPLOYEEID |
Optional |
string |
Employee ID |
Update Contract Line
History
| Release |
Changes |
| 2023 Release 4 |
Added REV_REC_ON_INVOICE |
| 2022 Release 2 |
Added RECURRING |
| 2021 Release 3 |
Added USAGELINETYPE, COMMITTEDUSAGEENDACTION, and COMMITTEDUSAGEEXCESS |
| 2021 Release 2 |
Added BILLTOCONTACTNAME and BILLTOSOURCE |
| 2021 Release 1 |
Added SHIPTOSOURCE, SHIPTOCONTACTNAME, BILLINGFREQUENCY |
| 2020 Release 4 |
Added PRORATEBILLINGPERIOD |
| 2019 Release 1 |
Added TASKID |
| 2018 Release 3 |
Added RENEWALBILLINGTEMPLATENAME |
| 2018 Release 2 |
Added GLPOSTINGDATE |
update
<update>
<CONTRACTDETAIL>
<RECORDNO>123</RECORDNO>
<DEPARTMENTID>300</DEPARTMENTID>
</CONTRACTDETAIL>
</update>
Parameters
| Name |
Required |
Type |
Description |
| CONTRACTDETAIL |
Required |
object |
Object to update |
CONTRACTDETAIL
| Name |
Required |
Type |
Description |
| RECORDNO |
Optional |
integer |
Record number of contract line to update |
| ITEMID |
Optional |
string |
Item ID |
| BEGINDATE |
Optional |
string |
Start date in format mm/dd/yyyy |
| ENDDATE |
Optional |
string |
End date in format mm/dd/yyyy |
| ITEMDESC |
Optional |
string |
Item description |
| RENEWAL |
Optional |
boolean |
Renewal. Use false for No, true for Yes. |
| EXCH_RATE_DATE |
Optional |
string |
Exchange rate date in format mm/dd/yyyy |
| EXCHANGE_RATE |
Optional |
currency |
Exchange rate value |
| BILLINGMETHOD |
Optional |
string |
Billing method. Use either Fixed price or Quantity based. |
| PRORATEBILLINGPERIOD |
Optional |
string |
Specifies whether to prorate partial months. Use true to prorate, false otherwise. The BILLINGMETHOD must be set to Fixed price and BILLINGOPTIONS must be set to Include with every invoice. |
| BILLINGOPTIONS |
Optional |
string |
Flat/fixed amount frequency. Only used if BILLINGMETHOD is Fixed price. Use either One-time, Use billing template, or Include with every invoice. |
| BILLINGFREQUENCY |
Optional |
string |
Billing frequency, which is required if BILLINGOPTIONS is set to Include with every invoice. Use Monthly, Quarterly, Annually, or omit value to inherit from the contract level. |
| RECURRING |
Optional |
boolean |
Indicates whether the line is recurring for an Evergreen contract. Use false for No, true for Yes. |
| BILLINGTEMPLATENAME |
Optional |
string |
Billing template. Only used if BILLINGOPTIONS is Use billing template. |
| BILLINGSTARTDATE |
Optional |
string |
Billing start date in format mm/dd/yyyy. Only used if BILLINGOPTIONS is Use billing template. |
| BILLINGENDDATE |
Optional |
string |
Billing end date in format mm/dd/yyyy. Only used if BILLINGOPTIONS is Use billing template. |
| BILLINGENDDATE |
Optional |
string |
Billing end date in format mm/dd/yyyy. Only used if BILLINGOPTIONS is Use billing template. Leave blank to use line end date |
| USAGEQTYRESETPERIOD |
Optional |
string |
Reset usage quantity. Determines when the included units are counted and determines when the system billing counter resets. Use either After each invoice or After each renewal. Only applicable if BILLINGMETHOD is set to Quantity based. Also, the contract must have a billing price list set (via PRCLIST). |
| RENEWALBILLINGTEMPLATENAME |
Optional |
string |
Name of a renewal billing template. Ensure the renewal billing template term is less than or equal to the contract renewal term. Only used if RENEWAL is true. If BILLINGOPTIONS is set to Use billing template on the contract line, a billing template is required. If RENEWALBILLINGTEMPLATENAME is omitted, the system first defaults to the BILLINGTEMPLATENAME on the contract line, then to the default billing template defined on the item. |
| GLPOSTINGDATE |
Optional |
string |
Date the Unbilled AR and Unbilled deferred revenue posts, in format mm/dd/yyyy. Leave blank to use the contract line start date minus the bill-in-advance period (if this would occur in a closed period, the first date in the first available open period is used instead). |
| QUANTITY |
Optional |
number |
Flat/fixed amount calculate quantity. Only used if BILLINGMETHOD is Fixed price. |
| PRICE |
Optional |
number |
Flat/fixed amount calculate rate. Only used if BILLINGMETHOD is Fixed price. |
| MULTIPLIER |
Optional |
number |
Flat/fixed amount calculate multiplier. Only used if BILLINGMETHOD is Fixed price. |
| REV_REC_ON_INVOICE |
Opitional |
boolean |
Set to false to defer revenue for the contract line. Set to true to automatically post the contract line as revenue when it is invoiced. (Default: false) |
| DISCOUNTPERCENT |
Optional |
number |
Flat/fixed amount calculate discount. Only used if BILLINGMETHOD is Fixed price. |
| FLATAMOUNT |
Optional |
currency |
Base/flat fixed amount |
| USAGELINETYPE |
Optional |
string |
Specifies the quantity type. Use Variable for a variable quantity or Committed to predefine a quantity to consume over the course of the contract. |
| COMMITTEDUSAGEENDACTION |
Optional |
string |
Specifies how to handle the unused quantity. Required when using the Committed quantity type (via USAGELINETYPE). Use Bill unused quantity, Cancel unused quantity or Do nothing. |
| COMMITTEDUSAGEEXCESS |
Optional |
string |
Specifies the action to take when the contract detail end date occurs. Required when using the Committed quantity type (via USAGELINETYPE). Use Bill overage, Don’t allow overage or Do nothing. |
| REVENUETEMPLATENAME |
Optional |
string |
606 revenue template |
| REVENUESTARTDATE |
Optional |
string |
606 revenue start date in format mm/dd/yyyy |
| REVENUEENDDATE |
Optional |
string |
606 revenue end date in format mm/dd/yyyy |
| REVENUE2TEMPLATENAME |
Optional |
string |
Legacy revenue template |
| REVENUE2STARTDATE |
Optional |
string |
Legacy revenue start date in format mm/dd/yyyy |
| REVENUE2ENDDATE |
Optional |
string |
Legacy revenue end date in format mm/dd/yyyy |
| BILLTOCONTACTNAME |
Optional |
string |
Bill to contact name for the detail, which can override the Bill to contact name on the contract depending on the value of the Bill to source. |
| BILLTOSOURCE |
Optional |
string |
Specifies whether the Bill to contact name on the line is overridden when the Bill to contact name on the contract itself is modified. Use Contract value to allow this overriding or User-specified value to preserve the Bill to contact name on the line. (Default: If BILLTOCONTACTNAME is set and not equal to the contract Bill to, defaults to User-specified value, otherwise, defaults to Contract value). |
| SHIPTOCONTACTNAME |
Optional |
string |
Ship to contact name for the detail, which overrides the ship to contact name on the contract. |
| SHIPTOSOURCE |
Optional |
string |
Specifies whether the Ship to contact name on the line is overridden when the Ship to contact name on the contract itself is modified. Use Contract value to allow this overriding or User-specified value to preserve the Ship to contact name on the line. |
| LOCATIONID |
Optional |
string |
LOCATIONID of an active location. Required if company is multi-entity enabled. |
| DEPARTMENTID |
Optional |
string |
Department ID |
| PROJECTID |
Optional |
string |
Project ID |
| TASKID |
Optional |
string |
Task ID |
| VENDORID |
Optional |
string |
Vendor ID |
| EMPLOYEEID |
Optional |
string |
Employee ID |
| CLASSID |
Optional |
string |
Class ID |
Post Contract Line
You can post a contract line that is in Draft state so that it is fully validated and posted to the GL. The state of a posted contract line is changed from Draft to In progress. You can only post contract lines when the contract state is In progress.
If your draft contract line is missing required parameter values, check the error messages from the post response and use the update function to correct any issues before trying to post again.
post
<post>
<CONTRACTDETAIL>
<RECORDNO>529</RECORDNO>
<GLPOSTINGDATE>01/01/2020</GLPOSTINGDATE>
<POSTMEMO>Contract line has been finalized</POSTMEMO>
</CONTRACTDETAIL>
</post>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
object |
Use CONTRACTDETAIL |
CONTRACT
| Name |
Required |
Type |
Description |
| RECORDNO |
Required |
string |
Record number of the contract line to post |
| GLPOSTINGDATE |
Required |
string |
GL posting date in format mm/dd/yyyy |
| POSTMEMO |
Optional |
string |
Memo about the post |
Deliver Contract Line
This function is applicable when using event-driven revenue recognition. It changes the Delivery status of the given contract line to Delivered.
deliver
<deliver>
<CONTRACTDETAIL>
<RECORDNO>123</RECORDNO>
<DELIVERYDATE>07/31/2017</DELIVERYDATE>
</CONTRACTDETAIL>
</deliver>
Parameters
| Name |
Required |
Type |
Description |
| CONTRACTDETAIL |
Required |
object |
Object to operate on |
CONTRACTDETAIL
| Name |
Required |
Type |
Description |
| RECORDNO |
Required |
integer |
Contract line RECORDNO to set to Delivered. |
| DELIVERYDATE |
Required |
string |
Delivery date in format mm/dd/yyyy |
Hold Contract Line
When you use this function, the state of the contract line remains in progress, but the billing and revenue schedules and/or expense schedules can be put on hold.
hold
<hold>
<CONTRACTDETAIL>
<RECORDNO>123</RECORDNO>
<ASOFDATE>07/31/2017</ASOFDATE>
<BILLING>true</BILLING>
<REVENUE>true</REVENUE>
<EXPENSE>true</EXPENSE>
</CONTRACTDETAIL>
</hold>
Parameters
| Name |
Required |
Type |
Description |
| CONTRACTDETAIL |
Required |
object |
Object to hold |
CONTRACTDETAIL
| Name |
Required |
Type |
Description |
| RECORDNO |
Required |
integer |
Record number of contract line to hold |
| ASOFDATE |
Optional |
string |
Hold date in format mm/dd/yyyy (Default: Last posted schedule entry date + 1) |
| BILLING |
Optional |
boolean |
Hold billing. Use false for No, true for Yes. (Default: false) |
| REVENUE |
Optional |
boolean |
Hold revenue. Use false for No, true for Yes. (Default: false) |
| EXPENSE |
Optional |
boolean |
Hold expense. Use false for No, true for Yes. (Default: false) |
| MEMO |
Optional |
string |
Description of the hold. 500 character limit. |
Resume Contract Line
resume
<resume>
<CONTRACTDETAIL>
<RECORDNO>123</RECORDNO>
<ASOFDATE>07/31/2017</ASOFDATE>
<BILLING>true</BILLING>
<REVENUE>true</REVENUE>
<EXPENSE>true</EXPENSE>
</CONTRACTDETAIL>
</resume>
Parameters
| Name |
Required |
Type |
Description |
| CONTRACTDETAIL |
Required |
object |
Object to resume |
CONTRACTDETAIL
| Name |
Required |
Type |
Description |
| RECORDNO |
Required |
integer |
Record number of contract line to resume. |
| ASOFDATE |
Required |
string |
Resume date in format mm/dd/yyyy |
| BILLING |
Optional |
boolean |
Resume billing. Use false for No, true for Yes. (Default: false) |
| REVENUE |
Optional |
boolean |
Resume revenue. Use false for No, true for Yes. (Default: false) |
| EXPENSE |
Optional |
boolean |
Resume expense. Use false for No, true for Yes. (Default: false) |
| MEMO |
Optional |
string |
Description of the hold. 500 character limit. |
| REVENUEADJUSTMENTTYPE |
Optional |
String |
Use One time to set the scheduled posting date for all revenue that was scheduled prior to the resume date to the resume date, Distributed to recalculate the revenue schedule term using the resume date as the start date and spread the total revenue amount across the shortened schedule so that any skipped periods during the hold period are eventually caught up, or Walk forward to regenerate the revenue schedule using the resume date and push the end date out to the date that is equal to the number of days from the original revenue template start date to the resume date. The system prorates any partial periods. The whole period amount remains equal to the originally scheduled whole period amount. (Default: revenue adjustment option specified in the revenue template) |
Delete Contract Line
delete
<delete>
<object>CONTRACTDETAIL</object>
<keys>112</keys>
</delete>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTDETAIL |
| keys |
Required |
string |
Comma-separated list of contract line RECORDNO to delete |
Contract Line Expenses
Get Contract Line Expense Object Definition
lookup
List all the fields and relationships for the contract line expense object:
<lookup>
<object>CONTRACTEXPENSE</object>
</lookup>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTEXPENSE |
Query and List Contract Line Expenses
query
List the record number, associated contract ID, and type for each contract line expense:
<query>
<object>CONTRACTEXPENSE</object>
<select>
<field>RECORDNO</field>
<field>CONTRACTID</field>
<field>TYPE</field>
</select>
<filter>
<equalto>
<field>TYPE</field>
<value>Contract line</value>
</equalto>
</filter>
</query>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTEXPENSE |
| filter |
Optional |
object |
Filter expression to limit the response to only objects that match the expression. Check the value of a single field using operators such as equalto/like, or multiple fields using and/or. Query fields on related objects using the dot operator (for example, VENDOR.CREDITLIMIT on APBILL). |
| select |
Required |
sequence |
The names of the fields that you want included in the response, and an optional aggregate function such as count or sum. Returning all fields is not supported. |
| orderby |
Optional |
object |
Provide an order element with a field name and choose an ascending or descending sort order, for example: <order> <field>RECORDNO</field> <descending/> </order> |
| options |
Optional |
object |
Query options: * Set the caseinsensitive element to true for a case-insensitive query <caseinsensitive>true</caseinsensitive> * In a multi-entity company, set the showprivate element to true to query data in private entities: <showprivate>true</showprivate> * Specify the returnformat for the response: xml (default), json, or csv <returnformat>json</returnformat> |
| pagesize |
Optional |
integer |
Maximum number of matching objects to return in the response, between 1 and 2000 items (Default: 100) |
| offset |
Optional |
integer |
Point at which to start indexing into records (Default: 0) |
Query and List Contract Line Expenses (Legacy)
readByQuery
<readByQuery>
<object>CONTRACTEXPENSE</object>
<fields>*</fields>
<query>TYPE = 'L'</query>
<pagesize>100</pagesize>
</readByQuery>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTEXPENSE |
| fields |
Optional |
string |
Comma-separated list of fields on the object to list. For best performance and predictability, limit the number of fields. To return all fields, omit the element or provide * for the value. |
| query |
Required |
string |
SQL-like query based on fields on the object. The following operators are supported: <, >, >=, <=, =, like, not like, in, not in, IS NOT NULL, IS NULL, AND, OR. Illegal XML characters must be properly encoded, and single quotes must be escaped with backslashes ('Jane\'s Deli'). Joins are not supported. |
| pagesize |
Optional |
integer |
Custom page size between 1 and 1000 items (Default: 100) |
query Fields
| Name |
Required |
Type |
Description |
| TYPE |
Required |
string |
Type. Use L for Contract line expenses. |
| STATE |
Optional |
string |
State. Use P for In progress, C for Cancelled |
Get Contract Line Expense
read
<read>
<object>CONTRACTEXPENSE</object>
<keys>1</keys>
<fields>*</fields>
</read>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTEXPENSE |
| keys |
Required |
string |
Comma-separated list of contract line expense RECORDNO to get |
| fields |
Optional |
string |
Comma-separated list of fields on the object to get. To return all fields, omit the element or provide * for the value. For best performance and predictability, limit the number of fields. |
| returnFormat |
Optional |
string |
Data format for the response body: * xml (default) * json * csv |
Create Contract Line Expense
History
| Release |
Changes |
| 2020 Release 1 |
Added STATE |
create
<create>
<CONTRACTEXPENSE>
<CONTRACTDETAILKEY>15</CONTRACTDETAILKEY>
<ITEMID>SUPP</ITEMID>
<POSTINGDATE>05/01/2017</POSTINGDATE>
<AMOUNT>400.00</AMOUNT>
<LOCATIONID>US</LOCATIONID>
<TEMPLATENAME>SL Man (Exp)</TEMPLATENAME>
</CONTRACTEXPENSE>
</create>
Parameters
| Name |
Required |
Type |
Description |
| CONTRACTEXPENSE |
Required |
object |
Object to create |
CONTRACTEXPENSE
| Name |
Required |
Type |
Description |
| CONTRACTDETAILKEY |
Required |
integer |
Contract Line Record Number |
| ITEMID |
Required |
string |
Item ID |
| STATE |
Optional |
string |
State in which to create the contract line expense. Use Draft for a contract line expense that will not yet post to the GL (Default: In progress). To move a contract line expense from Draft to In progress, use the post function. |
| POSTINGDATE |
Required |
string |
Posting date in format mm/dd/yyyy |
| EXCH_RATE_DATE |
Optional |
string |
Exchange rate date in format mm/dd/yyyy. Leave blank to use posting date. |
| EXCHANGE_RATE |
Optional |
currency |
Exchange rate value. |
| AMOUNT |
Required |
currency |
Amount |
| LOCATIONID |
Required |
string |
Location ID |
| DEPARTMENTID |
Optional |
string |
Department ID |
| PROJECTID |
Optional |
string |
Project ID |
| VENDORID |
Optional |
string |
Vendor ID |
| EMPLOYEEID |
Optional |
string |
Employee ID |
| CLASSID |
Optional |
string |
Class ID |
| TEMPLATENAME |
Optional |
string |
606 expense template |
| STARTDATE |
Optional |
string |
606 expense start date in format mm/dd/yyyy. Leave blank to use contract/line start date |
| ENDDATE |
Optional |
string |
606 expense end date in format mm/dd/yyyy. Leave blank to use contract/line end date |
| TEMPLATE2NAME |
Optional |
string |
Legacy expense template |
| START2DATE |
Optional |
string |
Legacy expense start date in format mm/dd/yyyy. Leave blank to use contract/line start date |
| END2DATE |
Optional |
string |
Legacy expense end date in format mm/dd/yyyy. Leave blank to use contract/line end date |
Update Contract Line Expense
update
<update>
<CONTRACTEXPENSE>
<RECORDNO>123</RECORDNO>
<DEPARTMENTID>500</DEPARTMENTID>
</CONTRACTEXPENSE>
</update>
Parameters
| Name |
Required |
Type |
Description |
| CONTRACTEXPENSE |
Required |
object |
Object to update |
CONTRACTEXPENSE
| Name |
Required |
Type |
Description |
| RECORDNO |
Optional |
integer |
Record number of contract line expense to update. |
| ITEMID |
Optional |
string |
Item ID |
| POSTINGDATE |
Optional |
string |
Posting date in format mm/dd/yyyy |
| EXCH_RATE_DATE |
Optional |
string |
Exchange rate date in format mm/dd/yyyy |
| EXCHANGE_RATE |
Optional |
currency |
Exchange rate value. |
| AMOUNT |
Optional |
currency |
Amount |
| LOCATIONID |
Optional |
string |
LOCATIONID of an active location. Required if company is multi-entity enabled. |
| DEPARTMENTID |
Optional |
string |
Department ID |
| PROJECTID |
Optional |
string |
Project ID |
| VENDORID |
Optional |
string |
Vendor ID |
| EMPLOYEEID |
Optional |
string |
Employee ID |
| CLASSID |
Optional |
string |
Class ID |
| TEMPLATENAME |
Optional |
string |
606 expense template |
| STARTDATE |
Optional |
string |
606 expense start date in format mm/dd/yyyy. Leave blank to use contract/line start date |
| ENDDATE |
Optional |
string |
606 expense end date in format mm/dd/yyyy. Leave blank to use contract/line end date |
| TEMPLATE2NAME |
Optional |
string |
Legacy expense template |
| START2DATE |
Optional |
string |
Legacy expense start date in format mm/dd/yyyy. Leave blank to use contract/line start date |
| END2DATE |
Optional |
string |
Legacy expense end date in format mm/dd/yyyy. Leave blank to use contract/line end date |
Post Contract Line Expense
You can post a contract line expense that is in Draft state so that it is fully validated and posted to the GL. The state of a posted contract line expense is changed from Draft to In progress. You can only post contract line expenses when the contract state is In progress.
If your draft contract line expense is missing required parameter values, check the error messages from the post response and use the update function to correct any issues before trying to post again.
post
<post>
<CONTRACTEXPENSE>
<RECORDNO>321</RECORDNO>
<GLPOSTINGDATE>01/01/2020</GLPOSTINGDATE>
<POSTMEMO>Contract expense has been finalized</POSTMEMO>
</CONTRACTEXPENSE>
</post>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
object |
Use CONTRACTEXPENSE |
CONTRACT
| Name |
Required |
Type |
Description |
| RECORDNO |
Required |
string |
Record number of the contract line expense to post |
| GLPOSTINGDATE |
Required |
string |
GL posting date in format mm/dd/yyyy |
| POSTMEMO |
Optional |
string |
Memo about the post |
Delete Contract Line Expense
delete
<delete>
<object>CONTRACTEXPENSE</object>
<keys>112</keys>
</delete>
Parameters
| Name |
Required |
Type |
Description |
| object |
Required |
string |
Use CONTRACTEXPENSE |
| keys |
Required |
string |
Comma-separated list of contract line expense RECORDNO to delete |
Provide feedback