Sage Intacct Connector Reference | MuleSoft Documentation
# Sage Intacct Connector Reference
Sage Intacct is a best-in-class enterprise resource planning solution built to create and automate important financial processes and enable real-time visibility into business performance.
## Prerequisites
To complete the integration of Sage Intacct Connector to Composer, you must first complete the following actions within Sage Intacct:
  * Enable Web Services subscription in the **Subscription** section of Sage Intacct. The **Web Services Subscription** is required for Composer to interact with the Sage Intacct API.
  * Add your company’s **Sender ID** to the **Web Services Authorizations** section of Sage Intacct. The **Sender ID** identifies Composer to the Sage Intacct API. You must authorize the Mulesoft **Sender ID** for your Sage Intacct instance.
  * Create and assign the permissions required to connect to Sage Intacct. To assure account security, restrict the permissions to only the modules that you need Composer to access. In Sage Intacct:
    * If you are using role-based permissions, create a new role, assign the required permissions for that role, and then create a Sage Intacct Web Service Account to assign to the role.
    * If you are using subscription-based permissions, create a Web Services Account and assign permissions to the role in the **Subscription** section.
Additionally, for quote to cash, enable permissions for the **Order Entry** module.


## Connections
To connect to a system, whether it is a source of data or the target where you are sending data, you must create a connection with that system’s required credentials. You typically connect to different systems within a flow and can reuse each connection every time you need to connect.
This system requires the following credential information for its connections: 

Connection Name
    
Enter a connection name that will help you remember the details of this connection. You can reuse connections multiple times in a single flow, and in more than one flow, and the credentials are hidden after you create the connection. Therefore, it’s helpful to provide a name that easily identifies this connection from others.
Only you can see the connection. Other users in your Composer app must create their own connections. 

Company ID
    
The customer’s company ID. Enter the ID of your Sage Intacct instance. For more information, see the Sage Intacct documentation. 

User ID
    
The user ID that you use to log in to Sage Intacct. 

User Password
    
The password that you use to log in to Sage Intacct. 

Entity ID
    
The Sage Intacct entity to which you want to connect. To connect at the entity level, enter the **Entity ID**. To connect to the top level of the organization, leave this field blank. For more information, see the Sage Intacct documentation.
## Triggers
Each flow starts with either a _scheduler_ or a _trigger_. Schedulers are set to a default frequency of 15 minutes. Triggers, such as "each time a new record is created", are defined by you and provide multiple options related to the data in your system.
Triggers use a polling process to actively check for new updates from an external system. The polling frequency is 15 seconds.
This system provides the following trigger options: 

New Customer
    
Checks for a new Customer record. 

New or Updated Customer
    
Checks for a new or updated Customer record. 

New Order
    
Checks for a new Order record. 

New or Updated Order
    
Checks for a new or updated Order record.
### Polling Frequency
For triggers in this connector, the **Polling Frequency** field is required. This field enables you to select how often Composer makes a request to the underling system API to look for changes to records in active flows. You can select a different polling frequency for each flow in your organization. With a shorter frequency, the flow executes more often; however, a shorter frequency consumes more API calls. For example, if you have an order management flow, you might require nearly real-time updates, which can be achieved with a 15-second polling interval (which equates to 5760 API calls per day). In contrast, if your flow updates a pricing catalog, you could poll the flow every hour (which equates to 24 API calls per day).
## Actions
After you connect to a system and define the trigger or configure a scheduler, you define the actions that the flow performs. For example, you can copy a record between different systems, such as Workday and Salesforce. The actions you can perform depend on which system you are connected to.
This system provides the following actions: 

Create Attachment
    
Creates a new Attachment record. In Sage Intacct, attachments are entities that contain files. An attachment object can be empty or can have files. You can add files to an attachment when you create the record or you can add attachments later. Provide a value for the following:
  * **Attachment Name**
  * When adding files to an attachment, use a list as the source of the files, and specify a value in the following fields:
    * **File Binary Data**
    * **File Extension**
    * **File Name**



Update Attachment
    
Updates an Attachment record. When updating an attachment, you can update the attachment properties or add new files from a list. Provide a value for **Attachment ID**. 

Get Attachments
    
Returns a list of Attachment records. To filter the list, provide a value for **Attachment ID** , **Attachment Name** , or **Folder Name**. To return the entire list, leave the fields blank. 

Create Attachment Folder
    
Creates a new folder for attachments. Provide a value for **Name**. 

Get Attachment Folders
    
Returns a list of attachment folders. To filter the list, provide a value for **Folder Name** to filter. To return the entire list, leave the fields blank. 

Create Customer
    
Creates a new Customer record. Provide a value for the following:
  * **Customer ID**
  * **Primary Contact**
  * **Print As**



Update Customer
    
Update a Customer record. Provide a value for **ID**. 

Get Customer
    
Returns a list of Customer records. To filter the list, provide a value for **Customer ID** or **Customer Name**. To return the entire list, leave the fields blank. 

Delete Customer
    
Deletes a Customer record. Provide a value for **Customer ID**. 

Create Order
    
Creates a new Order record and returns a value for the **Key** field. Provide a value for the following:
  * **Order Type**
  * **Date Created**
  * **Transaction Currency**
  * **Base Currency**
  * **Exchange Rate Type**
  * In the **Entries** > **Sotransitem (Order line items)** section, provide a value in the following:
    * **Sotransitem (Order line items) List**
    * **Quantity**
    * **Location ID** Note that the **Location ID** field is determined by the numbers preceding the location description. For example, if the location ID is `100-United States`, then enter `100` in the **Location ID** field.
    * If your order contains inventory type items or a mix of inventory and non-inventory items, provide a value for **Warehouse ID**.
