AFAS to Odoo Migration: Steps, Data Mapping, Payroll and Cost
Plan an AFAS to Odoo migration: AFAS Profit exports, data mapping, Dutch payroll options, SBR and XAF, a 10-step plan, timeline and cost for Odoo 20.
AFAS Profit is a strong Dutch suite, especially for HR and payroll. Companies leave it when operations outgrow it: production, multi-channel sales or custom workflows. Our Odoo migration services cover the export, mapping, testing and cutover for an AFAS to Odoo migration.
This guide is for owners, finance leads and IT managers in the Netherlands and Belgium who are weighing an AFAS alternative. Many of the same steps apply to other Dutch systems; see our plan for an Exact Globe Next move to Odoo.
Why do companies migrate from AFAS to Odoo?
Companies migrate from AFAS to Odoo when they need deeper operations, eCommerce or custom workflows in the same system as their accounting. AFAS is rarely replaced because it fails; it is replaced because the business changed.
The triggers we hear most often:
- Manufacturing depth: bills of materials, work orders, routings, quality checks and maintenance in one database.
- eCommerce and POS: a webshop, point of sale and stock that share one product and stock ledger.
- Customization: Odoo Studio for fields and screens, and Python modules for logic that a standard package cannot hold.
- Hosting choice: Odoo Online, Odoo.sh or your own servers, with a full copy of your database.
- International growth: several companies, currencies and country localizations in one Odoo database.
- App breadth: CRM, helpdesk, field service, rental, subscriptions and a website without extra vendors.
Before you commit, read our guide to legacy ERP replacement with Odoo. It helps you test whether you need a new system or a better setup of the one you have.
Odoo vs AFAS: how do the two systems compare?

