ERP migration

Migrate from AFAS to Dolibarr ERP

Field-level mapping, validation, and rollback between AFAS and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.

AFAS logo

AFAS

Source

Dolibarr ERP

Destination

Dolibarr ERP logo

Compatibility

79%

11 of 14

objects map 1:1 between AFAS and Dolibarr ERP.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from AFAS Profit to Dolibarr is a structural migration that shifts from a Dutch-localized, partner-enrolled ERP to a modular open-source platform. AFAS stores financial data across GL, AP, and AR ledgers with deep Dutch fiscal compliance, while Dolibarr uses a module-based architecture where the customer activates only the features they need. The migration requires careful handling of Dutch VAT codes (BTW) on every invoice line, a complete inventory of AFAS custom fields unique to the customer's installation, and a decision on which Dolibarr modules to activate before importing transactional data. Workflows, approval chains, and AFAS payroll integrations do not migrate as automation; we document them as process requirements for the customer to rebuild in Dolibarr or adjacent tools. Self-hosted Dolibarr deployments require the customer to provision and maintain their own server environment, which is a significant architectural shift from AFAS's managed hosting options.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

AFAS logo

AFAS

What's pushing teams away

  • Pricing is opaque and requires direct sales engagement with AFAS or a partner, making it difficult for organizations to compare cost against competing ERP platforms during evaluation.
  • Smaller organizations or those with international operations find AFAS less suitable as it was designed primarily for Dutch and Belgian business practices and regulatory environments.
  • The platform's deep customization capabilities mean that every AFAS installation is effectively unique, making it costly and time-consuming to change systems later, which traps some customers despite frustration.
  • Users on G2 note that the UI and reporting tools lag behind modern SaaS ERP alternatives, with dashboards that require significant manual configuration to feel useful.
  • Integration with non-Dutch third-party applications can be limited, forcing organizations to build and maintain custom middleware for ecosystem tools that more globally-oriented ERPs offer natively.

Choosing

Dolibarr ERP logo

Dolibarr ERP

What's pulling them in

  • Free open-source core with no per-user license fee makes it the lowest-cost entry point for small teams needing ERP and CRM in one package.
  • Self-hosted deployment gives full data ownership and eliminates vendor lock-in, especially attractive to businesses with compliance requirements.
  • Modular architecture means teams enable only the features they use, keeping the interface uncluttered and reducing learning curve.
  • Fast installation with no technical knowledge required — one reviewer set up multiple businesses in minutes using their own hosting.
  • Active community forum and marketplace of third-party add-ons provide support and extension options without mandatory subscription costs.

Object mapping

How AFAS objects map to Dolibarr ERP

Each row shows how a AFAS object lands in Dolibarr ERP, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

AFAS

Chart of Accounts

maps to

Dolibarr ERP

Account (Accounting module)

1:1
Fully supported

AFAS GL accounts map to Dolibarr accounting accounts via the Accounting module, which must be activated before import. Dutch statutory account codes (VK accounts) migrate as account numbers with descriptions. Cost center mappings from AFAS require a separate cost-center classification in Dolibarr if the customer uses multi-dimensional reporting. We validate account code formats against Dolibarr's account numbering constraints and flag any accounts that exceed character limits.

AFAS

Customer (Debtor)

maps to

Dolibarr ERP

Third Party (Customer type)

1:1
Fully supported

AFAS debtor records map to Dolibarr Third Party records with type=Customer. Dutch VAT registration numbers (BTW-nummer) migrate as the tva_intra field, and customer payment terms map to the cond_reglement field. Addresses (billing and shipping) migrate as Dolibarr address records linked to the Third Party. AFAS debtor codes become Dolibarr customer codes for dedupe matching.

AFAS

Supplier (Creditor)

maps to

Dolibarr ERP

Third Party (Supplier type)

1:1
Fully supported

AFAS creditor records map to Dolibarr Third Party records with type=Supplier. Dutch supplier VAT registration numbers and payment terms migrate in the same manner as customer records. IBAN and bank account references from AFAS map to Dolibarr's Rib field. Supplier-specific AFAS fields (like preferred delivery warehouse) map to Dolibarr extrafields if configured during schema design.

AFAS

Sales Invoice

maps to

Dolibarr ERP

Invoice (Customer invoice)

1:1
Fully supported

AFAS sales invoices migrate to Dolibarr Customer invoices with line items, BTW tax codes, and payment references preserved. Each invoice line carries the AFAS BTW rate mapped to the applicable Dutch VAT code in Dolibarr (hoog, laag, nul, of exempt). Invoice status (open, paid, overdue) migrates as Dolibarr payment status. AFAS payment references and invoice numbers become Dolibarr invoice references for reconciliation.

