ERP migration
Field-level mapping, validation, and rollback between AFAS and Dolibarr ERP. We move data and schema; workflows are rebuilt natively in Dolibarr ERP.
AFAS
Source
Dolibarr ERP
Destination
Compatibility
11 of 14
objects map 1:1 between AFAS and Dolibarr ERP.
Complexity
BStandard
Timeline
4-8 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Dolibarr ERP
Account (Accounting module)
1:1AFAS 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)
Dolibarr ERP
Third Party (Customer type)
1:1AFAS 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)
Dolibarr ERP
Third Party (Supplier type)
1:1AFAS 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
Dolibarr ERP
Invoice (Customer invoice)
1:1AFAS 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
Dolibarr ERP
Supplier Invoice
1:1AFAS 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
Dolibarr ERP
Credit note
1:1AFAS 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)
Dolibarr ERP
Product or Service
1:1AFAS 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
Dolibarr ERP
Stock (Warehouse module)
lossyAFAS 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
Dolibarr ERP
Project
1:1AFAS 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
Dolibarr ERP
User (HR module)
1:1AFAS 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
Dolibarr ERP
Payroll journal entries (Accounting)
1:manyAFAS 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
Dolibarr ERP
Extrafields
lossyAFAS 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
Dolibarr ERP
Documents (Linked to records)
1:1AFAS 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
Dolibarr ERP
Bank accounts (Accounting module)
1:1AFAS 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.
| AFAS | Dolibarr ERP | Compatibility | |
|---|---|---|---|
| Chart of Accounts | Account (Accounting module)1:1 | Fully supported | |
| Customer (Debtor) | Third Party (Customer type)1:1 | Fully supported | |
| Supplier (Creditor) | Third Party (Supplier type)1:1 | Fully supported | |
| Sales Invoice | Invoice (Customer invoice)1:1 | Fully supported | |
| Purchase Invoice | Supplier Invoice1:1 | Fully supported | |
| Credit Note | Credit note1:1 | Fully supported | |
| Item (Product) | Product or Service1:1 | Fully supported | |
| Inventory / Stock | Stock (Warehouse module)lossy | Fully supported | |
| Project | Project1:1 | Fully supported | |
| Employee | User (HR module)1:1 | Fully supported | |
| Payroll History | Payroll journal entries (Accounting)1:many | Fully supported | |
| Custom Fields and User-Defined Tables | Extrafieldslossy | Mapping required | |
| Documents and Attachments | Documents (Linked to records)1:1 | Mapping required | |
| Bank and Cash Accounts | Bank accounts (Accounting module)1:1 | Fully supported |
Gotchas + challenges
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 gotchas
Custom fields and user-defined tables vary per installation
API access requires AFAS partner enrollment
Workflow logic does not migrate as data
Dutch fiscal and tax data must be preserved accurately
Historical payroll data volumes can be large
Dolibarr ERP gotchas
Foreign key constraint errors on cross-distribution database restore
SQL injection vulnerabilities in version 9.0.1
Custom fields stored as JSON in extraoptions require field-by-field deserialization
Decimal precision and rounding configuration affects price fields
No native iOS/Android app forces reliance on browser
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
AFAS
Source
Strengths
Weaknesses
Dolibarr ERP
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. All 8 core objects map 1:1 between AFAS and Dolibarr ERP.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across AFAS and Dolibarr ERP.
Object compatibility
All 8 core objects map 1:1 between AFAS and Dolibarr ERP.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
AFAS: Not publicly documented in AFAS public materials.
Data volume sensitivity
AFAS doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during AFAS to Dolibarr ERP migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave AFAS
Other ways to arrive at Dolibarr ERP
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.