Sage Intacct – Gotchas
Increase ROI and transform your organization with the first and only preferred provider of the AICPA for accounting and financial management software for companies of any size.
15 gotchas across 9 resources
These are connector-specific behaviors and limitations to be aware of when integrating.
Bank Accounts1 gotcha
bankAccountsAllPagination is not supported when listing all bank accounts without an account_type filter.
Bill Payments1 gotcha
billPaymentsAddpayment_method is required. A bill payment created without one is rejected with the generic downstream error BL34000094, which does not name the missing field. The value must match one of Sage Intacct's system AP payment methods — e.g. Cash, Printed Check, EFT, Charge Card, or Record Transfer. These methods are company-wide (not per-vendor or per-invoice), so a single value can be reused across all bill payments. There is no endpoint that lists payment methods; the values configured on a company can be discovered by reading existing bill payments or payments and inspecting payment_method. Recording an EFT payment does not require ACH/EFT bank setup on the vendor or account.
Credit Notes1 gotcha
creditNotesAddallocations[] is not applied on create — the credit is created as a standalone ARADJUSTMENT. To apply it to invoices, follow up via /vault/proxy with create_arpymt drawing from the new credit's RECORDNO against the target ARINVOICE. allocations is not returned on read.
Expenses2 gotchas
expensesAddWhen creating an expense for Sage Intacct, the account_id must refer to a credit card account, not a ledger account. You can find the correct credit card account ID in Sage Intacct under the Credit Cards section.
expensesDeleteThe delete operation for credit card transactions in Sage Intacct is not a true deletion. Instead, it performs a reversal using the reverse_cctransaction function.
Journal Entries3 gotchas
journalEntriesAllSage Intacct returns journal entry headers only for this endpoint — Intacct's GLBATCH
query does not include line items. The line_items array is therefore omitted from each
entry in this list. To read line-level detail (accounts, amounts, departments, locations,
tracking categories), fetch each entry individually with the Get Journal Entry endpoint.
journalEntriesAddSage Intacct only supports draft and posted status fields when updating a journal entry.
If no status is provided then the default status is "draft".
Only Journal Entries with draft status can be updated.
Only the first tracking category is used (tracking_categories[0]). On both create and
update, the connector sends both CLASSID (from tracking_categories[0].code) and
CLASSDIMKEY (from tracking_categories[0].id), so a class may be referenced by its id
(as returned by GET /accounting/tracking-categories) or by its code on either verb;
supplying just one of the two is sufficient.
Each line's location_id falls back to the connection's configured default entity. When
the connection operates at the top level (no specific entity), set location_id explicitly
on lines whose ledger account requires a location dimension.
journalEntriesUpdateSage Intacct only supports draft and posted status fields when updating a journal entry.
If no status is provided then the default status is "draft".
Only Journal Entries with draft status can be updated.
Locations1 gotcha
locationsAllReturns the full set of Intacct LOCATION records — every location, whether or not it
is flagged as a legal entity. For only entity-flagged locations (legal sub-companies under
the top-level company), use companies or subsidiaries, which query Intacct's
LOCATIONENTITY view.
Profit And Loss1 gotcha
profitAndLossOneSage Intacct's Profit and Loss report is structured around account groups. To retrieve accurate data, all income statement accounts must be mapped to one of the following categories: Revenue, Cost of Revenue, Operating Expense, or Other Expenses. Any income statement accounts that are not mapped to one of these categories will appear under the uncategorized_accounts property.
Tax Rates1 gotcha
taxRatesAllSage Intacct supports multi-component taxes through the components array. Each component can have its own rate and tax authority. Use compound taxes for jurisdictions with multiple tax layers (e.g., GST + PST in Canada).
Tracking Categories4 gotchas
trackingCategoriesAllThe Parent ID field refers to the parent tracking category code.
trackingCategoriesAddWhen creating a category with parent ID please use the tracking category code.
trackingCategoriesOneThe Parent ID field refers to the parent tracking category code.
trackingCategoriesUpdateWhen updating the Parent ID field please use the tracking category code.