Rate tables

A project contract rate table provides markup and pricing information to be used for generating Project Generated Invoices. Every rate table can have lines for each transaction type which identify the criteria to use when applying markup and pricing for that transaction type. The transaction types include timesheets, purchase orders, accounts payable, general ledger, credit cards, and employee expenses.

List rate tables

get/objects/construction/rate-table

Returns up to 100 object references from the collection with a key, ID, and link for each rate table. 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": "84",
      • "id": "RT-00001",
      • "href": "/objects/construction/rate-table/84"
      },
    • {
      • "key": "85",
      • "id": "RT-00002",
      • "href": "/objects/construction/rate-table/85"
      },
    • {
      • "key": "60",
      • "id": "RT-00003",
      • "href": "/objects/construction/rate-table/60"
      },
    • {
      • "key": "78",
      • "id": "RT-00004",
      • "href": "/objects/construction/rate-table/78"
      },
    • {
      • "key": "79",
      • "id": "RT-00005",
      • "href": "/objects/construction/rate-table/79"
      }
    ],
  • "ia::meta": {
    • "totalCount": 5,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create a rate table

post/objects/construction/rate-table

Creates a new rate table.

SecurityOAuth2
Request
Request Body schema: application/json
required

Rate table to be created

id
required
string <= 20 characters

Rate table ID.

Example: "2024-LV2"
name
required
string <= 200 characters

Rate table name.

Example: "2024 Level 2"
description
string <= 1000 characters

Description of the rate table.

Example: "2024 Level 2 Rate Table"
object
key
string

Location key

Example: "1"
id
string

Location ID

Example: "US"
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"
Array of objects

Timesheet lines for the rate table.

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the timesheet line in the rate table entry.

Example: "Aug Costing Kit"
startDate
string <date>

Start date for when these rates can be applied to timesheet entries that are included for billing in invoices generated on or after this date.

Example: "2021-08-03"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%. Cannot be used with laborRate.

Example: "8.250"
laborRate
string <decimal-precision-3>

Labor rate of this rate table entry. Cannot be used with markupPercent.

Example: "115.500"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object

Reference to an employee position to apply this rate by employee positions entered on timesheets.

object

Reference to a labor class to apply this rate by labor classes entered on timesheets.

object

Reference to a labor shift to apply this rate by labor shifts entered on timesheets.

object

Reference to a labor union to apply this rate by labor unions entered on timesheets.

object

Reference to a time type to apply this rate by time types entered on timesheets.

object
Array of objects

Rate table purchase order lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the purchasing line in the rate table entry.

Example: "Aug Costing SOPA"
startDate
string <date>

Start date for when these rates can be applied to purchase orders that are included for billing in invoices generated on or after this date.

Example: "2024-08-03"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "15.9"
unitPrice
string <decimal-precision-3>

Unit price of a purchased item. dimensions.item is required with unitPrice.

Example: "112.560"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Array of objects

Rate table accounts payable lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the accounts payable line in the rate table entry.

Example: "Aug Service"
startDate
string <date>

Date when these rates can be applied to accounts payable entries that are included for billing in invoices generated on or after this date.

Example: "2021-08-01"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "25.5"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Array of objects

Rate table general ledger lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the journal line in the rate table entry.

Example: "Aug John Smith"
startDate
string <date>

Start date for when these rates can be applied to general ledger entries that are included for billing in invoices generated on or after this date.

Example: "2021-08-01"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "12.500"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Array of objects

Rate table credit card lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the credit card line in the rate table entry.

Example: "Aug Costing SOPA"
startDate
string <date>

Date when these rates can be applied to credit card charges that are included for billing in invoices generated on or after this date.

Example: "2021-08-03"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "15.900"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Array of objects

Rate table employee expense lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the employee expense line in the rate table entry.

Example: "Aug Manager"
startDate
string <date>

Date when these rates can be applied to employee expenses that are included for billing in invoices generated on or after this date.

Example: "2024-08-02"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "14.800"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "id": "2024-LV2",
  • "name": "2024 Level 2",
  • "description": "2024 Level 2 Rate Table",
  • "location": {
    • "key": "1"
    },
  • "status": "active",
  • "timesheetLines": [
    • {
      • "lineNumber": 1,
      • "description": "Aug Costing Kit",
      • "startDate": "2024-08-03",
      • "markupPercent": "8.250",
      • "laborRate": "115.500",
      • "accumulationType": {
        },
      • "standardCostType": {
        },
      • "standardTask": {
        },
      • "employeePosition": {
        },
      • "laborClass": {
        },
      • "laborShift": {
        },
      • "laborUnion": {
        },
      • "timeType": {
        },
      • "dimensions": {
        }
      }
    ],
  • "purchasingLines": [
    • {
      • "lineNumber": 1,
      • "description": "Aug Costing SOPA",
      • "startDate": "2024-08-03",
      • "markupPercent": "15.900",
      • "unitPrice": "112.560",
      • "accumulationType": {
        },
      • "standardCostType": {
        },
      • "standardTask": {
        },
      • "dimensions": {
        }
      }
    ],
  • "accountsPayableLines": [
    • {
      • "lineNumber": 1,
      • "description": "Aug Service",
      • "startDate": "2024-08-01",
      • "markupPercent": "25.500",
      • "accumulationType": {
        },
      • "standardCostType": {
        },
      • "standardTask": {
        },
      • "dimensions": {
        }
      }
    ],
  • "journalLines": [
    • {
      • "lineNumber": 1,
      • "description": "Aug John Smith",
      • "startDate": "2024-08-01",
      • "markupPercent": "12.500",
      • "accumulationType": {
        },
      • "standardCostType": {
        },
      • "standardTask": {
        },
      • "dimensions": {
        }
      }
    ],
  • "creditCardLines": [
    • {
      • "lineNumber": 1,
      • "description": "Aug Costing SOPA",
      • "startDate": "2024-08-03",
      • "markupPercent": "15.900",
      • "accumulationType": {
        },
      • "standardCostType": {
        },
      • "standardTask": {
        },
      • "dimensions": {
        }
      }
    ],
  • "employeeExpenseLines": [
    • {
      • "lineNumber": 1,
      • "description": "Aug Manager",
      • "startDate": "2024-08-02",
      • "markupPercent": "14.800",
      • "accumulationType": {
        },
      • "standardCostType": {
        },
      • "standardTask": {
        },
      • "dimensions": {
        }
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "111",
    • "id": "2024-LV2",
    • "href": "/objects/construction/rate-table/111"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get a rate table

get/objects/construction/rate-table/{key}

Returns detailed information for a specified rate table.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the rate table.

Example: 145
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "key": "145",
    • "id": "2024-LV2",
    • "name": "2024 Level 2",
    • "description": "2024 Level 2 Rate Table",
    • "location": {
      • "key": "1",
      • "id": "1",
      • "name": "United States"
      },
    • "audit": {
      • "createdDateTime": "2024-01-08T11:28:12Z",
      • "modifiedDateTime": "2024-01-09T11:28:12Z",
      • "createdBy": "1",
      • "modifiedBy": "95"
      },
    • "status": "active",
    • "entity": {
      • "id": "1",
      • "key": "1",
      • "name": "United States of America"
      },
    • "timesheetLines": [
      • {
        }
      ],
    • "purchasingLines": [
      • {
        }
      ],
    • "accountsPayableLines": [
      • {
        }
      ],
    • "journalLines": [
      • {
        }
      ],
    • "creditCardLines": [
      • {
        }
      ],
    • "employeeExpenseLines": [
      • {
        }
      ]
    },
  • "ia::meta": {
    • "totalCount": 1
    }
}

Update a rate table

patch/objects/construction/rate-table/{key}

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

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the rate table.

Example: 145
Request Body schema: application/json
name
string <= 200 characters

Rate table name.

Example: "2024 Level 2"
description
string <= 1000 characters

Description of the rate table.

Example: "2024 Level 2 Rate Table"
object
key
string

Location key

Example: "1"
id
string

Location ID

Example: "US"
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"
Array of objects

Timesheet lines for the rate table.

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the timesheet line in the rate table entry.

Example: "Aug Costing Kit"
startDate
string <date>

Start date for when these rates can be applied to timesheet entries that are included for billing in invoices generated on or after this date.

Example: "2021-08-03"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%. Cannot be used with laborRate.

Example: "8.250"
laborRate
string <decimal-precision-3>

Labor rate of this rate table entry. Cannot be used with markupPercent.

Example: "115.500"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object

Reference to an employee position to apply this rate by employee positions entered on timesheets.

object

Reference to a labor class to apply this rate by labor classes entered on timesheets.

object

Reference to a labor shift to apply this rate by labor shifts entered on timesheets.

object

Reference to a labor union to apply this rate by labor unions entered on timesheets.

object

Reference to a time type to apply this rate by time types entered on timesheets.

object
Array of objects

Rate table purchase order lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the purchasing line in the rate table entry.

Example: "Aug Costing SOPA"
startDate
string <date>

Start date for when these rates can be applied to purchase orders that are included for billing in invoices generated on or after this date.

Example: "2024-08-03"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "15.9"
unitPrice
string <decimal-precision-3>

Unit price of a purchased item. dimensions.item is required with unitPrice.

Example: "112.560"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Array of objects

Rate table accounts payable lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the accounts payable line in the rate table entry.

Example: "Aug Service"
startDate
string <date>

Date when these rates can be applied to accounts payable entries that are included for billing in invoices generated on or after this date.

Example: "2021-08-01"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "25.5"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Array of objects

Rate table general ledger lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the journal line in the rate table entry.

Example: "Aug John Smith"
startDate
string <date>

Start date for when these rates can be applied to general ledger entries that are included for billing in invoices generated on or after this date.

Example: "2021-08-01"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "12.500"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Array of objects

Rate table credit card lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the credit card line in the rate table entry.

Example: "Aug Costing SOPA"
startDate
string <date>

Date when these rates can be applied to credit card charges that are included for billing in invoices generated on or after this date.

Example: "2021-08-03"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "15.900"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Array of objects

Rate table employee expense lines

Array
lineNumber
integer

Sets the order of the line, which determines the order that rates are applied.

Example: 1
description
string <= 1000 characters

Description of the employee expense line in the rate table entry.

Example: "Aug Manager"
startDate
string <date>

Date when these rates can be applied to employee expenses that are included for billing in invoices generated on or after this date.

Example: "2024-08-02"
markupPercent
string <decimal-precision-3>

Markup percent for this rate table entry. Defaults to 0%.

Example: "14.800"
object

The accumulation type associated with the object.

object

Standard cost type associated with the object.

object

Standard task associated with the object.

object
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "description": "2024 Level 2 Rate Table (Aug)",
  • "timesheetLines": [
    • {
      • "key": "12",
      • "lineNumber": 2,
      • "description": "Aug Costing Kit (Aug)"
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "12",
    • "id": "2024-LV2",
    • "href": "/objects/construction/rate-table/12"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete a rate table

delete/objects/construction/rate-table/{key}

Deletes a rate table.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the rate table.

Example: 145
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 rate tables

post/services/core/query

Use the query service to find rate tables 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
    }
}