Odoo vs AFAS comes down to Dutch HR and payroll depth on the AFAS side, and operational breadth, customization and hosting choice on the Odoo side. The table sums up the differences buyers ask about.
| Factor | AFAS Profit | Odoo 20 |
|---|---|---|
| Home market | Netherlands and Belgium | Global, with a Netherlands localization |
| Strongest area | HRM and Payroll with ready-made CAOs | Operations, manufacturing, eCommerce, projects |
| Accounting | Finance, VAT returns, e-invoicing, bank links | Dutch chart of accounts, VAT, SBR, XAF export |
| Customization | Configuration and connectors | Studio plus Python modules |
| Hosting | AFAS Online cloud | Odoo Online, Odoo.sh or on-premise |
| Integration | GetConnectors and UpdateConnectors | External API on the Custom plan |
Odoo 20 was released in September 2026, so a new implementation should normally start on it. For a closer look at another Dutch alternative, see our Odoo vs Exact Online comparison.
What data can you export from AFAS Profit?
You can export almost any AFAS Profit data through GetConnectors, plus a financial audit file per year, so getting data out is rarely the problem. The work is in deciding what to bring and cleaning it first.
AFAS documents three export routes that matter for a migration:
- GetConnectors: you define them yourself in Profit, and they return data as JSON, XML or CSV. This is the main route for master data and open items.
- App Connector token: API access runs through an App Connector, with a token sent in a Base64 authentication header.
- XML audit file: Profit generates an audit file for a chosen financial year, which is useful for archive and reconciliation.
AFAS caps the total size of a single API call at 75 MB. For large tables such as journal lines or order history, export in filtered batches by year or by company.
Build each GetConnector to include the AFAS key (debtor number, creditor number, item code). That key becomes the External ID in Odoo, which keeps links between records intact on every reload.
How do you map AFAS data to Odoo?
Map every AFAS object to an Odoo model before you export, and keep the AFAS number as the Odoo External ID. Odoo's import tool uses External IDs to rebuild relations between records.
| AFAS object | Odoo target | Mapping note |
|---|---|---|
| Organisations and persons | Contacts (companies and individuals) | Merge duplicates first |
| Debtors and creditors | Customer and vendor on the contact | Keep payment terms and IBAN |
| Items and price lists | Products, variants and pricelists | Check units of measure |
| General ledger accounts | Dutch chart of accounts | Map account by account |
| Cost centres and cost carriers | Analytic plans and accounts | Agree the plan structure early |
| Open debtor and creditor items | Open invoices and bills, or opening entries | Reconcile totals to the ledger |
| Projects | Projects, tasks and timesheets | Active projects only |
| Subscriptions | Odoo Subscriptions | Next invoice date and price |
| Stock levels | Warehouses, locations and quantities | Count on cutover day |
Odoo's import documentation says the External ID column can hold the identifier from your previous software. Related records then point to it, for example a contact's company or an invoice's customer.
The same page warns that very large files can fail and advises importing in smaller batches. Load contacts and products in chunks, and test each batch on a copy before production.
Should Dutch payroll stay in AFAS or move to Odoo?
Most companies should keep payroll in AFAS or with their payroll provider for the first phase, then move it to Odoo only after a parallel run proves the numbers match. Payroll errors hit employees directly, so it moves last.
AFAS says its Payroll ships with more than 175 collective labour agreements (CAOs) as standard, and that filings to Dutch authorities are automated. That depth is the main reason AFAS is hard to replace in HR.
The Odoo Netherlands localization includes a Netherlands Payroll module and a Payroll with Accounting module. Test your own CAO, allowances and holiday pay rules against it before you plan the switch.
Three options work in practice:
- Keep AFAS for HR and payroll: post the payroll journal to Odoo each month by import or API.
- Use a payroll provider or accountant: import the monthly payroll journal into Odoo Accounting.
- Move payroll to Odoo: run two or three months in parallel, then switch at a year start.
AFAS partners describe HRM and Payroll as licensed separately from AFAS's ERP scope. Confirm with AFAS what a payroll-only setup would cost before you decide. See what changed for HR in our Odoo 20 Payroll release notes.
Odoo Netherlands localization: VAT, SBR, XAF and Peppol
The Odoo Netherlands localization covers the Dutch compliance items AFAS users rely on: chart of accounts, VAT, SBR filing, XAF export and Peppol. Compliance rarely blocks the move, but each item needs setup and a test.
- Chart of accounts and taxes: installed with the Netherlands Accounting module, with fiscal positions for EU and export sales.
- SBR: Odoo sends the VAT return to the Dutch tax authority through Digipoort, using your PKIoverheid certificate.
- XAF audit file: export accounting entries from the General Ledger report in XAF format for your accountant or an audit.
- Intrastat: a separate Netherlands Intrastat module builds the declaration from invoices.
- Peppol: Odoo acts as its own access point; Peppol registration in Odoo is free, available in Community and supports NLCIUS.
Odoo's Dutch e-invoicing page notes that invoices must be kept for at least seven years. Keep your AFAS audit files and exports of closed years in a safe archive, even after AFAS is switched off.
AFAS to Odoo migration steps: a 10-step plan
A safe AFAS to Odoo migration follows ten steps, with at least two full test loads before the real cutover. Skipping test loads is the most common cause of a messy first month.
- Scope: list the AFAS modules in use, the companies, users and integrations, and decide what moves.
- Fit-gap: run workshops per process and mark each one as standard, configuration or custom in Odoo.
- Cutover date: pick the start of a financial year or quarter, in agreement with your accountant.
- Mapping: document every AFAS object, field and code against its Odoo model.
- Clean-up: merge duplicate contacts, close stale items and fix wrong VAT codes in AFAS first.
- Build: configure Odoo 20, the Dutch localization, pricelists, routes and approval rules.
- Test load one: export from AFAS, import into a copy of Odoo and reconcile totals.
- Integrations: rebuild AFAS connector links on Odoo's API and re-point bank feeds and Peppol.
- Test load two and UAT: reload with fresh data and let key users run real scenarios.
- Go-live: freeze AFAS, load final open items and balances, count stock and switch over.
Rebuilding integrations? XML-RPC and JSON-RPC are deprecated in Odoo 20 and scheduled for removal in Odoo 22. Build new links on the JSON-2 API, as our Odoo JSON-2 API migration guide explains.
How long does an AFAS to Odoo migration take and what does it cost?
A focused AFAS to Odoo migration for a small or mid-size company usually takes 8 to 14 weeks, and the data migration share of the budget is often US$1.2k to US$9k. Payroll, production and integrations add time.
Our published Odoo implementation cost ranges are a good starting point. They are estimates, not fixed quotes:
| Company size | Implementation range | Typical timeline |
|---|---|---|
| Small | US$3k to US$9k | 4 to 8 weeks |
| Mid-size | US$9k to US$27k | 8 to 14 weeks |
| Large | US$27k to US$150k+ | 12 to 24 weeks |
| Data migration | US$1.2k to US$9k | Depends on source and years of history |
Licenses are separate. On the Odoo pricing page, the US price billed yearly is US$31.10 per user a month for Standard and US$61.00 for Custom. The Light User price in Europe is EUR 7.90; check the euro prices for your country on the same page.
Custom is the plan you need for Studio, multi-company, the external API and Odoo.sh or on-premise hosting. For your own number, try the Odoo migration cost calculator.
AFAS to Odoo migration by industry
The hardest part of the move depends on your sector: production data for manufacturers, channels for retailers and project history for service firms. The table shows where to focus.
| Industry | Pain or cost driver | Odoo approach | How iVentureTeam helps |
|---|---|---|---|
| Manufacturing | Bills of materials and routings rebuilt by hand | Odoo MRP with work orders and quality | Build BOMs from AFAS item data |
| Wholesale and distribution | Price lists, routes and stock counts | Pricelists, multi-step routes, barcode | Map price rules, plan the count |
| Professional services | Open projects and unbilled hours | Projects, timesheets, invoicing rules | Move active projects and WIP |
| Subscription businesses | Contract dates and recurring invoices | Odoo Subscriptions | Load next invoice dates and prices |
| Retail and eCommerce | Webshop and POS separate from ERP | Website, POS and stock in one database | Connect channels to one stock ledger |
Common AFAS migration mistakes to avoid
Most failed AFAS migrations fail on data and timing, not on software. Watch for these five mistakes.
- Moving everything: bringing ten years of journal lines slows the project. Bring opening balances and open items, and archive the rest.
- Rebuilding AFAS in Odoo: copying every AFAS screen and workflow leads to heavy custom code. Use standard Odoo where it fits.
- Switching mid-year without a plan: a mid-year cutover means split VAT periods and two systems to reconcile.
- Moving payroll first: payroll is the riskiest part, so it should move last, after a parallel run.
- Forgetting integrations: bank feeds, webshops, scanning and reporting tools linked to AFAS must be rebuilt and tested.
For a wider checklist on database work, read our guide to Odoo database migration. The Xero to Odoo migration plan shows the same cutover logic for a smaller system.
How iVentureTeam helps you migrate from AFAS to Odoo

