NEW!

A project estimate lets you compare estimated costs for a project against the actual amounts posted.

A project estimate is composed of one or more project estimate entries, which are amounts that can be tied to cost types, tasks, items, or other aspects of your project. Each entry can have a workflow type of original, revision, forecast, pending change, approved change, or other.

Your project estimate can post entries to an existing GL budget that was configured for that project in the Sage Intacct UI. An optional project estimate type lets you designate a subset of workflow types for posting to the GL budget.

You can create individual entries at the same time you create the project estimate, or you can add entries to an existing estimate using one of the following approaches:

You can create multiple project estimates for a given project/GL budget pairing, but only one can post to the GL budget.

Note: Cost type corresponds with category in the work breakdown structure in the Construction industry.


Get Project Estimate Object Definition

lookup

List all the fields and relationships for the project estimate object:

<lookup>
    <object>PJESTIMATE</object>
</lookup>

Parameters

Name Required Type Description
object Required string Use PJESTIMATE
docparid Optional string Used to indicate the document type, such as Inventory Transfer, Sales Order, Purchase Order and so forth . You must use this to take advantage of any custom fields on the specified document type.

List Project Estimates

query

List the record number and project estimate ID for each project estimate:

<query>
    <object>PJESTIMATE</object>
    <select>
        <field>RECORDNO</field>
        <field>PJESTIMATEID</field>
    </select>
</query> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATE
select Required sequence One or more field names and an optional aggregate function such as count or sum. Returning all fields is not supported.
filter Optional object Query filter 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).
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 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>
pagesize Optional integer Custom page size between 1 and 2000 items (Default: 100)
offset Optional integer Point at which to start indexing into records (Default: 0)
docparid Optional string Document type, such as Sales Order, Purchase Order, or Inventory Transfer

List Project Estimates (Legacy)

readByQuery

<readByQuery>
    <object>PJESTIMATE</object>
    <fields>*</fields>
    <query></query>
    <pagesize>100</pagesize>
</readByQuery> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATE
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)

Get Project Estimate

read

<read>
    <object>PJESTIMATE</object>
    <keys>12</keys>
    <fields>*</fields>
</read> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATE
keys Required string RECORDNO of the project estimate to get
fields Optional string Comma-separated list of fields on the object to get. For best performance and predictability, limit the number of fields. To return all fields, omit the element or provide * for the value.

Get Project Estimate by Name

readByName

<readByName>
    <object>PJESTIMATE</object>
    <keys>PJE-BLD-01</keys>
    <fields>*</fields>
</readByName> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATE
keys Required string PJESTIMATEID of the project estimate to get
fields Optional string Comma-separated list of fields on the object to get. For best performance and predictability, limit the number of fields. To return all fields, omit the element or provide * for the value.

Create Project Estimate

Release Changes
2020 Release 4 Added ESTIMATEDATE, EFFECTIVEDATE, added new values for POSTTO

create

<create>
    <PJESTIMATE>
        <PJESTIMATEID>PJE-BLD-01</PJESTIMATEID>
        <PROJECTID>19-100</PROJECTID>
        <ENTRIES>
            <PJESTIMATEENTRY>
                <AMOUNT>9550.00</AMOUNT>
                <WFTYPE>original</WFTYPE>
                <MEMO>Elec Subcontract</MEMO>
            </PJESTIMATEENTRY>
            <PJESTIMATEENTRY>
                <AMOUNT>2000.00</AMOUNT>
                <WFTYPE>original</WFTYPE>
                <MEMO>PM coordination</MEMO>
            </PJESTIMATEENTRY>
        </ENTRIES>
    </PJESTIMATE>
</create> 

Parameters

Name Required Type Description
PJESTIMATE Required object Object to create

PJESTIMATE

Name Required Type Description
PJESTIMATEID Required string Unique ID for the project estimate. Use 40 or fewer characters.
DESCRIPTION Optional string Description of the project estimate. Use 1000 or fewer characters.
ISPRIMARY Optional boolean Specifies whether this is the primary estimate for the project. Use true for primary, false otherwise. The first estimate for a project is always set as primary when it is created (this can be changed later with an update). A project can have zero or one primary estimates and multiple non-primary estimates. (Default: true for the first estimate created for a project, false otherwise)
POSTED Optional boolean Specifies whether the estimate posts entries to the GL budget. Use true to post to the entries. (Default: false)
PJESTIMATETYPENAME Optional string Name of a project estimate type that defines a subset of workflow types. This subset specifies which entries post to the GL budget (if POSTED is true), and can be used for reporting purposes. When this parameter is not supplied, all workflow types post to the GL budget. If the given project estimate type doesn’t include workflow types, no entries post to the GL budget.
GLBUDGETID Optional string ID of the existing GL budget to use. The budget must be configured for a project estimate in the Sage Intacct UI.
ESTIMATEDATE Optional string Date of the project estimate, which must be in a budgetable period. Required if POSTTO is set to Estimate date and POSTED is true. The meaning of this date can vary according to the customer’s workflow. It can be the date the estimate was created, the date the estimate was presented as a quote, or the date of the forecast. Specified in the format mm/dd/yyyy.
POSTTO Optional boolean GL Budget period, either First period, All periods, Estimate date, or Effective date. (Default: First period)
PROJECTID Required string ID of the project for this estimate
STATUS Optional string Status. Use active, inactive, or finalized. An estimate set to finalized cannot be modified other than to change its status.
ENTRIES Required PJESTIMATEENTRY[1..n] One or more estimate entries to create
customfields optional customfield[0…n] Custom fields

