Visma and Cin7 integration
Visma.net ERP manages your financial records and supplier invoices. Cin7 Core manages your inventory and purchase operations. Connecting the two keeps your purchase history in sync across both systems without manual rekeying or duplicate entry. New supplier invoices posted in Visma flow into Cin7's purchase module, mapped to the correct suppliers and product line items. Your inventory team sees the full procure-to-pay chain without toggling between systems.
What moves between them
Supplier invoices and purchase orders flow from Visma into Cin7 on a schedule you define. ml-connector polls Visma for new and modified purchase orders and supplier invoices, resolves the supplier to a Cin7 supplier record, maps line items to Cin7 products, and posts the purchase into Cin7 using the appropriate Approach (ORDER for purchase orders, INVOICE for invoices). Reference data such as supplier accounts and GL account mappings are configured once and reused on every sync. Data flows only one direction since Cin7's Chart of Accounts is read-only.
How ml-connector handles it
ml-connector stores Visma client credentials and Cin7 API keys encrypted and obtains a fresh Visma OAuth token on each poll cycle. It queries Visma for purchase orders and supplier invoices modified since the last poll, using the lastModifiedDateTime parameter for efficiency. For each record, it looks up the supplier in Cin7, validates that all line item products exist in Cin7, resolves GL account mappings, and posts the purchase in the correct Approach stage. If a supplier or product is missing in Cin7, ml-connector records the failure with full detail so the mapping can be corrected and the record replayed. It handles Visma's ETag requirement on writes by reading the current version before updating. Retries on transient errors use exponential backoff, and the full audit trail lets you inspect every record and replay failures as needed.
A real-world example
A mid-sized Nordic manufacturing company runs Visma.net ERP for accounting and Cin7 Core for inventory and procurement. Before integration, the purchasing team entered supplier invoices in Visma, then had to manually log in to Cin7 and recreate the purchase orders and line items by hand to keep inventory counts correct. With Visma and Cin7 connected, each supplier invoice posted in Visma is automatically synced to Cin7, assigned to the matching supplier, and matched to the correct products and GL accounts. The purchasing team no longer re-enters data, inventory counts stay current as invoices are received, and the finance team can reconcile accounts payable across both systems in minutes instead of hours.
What you can do
- Poll Visma for new and modified purchase orders and supplier invoices on a schedule you control.
- Map suppliers between Visma and Cin7 and validate that all line item products exist before posting.
- Post purchase orders and invoices into Cin7 using the correct Approach (ORDER, INVOICE, or RECEIVE) based on the Visma record type.
- Authenticate Visma with OAuth 2.0 and Cin7 with its custom API key headers, refreshing Visma tokens automatically.
- Track every record in a full audit trail, log resolution failures with remediation steps, and replay records when mappings are corrected.
Questions
- What records move from Visma to Cin7 and in which direction?
- Purchase orders and supplier invoices flow from Visma into Cin7. Suppliers, products, and GL accounts must exist in Cin7 before the integration can post records. Cin7 does not write back to Visma because Cin7's Chart of Accounts is read-only.
- How does ml-connector handle supplier and product mapping between the two systems?
- Supplier mappings are configured once and stored encrypted. For each invoice or purchase order, ml-connector looks up the supplier in Cin7 by name or custom ID. If products or GL accounts are missing, the record is logged with full detail so you can add the missing entity to Cin7 and replay the record without re-entering data.
- How does the integration handle Visma's OAuth tokens and ETag requirements?
- ml-connector obtains a fresh Visma OAuth token on each poll cycle using your client credentials. When updating records in Visma, it reads the current version first to get the ETag, then includes it in the update to satisfy Visma's optimistic locking requirement.
Related integrations
More Visma integrations
Other systems that connect to Cin7
Connect Visma and Cin7
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started