On March 16, 2018, Sage Intacct will disable the TLS 1.0/1.1 encryption protocols while continuing to support TLS 1.2 and higher for all customers.

Sage Intacct takes the security of our customers very seriously. To enhance security and meet compliance requirements, we are mandating the use of TLS 1.2 and higher to access our cloud software.

Note: Previous communications stated that TLS 1.1 would be supported, but this is no longer correct.

How does Sage Intacct use TLS?

Transport Layer Security (TLS) is a protocol that provides security and privacy by encrypting data shared over a network. Sage Intacct uses TLS to secure both browser and Web Services (API) access to our application.

How will users/developers be impacted?

Once Sage Intacct disables support for TLS 1.0 and 1.1, any browser UI access or API call originating from a resource that does not support TLS 1.2 or higher will fail.

What do users/developers need to do?


Ensure that your browser supports TLS 1.2 or higher (most modern browsers do). You can use the following third-party resource to test your browser’s compatibility:


Ensure your application is configured to negotiate connections using TLS 1.2 or higher. Depending on the programming language and OS, the requirements will vary. Some helpful information is provided below, but you should not rely solely on this information and must fully test your code.

Language Info
PHP Ensure your PHP version supports cURL version 7.34.0 or higher
Java Java 8: No action required
Java 7: Explicitly enable support for TLS 1.2 and higher
Java 5 or earlier versions: Upgrade to Java 6 or higher and explicitly enable support for TLS 1.2
.NET .NET 4.6: No action required
Earlier versions: Research required changes

Developers who want to test API clients under their control can use the following resources:


Do you need help? Contact Sage Intacct Customer and Partner Support.

Updates for the 2017-R4.1 release are available.

1099 options for Purchasing

You can now provide 1099 form and box options for vendor invoices at the line level.

For more information:

New updates for the 2017-R4 release are available.

Creating contract invoices

You can now use the API to create invoices for any contracts with billable transactions. You can use filters to preview a set of potential invoices, then execute an invoice run based on that preview.

Depending on how many invoices you have, you can choose to create them online or offline.

For more information:

Ship to contact on sales transaction line items

To accurately calculate sales tax, you might need to use the tax rate associated with the address where the customer will take possession of the products or services. You can now provide different contact names at the sales transaction line level to override the ship to contact name on the transaction itself.

For more information, see the shipto parameter on:

API documentation for legacy functions

This release provides additional documentation for legacy functions—the majority of these functions are now documented.

This release is scheduled to go live on the evening of November 10, 2017 Pacific Time.

Approvals for Purchasing

This release provides new functions to support approvals for purchasing. You can list all purchasing transactions that are ready for your approval, then approve or decline them as needed. You can also get the approval history for a given purchasing transaction.

For more information:


Posting contract expense and contract revenue schedules/entries

With this release, you can post all contract expense schedule entries or contract revenue schedule entries for a given customer (across contracts) or for a given contract. You can also post individual entries according to their record numbers.

For more information:

Hold and resume contract lines and expenses

You can now place contract lines and contract expenses on hold, then resume them when ready.

For more information:

Ship to contact on contract lines

To accurately calculate sales tax, you might need to use the tax rate associated with the address where the customer will take possession of the products or services. With this release, you can provide different contact names at the contract line level to override the ship to contact name on the contract itself.

For more information:

Warehouse transfer enhancements

You can now transfer inventory from a warehouse in one entity to a warehouse in a different entity with a different base currency.

For more information, see the EXCH_RATE_TYPE_ID, EXCH_RATE_DATE, and EXCHANGE_RATE parameters for the following:

Convert by line for Inventory Control and Order Entry transactions

You can now specify the source line of an existing transaction from which to convert. Specifically, sourcelinekey was added to:

This release is scheduled to go live on the evening of August 18, 2017 Pacific Time.

New AP Payment object

This release brings the new AP workbench, only available in Sage Intacct Action, the new user interface. Accompanying the workbench is the new AP Payment object, APPYMT. The API functions for APPYMT let you apply line level credits and discounts for payments, which you cannot do with the existing payment functions. Each credit or discount is stored in an APPYMTDETAIL object owned by the APPYMT object. You can update a payment to add or delete APPYMTDETAIL instances, and you can update the APPYMT object itself, such as by changing the state from draft to posted, changing the bank, and so forth. See the API reference and entity relationship diagram for more information.

The new APPYMT object corresponds with the new Accounts Payable > Pay bills functionality in the Sage Intacct UI, not to be confused with the existing Accounts Payable > Select Bills to Pay functionality.

General Ledger balances

The get_accountbalance and get_trialbalance API functions now support the dimension and reporting book filters already available when running account balance and trial balance reports from the user interface. The response data for these functions also includes the reporting book and currency as well.

Before these filters were available, integration partners had to use the readByQuery API function on the GLACCOUNTBALANCE object for getting comparable information. Because GLACCOUNTBALANCE is the lowest level detail in the system (limited to budgetable periods), such queries might produce hundreds of thousands of records, making it difficult to get basic balances. With the new filters, you can easily get a trial balance for your consolidation book, or look up that one project’s expense account balance on a certain date.

Make sure to check out the Account Balances and Trial Balances API reference pages.

Warehouse transfers

You can now move inventory from one warehouse to another in a single transaction with the Warehouse Transfer object, ICTRANSFER. Before this release, you had to manually create both a transfer-out transaction and a transfer-in using create_ictransaction. Check out the API reference for more information.

Audit trail

The getAuditTrail API function used to require that you set the record’s unique name in the objectKey field, which was problematic because record names take different approaches in objects across the system. You can now provide the record number in the recordNo field instead. Check out the API reference for more information.

Order Entry, Purchasing, and Inventory transactions

Previously, the update functions incorrectly allowed you to change the document number on Order Entry, Purchasing, and Inventory transactions. This is no longer allowed.

More support for attachments in Smart Events and Smart Rules

The SUPDOCID merge field that identifies attachments can now be used in Smart Events and Smart Rules on the following objects:


Version 2 of the Sage Intacct SDK for PHP is now available. Make sure you check out the updated overview and guides that accompany this.