Skip to main content
iVentureTeam
Data Migration

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.

Siddharth JambukiyaSiddharth JambukiyaOdoo Techno-Functional Consultant
November 7, 202611 min read3 views
AFAS to Odoo Migration: Steps, Data Mapping, Payroll and Cost cover

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: Which system fits your next phase?

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.

FactorAFAS ProfitOdoo 20
Home marketNetherlands and BelgiumGlobal, with a Netherlands localization
Strongest areaHRM and Payroll with ready-made CAOsOperations, manufacturing, eCommerce, projects
AccountingFinance, VAT returns, e-invoicing, bank linksDutch chart of accounts, VAT, SBR, XAF export
CustomizationConfiguration and connectorsStudio plus Python modules
HostingAFAS Online cloudOdoo Online, Odoo.sh or on-premise
IntegrationGetConnectors and UpdateConnectorsExternal 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 objectOdoo targetMapping note
Organisations and personsContacts (companies and individuals)Merge duplicates first
Debtors and creditorsCustomer and vendor on the contactKeep payment terms and IBAN
Items and price listsProducts, variants and pricelistsCheck units of measure
General ledger accountsDutch chart of accountsMap account by account
Cost centres and cost carriersAnalytic plans and accountsAgree the plan structure early
Open debtor and creditor itemsOpen invoices and bills, or opening entriesReconcile totals to the ledger
ProjectsProjects, tasks and timesheetsActive projects only
SubscriptionsOdoo SubscriptionsNext invoice date and price
Stock levelsWarehouses, locations and quantitiesCount 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:

  1. Keep AFAS for HR and payroll: post the payroll journal to Odoo each month by import or API.
  2. Use a payroll provider or accountant: import the monthly payroll journal into Odoo Accounting.
  3. 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.

  1. Scope: list the AFAS modules in use, the companies, users and integrations, and decide what moves.
  2. Fit-gap: run workshops per process and mark each one as standard, configuration or custom in Odoo.
  3. Cutover date: pick the start of a financial year or quarter, in agreement with your accountant.
  4. Mapping: document every AFAS object, field and code against its Odoo model.
  5. Clean-up: merge duplicate contacts, close stale items and fix wrong VAT codes in AFAS first.
  6. Build: configure Odoo 20, the Dutch localization, pricelists, routes and approval rules.
  7. Test load one: export from AFAS, import into a copy of Odoo and reconcile totals.
  8. Integrations: rebuild AFAS connector links on Odoo's API and re-point bank feeds and Peppol.
  9. Test load two and UAT: reload with fresh data and let key users run real scenarios.
  10. 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 sizeImplementation rangeTypical timeline
SmallUS$3k to US$9k4 to 8 weeks
Mid-sizeUS$9k to US$27k8 to 14 weeks
LargeUS$27k to US$150k+12 to 24 weeks
Data migrationUS$1.2k to US$9kDepends 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.

IndustryPain or cost driverOdoo approachHow iVentureTeam helps
ManufacturingBills of materials and routings rebuilt by handOdoo MRP with work orders and qualityBuild BOMs from AFAS item data
Wholesale and distributionPrice lists, routes and stock countsPricelists, multi-step routes, barcodeMap price rules, plan the count
Professional servicesOpen projects and unbilled hoursProjects, timesheets, invoicing rulesMove active projects and WIP
Subscription businessesContract dates and recurring invoicesOdoo SubscriptionsLoad next invoice dates and prices
Retail and eCommerceWebshop and POS separate from ERPWebsite, POS and stock in one databaseConnect 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

Moving off AFAS? Price the migration

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?

Plan my AFAS migration

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.