iVentureTeam plans and runs AFAS to Odoo migrations end to end, from data scope to the first month after go-live. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.
- Scope and fit-gap: a process-by-process review of your AFAS setup against Odoo 20.
- Data mapping and loads: GetConnector exports, External ID mapping and at least two reconciled test loads.
- Dutch localization: chart of accounts, VAT, SBR, XAF and Peppol set up and tested.
- Integrations: bank feeds, webshops and payroll journals rebuilt through our Odoo integration services.
- Cutover and support: go-live planning, stock count, key-user training and hypercare.
The bottom line on AFAS to Odoo migration
Move finance, operations and projects to Odoo first, keep payroll where it is until Odoo proves it on your CAO, and cut over at a year start. That order keeps risk low.
AFAS gives you good export tools, so data is not the barrier. The real work is the mapping, the clean-up and the test loads. Plan those well, and the switch is a normal ERP project with a predictable result.
Ready to plan your move from AFAS to Odoo?

Get a data scope, timeline and cost for your AFAS migration. Plan your AFAS to Odoo migration with our team, call +91-90235-15208, or email business@iventureteam.com.
Frequently Asked Questions
Can you migrate data from AFAS to Odoo?
+
Yes. AFAS Profit exports data through GetConnectors as JSON, XML or CSV, and Odoo imports it with External IDs to keep links between records. Most projects move master data, open items and opening balances, and archive closed years.
How long does an AFAS to Odoo migration take?
+
A focused migration for a small or mid-size company usually takes 8 to 14 weeks. Payroll, manufacturing, several companies and many integrations add time. Plan at least two test loads before go-live.
What does it cost to migrate from AFAS to Odoo?
+
Our published Odoo implementation ranges run from US$3k to US$9k for small companies and US$9k to US$27k for mid-size ones. The data migration part is often US$1.2k to US$9k, depending on the years of history.
Is Odoo a good AFAS alternative?
+
Odoo is a strong AFAS alternative for companies that need manufacturing, eCommerce, projects or custom workflows in one system. AFAS stays strong in Dutch HR and payroll, so some firms keep it for that part.
Does Odoo support Dutch payroll?
+
Odoo has a Netherlands Payroll module and a Payroll with Accounting module. Test your own collective agreement, allowances and holiday pay before moving payroll, and run a parallel period first.
Can Odoo export an XAF audit file?
+
Yes. The Odoo Netherlands localization exports accounting entries in XAF format from the General Ledger report. It also sends the VAT return through SBR and Digipoort with a PKIoverheid certificate.
Should we move our full AFAS history to Odoo?
+
Usually not. Bring opening balances, open invoices, active projects and current stock. Keep closed years as AFAS exports and audit files, since Dutch rules require invoices to be kept for at least seven years.
When is the best time to switch from AFAS to Odoo?
+
The start of a financial year is the easiest point, because VAT periods and year-end close stay in one system. A quarter start also works if your accountant agrees.
Can we keep AFAS and Odoo running together?
+
Yes. A common setup keeps AFAS for HR and payroll and runs Odoo for finance and operations. The monthly payroll journal is posted to Odoo by import or API.
Free migration plan
Moving from AFAS to Odoo?
Tell us how you use AFAS today. We map what moves across, what gets rebuilt in Odoo and how the cutover works, then send a written migration plan.
Free, with no obligation. A senior consultant replies within 12 business hours.
Free Odoo tools
All tools- Odoo Health CheckVersion, modules, findings and upgrade cost
- Odoo App SelectorWhich apps you need, by industry
- Odoo Project EstimateIndicative cost and timeline in minutes
- Odoo Implementation Cost CalculatorImplementation cost and timeline, in minutes
- Odoo Migration Cost CalculatorVersion jump or legacy ERP, priced in minutes
Continue reading
NetSuite to Odoo Migration: Reasons, Data Mapping, Cost and Cutover
Plan a NetSuite to Odoo migration: why companies switch, how to export and map NetSuite data, what it costs and a cutover plan timed to your renewal.
Odoo vs 1C: From Accounting System to Full ERP, and How to Migrate
Odoo vs 1C compared: scope, local accounting, cost and the Ukraine ban on 1C and BAS, plus a step-by-step 1C to Odoo migration and what to archive.
Odoo vs Exact Online: Features, Cost and When SMEs Should Switch
Odoo vs Exact Online for SMEs: editions, features, 2026 pricing, fit by company size, signs it is time to switch, and the Exact to Odoo migration path.