PJESTIMATEENTRY

You can provide a specific amount for an entry, or you can specify a quantity and unit cost and the system will calculate the amount. If all three are provided, the specific amount is used instead of the calculation.

Name Required Type Description
EUOM Optional string External unit of measure. Free form field with 200 or fewer characters.
QTY Optional decimal Quantity
UNITCOST Optional currency Unit cost, also known as unit rate
AMOUNT Optional currency Amount. Required if quantity and unit cost are not supplied.
MEMO Optional string Memo for the entry. Use 2000 or fewer characters.
WFTYPE Optional string Workflow type for the entry. Use original, revision, forecast, pending change, approved change, and other. (Default: original)
ACCOUNTNO Optional string Account number
DEPARTMENTID Optional string Department ID
CUSTOMERID Optional string Customer ID
EMPLOYEEID Optional string Employee ID
ITEMID Optional string Item ID
CONTRACTID Optional string Contract ID
TASKID Optional string Task ID
COSTTYPEID Optional string Cost type ID
VENDORID Optional string Vendor ID
CLASSID Optional string Class ID
EFFECTIVEDATE Optional string Date that the transaction entry comes into effect from a GL budget or reporting perspective. This can be useful for differentiating approved change entries added later than original entries. Required if POSTTO is set to Effective date and POSTED is true. Specified in the format mm/dd/yyyy.
customfields optional customfield[0…n] Custom fields

customfield

Name Required Type Description
customfieldname Optional string Custom field ID
customfieldvalue Optional varies Custom field value. For a multi-pick-list custom field, implode multiple field values with #~#.

Update Project Estimate

Release Changes
2020 Release 4 Added ESTIMATEDATE, EFFECTIVEDATE, added new values for POSTTO

You can update header information for a project estimate, modify existing entries, or add new ones:

  • To modify the header information only, omit the array of entries altogether.
  • To update existing entries, specify their record numbers and the fields to change.
  • To add new entries, provide the field information for the new entries (without record numbers).

You can only modify or add entries during an update, you cannot delete entries. Use the delete function for this purpose.

Note: You can also update an estimate entry directly or create new entries independently.

update

Updates the header of the project estimate created above, adding a description:

<update>
    <PJESTIMATE>
        <RECORDNO>12</RECORDNO>
        <DESCRIPTION>Building 1</DESCRIPTION>
    </PJESTIMATE>
</update> 

Updates the the same project estimate, modifying the amount of an existing entry and adding a new entry:

<update>
    <PJESTIMATE>
        <RECORDNO>12</RECORDNO>
        <ENTRIES>
            <PJESTIMATEENTRY>
                <RECORDNO>244</RECORDNO>
                <AMOUNT>10550.00</AMOUNT>
                <WFTYPE>original</WFTYPE>
                <MEMO>Elec Subcontract</MEMO>
            </PJESTIMATEENTRY>
            <PJESTIMATEENTRY>
                <AMOUNT>5000.00</AMOUNT>
                <WFTYPE>original</WFTYPE>
                <MEMO>Geology reports</MEMO>
            </PJESTIMATEENTRY>
        </ENTRIES>
    </PJESTIMATE>
</update>

Parameters

Name Required Type Description
PJESTIMATE Required object Object to update

PJESTIMATE

