Visma and WooCommerce integration
E-commerce and accounting live in different worlds. WooCommerce runs your online store and collects customer and order data, while Visma.net ERP holds your financial truth. Connecting them keeps your accounts receivable current, eliminates manual invoicing, and gives you a complete view of revenue from order placement to cash collection. ml-connector bridges the two systems so every order and customer from WooCommerce flows into Visma with no re-keying.
What moves between them
The main flow runs from WooCommerce into Visma. Customer records created or updated in WooCommerce are synced into Visma as either suppliers or customers, depending on your business model. Orders from WooCommerce are posted into Visma as customer invoices or sales transactions, mapped to the correct GL accounts and customer dimensions so they appear in the right place in your chart of accounts. Because WooCommerce has no native GL posting capability, data flows one way. Visma does not push changes back to WooCommerce. Syncing occurs on a schedule you define (typically daily or per-order, depending on your volume and cycle time), with polling fallback if webhooks are not enabled.
How ml-connector handles it
ml-connector stores both credential sets encrypted and uses OAuth 2.0 to authenticate against Visma's Visma Connect endpoint on behalf of each customer. Because Visma requires tenant approval before a client_id can access customer data, each cell requests the ipp-company-id header on every API call to route to the correct company. For WooCommerce, ml-connector stores the API key pair and presents it on every call via HTTP Basic Auth. It validates incoming WooCommerce webhook signatures using the HMAC-SHA256 secret to ensure authenticity. When WooCommerce webhooks are enabled, ml-connector receives events in real time; when they are disabled (or after a webhook fails five times), it polls WooCommerce on your schedule. On the Visma side, orders are posted as customer invoices or sales transactions with line items mapped to GL accounts and customer dimensions so they land on valid accounts. Customers are created or updated using the lastModifiedDateTime parameter for efficient delta pulls. ml-connector retries failed calls with exponential backoff and tracks the full audit trail of every record synchronized, allowing replays if a downstream system needs correction.
A real-world example
A Nordic e-commerce retailer sells craft supplies through a WooCommerce store and uses Visma.net ERP for accounting and order fulfillment. Previously, orders from WooCommerce were exported daily and re-entered into Visma by hand, a process that took two hours and created data-entry errors. Customer records drifted between systems, and the accounts team spent days each month reconciling revenue in the GL against what actually shipped. With WooCommerce and Visma connected, orders post automatically to customer invoices in Visma within minutes of purchase, customers are synced to the supplier/customer master the moment they first order, and the GL reflects real revenue. Month-end revenue reconciliation becomes a check rather than an investigation.
What you can do
- Sync customer records from WooCommerce into Visma as suppliers or customers with full contact and tax information.
- Post orders from WooCommerce as customer invoices or sales transactions in Visma, mapped to the correct GL accounts and customer dimensions.
- Validate WooCommerce webhook signatures using HMAC-SHA256 and replay failed records automatically.
- Authenticate Visma via OAuth 2.0 with tenant approval and WooCommerce via API keys, with encrypted credential storage.
- Poll on a schedule tied to your order cycle, with retries and a full audit trail on every customer and order record.
Questions
- Which direction does data move between Visma and WooCommerce?
- The primary flow is from WooCommerce into Visma. Customer records and orders from WooCommerce are synced into Visma as customers and invoices. Visma does not push changes back to WooCommerce because WooCommerce has no accounting features. Reference data such as GL accounts and customer dimensions are configured once in Visma and used to map incoming orders.
- How does ml-connector handle WooCommerce's webhook limitations?
- WooCommerce webhooks are disabled automatically after five consecutive failed deliveries. ml-connector monitors webhook health and falls back to polling on your defined schedule if webhooks fail. It validates every webhook signature using HMAC-SHA256 with the webhook secret, ensuring only authentic events from your store are processed.
- Does Visma require special tenant setup to accept data from WooCommerce?
- Yes. Visma requires explicit tenant approval before a service client can access customer data. ml-connector manages this authorization flow and includes the ipp-company-id header on every API call to ensure orders and customers post to the correct company within your Visma instance.
Related integrations
More Visma integrations
Other systems that connect to WooCommerce
Connect Visma and WooCommerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started