Contract expense templates

An expense template defines the schedule to recognize an expense amount for a contract or contract line over the contract term. You can create any number of expense templates and reuse them across contracts.

List Contract expense templates

get/objects/contracts/expense-template

Returns up to 100 object references from the collection with a key, ID, and link for each contract expense template. This operation is mostly for use in testing; use query 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": "2",
      • "id": "EXPSTRAIGHTLINE_AUTO",
      • "href": "/objects/contracts/expense-template/2"
      }
    ],
  • "ia::meta": {
    • "totalCount": 1,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create a contract expense template

post/objects/contracts/expense-template

Creates a new contract expense template.

SecurityOAuth2
Request
Request Body schema: application/json
required

Contract expense template to create

id
required
string

Name for the contract expense template. The identifier must be unique across revenue and expense templates.

Example: "EXPSTRAIGHTLINE_MAN"
description
string

Description of the expense template.

Example: "Expense straight line manual"
amortizationSchedulePeriod
string
Default: "monthly"

Amortization schedule period.

Enum: "annually" "monthly" "quarterly" "semiAnnually"
Example: "annually"
amortizationMethod
string
Default: "straightLine"

Amortization method.

  • straightLine - Expenses are allocated evenly over the expense recognition term. Partial periods are calculated as total schedule amount / total number of days in the expense recognition term * number of days in the partial period.
  • dailyRate - Expenses are allocated using a daily recognition rate: (total schedule amount / number of days in expense recognition term) * (number of days in month)
  • predefinedPercentages - Expenses are allocated based on a table of entries that map the period to recognize with the percentage of the expense amount to be recognized that period.
Enum: "dailyRate" "predefinedPercentages" "straightLine"
Example: "straightLine"
defaultPostingType
string
Default: "manual"

How the expense journal entries will be posted.

  • automatic - Intacct will automatically post the journal entry on each scheduled posting date.
  • manual - The user will manually post the journal entries when desired.
Enum: "automatic" "manual"
Example: "manual"
Array of objects

Contract expense template lines.

Array
periodOffset
string

The number of months in the future from the expense start date the corresponding percentage will post. Use 0 if you want the corresponding percentage to be posted in the month the expense starts.

This field is only applicable when amortizationMethod = predefinedPercentages.

Example: "2"
percentToRecognize
string <decimal-precision-8>

The percentage of the expense amount that is posted at the corresponding number of months from the expense start date.

Example: "10.12312000"
object

The expense template that this line belongs to.

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"
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"
Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "id": "EXPSTRAIGHTLINE_MAN1",
  • "description": "Cont Expenses straighline Amortization Monthly Manual",
  • "defaultPostingType": "manual",
  • "amortizationSchedulePeriod": "monthly",
  • "postingDay": 2,
  • "amortizationMethod": "straightLine"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "26",
    • "id": "EXPSTRAIGHTLINE_MAN1",
    • "href": "/objects/contracts/expense-template/26"
    },
  • "ia::meta": {
    • "totalCount": 1
    }
}

Get a contract expense template

get/objects/contracts/expense-template/{key}

Returns detailed information for a specified contract expense template.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the contract expense template.

Example: 1
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "key": "1",
    • "id": "EXPSTRAIGHTLINE_MAN",
    • "description": "Cont Expenses straighline Amortization Monthly Manual",
    • "defaultPostingType": "manual",
    • "amortizationSchedulePeriod": "monthly",
    • "postingDay": 1,
    • "amortizationMethod": "straightLine",
    • "status": "active",
    • "audit": {
      • "modifiedDateTime": "2016-05-13T18:22:57Z",
      • "createdDateTime": "2016-05-13T18:22:57Z",
      • "createdBy": "1",
      • "modifiedBy": "1"
      },
    • "lines": [ ],
    • "href": "/objects/contracts/expense-template/1"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update a contract expense template

patch/objects/contracts/expense-template/{key}

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

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the contract expense template.

Example: 1
Request Body schema: application/json
description
string

Description of the expense template.

Example: "Expense straight line manual"
amortizationSchedulePeriod
string
Default: "monthly"

Amortization schedule period.

Enum: "annually" "monthly" "quarterly" "semiAnnually"
Example: "annually"
amortizationMethod
string
Default: "straightLine"

Amortization method.

  • straightLine - Expenses are allocated evenly over the expense recognition term. Partial periods are calculated as total schedule amount / total number of days in the expense recognition term * number of days in the partial period.
  • dailyRate - Expenses are allocated using a daily recognition rate: (total schedule amount / number of days in expense recognition term) * (number of days in month)
  • predefinedPercentages - Expenses are allocated based on a table of entries that map the period to recognize with the percentage of the expense amount to be recognized that period.
Enum: "dailyRate" "predefinedPercentages" "straightLine"
Example: "straightLine"
defaultPostingType
string
Default: "manual"

How the expense journal entries will be posted.

  • automatic - Intacct will automatically post the journal entry on each scheduled posting date.
  • manual - The user will manually post the journal entries when desired.
Enum: "automatic" "manual"
Example: "manual"
Array of objects

Contract expense template lines.

Array
periodOffset
string

The number of months in the future from the expense start date the corresponding percentage will post. Use 0 if you want the corresponding percentage to be posted in the month the expense starts.

This field is only applicable when amortizationMethod = predefinedPercentages.

Example: "2"
percentToRecognize
string <decimal-precision-8>

The percentage of the expense amount that is posted at the corresponding number of months from the expense start date.

Example: "10.12312000"
object

The expense template that this line belongs to.

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"
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"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "description": "Cont Expenses straighline Amortization Monthly Manual",
  • "defaultPostingType": "manual",
  • "amortizationSchedulePeriod": "monthly",
  • "postingDay": 3,
  • "amortizationMethod": "straightLine"
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "27",
    • "id": "EXPSTRAIGHTLINE_1",
    • "href": "/objects/contracts/expense-template/27"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a contract expense template

delete/objects/contracts/expense-template/{key}

Deletes a contract expense template.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the contract expense template.

Example: 1
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
    }
}

Query expense templates

post/services/core/query

Use the query service to find expense templates that meet certain criteria and to specify the properties that are returned.

SecurityOAuth2
Responses
200

OK

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
    }
}