Name Required Type Description  
RECORDNO Optional integer Record number of the project estimate to update. Required if not providing the project estimate ID.  
PJESTIMATEID Optional string Unique ID of the project estimate. Required if not providing the record number.  
DESCRIPTION Optional string Description of the project estimate. Use 1000 or fewer characters.  
ISPRIMARY Optional boolean Specifies whether this is the primary estimate for the project. Use true for primary, false otherwise. A project can have zero or one primary estimates and multiple non-primary estimates. __
POSTED Optional boolean Specifies whether the estimate posts entries to the GL budget. true posts the entries, false performs an unpost and deletes any existing GL budget entries.  
PJESTIMATETYPENAME Optional string Name of a project estimate type that defines a subset of workflow types. This subset specifies which entries post to the GL budget (if POSTED is true), and can be used for reporting purposes. When this parameter is not supplied, all workflow types post to the GL budget. If the given project estimate type doesn’t include workflow types, no entries post to the GL budget.  
GLBUDGETID Optional string ID of the existing GL budget to use. The budget must be configured for a project estimate in the Sage Intacct UI. If you change the budget ID and POSTED is set to true, any previously posted budget entries are deleted and a new post to the specified GL budget is performed.  
ESTIMATEDATE Optional string Date of the project estimate, which must be in a budgetable period. Required if POSTTO is set to Estimate date and POSTED is true. The meaning of this date can vary according to the customer’s workflow. It can be the date the estimate was created, the date the estimate was presented as a quote, or the date of the forecast. Specified in the format mm/dd/yyyy.  
POSTTO Optional boolean GL Budget period, either First period, All periods, Estimate date, or Effective date. If you change the budget period and POSTED is set to true, any previously posted budget entries for that period are deleted and a new post for the specified period is performed.  
STATUS Optional string Status. Use active, inactive, or finalized. An estimate set to finalized cannot be modified other than to change its status.  
ENTRIES Optional PJESTIMATEENTRY[1..n] One or more estimate entries. You can add new entries or modify existing entries by supplying their record numbers. Omit this parameter to preserve the existing entries as they are.  
customfields optional customfield[0…n] Custom fields  

PJESTIMATEENTRY

You can provide a specific amount for the entry, or you can provide a quantity and unit cost and the system will calculate the amount. If all three are provided, the specific amount is used instead of the calculation.

Name Required Type Description
RECORDNO Optional integer Record number of the project estimate to update. Omit this parameter to add a new entry.
EUOM Optional string External unit of measure. Free form field with 200 or fewer characters.
QTY Optional decimal Quantity
UNITCOST Optional currency Unit cost, also known as unit rate
AMOUNT Optional currency Amount. Required if quantity and unit cost are not supplied.
MEMO Optional string Memo for the entry. Use 2000 or fewer characters.
WFTYPE Optional string Workflow type for the entry. Use original, revision, forecast, pending change, approved change, and other.
ACCOUNTNO Optional string Account number
DEPARTMENTID Optional string Department ID
CUSTOMERID Optional string Customer ID
EMPLOYEEID Optional string Employee ID
ITEMID Optional string Item ID
CONTRACTID Optional string Contract ID
TASKID Optional string Task ID
COSTTYPEID Optional string Cost type ID
VENDORID Optional string Vendor ID
CLASSID Optional string Class ID
EFFECTIVEDATE Optional string Date that the transaction entry comes into effect from a GL budget or reporting perspective. This can be useful for differentiating approved change entries added later than original entries. Required if POSTTO is set to Effective date and POSTED is true. Specified in the format mm/dd/yyyy.
customfields optional customfield[0…n] Custom fields

customfield

Name Required Type Description
customfieldname Optional string Custom field ID
customfieldvalue Optional varies Custom field value. For a multi-pick-list custom field, implode multiple field values with #~#.

Delete Project Estimate

delete

<delete>
    <object>PJESTIMATE</object>
    <keys>12</keys>
</delete> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATE
keys Required string RECORDNO of the project estimate to delete

Get Project Estimate Entry Object Definition

lookup

List all the fields and relationships for the project estimate entry object:

<lookup>
    <object>PJESTIMATEENTRY</object>
</lookup>

Parameters

Name Required Type Description
object Required string Use PJESTIMATEENTRY
docparid Optional string Used to indicate the document type, such as Inventory Transfer, Sales Order, Purchase Order and so forth . You must use this to take advantage of any custom fields on the specified document type.

List Project Estimate Entries

query

List the record number and project estimate ID for each project estimate entry:

<query>
    <object>PJESTIMATEENTRY</object>
    <select>
        <field>RECORDNO</field>
        <field>PJESTIMATEID</field>
    </select>
</query> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATEENTRY
select Required sequence One or more field names and an optional aggregate function such as count or sum. Returning all fields is not supported.
filter Optional object Query filter 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).
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 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>
pagesize Optional integer Custom page size between 1 and 2000 items (Default: 100)
offset Optional integer Point at which to start indexing into records (Default: 0)
docparid Optional string Document type, such as Sales Order, Purchase Order, or Inventory Transfer

List Project Estimate Entries (Legacy)

readByQuery

<readByQuery>
    <object>PJESTIMATEENTRY</object>
    <fields>*</fields>
    <query></query>
    <pagesize>100</pagesize>
</readByQuery> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATEENTRY
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)

Get Project Estimate Entry

read

