Infor CloudSuite and SFTP / Flat Files integration
Infor CloudSuite powers procurement and finance across the ION platform. SFTP / Flat Files reaches legacy systems, EDI trading partners, and warehouse operators that speak only file transport. Connecting the two lets invoices, purchase orders, and GL transactions flow in both directions without manual file handling or format conversion. Vendor master data syncs to ensure matching GL dimensions. ml-connector manages the OAuth handshake, transforms records to and from flat files, and keeps everything audited and retriable.
What moves between them
The primary flow is CloudSuite to SFTP. When a vendor invoice or PO is created or updated in CloudSuite, ml-connector polls the ION API on schedule, extracts the records, transforms them to X12 810 (invoice) or 850 (PO) EDI format or CSV, and deposits the files in the SFTP outbound/ folder. The reverse flow is SFTP to CloudSuite. ml-connector polls SFTP for inbound payment and GL files (X12 820, BAI2, or fixed-width), maps them to CloudSuite GL accounts and cost centers, and posts them via ION API. Vendor master data from CloudSuite syncs to SFTP on an initial load, then on change. Polling frequency is configurable from 5 to 60 minutes. EDI acknowledgments are generated after inbound files and placed in the acks/ folder.
How ml-connector handles it
ml-connector stores the Infor CloudSuite .ionapi file securely, extracts the OAuth token endpoint and base URL, and refreshes the bearer token proactively before expiry (token lifetime varies from 1 to 24 hours per tenant). It polls CloudSuite's ION API using cursor-based filtering on M3 operations or recordCap/Bookmark on SyteLine, respecting the CONO parameter for multi-company environments. For SFTP, ml-connector presents the SSH private key at authentication, verifies the host key to prevent MITM, and polls the inbound/ folder on schedule. Outbound records (invoices, POs) are transformed to EDI X12 format with proper interchange envelopes, or CSV if configured. Inbound files (payments, GL entries) are parsed, validated against the CloudSuite GL account master, and posted through ION BOD subscription or direct API calls. Since CloudSuite Add operations have no native idempotency keys, ml-connector implements external dedup tracking by reading first (query-then-insert pattern) to prevent duplicate vendors or GL lines. SFTP file naming conventions are captured in config, and processed files are moved to the processed/ folder. Retries respect the CloudSuite infrastructure rate limits (429 backoff) and SFTP connection timeouts. Every record carries a full audit trail with source, transformed payload, and disposition.
A real-world example
A mid-sized food distributor runs Infor CloudSuite M3 for procurement and GL, and operates three regional warehouses with legacy order-entry systems and trading partners connected only via SFTP/EDI. Before the integration, the procurement team received vendor invoices in CloudSuite, manually converted them to X12 810 EDI, and dropped them on partner SFTP servers. Inbound payments and adjustments arrived as flat files on SFTP; the team parsed them by hand and re-entered GL lines into CloudSuite's chart of accounts by cost center. Month-end close required cross-checking the SFTP acks/ folder for missing 997 acknowledgments. With Infor CloudSuite and SFTP / Flat Files connected, vendor invoices transform and post to partner SFTP servers automatically on a schedule, EDI acknowledgments are validated and tracked, and inbound GL files from warehouses map back to CloudSuite dimensions and post without re-keying. The GL reconciliation is instant and the acks/ folder is audited in real time.
What you can do
- Extract vendor invoices and purchase orders from Infor CloudSuite, transform them to X12 EDI or CSV format, and deposit them on SFTP servers on a schedule.
- Receive and parse X12 820 payment files from SFTP, map them to CloudSuite GL accounts and cost centers, and post the GL lines through the ION API.
- Keep vendor master data from CloudSuite synchronized to SFTP CSV files, with multi-company (CONO) filtering and change-driven updates.
- Handle Infor CloudSuite OAuth 2.0 token lifecycle from the .ionapi credentials file, with proactive refresh and rate-limit backoff, plus SFTP key management and host key verification.
- Generate X12 997 or EDIFACT CONTRL acknowledgment files after processing inbound EDI, with full audit logging on every record move and transformation.
Questions
- Can ml-connector use BOD/XML push from ION Desk instead of polling the REST API?
- Yes, if your Infor CloudSuite admin has configured ION Desk document flows (e.g., Sync.SupplierInvoice, Sync.PurchaseOrder). However, these flows require manual admin setup for each event type in ION Desk and are not programmable via API. The default approach is REST polling filtered by modified date, which works with zero admin overhead on the CloudSuite side.
- What do I need to set up SFTP authentication with ml-connector?
- ml-connector supports SSH key-based auth (preferred) or username/password. For key-based auth, generate an SSH key pair, provide the private key to ml-connector (stored encrypted), and add your public key to the SFTP server's authorized_keys file. Host key verification is enabled by default to prevent man-in-the-middle attacks. Two-factor auth (key plus password or OTP) is also supported.
- How does ml-connector handle duplicate vendor invoices or GL lines?
- Infor CloudSuite's ION API Add operations are not idempotent by default. ml-connector implements query-first deduplication: before posting a vendor invoice or GL line, it reads the existing records with matching supplier and invoice number (or GL batch/sequence), and only inserts if not present. This prevents CloudSuite from growing duplicate GL accounts or supplier records when a file is reprocessed or a flow is replayed.
Related integrations
More Infor CloudSuite integrations
Other systems that connect to SFTP / Flat Files
Connect Infor CloudSuite and SFTP / Flat Files
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started