AFAS

Purchase Invoice

maps to

Dolibarr ERP

Supplier Invoice

1:1
Fully supported

AFAS purchase invoices map to Dolibarr Supplier invoices with the same line-level BTW code preservation. AFAS purchase invoice approval workflow status does not migrate; we document open purchase invoice approvals as a reconciliation list for the customer's accounts payable team to work through manually post-migration. Supplier remittance addresses map to Dolibarr address records on the supplier Third Party.

AFAS

Credit Note

maps to

Dolibarr ERP

Credit note

1:1
Fully supported

AFAS credit notes (creditfacturen) map to Dolibarr credit notes linked to the originating invoice if that invoice has been migrated. We preserve the link by matching AFAS invoice reference to Dolibarr invoice number during migration. If the original invoice is not migrated (historical archive), we import the credit note as a standalone document with the customer reference preserved.

AFAS

Item (Product)

maps to

Dolibarr ERP

Product or Service

1:1
Fully supported

AFAS inventory items map to Dolibarr Products with stock levels, warehouse assignments, and pricing tiers preserved. Item types (stockable, service, assembly) map to the appropriate Dolibarr type field. AFAS BOM (bill of materials) structures require the Dolibarr MRP module; if not activated, we import components as separate products and document the BOM as a reference list for manual assembly tracking. Reorder thresholds and supplier references migrate as product extrafields.

AFAS

Inventory / Stock

maps to

Dolibarr ERP

Stock (Warehouse module)

lossy
Fully supported

AFAS stock levels per warehouse migrate to Dolibarr stock locations. The Dolibarr Warehouse module must be activated before stock import. AFAS stock valuation (fifo, average cost) does not automatically set Dolibarr's costing method; the customer selects the costing approach during schema design. We extract current stock levels at a point-in-time snapshot and import them as an opening stock entry rather than a transaction history.

AFAS

Project

maps to

Dolibarr ERP

Project

1:1
Fully supported

AFAS project records map to Dolibarr Project objects with project codes, names, status, and budgets preserved. AFAS custom fields on projects (common in established AFAS installations) migrate as Dolibarr extrafields if the extrafields are configured before migration. Project status mapping: AFAS Actief maps to Dolibarr Open status. Time entries linked to projects migrate as Dolibarr Project tasks with time recorded against the task.

AFAS

Employee

maps to

Dolibarr ERP

User (HR module)

1:1
Fully supported

AFAS employee records map to Dolibarr User records when the HR module is activated. Employment details (department, job title, employment type) migrate as User profile fields. AFAS effective-dated employment history (start date, contract changes) maps to Dolibarr User properties. If Dolibarr HR is not activated, we import employees as Third Party records with type=Contact and flag them for the customer to reclassify once HR is enabled.

AFAS

Payroll History

maps to

Dolibarr ERP

Payroll journal entries (Accounting)

1:many
Fully supported

AFAS payroll journal entries map to Dolibarr accounting entries via the Accounting module. Individual earning and deduction line items (brutoloon, netto, loonheffing, pensioen, etc.) become journal entry lines against the appropriate salary expense accounts. AFAS payroll runs per period become Dolibarr accounting document batches. We scope payroll history to the last 3-5 years based on customer compliance requirements to balance data volume against migration complexity.

AFAS

Custom Fields and User-Defined Tables

maps to

Dolibarr ERP

Extrafields

lossy
Mapping required

AFAS custom fields on standard objects map to Dolibarr extrafields, which require activation per object after the base module is enabled. AFAS user-defined tables (common in established AFAS installations with years of customization) do not have a direct Dolibarr equivalent; we either import the data as a custom Dolibarr table with a dedicated module (requires a developer or third-party module) or normalize it into existing Dolibarr structures. We inventory every AFAS custom field and user-defined table during discovery and propose a target structure before migration begins.

AFAS

Documents and Attachments

maps to

Dolibarr ERP

Documents (Linked to records)

1:1
Mapping required

AFAS documents linked to records migrate as Dolibarr documents attached via the ContentDocument model. PDF attachments to invoices, employee records, and projects transfer as binary files with the original filename and MIME type preserved. Dolibarr's document storage path is configurable; we set the target directory during installation. Documents stored in AFAS external storage systems (if configured) may require a separate retrieval step during discovery.

AFAS

Bank and Cash Accounts

maps to

Dolibarr ERP

Bank accounts (Accounting module)

1:1
Fully supported

AFAS cash management bank account records map to Dolibarr bank account configurations. Account numbers, bank names, and current balances migrate. AFAS bank reconciliation data (matched transactions) does not have a direct Dolibarr equivalent; we import the reconciled balance as an opening position and leave reconciliation work to the customer's accounting team post-migration.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

