Sage 300 and SFTP / Flat Files integration
Sage 300 runs accounting and operations on Windows IIS. SFTP / Flat Files is how legacy systems and EDI trading partners exchange data. Connecting Sage 300 to SFTP lets you extract AP invoices, purchase orders, GL entries, and inventory from Sage 300 and deliver them to trading partners, archives, or downstream batch processes as structured files. ml-connector handles the HTTP Basic Auth, polling, file formatting, and folder management so the two systems stay synchronized.
What moves between them
ml-connector polls Sage 300 on a schedule you set, reading AP invoice batches, GL journal batches, purchase orders, and inventory items via REST. It transforms these records into CSV or fixed-width files formatted per your SFTP partner specification and uploads them to the SFTP outbound folder. When trading partners deliver responses or acknowledgments to the inbound folder, ml-connector reads those files, parses the format, and maps the results back to Sage 300 (marking batches as processed, logging confirmations, or posting GL adjustments if applicable). The flow runs unidirectional or bidirectional depending on your partner contract.
How ml-connector handles it
ml-connector stores Sage 300 credentials encrypted and applies the required uppercase transformation to the username and password before every REST call; the API user must exist in Sage 300 Administrative Services with Web API security group assigned. It polls Sage 300 on your schedule using OData $filter on DocumentDate to find new records since the last run. Each Sage 300 entity (APInvoiceBatches, GLJournalBatches, POPurchaseOrders, ICItems) is mapped to the CSV or fixed-width file format your SFTP partner expects, including column order, delimiters, and required fields. ml-connector then uploads the file to the SFTP outbound folder. On the inbound side, ml-connector polls the SFTP inbound folder and reads any new files (CSV, X12, or fixed-width), parses them according to the format spec, and creates matching records in Sage 300 or posts them as GL journal entries if configured. If your partner requires EDI acknowledgments, ml-connector generates X12 997 or EDIFACT CONTRL files and deposits them in the acs/ folder. The integration handles SFTP host key verification to prevent man-in-the-middle attacks and retries failed file uploads or reads with exponential backoff.
A real-world example
A mid-market distributor uses Sage 300 for accounts payable and general ledger. Several suppliers, including large manufacturers, exchange purchase orders and invoices via SFTP and X12 EDI rather than a shared API. Before the integration, the accounts payable team received X12 invoices on the SFTP server, manually re-entered line items into Sage 300, and exported GL posting journals as CSV files every week to send back to the supplier's accounting department. With Sage 300 and SFTP connected, invoice files from suppliers flow automatically into Sage 300 AP batches on arrival, and GL entries post to their summary accounts without re-keying. Each week, ml-connector exports the GL posting journal as a formatted CSV file to the SFTP outbound folder, and the supplier's system reads it directly. Month-end reconciliation is faster because the manual file transfer and re-entry steps are gone.
What you can do
- Export Sage 300 AP invoices, GL entries, and purchase orders as CSV or fixed-width files to SFTP on a schedule.
- Import invoice files and EDI documents from SFTP, parse the format, and create matching AP batches or GL journal entries in Sage 300.
- Transform Sage 300 records into your partner's file format specification, including column order, delimiters, and required fields.
- Generate X12 997 or EDIFACT CONTRL acknowledgment files and deposit them in the SFTP acks folder to confirm receipt.
- Apply HTTP Basic Auth with required uppercase credential transformation and maintain SFTP host key verification for security.
Questions
- How does ml-connector handle Sage 300's HTTP Basic Auth requirement and uppercase credentials?
- ml-connector stores both the username and password encrypted. On every REST call to Sage 300, it applies the required uppercase transformation to both credentials, base64-encodes them, and includes the Authorization header. The Sage 300 API user must be created in Administrative Services with the Web API security group assigned; the built-in Admin user does not have API privileges.
- Does the integration support bidirectional flow, or only Sage 300 to SFTP?
- Both directions are supported. ml-connector can export Sage 300 AP invoices, GL entries, and purchase orders to SFTP, and also read incoming invoice or EDI files from SFTP and create matching records in Sage 300. The direction depends on your partner contract and how you configure the flow.
- How are file formats and column layouts handled when moving data between Sage 300 and SFTP?
- Each SFTP trading partner specifies their file format (CSV, X12 EDI, fixed-width, XML) and column layout in a mapping configuration. ml-connector transforms Sage 300 records into the format spec during export, and parses incoming files according to the same spec during import. Format and layout are completely configurable per partner and do not require code changes.
Related integrations
More Sage 300 integrations
Other systems that connect to SFTP / Flat Files
Connect Sage 300 and SFTP / Flat Files
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started