Returns project, estimate, change order, and selection data in bulk for a singular project in your ConstructionOnline company account
https://api.constructiononline.com/api/BulkFetch?type=Estimate&projectID={projectID}
This endpoint allows users to extract a project estimate's complete structure and related financials, such as client selections and change orders, in one singular call. The estimate's complete structure includes all estimate categories, subcategories, items, and company overhead & margin saved within the estimate.
This endpoint is suggested for financial integrations between ConstructionOnline and third-party accounting software platforms, such as NetSuite or Sage 50, as it allows users to extract project financial data without calling each individual endpoint for the estimate, estimate items, change orders, etc.
Requests
REQUIRED PARAMETERS
projectID: integer
- Unique identifier for the project.
- Sample URL request: https://api.constructiononline.com/api/BulkFetch?type=Estimate&projectID=7867564
Example requests in cURL, C#, Python, and JavaScript can be found below:
cURL
# replace {email} with the email address for your ConstructionOnline account
# {password} with your ConstructionOnline password
# {apikey} with your provided API key
# {projectID} with the project's ID
curl https://api.constructiononline.com/api/BulkFetch?type=Estimate&projectID={projectID} -u {email}:{password} -H 'APIKey:{apikey}'
C#
/* replace {username} with the email address for your ConstructionOnline account
{password} with your ConstructionOnline password
{apikey} with your provided API key
{projectID} with the project's ID */
public string GetData(string endpoint) {
string username = "{username}";
string password = "{password}";
string apikey = "{apikey}";
HttpResponseMessage response = null;
HttpClientHandler handler = new HttpClientHandler() { AutomaticDecompression = System.Net.DecompressionMethods.GZip };
using (HttpClient client = new HttpClient(handler)) {
client.Timeout = new TimeSpan(0, 0, 30);
client.BaseAddress = new Uri("http://api.constructiononline.com");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password)));
client.DefaultRequestHeaders.Add("APIKey", apikey);
client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip");
response = client.GetAsync(endpoint).Result;
}
return response?.Content.ReadAsStringAsync().Result;
}
MessageBox.Show(GetData("api/BulkFetch?type=Estimate&projectID={projectID}"));
Python
#replace {username} with the email address for your ConstructionOnline account
#{password} with your ConstructionOnline password
#{apikey} with your provided API key
#{projectID} with the project's ID
import base64, requests, json
apikey = "{apikey}"
username = "{username}"
password = "{password}"
def makeRequest(endpoint):
url = "https://api.constructiononline.com/" + endpoint
userPass = username + ":" + password
headers = {
"APIKey": apikey,
"Accept-Encoding": "gzip, deflate, br",
"Authorization": "Basic " + base64.b64encode(userPass.encode()).decode(),
}
response = requests.get(url, headers=headers)
return json.dumps(json.loads(response.text), indent=2)
#Main Program
print(makeRequest("api/BulkFetch?type=Estimate&projectID={projectID}"))
JavaScript
/* replace {username} with the email address for your ConstructionOnline account
{password} with your ConstructionOnline password
{apikey} with your provided API key
{projectID} with the project's ID */
username = '{username}';
password = '{password}';
apikey = '{apikey}';
function makeRequest(endpoint) {
auth = btoa('${username}:${password}');
var myHeaders = new Headers();
myHeaders.append("APIKey", apikey);
myHeaders.append("Accept-Encoding", "gzip, deflate, br");
myHeaders.append("Authorization", "Basic ${auth}");
var requestOptions = {
method: 'GET',
headers: myHeaders,
redirect: 'follow'
};
fetch("https://api.constructiononline.com/" + endpoint, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
return response;
};makeRequest("api/BulkFetch?type=Estimate&projectID={projectID}");
Responses
200: Success
A successful request will return a 200 response with the requested project financial data in the body. The response will contain a large JArray made up of individual objects for project, estimate, change order, and client selection data. The response will contain one project object and one estimate object. An individual object will also return for each estimate category, subcategory, and item.
Because estimate components are hierarchically related, each object will contain references to the objects it is related to. For example, an estimate item will list the IDs of the related project, estimate, estimate category, and estimate subcategory. The response will also return individual objects for each change order, change order item, selections category, subcategory, and choice.
Please note: the example below has been considerably condensed for the purpose of this article. It only depicts the structure of the response and does not include all the returned properties.
A full list of returned properties for this endpoint can be found here.
{
"Project": [
{
"ID": 1230990,
"NAME": "6744 E Lake Remodel",
"CREATED_BY": 957890,
(continued.....)
}
],
"Estimate": [
{
"ID": 292080,
"NAME": "CSI 16 Division",
"MARKUP_NAME": "Company Overhead and Margin",
"TOTAL_PRICE": 84451.936561666691,
(continued.....)
}
],
"EstimateItems": [
{
"ID": 23338628,
"ESTIMATE_ID": 292080,
"CATEGORY_ID": 3304350,
"SUBCATEGORY_ID": 16032667,
"ROW_NUMBER": 167,
"NAME": "Building Permit",
(continued.....)
}
],
"EstimateSubCategories": [
{
"ID": 16032667,
"ESTIMATE_ID": 292080,
"CATEGORY_ID": 3304350,
"ROW_NUMBER": 16,
"NAME": "Permits",
(continued.....)
}
],
"EstimateCategories": [
{
"ID": 3304350,
"ESTIMATE_ID": 292080,
"ROW_NUMBER": 7,
"NAME": "Planning",
(continued.....)
}
],
"EstimateMarkup": [
{
"ID": 1056913,
"NAME": "Company Overhead",
"ESTIMATE_ID": 292080,
"VALUE": 10.0,
(continued.....)
}
],
"ChangeOrders": [
{
"ID": 395070,
"NAME": "Column Adjustment",
"PRJ_ID": 1230973,
(continued.....)
}
],
"ChangeOrderItems": [
{
"ID": 152524,
"CHANGE_ORDER_ID": 395070,
"NAME": "Line item 1",
(continued.....)
}
],
"SelectionCategories": [
{
"ID": 556390,
"NAME": "Appliances",
"PRJ_ID": 1230973,
(continued.....)
}
],
"SelectionSubCategories": [
{
"ID": 972923,
"NAME": "Fridge",
"CAT_TYPE_ID": 556390,
"CATEGORYNAME": "Appliances",
(continued.....)
}
],
"SelectionChoices": [
{
"ID": 1538417,
"NAME": "LG InstaView 26.8-cu ft Side-by-Side Refrigerator",
"PRJ_ID": 1230973,
"CATEGORY_ID": 972923,
"CATEGORYNAME": "Fridge",
(continued.....)
}
]
}
404: Error
The server was not able to locate the resource specified in the request.
429: Error
The user has surpassed the request rate limit for the hour, day, week, or month.
500: Error
There was an internal server error and the server was unable to complete the request.
Properties
Project Object
Name | Type | Description |
ID | integer | Unique identifier for the project. |
NAME | string | Name of the project. |
CREATED_BY | integer | Unique identifier for the user who created the project. |
LOG_ID | integer | Reserved for future use. |
LMOD | date | Date and time the project was last modified. |
ADDRESS | string | Project's address. |
CITY | string | Project's city. |
STATE | string | Project's state. |
ZIP | string | Project's zip code. |
PROJECT_NUMBER | string | Project number assigned to the project. |
PROJECT_TYPE | string | Name of the project type assigned to the project. The unique numerical ID for the specific project type is listed in the property 'PROJECT_TYPE_CUSTOM'. |
LMOD_CON_ID | integer | Unique identifier for the user who last modified the project. |
NUMBERFOLDERS | integer | Number of folders saved within the project. |
NUMBERIMAGES | integer | Number of images saved within the project. |
NUMBERALBUMS | integer | Number of albums saved within the project. |
NUMBERFILES | integer | Number of files saved within the project. |
CON_ID | integer | Reserved for internal use |
DATE_CREATED | date | Date and time the project was created |
ATTACH_FOLDER_ID | integer | Attachment folder location for daily logs, to dos, etc. |
PRIMARY_SCHEDULE | integer | Unique numerical ID representing the schedule tied to the project. |
TOTAL_MONEY | decimal | Initial contract price. |
TOTAL_TIME | integer | Initial project duration. |
IS_ARCHIVED | boolean | Signifies if the project was archived. |
CURRENCY | integer | Type of currency set for the project. Each type of currency corresponds to a specific number, which will be returned in this property. |
IS_TEMPLATE | boolean | Signifies if the project was created from a project template. |
COUNTRY_SETTING | integer | Number representing the specific country associated with the project. |
CUSTOM_COLOR | string | Project's color as it appears in ConstructionOnline. Returns the specific hex code for the color. |
COMPANY_ID | integer | Unique identifier for the company associated with the project. |
IS_INACTIVE | boolean | Signifies if the project has a status of 'Live' or 'Pending'. Returns true if the project is Pending, false if the project is Live. |
LAT | double | Project's entered latitude coordinates. |
LON | double | Project's entered longitude coordinates. |
TRACKING_TYPE | integer | Reserved for internal use. |
SCOPE_OF_WORK | string | Scope of work entered for the project. Returns as an encoded string. |
PROJECT_NOTES | string | Notes entered for the project. |
PROJECT_TYPE_ID | integer | Reserved for internal use. |
WEATHER_STATION | string | Reserved for internal use. |
USE_CURR_CODE | boolean | Reserved for internal use. |
ESTIMATE_UNQUALIFIED_COMMITS | decimal | Total value of any imported POs from QuickBooks that do not match anything in the estimate. |
ESTIMATE_UNQUALIFIED_ACTUALS | decimal | Total value of any imported actuals from QuickBooks that do not match anything in the estimate. |
ESTIMATE_UNQUALIFIED_EXPENSES | decimal | Total value of any imported invoices from QuickBooks that do not match anything in the estimate. |
SELECTION_UNQUALIFIED_COMMITS | decimal | Total value of any imported POs from QuickBooks that do not match any selections. |
SELECTION_UNQUALIFIED_ACTUALS | decimal | Total value of any imported actuals from QuickBooks that do not match any selections. |
SELECTION_UNQUALIFIED_EXPENSES | decimal | Total value of any imported invoices from QuickBooks that do not match any selections. |
CHANGE_ORDER_UNQUALIFIED_COMMITS | decimal | Total value of any imported POs from QuickBooks that do not match any change orders. |
CHANGE_ORDER_UNQUALIFIED_ACTUALS | decimal | Total value of any imported actuals from QuickBooks that do not match any change orders. |
CHANGE_ORDER_UNQUALIFIED_EXPENSES | decimal | Total value of any imported invoices from QuickBooks that do not match any change orders. |
PROJECT_TYPE_CUSTOM | integer | Corresponds to the 'Project Type' custom value. Returns the numerical ID for the specific project type associated with the project. |
PROJECT_STAGE | integer | Corresponds to the 'Project Stage' custom value. Returns the numerical ID for the specific stage associated with the project. |
PROJECT_GROUP | integer | Corresponds to the 'Project Group' custom value. Returns the numerical ID for the specific contact group associated with the project. |
PROJECT_CATEGORY | integer | Corresponds to the 'Contact Category' custom value. Returns the numerical ID for the specific category associated with the project. |
PROJECT_OFFICE | integer | Corresponds to the 'Office' custom value. Returns the numerical ID for the specific office associated with the project. |
PROJECT_DIVISION | integer | Corresponds to the 'Division' custom value. Returns the numerical ID for the specific division associated with the project. |
PROJECT_REGION | integer | Corresponds to the 'Region' custom value. Returns the numerical ID for the specific region associated with the project. |
IS_OPPORTUNITY | boolean |
Signifies if the project was created from an opportunity. Returns true if created from an opportunity, false if not. |
OPPORTUNITY_STATUS | integer | Closed/open status of the opportunity. Returns the integer that corresponds with the selected status. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_REFERRER | string | Email address of the user who referred the opportunity. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_PROBABILITY | integer | Probability entered for the opportunity. Returned value will be 0, 25, 50, 75, or 100. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_VALUE | double | Value entered for the opportunity. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_OPENED_DATE | date | Date the opportunity was opened. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_CLOSED_DATE | date | Date the opportunity was closed. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_QUALITY | integer | Quality associated with the opportunity. Returns the star rating as a integer between 1 and 5. Returns null if no rating has been assigned. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_NOTES | string | Notes entered for the opportunity. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_CONVERTED_DATE | date | Date the opportunity was converted to a project. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_LEAD | integer | Reserved for internal use. |
OPPORTUNITY_STAGE | integer | Corresponds to the 'Opportunity Stage' custom value. Returns the numerical ID for the specific stage associated with the opportunity. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_SOURCE | integer | Corresponds to the 'Opportunity Source' custom value. Returns the numerical ID for the specific source tied to the opportunity. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_TYPE | integer | Corresponds to the 'Opportunity Type' custom value. Returns the numerical ID for the specific type associated with the opportunity. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_WON_REASON | integer | Corresponds to the 'Opportunity Won Reason' custom value. Returns the numerical ID for the specific reason why the opportunity was won. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_CLOSED_REASON | integer | Corresponds to the 'Opportunity Closed Reason' custom value. Returns the numerical ID for the specific reason why the opportunity was closed. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
ADDR_LAT | decimal | Project's entered latitude coordinates. |
ADDR_LON | decimal | Project's entered longitude coordinates. |
COST_CODE_SET | integer | Number associated with the cost code list assigned to the project. Returns null if a cost code list has not been assigned. |
EFFECTIVE_DATE_CREATED | date | Date and time the project was created. |
CREATED_FROM | integer | Indicates how the project was created, such as from scratch, from an opportunity, or from a template. |
SALES_TAX_REGION | integer | Tax settings selected in the project's tax settings. The selected region corresponds to a specific numeric value (for example, United States would return a value of 1). |
TAX_METHOD | integer | Tax calculation method selected in the project's tax settings. The selected method corresponds to a specific numeric value. |
JOBSITE_INSTRUCTIONS | string | Job site instructiosn for the project. |
IS_SAMPLE_PROJECT | boolean | Indicates if the project is one of ConstructionOnline's sample, preloaded projects. |
OPPORTUNITY_NUMBER | integer | Opportunity number assigned to the project. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_BID_DUE_DATE | date | Opportunity bid due date for the project. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
OPPORTUNITY_BID_SUBMITTED_DATE | date | Opportunity bid submitted date for the project. Only applicable if the project was converted from an opportunity; else, the property will return as null. |
Example project object:
{
"ID": 1321036,
"NAME": "3931 E Lake Blvd",
"CREATED_BY": 1003826,
"LOG_ID": 18121,
"LMOD": "2024-02-01T16:28:37.85",
"ADDRESS": "3931 E Lake Blvd",
"CITY": "Auburn",
"STATE": "AL",
"ZIP": "36830",
"PROJECT_NUMBER": "3578",
"PROJECT_TYPE": "Single-family Residential",
"LMOD_CON_ID": 985314,
"NUMBERFOLDERS": 18,
"NUMBERIMAGES": 136,
"NUMBERALBUMS": 6,
"NUMBERFILES": 155,
"CON_ID": 1003826,
"DATE_CREATED": "2022-09-20T14:23:21.383",
"ATTACH_FOLDER_ID": null,
"PRIMARY_SCHEDULE": 413461,
"TOTAL_MONEY": 635000.0,
"TOTAL_TIME": 180,
"IS_ARCHIVED": false,
"CURRENCY": 0,
"IS_TEMPLATE": false,
"COUNTRY_SETTING": 1,
"CUSTOM_COLOR": "#6357a7",
"COMPANY_ID": 24720,
"IS_INACTIVE": false,
"LAT": 32.5389,
"LON": -85.4921,
"TRACKING_TYPE": 3,
"SCOPE_OF_WORK": "",
"CS_LMOD": null,
"PROJECT_NOTES": "Contact Benjamin Chen for additional information.",
"PROJECT_TYPE_ID": 0,
"WEATHER_STATION": null,
"USE_CURR_CODE": false,
"ESTIMATE_UNQUALIFIED_COMMITS": null,
"ESTIMATE_UNQUALIFIED_ACTUALS": null,
"ESTIMATE_UNQUALIFIED_EXPENSES": null,
"SELECTION_UNQUALIFIED_COMMITS": null,
"SELECTION_UNQUALIFIED_ACTUALS": null,
"SELECTION_UNQUALIFIED_EXPENSES": null,
"CHANGE_ORDER_UNQUALIFIED_COMMITS": null,
"CHANGE_ORDER_UNQUALIFIED_ACTUALS": null,
"CHANGE_ORDER_UNQUALIFIED_EXPENSES": null,
"PROJECT_TYPE_CUSTOM": 385,
"PROJECT_STAGE": 1616,
"PROJECT_GROUP": 0,
"PROJECT_CATEGORY": 0,
"PROJECT_OFFICE": 83379,
"PROJECT_DIVISION": 86192,
"PROJECT_REGION": 86189,
"IS_OPPORTUNITY": false,
"OPPORTUNITY_STATUS": null,
"OPPORTUNITY_STAGE": null,
"OPPORTUNITY_SOURCE": null,
"OPPORTUNITY_TYPE": null,
"OPPORTUNITY_REFERRER": null,
"OPPORTUNITY_PROBABILITY": null,
"OPPORTUNITY_VALUE": null,
"OPPORTUNITY_OPENED_DATE": null,
"OPPORTUNITY_CLOSED_DATE": null,
"OPPORTUNITY_QUALITY": null,
"OPPORTUNITY_NOTES": null,
"OPPORTUNITY_CONVERTED_DATE": null,
"OPPORTUNITY_LEAD": null,
"OPPORTUNITY_WON_REASON": null,
"OPPORTUNITY_LOST_REASON": null,
"OPPORTUNITY_REPRESENTATIVE": null,
"ADDR_LAT": 32.575412,
"ADDR_LON": -85.425347,
"COST_CODE_SET": 2,
"EFFECTIVE_DATE_CREATED": "2022-09-20T14:23:21.383",
"CREATED_FROM": 0,
"SALES_TAX_REGION": 1,
"TAX_METHOD": 1,
"JOBSITE_INSTRUCTIONS": "%3Cp%3EFront gate code is 1234. Contact Benjamin Chen if you have any questions.%26nbsp%3B%3C%2Fp%3E",
"IS_SAMPLE_PROJECT": true,
"SCHEDULED_START": null,
"SCHEDULED_END": null,
"ACTUAL_START": null,
"ACTUAL_END": null,
"ADJUSTED_COSTS": null,
"ACTUAL_COSTS": null,
"BUDGETED_HOURS": null,
"OPPORTUNITY_NUMBER": null,
"OPPORTUNITY_BID_DUE_DATE": null,
"OPPORTUNITY_BID_SUBMITTED_DATE": null
}
Estimate Object
Name | Type | Description |
ID | integer | Unique identifier for the estimate. |
NAME | string | Name of the estimate as it appears in ConstructionOnline. |
MARKUP_NAME | string | Name of the estimate's Company Overhead and Margin section. |
TOTAL_PRICE | decimal | Total value of the estimate (also displayed as project total in the estimate). This includes the base cost of the estimate, markup, selections allowance, approved change orders, and company overhead and margin. Selection overages are not included in this total. |
TOTAL_ALLOWANCE | decimal | Total selections allowance for the estimate. |
TOTAL_COM | decimal | Total value of the estimate's company overhead and margin section. This total does not include markup applied to individual estimate subcategories or items. |
TOTAL_MARKUP | decimal | Total markup calculated for each estimate subcategory or item. This total does not include the estimate's company overhead and margin. |
TOTAL_BASECOST | decimal | Base cost of the estimate before any tax or markup. This total does not include selections allowance, company overhead and margin, change orders, or overages. |
TOTAL_SALES_TAX | decimal | Total amount of tax calculated from the base cost of the estimate. |
ORIGINAL_CONTRACT_VALUE | decimal | Original contract price/total of the estimate. This includes the base cost of the estimate, markup, selections allowance, and company overhead and margin. |
TOTAL_ACTUALS | decimal | Total actual costs recorded in ConstructionOnline for estimate subcategories or items, and approved change orders. |
TOTAL_COMMITTED | decimal | Total committed costs recorded in ConstructionOnline for estimate subcategories or items. |
TOTAL_INVOICED | decimal | Total amount invoiced for the estimate. |
TOTAL_REMAINING | decimal | Internal estimate calculation value. |
TOTAL_BALANCE | decimal | Internal estimate calculation value. |
TOTAL_ADJUSTMENT | decimal | Total adjustments entered in ConstructionOnline for estimate subcategories or items. |
TOTAL_ADJUSTEDCOST | decimal | Total adjusted cost for the estimate, which is base cost + total tax + adjustments + cost of all change orders linked to estimate. |
TOTAL_QB_ACTUALS | decimal | Total value of QuickBooks Actuals associated with the estimate. This value is populated by importing from QuickBooks and can include Bills and Expenses. |
TOTAL_QB_INVOICED | decimal | Total value of existing invoices within QuickBooks associated with the estimate. This value is populated by importing from QuickBooks. |
TOTAL_LINKED_CO_PRICE | decimal | Total client price (cost + tax + markup) of all approved change orders linked to the estimate. |
TOTAL_LINKED_CO_COST | decimal | Total cost of all approved change orders linked to the estimate. This value does not include tax or markup. |
TOTAL_CONTRACTPRICE | decimal | Total contract price for the estimate, which is base cost + total tax + total markup (not including |
CREATED_BY | integer | Unique identifier for the user who created the estimate. |
DATE_CREATED | string | Date and time the estimate was created. |
CREATOR | string | Name of the user who created the estimate. |
LMOD_BY | integer | Unique identifier for the user who last modified the estimate. |
LMOD | string | Date and time the estimate was last modified. |
MODIFIER | string | Name of the user who last modified the estimate. |
FIVE_COLUMN_ESTIMATE | boolean | Signifies the estimate's calculation method. Returns true if the 5-column calculation method was used, false if the standard calculation method was used. |
ADVANCED_ESTIMATE | boolean | Signifies the estimate's level of detail. Returns true if the estimate is a standard 3-level estimate, false if the estimate is a basic 2-level estimate. |
COST_TOTAL | decimal | Internal estimate calculation value (base cost). |
COST_ACTUAL | decimal | Internal estimate calculation value (actual costs). |
COST_INVOICED | decimal | Internal estimate calculation value (invoiced costs). |
COST_VARIENCE | decimal | Internal estimate calculation value (estimate - actual cost) |
COST_COMMITTED | decimal | Internal estimate calculation value (committed costs). |
COST_PAID | decimal | Internal estimate calculation value (costs paid). |
TOTAL_PROFIT | decimal | Total profit recorded for the estimate. |
PROJECT_ID | integer | Unique identifier for the project/opportunity that contains the estimate. |
PROJECT_NAME | string | Name of the project/opportunity containing the estimate. |
LAST_QBD_ESTIMATE_DATE | string | Date the estimate was last sent over to QuickBooks Desktop. |
LAST_QBD_ACTUAL_DATE | string | Date the estimate's actuals were last sent over to QuickBooks Desktop. |
LAST_QBD_INVOICE_DATE | string | Date the estimate was last invoiced in QuickBooks Desktop. |
LAST_QBD_PO_DATE | string | Date a purchase order was last created and sent to QuickBooks Desktop. |
Example estimate object:
{
"ID": 367610,
"NAME": "1342 S Ross St - version w/out pool Estimate 2",
"MARKUP_NAME": "Company Overhead and Margin",
"TOTAL_PRICE": 565167.85714285728,
"TOTAL_ALLOWANCE": 0.0,
"TOTAL_COM": 198855.35714285722,
"TOTAL_MARKUP": 460.0,
"TOTAL_BASECOST": 365852.50000000006,
"TOTAL_SALES_TAX": 0.0,
"ORIGINAL_CONTRACT_VALUE": 565167.85714285728,
"TOTAL_ACTUALS": 0.0,
"TOTAL_COMMITTED": 0.0,
"TOTAL_INVOICED": 0.0,
"TOTAL_REMAINING": 564707.85714285728,
"TOTAL_BALANCE": 565167.85714285728,
"TOTAL_ADJUSTMENT": 0.0,
"TOTAL_ADJUSTEDCOST": 365852.50000000006,
"TOTAL_QB_ACTUALS": 0.0,
"TOTAL_QB_INVOICED": 0.0,
"TOTAL_QB_COMMITTED": 0.0,
"TOTAL_LINKED_CO_PRICE": 0.0,
"TOTAL_LINKED_CO_COST": 0.0,
"TOTAL_CONTRACTPRICE": 366312.50000000006,
"CREATED_BY": 999997,
"DATE_CREATED": "2022-09-22T14:44:14.263",
"CREATOR": "Alex Kim",
"LMOD_BY": 999997,
"LMOD": "2022-09-22T14:44:14.257",
"MODIFIER": "Alex Kim",
"FIVE_COLUMN_ESTIMATE": false,
"ADVANCED_ESTIMATE": true,
"COST_TOTAL": 365852.50000000006,
"COST_ACTUAL": 0.0,
"COST_INVOICED": 0.0,
"COST_VARIENCE": 0.0,
"COST_COMMITTED": 0.0,
"COST_PAID": 0.0,
"TOTAL_PROFIT": 460.0,
"PROJECT_ID": 1312899,
"PROJECT_NAME": "1342 S Ross St",
"LAST_QBD_ESTIMATE_DATE": null,
"LAST_QBD_ACTUAL_DATE": null,
"LAST_QBD_INVOICE_DATE": null,
"LAST_QBD_PO_DATE": null
}
Estimate Category Object
Name | Type | Description |
ID | integer | Unique identifier for the estimate category. |
ESTIMATE_ID | integer | Unique identifier for the estimate. |
ROW_NUMBER | integer | Row number of the estimate that the estimate category is located on. |
NAME | string | Name of the estimate category. |
DESCRIPTION | string | Description entered for the estimate category. |
NOTES_TEAMLINK | string | TeamLink notes entered for the estimate category. |
NOTES_CLIENTLINK | string | ClientLink notes entered for the estimate category. |
NOTES_GENERAL | string | General notes entered for the estimate category. |
TRAFFIC_COLOR | integer | Represents the traffic light color assigned to the estimate category. The number 1 corresponds to the color green, 2 corresponds to the color yellow, 3 corresponds to the color red, and 0 means no color has been assigned to the category. |
COST_CODE | string | Corresponds to the Code column of the estimate subcategory. |
COST_CODE_ID | integer | Unique identifier for the cost code assigned to the estimate category. |
COST_ESTIMATE | double | Base cost of the estimate category. |
Example estimate category object:
{
"ID": 4393211,
"ESTIMATE_ID": 367610,
"ROW_NUMBER": 1,
"NAME": "Planning",
"DESCRIPTION": "",
"NOTES_TEAMLINK": "",
"NOTES_CLIENTLINK": "",
"NOTES_GENERAL": "",
"TRAFFIC_COLOR": 0,
"COST_CODE": "",
"COST_CODE_ID": 0,
"COST_ESTIMATE": 97080.0
}
Estimate Subcategory Object
Name | Type | Description |
ID | integer | Unique identifier for the estimate subcategory |
ESTIMATE_ID | integer | Unique identifier for the estimate. |
CATEGORY_ID | integer | Unique identifier for the estimate category. |
ROW_NUMBER | integer | Row number of the estimate that the estimate subcategory is located on. |
NAME | string | Name of the estimate subcategory. |
DESCRIPTION | string | Description entered for the estimate subcategory. |
CLASSIFICATION | integer | Reserved for future use. |
STATUS | integer | Reserved for future use. |
COST_ESTIMATE | decimal | Base cost of the estimate subcategory. |
NOTES_TEAMLINK | string | TeamLink notes entered for the estimate subcategory. |
NOTES_CLIENTLINK | string | ClientLink notes entered for the estimate subcategory. |
NOTES_GENERAL | string | General notes entered for the estimate subcategory. |
LINE_ITEM_MARKUP | integer | Only applicable to 2-level estimates. Individual markup value for the estimate subcategory. |
RATE | decimal | Only applicable to 2-level estimates. Quantity of the estimate subcategory. |
RATE_QTY | decimal | Only applicable to 2-level estimates. Unit cost of the estimate subcategory. |
LINE_ITEM_MARKUP_TYPE | integer | Only applicable to 2-level estimates. Signifies which markup calculation type was selected for the estimate subcategory. A value of 1 represents Percent Markup (%), 2 is Dollar Markup, 3 is Dollar per Unit Markup, and 4 is Classification Markups Applied. |
ADJUSTMENT | decimal | Total adjustments entered for the estimate subcategory. |
FIVE_COLUMN_EQUIPMENT | decimal | Total equipment costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
FIVE_COLUMN_LABOR | decimal | Total labor costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
FIVE_COLUMN_MATERIAL | decimal | Total material costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
FIVE_COLUMN_OTHER | decimal | Total other costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
FIVE_COLUMN_SUB | decimal | Total subcontractor costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
TRAFFIC_COLOR | integer | Represents the traffic light color assigned to the estimate subcategory. The number 1 corresponds to the color green, 2 corresponds to the color yellow, 3 corresponds to the color red, and 0 means no color has been assigned to the subcategory. |
COST_CODE | string | Name of the cost code assigned to the subcategory. |
COST_CODE_ID | integer | Unique identifier for the cost code assigned to the subcategory. |
DOLLAR_MARKUP | decimal | Total markup calculated from the subcategory. |
TOTAL_MARKUP | decimal | Total markup calculated from the subcategory. |
COMMITTED_COSTS | decimal | Total committed costs recorded for the estimate subcategory. |
INVOICED_AMOUNTS | decimal | Total amount invoiced for the estimate subcategory. |
ACTUAL | decimal | Total actual costs recorded for the estimate subcategory. |
QB_COMMITTED | decimal | Total committed costs recorded in QuickBooks for the the estimate subcategory. |
QB_INVOICED | decimal | Total amount invoiced in QuickBooks for the estimate subcategory. |
QB_ACTUAL | decimal | Total actual costs recorded in QuickBooks for the estimate subcategory. |
SALES_TAX | decimal | Total tax calculated for the estimate subcategory. |
UNIT | integer | Unique identifier of the unit used to measure the estimate subcategory. |
UNIT_NAME | string | Name of the unit used to measure the estimate subcategory. |
ASSIGNED | string | Only applicable to 2-level estimates. Unique identifier for the user(s) assigned to the estimate subcategory as a resource. |
Example estimate subcategory object:
{
"ID": 22069965,
"ESTIMATE_ID": 367610,
"CATEGORY_ID": 4393211,
"ROW_NUMBER": 2,
"NAME": "Design Services",
"DESCRIPTION": "",
"CLASSIFICATION": 6,
"STATUS": 0,
"COST_ESTIMATE": 5000.0,
"NOTES_TEAMLINK": "",
"NOTES_CLIENTLINK": "",
"NOTES_GENERAL": "",
"LINE_ITEM_MARKUP": "0",
"RATE": 0.0,
"RATE_QTY": 0.0,
"LINE_ITEM_MARKUP_TYPE": 1,
"ADJUSTMENT": 0.0,
"FIVE_COLUMN_EQUIPMENT": null,
"FIVE_COLUMN_LABOR": null,
"FIVE_COLUMN_MATERIAL": null,
"FIVE_COLUMN_OTHER": null,
"FIVE_COLUMN_SUB": null,
"TRAFFIC_COLOR": null,
"COST_CODE": "",
"COST_CODE_ID": 0,
"DOLLAR_MARKUP": 0.0,
"TOTAL_MARKUP": 0.0,
"COMMITTED_COSTS": 0.0,
"INVOICED_AMOUNTS": 0.0,
"ACTUAL": 0.0,
"QB_COMMITTED": 0.0,
"QB_INVOICED": 0.0,
"QB_ACTUAL": 0.0,
"SALES_TAX": 0.0,
"UNIT": "0",
"UNIT_NAME": null,
"ASSIGNED": null
}
Estimate Item Object
Name | Type | Description |
ID | integer | Unique identifier for the estimate item. |
ESTIMATE_ID | integer | Unique identifier for the estimate. |
CATEGORY_ID | integer | Unique identifier for the category containing the estimate item. |
SUBCATEGORY_ID | integer | Unique identifier for the subcategory containing the estimate item. |
ROW_NUMBER | integer | Row number of the estimate that the estimate item is located on. |
NAME | string | Name of the estimate item. |
DESCRIPTION | string | Description entered for the estimate item. |
CLASSIFICATION | integer | Designates the classification assigned to the estimate item. A value of 1 is the classification Material, 2 is Labor, 3 is Subcontractor, 4 is Equipment, 5 is Other, and 6 is Unclassified. |
STATUS | integer | Designates the status assigned to the estimate item. A value of 1 is the status Estimated, 2 is Firm, and 3 is Bid. |
COST_ESTIMATE | decimal | Base cost of the estimate item. |
NOTES_TEAMLINK | string | TeamLink notes entered for the estimate item. |
NOTES_CLIENTLINK | string | ClientLink notes entered for the estimate item. |
NOTES_GENERAL | string | General notes entered for the estimate item. |
LINE_ITEM_MARKUP | integer | Markup value for the estimate item. |
RATE | decimal | Quantity of the estimate item. |
RATE_QTY | decimal | Unit cost of the estimate item. |
LINE_ITEM_MARKUP_TYPE | integer | Signifies which markup calculation type was selected for the estimate item. A value of 1 represents Percent Markup (%), 2 is Dollar Markup, 3 is Dollar per Unit Markup, and 4 is Classification Markups Applied. |
ADJUSTMENT | decimal | Adjustment value entered for the estimate item. |
FIVE_COLUMN_EQUIPMENT | decimal | Total equipment costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
FIVE_COLUMN_LABOR | decimal | Total labor costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
FIVE_COLUMN_MATERIAL | decimal | Total material costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
FIVE_COLUMN_OTHER | decimal | Total other costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
FIVE_COLUMN_SUB | decimal | Total subcontractor costs entered for a 5-column estimate. Returns null if estimate is not 5-column. |
TRAFFIC_COLOR | integer | Represents the traffic light color assigned to the estimate item. The number 1 corresponds to the color green, 2 corresponds to the color yellow, 3 corresponds to the color red, and 0 means no color has been assigned to the item. |
COST_CODE | string | Name of the cost code assigned to the estimate item. |
COST_CODE_ID | integer | Unique identifier for the cost code assigned to the estimate item. |
DOLLAR_MARKUP | decimal | Individual markup calculated from the estimate item. |
COMMITTED_COSTS | decimal | Total committed costs recorded for the estimate item. |
INVOICED_AMOUNTS | decimal | Total amount invoiced for the estimate item. |
ACTUAL | decimal | Total actual costs recorded for the estimate item. |
QB_COMMITTED | decimal | Total committed costs recorded in QuickBooks for the the estimate item. |
QB_INVOICED | decimal | Total amount invoiced in QuickBooks for the estimate item. |
QB_ACTUAL | decimal | Total actual costs recorded in QuickBooks for the estimate item. |
SALES_TAX | decimal | Total tax calculated for the estimate item. |
UNIT | integer | Unique identifier of the unit used to measure the estimate item. |
UNIT_NAME | string | Name of the unit used to measure the estimate item. |
ASSIGNED | string | Unique identifier for user(s) assigned to the estimate item as a resource. |
Example estimate item object:
{
"ID": 47440788,
"ESTIMATE_ID": 367610,
"CATEGORY_ID": 4393211,
"SUBCATEGORY_ID": 22069965,
"ROW_NUMBER": 3,
"NAME": "Site Work",
"DESCRIPTION": "",
"CLASSIFICATION": 5,
"STATUS": 0,
"COST_ESTIMATE": 5000.0,
"NOTES_TEAMLINK": "",
"NOTES_CLIENTLINK": "",
"NOTES_GENERAL": "Specifications require a 10' uncleared buffer area.",
"LINE_ITEM_MARKUP": "1",
"RATE": 500.0,
"RATE_QTY": 10.0,
"LINE_ITEM_MARKUP_TYPE": 1,
"ADJUSTMENT": 0.0,
"FIVE_COLUMN_EQUIPMENT": null,
"FIVE_COLUMN_LABOR": null,
"FIVE_COLUMN_MATERIAL": null,
"FIVE_COLUMN_OTHER": null,
"FIVE_COLUMN_SUB": null,
"TRAFFIC_COLOR": 1,
"COST_CODE": "",
"COST_CODE_ID": 75,
"DOLLAR_MARKUP": 0.0,
"COMMITTED_COSTS": 0.0,
"INVOICED_AMOUNTS": 1000.0,
"ACTUAL": 0.0,
"QB_COMMITTED": null,
"QB_INVOICED": null,
"QB_ACTUAL": 0.0,
"SALES_TAX": 0.0,
"UNIT": "0",
"UNIT_NAME": null,
"ASSIGNED": 123456
}
Estimate Markup Object
Name | Type | Description |
ID | integer | Unique identifier for the markup entry. |
NAME | string | Name of the markup entry. |
ESTIMATE_ID | integer | Unique identifier for the estimate containing the markup entry. |
VALUE | decimal | Value assigned to the markup entry. |
MARKUP_TYPE | integer | Markup type assigned to the markup entry. A value of 1 represents Percent Margin, 2 represents Percent of Costs, and 3 represents Fixed Amount. |
INVOICED | decimal | Amount invoiced towards the markup entry. |
ACTUALS | decimal | Actual cost of the markup entry; amount recorded in the Actuals column of the estimate. |
QB_ACTUALS | decimal | Value of QuickBooks Actuals associated with the markup entry. |
QB_INVOICED | decimal | Value of invoices within QuickBooks associated with the markup entry. |
TOTAL_MARKUP | decimal | Total amount calculated for the markup entry. |
Example markup object:
{
"ID": 1396830,
"NAME": "Company Overhead",
"ESTIMATE_ID": 367610,
"VALUE": 8.0,
"MARKUP_TYPE": 2,
"INVOICED": 0.0,
"ACTUALS": 0.0,
"QB_ACTUALS": 0.0,
"QB_INVOICED": 0.0,
"TOTAL_MARKUP": 29305.000000000004
}
Change Order Object
Name | Type | Description |
ID | integer | Unique identifier for the change order. |
NAME | string | Name of the change order. |
PRJ_ID | integer | Unique identifier of the project associated with the change order. |
PROJECTNAME | string | Name of the project associated with the change order. |
NUMBER | string | Number assigned to the change order. |
DETAILS | string | Description of the change order. |
CONDITION | byte | Status of the change order. A value of 0 represents a pending status, 1 is an approved status, 2 is a rejected status, and 3 is a draft status. |
COST_MONEY | decimal | Total cost of the change order (excluding any tax or markup). |
COST_TIME | integer | Number of added workdays for the change order. |
DATE_CREATED | date | Date and time the change order was created. |
CREATED_BY | integer | Unique identifier of the user who created the change order. |
CREATOR | string | Name of the user who created the change order. |
DATE_CLOSED | date | Date and time the change order was approved or rejected. |
CLOSED_BY | integer | Unique identifier of the user who approved/rejected the change order. |
CLOSER | string | Name of the user who approved/rejected the change order. |
DATE_MODIFIED | date | Date and time the change order was last modified. |
MODIFIED_BY | integer | Unique identifier of the user who last modified the change order. |
MODIFIER | string | Name of the user who last modified the change order. |
NOTES | string | Notes entered for the change order. |
REASONING | string | Reserved for internal use. |
PRICE | decimal | Unit cost of the change order. |
QTY | decimal | Quantity set for a lump sum change order. |
SUBTITLE | string | Subtitle of the change order. |
IMAGE_ID | integer | Unique identifier for the image selected as the item image for the change order. |
URL | string | Item webpage URL entered for the change order. |
SUBSTANTIAL_COMMENCEMENT | date | Reserved for internal use. |
MULTIPLIER | integer | Reserved for internal use. |
MARKUP | decimal | Markup calculated for the change order. |
TAX_PERCENT | decimal | Tax percentage applied to the change order. |
TAX_METHOD | integer | Tax calculation method selected for the change order. |
SALES_TAX | decimal | Tax calculated for the change order. |
CLIENT_PRICE | decimal | Client price of the change order (total cost + tax + markup). |
DATE_SUBMITTED | date | Date the change order was submitted for approval (manual field entry, not automatically assigned). |
GCCO | string | G.C. change order number. |
QBO_INVOICE_ID | integer | Unique identifier for the invoice associated with the change order. |
ACCT_INVOICE_ID | string | Unique identifier for the invoice associated with the change order. |
ACTUAL | decimal | Actuals manually recorded for the change order. |
INVOICED_AMOUNTS | decimal | Amount invoiced for the change order. |
COMMITTED_COSTS | decimal | Total committed costs for the change order. |
MARKUP_TYPE | byte | Signifies which markup type was selected for the change order. A value of 0 represents Percent Markup (%), 1 is Dollar Markup ($), and 2 is Dollar per Unit Markup ($/unit). |
QB_COMMITTED | decimal | Total committed costs recorded in QuickBooks for the the change order. |
QB_INVOICED | decimal | Total amount invoiced in QuickBooks for the change order. |
QB_ACTUALS | decimal | Total actual costs recorded in QuickBooks for the change order. |
COST_CODE_ID | integer | Reserved for internal use. |
UNIT | integer | Reserved for future use. |
UNIT_NAME | string | Reserved for future use. |
RELSUBCATS | string | ID of the estimate subcategory associated with the change order. |
RELCONIDS | string | Reserved for internal use. |
RELUSERIDS | string | ID and name of any users added to the change order as a resource. |
Example change order object:
{ "ID": 498099,
"NAME": "Living Room Light Fixtures",
"PRJ_ID": 1321036,
"PROJECTNAME": "3931 E Lake Blvd",
"NUMBER": "2",
"DETAILS": "Client requested different overhead light fixtures for the living room. \nNew fixtures exceed existing allowance.\nFixtures need to be ordered & delivered before installation date of 7/01/23.",
"CONDITION": 0,
"COST_MONEY": 2380.0,
"COST_TIME": 3,
"DATE_CREATED": "2023-05-17T18:15:45.037",
"CREATED_BY": 985300,
"CREATOR": "",
"DATE_CLOSED": "2023-06-02T19:59:14.217",
"CLOSED_BY": 988884,
"CLOSER": "",
"DATE_MODIFIED": "2024-02-19T17:48:46.417",
"MODIFIED_BY": 988884,
"MODIFIER": "",
"NOTES": "",
"REASONING": "",
"PRICE": 2380.0,
"QTY": 1.0,
"SUBTITLE": "Upgraded light fixtures for the living room",
"IMAGE_ID": 0,
"URL": "",
"SUBSTANTIAL_COMMENCEMENT": null,
"MULTIPLIER": null,
"MARKUP": 385.0,
"TAX_PERCENT": 0.0,
"TAX_METHOD": 3,
"SALES_TAX": 0.0,
"CLIENT_PRICE": 2765.0,
"DATE_SUBMITTED": "2023-05-14T00:00:00",
"GCCO": "",
"QBO_INVOICE_ID": null,
"ACCT_INVOICE_ID": null,
"ACTUAL": 0.0,
"INVOICED_AMOUNTS": 0.0,
"COMMITTED_COSTS": 0.0,
"MARKUP_TYPE": 1,
"QB_COMMITTED": null,
"QB_INVOICED": 0.0,
"QB_ACTUALS": 0.0,
"UNIT": null,
"UNIT_NAME": null,
"RELSUBCATS": null,
"RELCONIDS": null,
"RELUSERIDS": "985779,Theo Brown"
}
Change Order Item Object
Name | Type | Description |
ID | integer | Unique identifier for the change order item. |
CHANGE_ORDER_ID | integer | Unique identifier of the change order the item is belongs to. |
NAME | string | Name of the change order item |
PRJ_ID | integer | Unique identifier of the project associated with the change order item. |
PROJECTNAME | string | Name of the project associated with the change order item. |
ROW_NUMBER | string | Row number assigned to the change order item. |
DESCRIPTION | string | Description of the change order item. |
CLASSIFICATION | integer | Designates the classification assigned to the e item. A value of 1 is the classification Material, 2 is Labor, 3 is Subcontractor, 4 is Equipment, 5 is Other, and 6 is Unclassified. |
STATUS | integer | Status of the change order. A value of 0 represents a pending status, 1 is an approved status, 2 is a rejected status, and 3 is a draft status. |
COST_ESTIMATE | decimal | Total cost of the change order item (excluding any tax or markup). |
COST_TOTAL | integer | Reserved for internal use. |
NOTES_TEAMLINK | string | TeamLink notes entered for the change order. |
NOTES_CLIENTLINK | string | ClientLink notes entered for the change order. |
NOTES_GENERAL | string | General notes entered for the change order. |
LINE_ITEM_MARKUP | string | Individual markup for the change order item. |
RATE | decimal | Quantity of the change order item. |
RATE_QTY | decimal | Unit cost of the change order item. |
LINE_ITEM_MARKUP_TYPE | integer | Signifies which markup calculation type was selected for the item. A value of 1 represents Percent Markup (%), 2 is Dollar Markup, 3 is Dollar per Unit Markup, and 4 is Classification Markups Applied. |
ADJUSTMENT | decimal | Total adjustments entered for the change order. |
TRAFFIC_COLOR | integer | Reserved for future use. |
COST_CODE_ID | integer | Unique identifier for the cost code assigned to the change order item. |
MARKUP | decimal | Total markup calculated for the change order item. |
COMMITTED_COSTS | decimal | Total committed costs manually recorded for the change order. |
INVOICED_AMOUNTS | decimal | Total amount invoiced towards the change order. |
ACTUAL | decimal | Total actual costs manually recorded for the change order. |
QB_COMMITTED | decimal | Total committed costs recorded in QuickBooks for the change order. |
QB_INVOICED | decimal | Total amount invoiced in QuickBooks for the change order. |
QB_ACTUAL | decimal | Total actual costs recorded in QuickBooks for the estimate subcategory. |
TAX_PERCENT | decimal | Tax percentage applied to the change order. item. |
TAX_METHOD | integer | Tax calculation method selected for the change order item. |
SALES_TAX | decimal | Total tax calculated for the change order item. |
CLIENT_PRICE | decimal | Client price of the change order item (total cost + tax + markup). |
DATE_CREATED | date | Date the change order item was created. |
CREATED_BY | integer | Unique identifier for the user who created the change order item. |
CREATOR | string | Name of the user who created the change order item. |
DATE_CLOSED | date | Date and time the change order was approved or rejected. |
CLOSED_BY | integer | Unique identifier of the user who approved/rejected the change order. |
CLOSER | string | Name of the user who approved/rejected the change order. |
DATE_MODIFIED | date | Date and time the change order was last modified. |
MODIFIED_BY | integer | Unique identifier of the user who last modified the change order. |
MODIFIER | string | Name of the user who last modified the change order. |
CUSTOM_UNIT | integer | Reserved for future use. |
UNIT_NAME | string | Reserved for future use. |
RELSUBCATS | string | Reserved for future use. |
Example change order item object:
{
"ID": 524469,
"CHANGE_ORDER_ID": 500942,
"NAME": "Chandelier",
"PRJ_ID": 1321036,
"PROJECTNAME": "3931 E Lake Blvd",
"ROW_NUMBER": 0,
"DESCRIPTION": "",
"CLASSIFICATION": 1,
"STATUS": 3,
"COST_ESTIMATE": 850.0,
"COST_TOTAL": null,
"NOTES_TEAMLINK": null,
"NOTES_CLIENTLINK": null,
"NOTES_GENERAL": null,
"LINE_ITEM_MARKUP": "20",
"RATE": 850.0,
"RATE_QTY": 1.0,
"LINE_ITEM_MARKUP_TYPE": 0,
"ADJUSTMENT": 0.0,
"TRAFFIC_COLOR": 0,
"COST_CODE_ID": 371,
"MARKUP": 170.0,
"COMMITTED_COSTS": 0.0,
"INVOICED_AMOUNTS": 0.0,
"ACTUAL": 0.0,
"QB_COMMITTED": null,
"QB_INVOICED": null,
"QB_ACTUAL": null,
"TAX_PERCENT": 0.0,
"TAX_METHOD": 3,
"SALES_TAX": 0.0,
"CLIENT_PRICE": 1020.0,
"DATE_CREATED": "2023-06-02T15:13:36.403",
"CREATED_BY": 985888,
"CREATOR": "Alex Kim",
"DATE_CLOSED": null,
"CLOSED_BY": null,
"CLOSER": "",
"DATE_MODIFIED": "2023-06-27T17:25:05.983",
"MODIFIED_BY": 985888,
"MODIFIER": "",
"CUSTOM_UNIT": null,
"UNIT_NAME": null,
"RELSUBCATS": null
}
Selection Category Object
Name | Type | Description |
ID | integer | Unique identifier for the selection category. |
NAME | string | Name of the selection category. |
PRJ_ID | integer | Unique identifier for the project containing the selection category. |
PROJECTNAME | string | Name of the project containing the selection category. |
DESCRIPTION | string | Description entered for the selection category. |
SORT_NUM | integer | Category order number for the selection category. |
TYPE | integer | Reserved for internal use. |
TEMPLATE_ID | integer | Reserved for internal use. |
Example selection category object:
{
"ID": 616648,
"NAME": "Flooring",
"PRJ_ID": 1321099,
"PROJECTNAME": "3931 E Lake Blvd",
"DESCRIPTION": "",
"SORT_NUM": 1,
"TYPE": 0,
"TEMPLATE_ID": 0
}
Selection Subcategory Object
Name | Type | Description |
ID | integer | Unique identifier for the selection subcategory. |
NAME | string | Name of the selection subcategory |
PRJ_ID | integer | Unique identifier for the project contaning the selection subcategory. |
PROJECTNAME | string | Name of the project containing the selection subcategory. |
CAT_TYPE_ID | integer | Unique identifier for the selection category containing the selection subcategory. |
CATEGORYNAME | string | Name of the selection category contaning the selection subcategory. |
LOCATION | string | Location entered for the selection subcategory. |
DUE_DATE | date | Due date entered for the selection subcategory. |
ALLOWANCE | decimal | Allowance value entered for the selection subcategory. |
COST | decimal | Reserved for internal use. |
NET | decimal | Reserved for internal use. |
DETAILS | string | Notes entered for the selection subcategory. |
CLOSED | boolean | Indicates if a choice has been selected for the selection subcategory. Returns true if a choice has been approved, false if not. |
SORT_NUM | integer | Selection order number for the selection subcategory. |
TYPE | integer | Reserved for internal use. |
TEMPLATE_ID | integer | Reserved for internal use. |
MILESTONE | integer | Reserved for internal use. |
SUBJECT | string | Reserved for internal use. |
CHOICE_NAME | string | Name of the selection choice chosen for the subcategory. Only applicable if a selection choice has been approved for the subcategory; else, will return an empty string. |
CHOICE_ID | integer | Unique identifier for the selection choice chosen for the subcategory. Only applicable if a selection choice has been approved for the subcategory. |
APPROVED | boolean | Indicates if a selection choice has been made and approved for the subcategory. |
DATE_APPROVED | date | Date the selection choice was approved for the subcategory. |
APPROVED_BY | integer | Unique identifier for the user who approved the selection choice. |
CHOICE_PRICE | decimal | Unit cost of the approved selection choice. |
CHOICE_QTY | decimal | Quantity entered for the approved selection choice. |
CHOICE_TOTAL_COST | decimal | Total cost (unit cost x quantity) of the approved selection choice. |
CHOICE_MARKUP | decimal | Markup entered for the approved selection choice. |
CHOICE_SALES_TAX | decimal | Tax calculated for the approved selection choice. |
CHOICE_ACTUAL | decimal | Actual costs recorded for the selection choice. |
CHOICE_INVOICED | decimal | Total amount invoiced for the selection choice. |
CHOICE_QB_ACTUAL | decimal | Total value of QuickBooks Actuals associated with the selection choice. |
CHOICE_QB_INVOICED | decimal | Total value of existing invoices within QuickBooks associated with the selection choice. |
APPROVED_PRICE | decimal | Client price for the approved selection choice. |
Example selection subcategory object:
{
"ID": 1148457,
"NAME": "Refrigerator",
"PRJ_ID": 1321333,
"PROJECTNAME": "3931 E Lake Blvd",
"CAT_TYPE_ID": 616649,
"CATEGORYNAME": "Appliances",
"LOCATION": "Kitchen",
"DUE_DATE": "2024-02-01T00:00:00",
"ALLOWANCE": 15000.0,
"COST": 0.0,
"NET": 0.0,
"DETAILS": "",
"CLOSED": false,
"SORT_NUM": 2,
"TYPE": 0,
"TEMPLATE_ID": 0,
"MILESTONE": null,
"SUBJECT": null,
"CHOICE_NAME": "LG Electronics 29.7 cu. ft. French Door Refrigerator with Door-in-Door and CustomChill Drawer in Stainless Steel-LMXS30776S - The Home Depot",
"CHOICE_ID": 1792040,
"APPROVED": true,
"DATE_APPROVED": "2024-03-12T15:14:46.57",
"APPROVED_BY": 912344,
"CHOICE_PRICE": 3999.0,
"CHOICE_QTY": 3.0,
"CHOICE_TOTAL_COST": 11997.0,
"CHOICE_MARKUP": 501.0,
"CHOICE_SALES_TAX": 0.0,
"CHOICE_ACTUAL": 0.0,
"CHOICE_INVOICED": 0.0,
"CHOICE_QB_ACTUAL": 0.0,
"CHOICE_QB_INVOICED": 0.0,
"APPROVED_PRICE": 12498.0
}
Selection Choice Object
Name | Type | Description |
ID | integer | Unique identifier for the selection choice. |
NAME | string | Name of the selection choice. |
PRJ_ID | integer | Unique identifier for the project containing the selection choice. |
PROJECTNAME | string | Name of the project containing the selection choice. |
CATEGORY_ID | integer | Unique identifier for the subcategory containing the selection choice. |
CATEGORYNAME | string | Name of the subcategory for the selection choice. |
DETAILS | string | Details entered for the selection choice. |
APPROVED | boolean | Signifies if the selection choice was approved. Returns true if approved, false if not. |
DATE_APPROVED | date | Date and time the selection choice was approved. |
APPROVED_BY | integer | Unique identifier for the user who approved the selection choice. |
APPROVER | string | Name of the user who approved the selection choice. |
PRICE | decimal | Unit cost of the selection choice. |
QTY | decimal | Quantity entered for the selection choice. |
TOTAL_COST | decimal | Total cost (unit cost x quantity) of the selection choice. |
URL | string | Item webpage URL entered for the selection choice. |
IMAGE_ID | integer | Unique identifier for the item image set for the selection choice. |
VENDOR_TEXT | string | External vendors entered for the selection choice. |
STATUS | integer | Reserved for internal use. |
VENDOR_ID | integer | Unique identifier for the vendor(s) assigned to the selection choice. |
VENDOR | string | Name of the vendor(s) assigned to the selection choice. |
DATE_CREATED | date | Date the selection choice was created. |
CREATED_BY | integer | Unique identifier for the user who created the selection choice. |
CREATOR | string | Name of the user who created the seletion choice. |
SORT_NUM | integer | Choice order number for the selection choice. |
TYPE | integer | Reserved for internal use. |
IS_DEFAULT | boolean | Reserved for internal use. |
AMOUNT_PAID | decimal | Total amount paid towards the selection choice. |
TEMPLATE_ID | integer | Reserved for internal use. |
ACTUAL | decimal | Actual costs recorded for the selection choice. |
MARKUP | decimal | Markup applied to the selection choice. |
SALES_TAX | decimal | Tax calculated for the selection choice. |
QB_INVOICED | decimal | Total value of QuickBooks Actuals associated with the selection choice. |
QB_ACTUAL | decimal | Total value of existing invoices within QuickBooks associated with the selection choice. |
UNIT | integer | Unique identifier for the unit selected for the selection choice. |
UNIT_NAME | string | Name of the unit selected for the selection choice. |
Example selection choice object:
{
"ID": 1792038,
"NAME": "LG Electronics 6.9 cu. ft. Smart Double Oven Slide In Gas Range with ProBake Convection and Wi-Fi in Stainless Steel-LTG4715ST - The Home Depot",
"PRJ_ID": 1321333,
"PROJECTNAME": "3931 E Lake Blvd",
"CATEGORY_ID": 1148456,
"CATEGORYNAME": "Range",
"DETAILS": "With 6.9 cu. ft. of capacity, you can do it all at once",
"DATE_APPROVED": "2023-08-17T17:55:40.637",
"APPROVED_BY": 987777,
"APPROVER": "",
"PRICE": 2098.0,
"QTY": 1.0,
"TOTAL_COST": 2098.0,
"URL": "https://www.homedepot.com/p/LG-Electronics-6-9-cu-ft-Smart-Double-Oven-Slide-In-Gas-Range-with-ProBake-Convection-and-Wi-Fi-in-Stainless-Steel-LTG4715ST/304994119",
"IMAGE_ID": 9708942,
"VENDOR_TEXT": "homedepot.com",
"STATUS": 0,
"VENDOR_ID": 985779,
"VENDOR": "",
"DATE_CREATED": "2022-09-20T14:23:22.637",
"CREATED_BY": 1004444,
"CREATOR": "",
"SORT_NUM": 1,
"TYPE": 0,
"IS_DEFAULT": false,
"AMOUNT_PAID": 0.0,
"TEMPLATE_ID": 0,
"ACTUAL": 0.0,
"MARKUP": 502.0,
"SALES_TAX": 0.0,
"QB_INVOICED": 0.0,
"QB_ACTUAL": 0.0,
"UNIT": 1,
"UNIT_NAME": "Each"
}
Last updated: Feb 6, 2024