AFAS logo

AFAS gotchas

High

Custom fields and user-defined tables vary per installation

High

API access requires AFAS partner enrollment

Medium

Workflow logic does not migrate as data

Medium

Dutch fiscal and tax data must be preserved accurately

Low

Historical payroll data volumes can be large

Dolibarr ERP logo

Dolibarr ERP gotchas

High

Foreign key constraint errors on cross-distribution database restore

High

SQL injection vulnerabilities in version 9.0.1

Medium

Custom fields stored as JSON in extraoptions require field-by-field deserialization

Medium

Decimal precision and rounding configuration affects price fields

Low

No native iOS/Android app forces reliance on browser

Pair-specific challenges

  • Dutch BTW codes must be manually configured in Dolibarr before invoice import

    Dolibarr ships with generic European VAT codes but does not include the specific Dutch BTW rates (21% hoog, 9% laag, 0% vrijgesteld) preconfigured. We extract the active BTW rate table from AFAS during discovery and create corresponding tax rates in Dolibarr before any invoice import begins. Invoice lines reference tax ID codes by name; if the tax codes do not exist at import time, every invoice line fails validation. We validate the complete BTW tax rate table with the customer's accountant before activating the Accounting module.

  • Dolibarr module activation order determines what fields are available for mapping

    Dolibarr's extrafields system is tied to module activation. The CRM module must be active before Third Party extrafields can be created; the Accounting module must be active before account extrafields are available; the HR module must be active before User extrafields can be added. We define the module activation sequence during schema design and execute it before any object mapping begins. Activating modules out of order can result in fields that cannot be created or mapped, requiring schema reconfiguration mid-migration.

  • AFAS workflows and approval chains do not migrate and have no Dolibarr equivalent

    AFAS workflows define approval routing for invoices, HR requests, and project sign-offs. Dolibarr does not include a native workflow or approval chain engine; this is one of the most significant functional gaps for organizations migrating from AFAS. We document every active AFAS workflow as a written process map specifying the trigger, conditions, approvers, and actions. The customer rebuilds these in Dolibarr-compatible tools (third-party workflow add-ons, external automation platforms, or manual process documentation) post-migration.

  • Self-hosted Dolibarr requires the customer to own server infrastructure

    AFAS offers hosted and SaaS deployment where AFAS manages the infrastructure. Dolibarr is self-hosted by default (or via DoliCloud for managed hosting at additional cost). Organizations migrating from AFAS hosted or SaaS must provision and maintain their own LAMP/LEMP server environment, configure backups, and manage PHP version and extension compatibility. We include server readiness guidance in the migration plan but do not provision or manage the customer's server infrastructure as part of the migration scope.

  • Historical payroll volumes can inflate migration scope significantly

    AFAS retains complete payroll history for all employment periods, which can span decades for long-tenured employees. Each payroll period contains earning lines, deduction lines, tax withholdings, and journal entry references. We scope payroll history migration based on the customer's Dutch payroll retention requirements (typically 5-7 years for tax purposes) and import the most recent periods plus year-end closing records. Full historical payroll (10+ years) is available as an archived export if the customer requires it for compliance audits but is not imported as active records in Dolibarr.

Migration approach

