Are you looking to integrate your business with the Sage Intacct ecosystem? With the Sage Intacct API, you can leverage the cloud storage and advanced business logic of the Sage Intacct SaaS framework while providing your own customer-facing web application. Whether you want to integrate a web store front or automate billing, the Sage Intacct API has you covered.
Requirements: Getting Started
To get started with the Sage Intacct API, you must have an active Sage Intacct Web Services developer license. This license includes a Web Services sender ID and password, which are essential for authentication. Additionally, the administrator for the target company must enable the Web Services subscription, authorize your sender ID, and create your user ID. Don’t worry, our documentation provides step-by-step instructions to help you navigate this process.
Communicating with the API: Endpoint and Content-Type
To communicate with the Sage Intacct API, you’ll be using HTTP POST requests to a unique endpoint. The endpoint is always
https://api.intacct.com/ia/xml/xmlgw.phtml. It’s important to note that starting from January 15, 2023, HTTP GET requests will no longer be supported, so make sure to use POST requests exclusively.
All data sent to the API should be encoded as XML with a Content-Type of
application/xml. JSON is currently not supported by Sage Intacct Web Services.
Interacting with the API: XML Requests and Responses
At a high level, your XML request to the API should establish credentials and provide the necessary API function calls. Our documentation provides a comprehensive breakdown of each element in the XML request body, making it easier for you to understand and implement.
Similarly, the XML response from the API contains the results of your request. It includes a control element that shows the status of the Web Services authentication, and an operation element that provides the results for each function call. Our documentation outlines all the details you need to know about XML responses.
Keeping Up with the Latest Version
Sage Intacct Web Services API currently supports version 3.0. Make sure to use this version when sending requests to the XML gateway. While version 2.1 is still supported, it is unlikely to receive new product enhancements.
Authentication: Web Services and Company Credentials
Authentication is a crucial step when working with the Sage Intacct API. You will need two levels of authentication: Web Services credentials and Company credentials.
Web Services credentials consist of a sender ID and password, which are provisioned by Sage Intacct for customers/partners with an active Web Services developer license. On the other hand, Company credentials include a company ID, user ID, and password or a temporary session ID. It’s highly recommended to set up a Web Services user account in the Sage Intacct UI.
Streamlining Development with Sage Intacct SDKs
Instead of writing XML from scratch, consider using one of the many libraries and tools available from Sage Intacct and third parties. These SDKs streamline the development process, saving you time and reducing complexity.
Transactions and Concurrent Connections
Sage Intacct API allows you to group multiple function calls into a transaction. If any of the functions within the transaction fail, all previously executed functions are rolled back, ensuring data integrity. It’s a useful feature when working with interdependent functions that modify the database.
Keep in mind that the number of concurrent connections to the API is limited per tenant (company ID). If all available connections are in use, incoming API requests are held for 30 seconds. If a connection does not become available within that time, an error message is returned.
Manipulating Owned Objects and Extending Functionality
Certain components of Sage Intacct standard objects are referred to as owned objects. These objects belong to other objects and cannot be manipulated directly. Instead, you work with them by making API calls on the owner object. For example, when dealing with line items of a transaction, you perform an update operation on the transaction header and pass in the line item information as sub-elements.
If you need to extend the capabilities of Sage Intacct, consider using Platform Services. These services allow you to create custom objects, menus, pages, and platform applications within the framework. You can also use triggers to perform actions based on given operations, such as making HTTP GET and POST requests to external applications.
Ready to start integrating your application with Sage Intacct? Try one of our tutorials to get you started with your first Web Service requests. You can also explore our Sage Intacct SDKs, which provide pre-built functionality to simplify your development process.
We value your feedback! If you have any questions or suggestions, don’t hesitate to reach out to us.