ml-connector
Sage IntacctSFTP / Flat Files

Sage Intacct and SFTP / Flat Files integration

Sage Intacct runs your accounting and procure-to-pay. SFTP / Flat Files is how legacy ERPs and trading partners exchange data. Connecting the two lets you export vendor masters and AP bills from Intacct to files on an SFTP server, where EDI partners or downstream systems can consume them. ml-connector maps Sage Intacct records to CSV or X12 format, publishes them on a schedule you control, and keeps an audit trail of every file written.

How Sage Intacct works

Sage Intacct is a cloud-based ERP accessible via a single XML gateway endpoint at api.intacct.com. Authentication uses session-based credentials (senderId, companyId, userId, userPassword), with the session cached for 50 minutes and refreshed automatically on timeout. The API returns XML responses that may contain application-level errors inside the body, so all responses must be parsed for error tags. Intacct has no webhook system, so all data is read by polling. Key entities include vendors, AP bills, payments, GL accounts, and cost dimensions. The XML gateway is single-threaded; all operations serialize through one POST connection.

How SFTP / Flat Files works

SFTP / Flat Files is a file-transfer pattern where data flows as CSV, X12 EDI, EDIFACT, XML, or fixed-width text files stored on an SFTP server. Authentication uses SSH key pairs (recommended) or username and password over the encrypted SSH channel. The SFTP server has no universal base hostname; each trading partner provides their own. Host key verification is required in production to prevent man-in-the-middle attacks. File discovery is polling-based; the connector polls a designated inbound or outbound folder on a schedule (typically 5 to 60 minutes) to detect new files. There is no push mechanism. Standard folder layout includes inbound, outbound, processed, error, and acks subdirectories.

What moves between them

The main flow is Sage Intacct to SFTP / Flat Files. ml-connector polls Intacct on a schedule you define, retrieves vendor master records and AP bills, maps them to CSV rows or X12 810 invoice format, and writes the formatted file to an SFTP outbound folder. Each file is named and timestamped so downstream systems can discover it and process it. Optionally, if the trading partner sends an X12 997 or EDIFACT CONTRL acknowledgment back to the acks folder, ml-connector can read and log it. The flow is one-way out of Intacct; SFTP is the delivery method.

How ml-connector handles it

ml-connector caches the Sage Intacct session ID after the initial getAPISession call and refreshes it automatically when the 50-minute session expires. It parses Intacct's XML response bodies for application-level errors (errormessage tags) and retries the call with exponential backoff if a transient failure occurs. On the SFTP side, it authenticates using your SSH key or password, verifies the remote host key to prevent man-in-the-middle attacks, and polls your designated SFTP server folder on a schedule tied to your AP cycle. Vendor names, GL codes, and bill amounts are mapped to CSV columns or X12 EDI segments according to your format and column layout spec. Files are written to a date-stamped filename in the outbound folder so trading partners can discover and process them. The connector tracks file hashes to avoid re-sending duplicate exports, logs the outcome of every polling cycle, and surfaces file transfer failures in the audit trail so you can replay a failed export if the downstream system is ready.

A real-world example

A mid-market distributor runs Sage Intacct for accounting and procurement. One of its largest suppliers still operates a legacy ERP that can only ingest data via SFTP as X12 EDI invoices and vendor masters. Before the integration, the procurement team exported vendor and invoice data from Intacct once a week, manually reformatted it into X12 files using a third-party tool, and uploaded the files to the supplier's SFTP server. With Sage Intacct and SFTP / Flat Files connected, the export and format step runs automatically on a Monday morning schedule, the X12 files appear on the supplier's SFTP server, and the supplier's system ingests them without manual intervention. The procurement team no longer spends Friday afternoons on format conversions.

What you can do

  • Export vendor master records from Sage Intacct and write them to an SFTP server as CSV or X12 vendor files.
  • Export AP bills from Sage Intacct, format them as X12 810 invoices or CSV, and deliver them to an SFTP outbound folder.
  • Map Sage Intacct GL accounts and cost dimensions to your file format so downstream systems receive complete chart of accounts data.
  • Authenticate Sage Intacct via session ID caching and SFTP via SSH key or password with host key verification.
  • Poll on a schedule tied to your AP cycle, handle SFTP host key verification, retry transient failures, and maintain a full audit trail.

Questions

Can ml-connector read files from the SFTP server and write them back to Sage Intacct?
No. This integration is one-way: Intacct to SFTP. The connector reads vendors and AP bills from Sage Intacct and writes them to SFTP as files. If you need to ingest data from SFTP back into Intacct (for example, to receive updated payment terms from a supplier), that would be a separate flow configured in the opposite direction using Intacct's XML POST endpoint to ingest records.
What file formats does ml-connector support when exporting from Sage Intacct to SFTP?
ml-connector maps Sage Intacct records to CSV, X12 EDI (810 for invoices, 856 for shipments, vendor master layouts), EDIFACT, or fixed-width text format, depending on your trading partner's requirements. You specify the column layout and field mapping when you configure the flow, and the connector formats each export accordingly. Sage Intacct provides the data via XML; the connector translates it to your chosen format.
What happens if the SFTP host key changes or the connection fails during a scheduled export?
ml-connector verifies the remote host key on every connection attempt to prevent man-in-the-middle attacks. If the key has changed, the connection fails and the failure is logged in the audit trail with the error details. For transient failures (network timeouts, temporary unavailability), the connector retries with exponential backoff. For persistent failures or host key mismatches, an alert is surfaced so you can investigate and manually retry once the issue is resolved.

Related integrations

Connect Sage Intacct and SFTP / Flat Files

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started