This release is scheduled to go live beginning on the evening of May 21, 2021.


General Ledger

Enhanced functionality when listing account balances by dimensions

This release offers more functionality when listing account balances by dimension.

List actual and budget data

Previously, get_accountbalancesbydimensions returned only actual data. You can now choose to return actual data, budget data, or both. You can also specify how to calculate the difference between budgeted and actual data.

For example, the following lists account balances for actual and budgeted amounts and calculates the difference by subtracting actual from budgeted:

<get_accountbalancesbydimensions>
    <reportingperiodname>Month Ended January 2021</reportingperiodname>
    <contentselection>Actual and Budget</contentselection> <!-- New parameter -->
    <budgetid>Proj_01-budget</budgetid> <!-- New parameter -->
    <budgetcomparison>Budget minus Actual</budgetcomparison> <!-- New parameter -->
    <glaccountno>4000</glaccountno>
    <locationid>CA</locationid>
    <groupby>location</groupby>
</get_accountbalancesbydimensions>

A response such as the following is returned:

<data>
    <accountbalance>
        <glaccountno>4000</glaccountno>
        <budgetbalance>150.00</budgetbalance>
        <periodbalance>100.00</periodbalance>
        <difference>50.00</difference>
        <currency>USD</currency>
        <locationid>CA</locationid>
    </accountbalance>
</data>

Show zero balance accounts with activity

A new showzerowithactivity parameter, when set to true, provides information about accounts with zero ending balances if they have had activity. By default, such accounts are not included.

List data according to location and department groups

Previously, you could not provide location or department groups when listing data. The location and department parameters now accept location and department groups (as well as locations and departments as before).

Currency included in responses

All responses now include the currency.

Create journal entries with tax solutions

The 3.0 style create function for journal entries now supports providing a tax solution.

For more information, see the TAXSOLUTIONID parameter here:

Deprecation of legacy budget APIs

Back in 2020-R3, a new GL budget object (GLBUDGETHEADER) was added to support creating a budget with details in the same call. In subsequent versions of release notes, we explained that the legacy functions on BUDGETHEADER and GLBUDGET were scheduled for deprecation in 2021-R2.

The legacy budget functions are now deprecated and unavailable for the majority of clients.

A few remaining clients are still using the legacy budget functions and must update their integrations. If you are one of these clients:

  • Contact support to plan your data migration if you have not already been contacted. If you were using the legacy functions previously, you cannot start using the new functions without the migration.
  • Update any function calls to use the new budget objects.

Important: The majority of legacy objects (BUDGETHEADER and GLBUDGET) have been migrated to the new object types (GLBUDGETHEADER and GLBUDGETITEMS) in this release. After migration, create, update, and delete, when used on the old object names, will return error messages explaining that you need to use the new objects. Contact support now if you still need to have data migrated.


Accounts Payable

Specify the starting check number for electronic payments (Early Adopter Program)

Last release introduced a new electronic payments service for paying US vendors. Starting with this release, you can specify the starting number for the check sequences in payment provider bank accounts.

For more information, see theCHECKSTARTNO parameter for the following:

Note: Electronic payments requires a subscription to Outbound Payment Services. Once subscribed and configured, you can use the API to make an electronic payment, designating the provider. Currently, Corporate Spending Innovations (CSI) is the only supported provider.


Accounts Receivable

Ability to list customer charge card records will no longer be supported

The get_list function for customer charge cards is scheduled for deprecation. This function will become unavailable in a future release, likely, 2021-R4. At this time, the only way to access customer credit card information will be through the Sage Intacct UI.

Important: Check your integrations now and remove this function to avoid problems when this function becomes unavailable, planned for the 2021-R4 release.


Contracts and Revenue Management

Bill to contact on contract lines

Previously, you could set the Bill to contact only on the contract itself. Starting with this release, you can provide Bill to contacts for individual lines. You can also control whether the values on such lines are overridden when the Bill to on the contract itself is changed.

For more information, see the BILLTOCONTACTNAME and BILLTOSOURCE parameters for the following:

Enhanced validation and usability for contract billing price lists

When you create billing price list entry details (CONTRACTITEMPRICELISTENTRIES), the system now validates that the start dates are in ascending order (earliest to most recent) and that there are no duplicate entries.

In addition, when using a Tiered price type, several parameters are now automatically assigned the correct values, whether you supply values or not:

  • Variable unit divisor (VARUNITDIVSR) is set to 1.
  • Variable unit rate (VARUNITRATE) is set to 0.

Finally, for a Range price type, the variable unit rate is now required.


Project and Resource Management