Six steps for a successful AFAS to Dolibarr ERP data migration

  1. Discovery and AFAS schema inventory

    We audit the source AFAS environment across the customer's specific installation, identifying standard objects (financial ledgers, HR tables, inventory records) and cataloguing every custom field and user-defined table that exists in the customer's instance. We extract the BTW tax rate table, active workflow list, and employee contract structure. We confirm the AFAS deployment model (on-premises, hosted, or SaaS) to determine the API access method and any partner enrollment requirements for API credential issuance.

  2. Dolibarr installation and module activation sequencing

    We assist the customer with Dolibarr installation or DoliCloud setup, then activate modules in the correct dependency order: CRM first (for Third Party objects), then Accounting (for invoices and accounts), then Warehouse (for stock), then HR (for employees and payroll), then Projects. We configure the Dutch BTW tax rates (21%, 9%, 0%, exempt) in the Accounting module before any financial record import begins. We create extrafields for each object based on the AFAS custom field inventory, mapping field types to Dolibarr's supported extrafield types.

  3. Sandbox migration and reconciliation

    We run a full migration into a Dolibarr staging or development environment using production-like data volume. The customer's accounting team reconciles a sample of accounts (debtor/creditor balances, open invoice amounts, BTW payable/receivable) against the AFAS source reports. Any missing fields, incorrect tax codes, or incorrect account mappings are corrected in the staging environment before repeating in production. We do not begin production migration until the customer signs off on the reconciliation sample.

  4. Financial record migration (accounts, invoices, credit notes)

    We migrate the chart of accounts first, then customer and supplier Third Parties, then open and historical invoices and credit notes. Each invoice line carries the AFAS BTW code mapped to the equivalent Dolibarr tax rate ID. We preserve invoice payment status and reconcile total invoice value and BTW totals against AFAS aged trial balance reports. Closed purchase invoice approvals are documented as an open items list for accounts payable review post-migration.

  5. Inventory, projects, and employee data migration

    We activate the Warehouse module and import stock levels per location as opening stock entries. AFAS BOM structures are imported as a reference document unless the customer licenses the Dolibarr MRP module, in which case we configure the BOM structure directly. Project records migrate with their AFAS custom fields as Dolibarr extrafields. Employee records import under the HR module with employment history; payroll journal entries import as accounting entries scoped to the agreed retention period.

  6. Cutover, delta sync, and workflow documentation delivery

    We freeze AFAS write access during cutover, run a final delta migration of any records created or modified since the last import, then mark Dolibarr as the system of record. We deliver the complete workflow and approval chain inventory as a written process map to the customer's team for rebuild in Dolibarr-compatible tools. We provide a one-week hypercare window for reconciliation issues. We do not rebuild AFAS workflows as Dolibarr automations as part of the migration scope; that is a separate process redesign engagement.

Platform deep dives

Context on both ends of the pair

AFAS logo

AFAS

Source

Strengths

  • Integrated ERP, HR, and payroll under one vendor eliminates synchronization between separate finance and HR systems.
  • Built-in Dutch and Belgian regulatory compliance for payroll tax, fiscal reporting, and statutory filings.
  • Customizable workflow engine lets functional staff create approval processes without code.
  • Established Benelux partner ecosystem provides local implementation and support options.
  • AFAS Profit is available as on-premises, hosted, or SaaS deployment to suit different data-residency requirements.

Weaknesses

  • Pricing is not publicly published, requiring a sales conversation before any cost evaluation can begin.
  • The platform is heavily localized to Dutch business practices, creating friction for international or multilingual organizations.
  • Custom field and table extensibility means every AFAS installation diverges from the standard data model, increasing migration complexity.
  • Modern UX and self-service reporting lag behind newer cloud-native ERP competitors.
  • Limited self-service API access requires partner enrollment, restricting independent integration development.
Dolibarr ERP logo

Dolibarr ERP

Destination

Strengths

  • Free core software with AGPL license and no per-user mandatory fee for self-hosted deployments.
  • Modular architecture lets teams activate only needed features, keeping the interface focused and the database lean.
  • Self-hosted option provides full data sovereignty and avoids recurring SaaS subscription costs.
  • Built-in CSV/Excel import and export wizard with saved profiles simplifies recurring data operations.
  • Low-code Module Builder allows functional extensions without writing PHP code.

Weaknesses

  • No native documented REST API for programmatic bulk operations — all migrations depend on the import/export wizard or direct database access.
  • Reporting and analytics are weak without paid add-ons, and built-in charts are limited compared to modern SaaS platforms.
  • UI design is described as dated by multiple reviewers, with infrequent visual updates to the default theme.
  • Community-only support for self-hosted deployments means no SLA or guaranteed response time for issues.
  • Security vulnerabilities (CVE-2024-5314, CVE-2024-5315) in version 9.0.1 with no immediate patch reported.

Complexity grading

How hard is this migration?

Standard ERP migration. All 8 core objects map 1:1 between AFAS and Dolibarr ERP.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across AFAS and Dolibarr ERP.

  • Object compatibility

    A

    All 8 core objects map 1:1 between AFAS and Dolibarr ERP.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    AFAS: Not publicly documented in AFAS public materials.

  • Data volume sensitivity

    B

    AFAS doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your AFAS to Dolibarr ERP migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about AFAS to Dolibarr ERP data migrations

Answers to the questions buyers ask most during AFAS to Dolibarr ERP migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your AFAS to Dolibarr ERP migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and eight weeks for organizations with under 5,000 invoices, 2,000 customers and suppliers, and no active payroll history import. Migrations with extensive historical payroll records, multi-year invoice archives, large AFAS custom field inventories, or complex BTW structures extend to ten to sixteen weeks because of tax code validation, schema design in Dolibarr, and the effective-dated payroll record sequencing required for Dutch payroll compliance.

Adjacent paths

Related migrations to explore

Ready when you are

Move from AFAS.
Land in Dolibarr ERP, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day