Visma and SFTP / Flat Files integration
Visma.net ERP manages accounting, payables, and procurement. SFTP / Flat Files is how legacy ERPs and trading partners exchange data without native APIs. Connecting them allows invoices and payment data to flow from Visma into flat-file formats at regular intervals, while vendor data from the SFTP server can be ingested back into Visma's procurement and accounts. ml-connector handles the OAuth authentication, file format transformation, and full audit trail on every sync cycle.
What moves between them
Visma invoices, purchase orders, and GL journal entries flow outbound to the SFTP server via polling on a user-defined schedule, typically every 1 to 4 hours. Files are formatted as CSV, X12 810 invoices, or fixed-width GL records per the partner's specification. Inbound files from the SFTP server (vendor master, remittance advice, purchase order acknowledgments) are polled and parsed into Visma supplier records and payment transactions. Supplier and GL dimension data may be synchronized bidirectionally to keep Visma and the SFTP partner aligned on accounts, cost centers, and vendor master.
How ml-connector handles it
ml-connector maintains a persistent connection to Visma using OAuth2 client credentials, refreshing the bearer token before expiry to avoid authentication failures. On each poll cycle, it queries Visma for invoices and transactions modified since the last run using the lastModifiedDateTime parameter, transforms the JSON response into the partner's required file format (CSV header/column mapping, X12 segment structure, or fixed-width layout), and uploads files to the SFTP inbound folder via SSH public key authentication. For inbound files, ml-connector polls the SFTP server's inbound directory, parses the file format, validates records against Visma's GL account and supplier dimensions, generates X12 997 acknowledgments or EDIFACT CONTRL responses, deposits them in the acks folder, and transforms the data into Visma supplier invoice or journal transaction records via REST PUT. Polling intervals, file naming patterns, and field mappings are configured per partner. Rate-limiting on Visma (500 calls per hour) is respected via adaptive backoff, and every file arrival, parse, and upload is logged to the audit trail.
A real-world example
A mid-market manufacturing company uses Visma.net ERP for accounting and AP. Their largest supplier operates legacy systems with no modern API and exchanges data only via flat files. Before the integration, the accounts payable team downloaded supplier invoices weekly from Visma, exported them as CSV, and manually uploaded them to the supplier's SFTP server, then downloaded remittance advices and re-entered them into Visma by hand. With SFTP / Flat Files connected to Visma, invoices flow automatically every morning, formatted as CSV with the supplier's required columns and in their specified folder structure. Remittance files arrive on the inbound directory and are parsed directly into Visma supplier payments. The weekly manual transfer step is eliminated, and reconciliation happens automatically.
What you can do
- Extract Visma invoices, purchase orders, and GL journal entries on a polling schedule and transform them into CSV, X12, or fixed-width formats for SFTP delivery.
- Ingest vendor master, remittance advice, and purchase order acknowledgments from the SFTP server and load them into Visma as supplier records and payment transactions.
- Authenticate to Visma with OAuth2 client credentials and refresh tokens automatically before expiry to maintain reliable API access.
- Generate X12 997 or EDIFACT CONTRL acknowledgments for inbound EDI files and deposit them in the partner's acks folder.
- Poll both Visma (via lastModifiedDateTime) and the SFTP server on a configurable schedule with full audit trail and error replay on every record.
Questions
- Which direction does data flow between Visma and SFTP / Flat Files?
- The primary flow is outbound from Visma to SFTP: invoices, purchase orders, and GL transactions are extracted on a schedule and uploaded as CSV or EDI files. Inbound files (vendor master, remittances, acknowledgments) are also supported, parsed from the SFTP inbound folder and loaded into Visma as supplier and payment records. Both directions are polled, so data moves on the schedule you define, not in real-time.
- How does ml-connector handle Visma's OAuth tokens and rate limits?
- ml-connector caches the OAuth2 bearer token and refreshes it before expiry, preventing re-authentication on every call. Visma rate-limits test clients to 500 calls per hour per company, so ml-connector monitors response headers, backs off when approaching the limit, and queues requests to stay within the cap. This allows safe polling at intervals as short as 5-10 minutes without hitting the rate limit.
- What file formats and acknowledgments are supported for SFTP transfers?
- ml-connector supports CSV with configurable column headers and order, X12 segments (810 invoices, 820 payments, 997 acknowledgments), EDIFACT messages (INVOIC, ORDERS, CONTRL), and fixed-width records. File naming and folder structure are configured per partner. Acknowledgments (X12 997 or EDIFACT CONTRL) are automatically generated and placed in the acks folder after inbound file processing.
Related integrations
More Visma integrations
Other systems that connect to SFTP / Flat Files
Connect Visma and SFTP / Flat Files
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started