Include billable credit card transactions in project invoices

Now, when you mark credit card transactions as billable to a project, those transactions flow directly to project invoicing.

For more information, see the billable parameter here:


Inventory Control

Expanded rules for negative inventory

Previously, even though a company was configured to allow negative inventory, warehouse transfers that would result in negative inventory were blocked. With this release, such warehouse transfers are no longer blocked.

Because allowing negative inventory across the system can be complicated, you might want to turn off negative inventory for the company, then enable it only for selected warehouses.

For more information, see ENABLENEGATIVEINV here:

Provide alternatives for out-of-stock items with item cross-references

Release 2021-R1 introduced external item cross references, which enable your customers or vendors to provide their own identifiers for inventory items that can be used in transactions.

This release adds internal item cross references for identifying alternatives for items you sell. You can suggest substitute, upgrade, downgrade, or complement items. The alternatives are available when creating Order Entry transactions in the Sage Intacct UI.

For more information, see the REFTYPE and ALTERNATEITEMID parameters here:

Additional item attributes

Over 40 standard fields have been added for items to enhance item data points and reduce the need to create custom fields. Use these new fields that are based on industry research in wholesale distribution, third-party integrations, and your feedback to further define the unique characteristics of an item according to your business needs.

The new fields are in three broad categories:

  • Item details — General information for an item, such as the primary country of origin, the 12-digit Universal Product code, the 13-digit European Article Number, whether the item is a safety, restricted, compliant item, and whether the item has certain approvals.
  • Measures — Physical characteristics of the item, such as height, weight, length, volume, thickness, and diameter. These attributes can help you select the correct-sized bins for putting items away or plan for packaging and freighting needs.
  • Commercial — E-commerce information for the item, such as the brand, category, size, color, web name, and web description.

For more information, see the parameter lists here:


Sales Tax, VAT, and GST

Accounts Payable

Partial exemption for AP bills (United Kingdom)

This release provides support for partial exemption in Accounts Payable so that you can reclaim a portion of your input VAT on purchases. Assuming your company is set up for partial exemption, you can mark bill lines as eligible for partial exemption and have the system automatically handle the details.

For more information:

The Sage Intacct product help has examples that show the details of the calculations.


SDK for Node.js Update

You can now use a fully-qualified domain name (FQDN) in the endpoint URL.


Construction (Early Adopter Program)

Identify how changes impact project costs with the new change request object

The change request object enables construction companies to track changes to their projects by price and cost at the lowest work breakdown structure level (project + task + cost type), and post the changes to the project’s primary estimate.

A change request object typically owns multiple change request entries, where each entry represents a price and/or cost change for the project. You can create individual entries when you create the change request, or you can create a change request without entries and use update to add them later.

If a change should not be billed to the customer, you need only capture the cost for the entry. To pass the cost onto the customer, use the same amount for cost and price.

When you post a change request, the system posts its costs to the project’s primary estimate (if present) based on the assigned change request status. If the primary estimate is set to post to a GL budget, entries from the change request are included.

If you want to associate change requests with workflow types, you can create change request status objects that provide this mapping. You can also specialize your reporting with change request types.

For more information:

Supporting changes in project estimates

Project estimate entries now include the following read-only parameters with links to associated change requests and change request entries:

  • CHANGEREQUESTKEY
  • CHANGEREQUESTID
  • CHANGEREQUESTENTRYKEY

A project estimate entry that is linked with a change request entry cannot be updated or deleted. Also, a primary project estimate with linked entries cannot be set to non-primary.

For more information:

Order Entry change orders

You can now manage changes to Order Entry agreements as your Construction job progresses.

To do this, modify or create Order Entry transaction definitions that enable change management in the Sage Intacct UI. A transaction definition can identify a transaction as either a source transaction or a change-order transaction. By default, Order Entry transaction definitions have change management disabled.

Using your new transaction definitions, you can create a source transaction, then create change orders that modify that source. You can create a change order even if the source transaction has been partially or fully converted.

A change order can add new lines or modify existing lines on a given source transaction. For example, assume there is a source transaction definition, Source_Doc01, and a change order transaction definition, Change_Doc01.

The following creates a source transaction with one line:

<create_sotransaction>
    <transactiontype>Source_Doc01</transactiontype>
    <datecreated>
        <year>2021</year>
        <month>04</month>
        <day>01</day>
    </datecreated>
    <customerid>BTI</customerid>
    <termname>N15</termname>
    <datedue>
        <year>2021</year>
        <month>05</month>
        <day>15</day>
    </datedue>
    <basecurr>USD</basecurr>
    <currency>USD</currency>
    <exchratedate>
        <year>2021</year>
        <month>03</month>
        <day>31</day>
    </exchratedate>
    <exchratetype/>
    <state>Pending</state>
    <sotransitems>
        <sotransitem>
            <itemid>A001</itemid>
            <itemdesc>Desktop-HP</itemdesc>
            <warehouseid>1</warehouseid>
            <quantity>10</quantity>
            <unit>Each</unit>
            <price>100</price>
            <locationid>1</locationid>
            <conversiontype>Quantity</conversiontype>
        </sotransitem>
    </sotransitems>
</create_sotransaction>

Assume the record number for the created source transaction is 255, and the record number for the created line is 257. The following provides a change order that modifies the existing line (changes the quantity to 25) and adds a new line to the source transaction:

<create_sotransaction>
    <transactiontype>Change_Doc01</transactiontype>
    <datecreated>
        <year>2021</year>
        <month>04</month>
        <day>01</day>
    </datecreated>
    <customerid>BTI</customerid>
    <termname>N15</termname>
    <datedue>
        <year>2021</year>
        <month>05</month>
        <day>15</day>
    </datedue>
    <basecurr>USD</basecurr>
    <currency>USD</currency>
    <exchratedate>
        <year>2021</year>
        <month>03</month>
        <day>31</day>
    </exchratedate>
    <exchratetype/>
    <state>Draft</state>
    <sotransitems>
        <sotransitem>
            <itemid>A001</itemid>
            <itemdesc>Desktop-HP</itemdesc>
            <warehouseid>1</warehouseid>
            <quantity>25</quantity>
            <unit>Each</unit>
            <price>100</price>
            <locationid>1</locationid>
            <relateddockey>255</relateddockey>
            <relateddoclinekey>257</relateddoclinekey>
            <conversiontype>Quantity</conversiontype>           
        </sotransitem>
        <sotransitem>
            <itemid>A002</itemid>
            <itemdesc>Desktop-Dell</itemdesc>
            <warehouseid>1</warehouseid>
            <quantity>39</quantity>
            <unit>Each</unit>
            <price>120</price>
            <locationid>1</locationid>
            <relateddockey>255</relateddockey>
            <conversiontype>Quantity</conversiontype>
        </sotransitem>
    </sotransitems>
</create_sotransaction>

You can delete a draft change order, but not one that is approved.

When you read a source transaction in the API, new output parameters help identify the changes that led to the current state.

New Order Entry transaction (header) fields:

  • HASCHANGE is true if there are draft or posted change orders to this transaction. Once change orders have been applied, the amounts or dimensions for the source transaction cannot be modified with an update call, nor can you delete the source transaction. However, you can submit additional change orders.
  • REVISEDTOTAL is the total base currency amount including line items and subtotal amounts.
  • REVISEDSUBTOTAL is the total base currency amount for line items only.
  • TRX_REVISEDTOTAL is the total transaction currency amount including line items and subtotal amounts.
  • TRX_REVISEDSUBTOTAL is the total transaction currency amount for line items only.
  • POSTEDCHANGESTOTAL is the sum of all amounts posted to this source transaction by change orders.

New Order Entry transaction line fields:

  • REVISEDUNITQTY is the original quantity (before applying the unit of measure) plus changes from posted change order lines.
  • REVISEDQTY is the original quantity (after applying the unit of measure) plus changes from posted change order lines.
  • DRAFTCHANGEUNITQTY is sum of all the quantities (before applying the units of measure) of all draft change order lines.
  • DRAFTCHANGEQTY is sum of all the quantities (after applying the units of measure) of all draft change order lines.
  • REVISEDUNITVALUE is the revised extended price.
  • REVISEDVALUE is the revised base currency extended price.
  • TRX_REVISEDVALUE is the revised transaction currency extended price.
  • REVISEDUNITPRICE is the revised price.
  • REVISEDPRICE is the revised base currency price.
  • TRX_REVISEDPRICE is the revised transaction currency price.
  • DRAFTCHANGEPRICE is the sum of the price values of all applicable lines in draft change orders where conversiontype is Price.
  • POSTEDQTYCHANGES is the sum of the quantity values of all applicable lines in posted changes orders where conversiontype is Quantity.
  • POSTEDCHANGEEXTPRICE is the sum of the price values of all applicable lines in posted change orders where conversiontype is Price.
  • POSTEDCHANGEEXTBASEPRICE is the sum of the base price values of all applicable lines in posted change orders where conversiontype is Price.

For more information:

See the relateddockey and relateddoclinekey parameters here:

Provide feedback