<read>
    <object>PJESTIMATEENTRY</object>
    <keys>7</keys>
    <fields>*</fields>
</read> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATEENTRY
keys Required string RECORDNO of the project estimate entry to get
fields Optional string Comma-separated list of fields on the object to get. For best performance and predictability, limit the number of fields. To return all fields, omit the element or provide * for the value.

Create Project Estimate Entry

Release Changes
2020 Release 4 Added EFFECTIVEDATE

You can provide an amount for the entry, or you can specify a quantity and unit cost and the system will calculate the amount. If all three are provided, the specific amount is used instead of the calculation.

create

<create>
    <PJESTIMATEENTRY>
        <PJESTIMATEID>PJE-BLD-01</PJESTIMATEID>
        <WFTYPE>original</WFTYPE>
        <EUOM>yards</EUOM>
        <QTY>25</QTY>
        <UNITCOST>10.99</UNITCOST>
    </PJESTIMATEENTRY>
</create>

Parameters

Name Required Type Description
PJESTIMATEENTRY Required object Object to create

PJESTIMATEENTRY

Name Required Type Description
PJESTIMATEID Required string Unique ID of the existing project estimate
EUOM Optional string External unit of measure. Free form field with 200 or fewer characters.
QTY Optional decimal Quantity
UNITCOST Optional currency Unit cost, also known as unit rate
AMOUNT Optional currency Amount. Required if quantity and unit cost are not supplied.
MEMO Optional string Memo for the entry. Use 2000 or fewer characters.
WFTYPE Optional string Workflow type for the entry. Use original, revision, forecast, pending change, approved change, and other. (Default: original)
ACCOUNTNO Optional string Account number
DEPARTMENTID Optional string Department ID
CUSTOMERID Optional string Customer ID
EMPLOYEEID Optional string Employee ID
ITEMID Optional string Item ID
CONTRACTID Optional string Contract ID
TASKID Optional string Task ID
COSTTYPEID Optional string Cost type ID
VENDORID Optional string Vendor ID
CLASSID Optional string Class ID
EFFECTIVEDATE Optional string Date that the transaction entry comes into effect from a GL budget or reporting perspective. This can be useful for differentiating approved change entries added later than original entries. Required if POSTTO is set to Effective date and POSTED is true. Specified in the format mm/dd/yyyy.
customfields optional customfield[0…n] Custom fields

customfield

Name Required Type Description
customfieldname Optional string Custom field ID
customfieldvalue Optional varies Custom field value. For a multi-pick-list custom field, implode multiple field values with #~#.

Update Project Estimate Entry

Release Changes
2020 Release 4 Added EFFECTIVEDATE

update

<update>
    <PJESTIMATEENTRY>
        <RECORDNO>7</RECORDNO>
        <AMOUNT>700</AMOUNT>
        <WFTYPE>revision</WFTYPE>
    </PJESTIMATEENTRY>
</update> 

Parameters

Name Required Type Description
PJESTIMATEENTRY Required object Object to update

PJESTIMATEENTRY

Name Required Type Description
RECORDNO Required integer Record number of the project estimate entry to update
EUOM Optional string External unit of measure. Free form field with 200 or fewer characters.
QTY Optional decimal Quantity
UNITCOST Optional currency Unit cost, also known as unit rate
AMOUNT Optional currency Amount. Required if quantity and unit cost are not supplied.
MEMO Optional string Memo for the entry. Use 2000 or fewer characters.
WFTYPE Optional string Workflow type for the entry. Use original, revision, forecast, pending change, approved change, and other.
ACCOUNTNO Optional string Account number
DEPARTMENTID Optional string Department ID
CUSTOMERID Optional string Customer ID
EMPLOYEEID Optional string Employee ID
ITEMID Optional string Item ID
CONTRACTID Optional string Contract ID
TASKID Optional string Task ID
COSTTYPEID Optional string Cost type ID
VENDORID Optional string Vendor ID
CLASSID Optional string Class ID
EFFECTIVEDATE Optional string Date that the transaction entry comes into effect from a GL budget or reporting perspective. This can be useful for differentiating approved change entries added later than original entries. Required if POSTTO is set to Effective date and POSTED is true. Specified in the format mm/dd/yyyy.
customfields optional customfield[0…n] Custom fields

customfield

Name Required Type Description
customfieldname Optional string Custom field ID
customfieldvalue Optional varies Custom field value. For a multi-pick-list custom field, implode multiple field values with #~#.

Delete Project Estimate Entry

delete

<delete>
    <object>PJESTIMATEENTRY</object>
    <keys>7</keys>
</delete> 

Parameters

Name Required Type Description
object Required string Use PJESTIMATEENTRY
keys Required string RECORDNO of the project estimate entry to delete

Provide feedback