Create Customer
    
Creates a new Customer record. Provide a value for the following:
  * **Customer ID**
  * **Primary Contact**
  * **Print As**



Update Customer
    
Update a Customer record. Provide a value for **ID**. 

Get Customer
    
Returns a list of Customer records. To filter the list, provide a value for **Customer ID** or **Customer Name**. To return the entire list, leave the fields blank. 

Delete Customer
    
Deletes a Customer record. Provide a value for **Customer ID**. 

Create Order
    
Creates a new Order record and returns a value for the **Key** field. Provide a value for the following:
  * **Order Type**
  * **Date Created**
  * **Transaction Currency**
  * **Base Currency**
  * **Exchange Rate Type**
  * In the **Entries** > **Sotransitem (Order line items)** section, provide a value in the following:
    * **Sotransitem (Order line items) List**
    * **Quantity**
    * **Location ID** Note that the **Location ID** field is determined by the numbers preceding the location description. For example, if the location ID is `100-United States`, then enter `100` in the **Location ID** field.
    * If your order contains inventory type items or a mix of inventory and non-inventory items, provide a value for **Warehouse ID**.



Update Order
    
Updates an Order record.
Note that when updating or reordering line items for an existing order, the line order can change. For example, if you drag a line item from the number two position to the number three position in the Sage Intacct UI, the line order changes. To avoid synchronizing the wrong Sage Intacct line order item, you must account for possible order line item changes. Prior to executing the **Update Order** action, identify the current **Line Number** and store it in a custom field within Sage Intacct. To delete a line item from an existing order, use the **Delete Order Line Item** action. Provide a value for the following:
  * **Document ID**
Note that the **Document ID** value is the **Key** value returned by the **Create Order** action.
  * For line itmes to be added to an order, in the **Entries** > Sotransitem (Order line items)* section, provide a value for the following:
    * **Sotransitem (Order line items) List**
    * **Line Number**
Note that if no value or a null value is provided for this field, the item is created. If a value is provided, the item is skipped. If the datapill mapped to the **Line Number** field is empty for items to be created and has a value for items to be updated, the items containing values are created and the rest of the items are ignored.
    * **Quantity**
    * **Location ID**
Note that the **Location ID** field is determined by the numbers preceding the location description. For example, if the location ID is `100-United States` then enter `100` in the **Location ID** field.
    * If your order contains inventory type items or a mix of inventory and non-inventory items, provide a value for **Warehouse ID**.
  * For line itmes to be updated in an order, in the **Entries** > **Updatesotransitem (Order line items)** section, provide a value for the following:
    * **Updatesotransitem (Order line items) List**
    * **Line Number**
Note that if no value or a null value is provided for this field, the item is updated. If a value is provided, the item is skipped. If the datapill mapped to the **Line Number** field is empty for items to be updated and has a value for items to be created, the items containing values are updated and the rest of the items are ignored.
    * **Quantity**
    * **Location ID**
Note that the **Location ID** field is determined by the numbers preceding the location description. For example, if the location ID is `100-United States` then enter `100` in the **Location ID** field.
    * If your order contains inventory type items or a mix of inventory and non-inventory items, provide a value for **Warehouse ID**.



Delete Order Line Item
    
Deletes an order line item. Provide a value for **Line Item ID (Record Number)**. 

Get Order
    
Returns a list of Order records. To filter the list, provide a value for **Order ID** , **Customer ID** or **Document ID**. To return the entire list, leave the fields blank.
Note that the **Document ID** value is the **Key** value returned by the **Create Order** action. 

Delete Order
    
Deletes an Order record. Provide a value for **Order ID**. 

Create Product
    
Create a new product record and returns the **Item ID** and **Record Number**. Provide a value for the following:
  * **Item Type**



Update Product
    
Updates a Product record. Provide a value for **Item ID**. 

Get Products
    
Returns a list of Product records. To filter the list, provide a value for **Item ID** , **Name** , or **Item Type**. To return the entire list, leave the fields blank. 

Delete Product
    
Deletes a Product record. Provide a value for **Product ID**. 

Create Price List
    
Creates a new Price List record. Provide a value for the following:
  * **Price List Name**



Update Price List
    
Updates a Price List record. Provide a value for the following:
  * **Price List Name**



Get Price Lists
    
Returns a list of Price List records. To filter the list, provide a value for **Type**. To return the entire list, leave the fields blank. 

Delete Price List
    
Deletes a Price List record. Provide a value for **Price List ID**. 

Create Price List Entry
    
Creates a new Price List Entry record for a price list and returns the **Key** value. Provide a value for the following:
  * **Price List ID**
  * **Start Date**
  * **End Date**
  * **Value Type**



Update Price List Entry
    
Updates a Price List Entry record. Provide a value for **Record Number**. 

Get Price List Entries
    
Returns a list of Price List Entry records. To filter the list, provide a value for **Entry ID** , **Price List ID** , or **Item ID**. To return the entire list, leave the fields blank. 

Delete Price List Entry
    
Deletes a Price List Entry record. Provide a value for the **Price List Entry ID**.
## Custom Fields
If defined in the Sage Intacct instance, Sage Intacct Connector for Composer supports adding custom fields. For details on adding Sage Intacct custom fields, see the Sage Intacct documentation.
## See Also
  * Mulesoft Composer: Overview
  * MuleSoft Composer: Getting Started
  * Composer Connector Reference
  * Knowledge Articles