Sage Intacct and Procurify integration
Sage Intacct manages your general ledger and accounting close. Procurify manages procurement and spend. Connecting the two keeps your vendor master and accounts payable aligned, and moves approved purchase orders and vendor bills from procurement into your general ledger without re-keying. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.
What moves between them
The main flow runs from Procurify into Sage Intacct. Vendor records sync in both directions to keep the two systems aligned. Approved purchase orders and vendor bills flow from Procurify into Intacct's general ledger, mapped to GL accounts and dimensions. Account codes are aligned in both directions so procurement charges land on valid Intacct GL dimensions. Bills and payments are read-only in Procurify, so ml-connector never writes back to procurement.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Intacct side, it sends partner and user credentials to obtain a session token, caches the token for up to 50 minutes, and automatically refreshes it on the next call if it expires. On the Procurify side, it exchanges client credentials for a 24-hour bearer token and includes both the token and the X-Procurify-Client header on every request. Because both systems offer polling only, ml-connector polls Procurify for new or modified purchase orders, bills, and vendors at a schedule you control, maps them against Intacct GL dimensions and account codes, and posts the transactions into Intacct's general ledger. Intacct's XML gateway requires careful handling of control characters, so ml-connector strips forbidden C0 characters before serializing. Every record carries a full audit trail and can be replayed if a downstream GL posting fails.
A real-world example
A mid-market distributor runs Sage Intacct for accounting and financial close, and Procurify for procurement across five regional warehouses. Before integration, the procurement team exported approved purchase orders from Procurify each week and re-keyed them into Intacct's AP module by hand, creating vendor mismatches and GL account errors. The accounting team then spent days chasing reconciliation items during month-end close. With Procurify and Intacct connected, each approved purchase order flows into the general ledger automatically, allocated to the correct warehouse cost center and GL account, vendor changes sync both ways, and month-end close begins with AP already reconciled.
What you can do
- Post approved Procurify purchase orders and vendor bills into Sage Intacct's general ledger, allocated to the correct cost centers and GL accounts.
- Keep Sage Intacct vendors synchronized with Procurify vendor records, including addresses, contacts, and payment terms.
- Map Procurify account codes and departments to Sage Intacct GL dimensions so procurement charges land on valid accounts.
- Authenticate Sage Intacct with session-based XML gateway credentials and Procurify with OAuth 2.0 client credentials.
- Poll on a schedule you control, with retries, session auto-refresh, and a full audit trail on every transaction.
Questions
- Which direction does data move between Sage Intacct and Procurify?
- The main flow is Procurify into Sage Intacct. Purchase orders, bills, and vendor records move from Procurify into Intacct's general ledger and vendor master. Vendors and account codes are synchronized in both directions so procurement allocations land on valid Intacct dimensions. Bills and payments are read-only in Procurify, so ml-connector does not write financial entries back.
- How does the integration handle Sage Intacct's XML gateway and session expiry?
- ml-connector exchanges partner and user credentials for a sessionid on the first API call, caches it for up to 50 minutes, and automatically refreshes it on the next call if it expires. The XML gateway requires all operations to serialize through a single POST connection, and ml-connector strips forbidden control characters before sending XML to prevent parsing errors.
- How does polling work if neither system supports webhooks?
- ml-connector polls Procurify for new or modified vendors, purchase orders, and bills at a schedule you define, then posts matching transactions into Sage Intacct's general ledger on the same schedule. This approach means procurement changes are not instantaneous, but it eliminates the need for manual re-keying and keeps both systems aligned.
Related integrations
More Sage Intacct integrations
Other systems that connect to Procurify
Connect Sage Intacct and Procurify
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started