ERP migration

Migrate from ERPNext to Microsoft Dynamics 365 Business Central

Field-level mapping, validation, and rollback between ERPNext and Microsoft Dynamics 365 Business Central. We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Business Central.

ERPNext logo

ERPNext

Source

Microsoft Dynamics 365 Business Central

Destination

Microsoft Dynamics 365 Business Central logo

Compatibility

80%

12 of 15

objects map 1:1 between ERPNext and Microsoft Dynamics 365 Business Central.

Complexity

BStandard

Timeline

5-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

ERPNext and Microsoft Dynamics 365 are architecturally different systems. ERPNext stores every entity as a DocType document in MariaDB with a document-ownership model; Dynamics 365 stores entities as typed rows in Dataverse or SQL with relational foreign keys. That structural difference shapes the entire migration: we extract from ERPNext via the REST API, direct database query, or CSV export, then transform each DocType into the equivalent Dynamics 365 entity. ERPNext's v14+ Payment Ledger decouples invoice payment status from the invoice itself, requiring a join query to resolve open-invoice status before setting the Dynamics 365 invoice record state. Multi-level BOMs with operation routing must be flattened into a separate lookup table or collapsed into custom fields since no standard Dynamics 365 object captures nested routing. Custom server scripts, Frappe App DocTypes, Workflow rules, and document-state approval chains do not migrate — we deliver a written inventory of every automation and script for the customer's admin to rebuild in Dynamics 365. We do not handle post-migration admin support, training, or workflow rebuild as standard scope.

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

ERPNext logo

ERPNext

What's pushing teams away

  • Over-customisation without governance accumulates over time, making version upgrades between major releases painful and sometimes impossible without reverting customisations first.
  • The learning curve is steep for non-technical users — role-based permission setups, workflow automation, and report builder configuration require training investment that smaller teams underestimate.
  • Performance degrades on large transaction volumes unless the MariaDB backend is tuned, indexed properly, and running on adequate hardware, leading some to outgrow the stack.
  • Integration with best-of-breed point solutions (specialist payroll, e-commerce platforms, industry-specific tools) often requires custom API work rather than native connectors, increasing implementation cost.
  • Support is community-driven or partner-delivered; there is no vendor SLA for self-hosted deployments, which enterprises with compliance obligations find difficult to accept.

Choosing

Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central

What's pulling them in

  • Deep integration with Microsoft 365, Power BI, and Power Platform means organizations already on the Microsoft stack get identity, reporting, and workflow continuity out of the box.
  • Unified financials, sales, service, and operations replace multiple disconnected systems — users report that data entered once flows through purchase orders, invoicing, and approvals without manual re-entry.
  • Copilot AI features (predictive analytics, embedded business intelligence) are included in both Essentials and Premium tiers, addressing demand for AI without separate module purchases.
  • Named-user licensing with no concurrent model appeals to organizations that want predictable per-seat costs even if some users access the system infrequently.
  • Strong partner ecosystem with certified NAV-to-Business Central migration specialists gives mid-market companies confidence the cutover from legacy Navision can be executed reliably.

Object mapping

How ERPNext objects map to Microsoft Dynamics 365 Business Central

Each row shows how a ERPNext object lands in Microsoft Dynamics 365 Business Central, including any object-level transformations, lookup resolution, or schema-design dependencies.

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

ERPNext

Customer

maps to

Microsoft Dynamics 365 Business Central

Account + Contact (split by type)

1:many
Fully supported

ERPNext Customer DocType holds both company accounts and individual contacts under one record. We split on the customer_type field: customer_type = 'Company' maps to Dynamics 365 Account; customer_type = 'Individual' maps to Contact attached to a parent Account. The customer_name becomes Account Name or Contact Last Name; website from ERPNext maps to Account Website. Address and contact details split into Dynamics 365 Address and Contact composite fields.

ERPNext

Supplier

maps to

Microsoft Dynamics 365 Business Central

Vendor

1:1
Fully supported

ERPNext Supplier maps directly to Dynamics 365 Vendor. Supplier name becomes Vendor Name; supplier_group maps to Vendor Group. Default currency and payment terms migrate to the vendor master. ERPNext supplier addresses and contact persons map to Vendor Address and Vendor Contact respectively.

ERPNext

Item

maps to

Microsoft Dynamics 365 Business Central

Item (Released Product in Finance and Operations; Item in Business Central)

1:1
Fully supported

ERPNext Item DocType maps to the destination's product or item master. Item code becomes Item Number; item_name becomes Product Name; item_group maps to Product Group; stock_uom becomes the default unit of measure. Valuation method (FIFO, Moving Average, Periodic) maps to Costing Method; standard_rate maps to Standard Cost. Custom fields on the Item DocType migrate as extended fields.

ERPNext

BOM (Bill of Materials)

maps to

Microsoft Dynamics 365 Business Central

BOM (Engineering or Manufacturing BOM) + Route (Finance and Operations)

lossy
Fully supported

ERPNext nests BOMs to arbitrary depth with operation routing, workstation types, and hour-rate costing. We flatten the full operation tree, map each BOM level to a parent-child BOM structure in Dynamics 365, and store routing operations as a Route record (Finance and Operations) or custom fields (Business Central). If the destination is Business Central without the Manufacturing extension, we collapse routing detail into a text field on the BOM header and present the customer with a rebuild recommendation for the route layer.

ERPNext

Warehouse

maps to

Microsoft Dynamics 365 Business Central

Warehouse + Site (Finance and Operations)

1:1
Fully supported

ERPNext Warehouse DocType maps to Warehouse in Business Central or to Site plus Warehouse in Finance and Operations. Bin-level stock data from ERPNext's Stock Ledger Entry (tabBin) maps to inventory dimensions in Dynamics 365, with the dimension combination preserved as an Inventory Dimension Group configuration.

ERPNext

Stock Ledger Entry

maps to

Microsoft Dynamics 365 Business Central

Warehouse Entry (Business Central) or Inventory Transactions (Finance and Operations)

1:1
Fully supported

ERPNext Stock Ledger Entry records carry warehouse, item, qty, valuation rate, and fiscal year. We extract open entries (Qty > 0) as current inventory snapshot and archive closed entries by fiscal year. The destination system's inventory model (periodic vs perpetual) determines whether the valuation rate is set as a fixed cost on the item master or carried as individual warehouse entry records.

ERPNext

Sales Invoice

maps to

Microsoft Dynamics 365 Business Central

Sales Invoice (Finance and Operations) or Sales Invoice Header + Lines (Business Central)

1:1
Fully supported

ERPNext Sales Invoice maps to Microsoft Dynamics 365 Sales Invoice. The invoice number becomes Invoice Number; customer maps to Account; posting_date maps to Invoice Date. Line items map to invoice lines with item number, quantity, and unit price resolved. ERPNext taxes and charges migrate as tax lines on the invoice. Open-invoice payment status is resolved by joining the Payment Ledger (v14+) or Payment Entry DocType before setting the invoice status, so partially paid invoices reflect the correct remaining amount.

ERPNext

Purchase Invoice

maps to

Microsoft Dynamics 365 Business Central

Vendor Invoice (Finance and Operations) or Purchase Invoice (Business Central)

1:1
Fully supported

ERPNext Purchase Invoice maps to Dynamics 365 Vendor Invoice. Supplier maps to Vendor; posting_date maps to Invoice Date; the ERPNext bill_no becomes Vendor Invoice Number. Line items map by matching the ERPNext item or expense account to the destination's item or ledger account. Prepaid invoices from ERPNext Payment Entry with apply_to document type 'Purchase Invoice' migrate as partially paid vendor invoices with the payment reference recorded.

ERPNext

Sales Order

maps to

Microsoft Dynamics 365 Business Central

Sales Order (Finance and Operations) or Sales Order (Business Central)

1:1
Fully supported

ERPNext Sales Order maps to Sales Order with the ERPNext per_delivery_note_map flag resolved into Delivery Terms. Order status (Draft, Submitted, Cancelled) maps to the corresponding Dynamics 365 document status. Packed items and product bundle components from ERPNext become separate order lines with a bundle relationship preserved as a Sales Order BOM or kit item in the destination.

ERPNext

Purchase Order

maps to

Microsoft Dynamics 365 Business Central

Purchase Order

1:1
Fully supported

ERPNext Purchase Order maps to Dynamics 365 Purchase Order. Supplier maps to Vendor; the ERPNext schedule_date per line maps to the confirmed delivery date on the purchase order line. Purchase Order status migrates as document status. ERPNext drop shipment and loop hole flags map to the corresponding purchase order line types in Dynamics 365.

ERPNext

Payment Entry

maps to

Microsoft Dynamics 365 Business Central

Customer Ledger Entry / Vendor Ledger Entry (Finance and Operations) or Payment Journal lines (Business Central)

1:1
Fully supported

ERPNext Payment Entry documents (v14+ independent of invoices) map to payment journal lines in Business Central or to ledger entries with voucher type JournalVoucher in Finance and Operations. We extract the Payment Entry, its mode_of_payment, and the invoice references (paid_amount per linked invoice) and reconstruct the payment in the destination with the correct invoice settlement record. This resolves the common issue where an open invoice appears unpaid in the destination if the payment linkage is not migrated.

ERPNext

Project + Task

maps to

Microsoft Dynamics 365 Business Central

Project + Task (Finance and Operations) or Project + Project Task (Business Central)

1:1
Fully supported

ERPNext Project DocType nests Tasks with assignees, time logs, and milestone dates. We extract the full project hierarchy, map ERPNext's project_type (billable vs non-billable) to the project type in Dynamics 365, and flatten tasks as project tasks with start and end dates. Time logs from ERPNext's timesheet-detail records map to TimesheetLine or Journal Line depending on whether the destination uses Timesheet for billable tracking.

ERPNext

Employee

maps to

Microsoft Dynamics 365 Business Central

Worker (Finance and Operations) or Employee (Business Central)

1:1
Fully supported

ERPNext Employee DocType maps to the HR worker or employee master in Dynamics 365. Department, designation, date of joining, and salary structure details carry over. ERPNext's salary slip and salary component structure maps to the Pay Statement / Earnings / Deduction model in Business Central or to Payroll elements in Finance and Operations (which requires a payroll integration add-on not in base Finance and Operations). Attendance and leave records export as separate line entries.

ERPNext

Custom Field DocType registry

maps to

Microsoft Dynamics 365 Business Central

Extended fields (Finance and Operations) or Custom fields (Business Central)

lossy
Fully supported

ERPNext custom fields are stored in the Custom Field DocType with parent_doctype, fieldname, fieldtype, and options. We export the full registry and recreate each as a custom field in the destination: Extended fields in Finance and Operations require a developer environment (Visual Studio, metadata XML) or the Power Platform field maker; custom fields in Business Central are created in the page designer. Custom field values on records migrate as standard field data in the same migration pass as the parent record.

ERPNext

File / Attachment

maps to

Microsoft Dynamics 365 Business Central

SharePoint document location + Note (Dataverse) or Document attachments (Business Central)

1:1
Fully supported

ERPNext File DocType stores binary data in the Frappe private files folder or an S3-compatible bucket. We export file metadata (filename, URL, reference doctype and docname) and copy the binary to the destination SharePoint document library or Business Central document attachments, linking each file to the migrated record via its ID. ERPNext comments and communication records migrate as Notes or Activities in Dynamics 365.

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.

ERPNext logo

ERPNext gotchas

High

CSV import does not detect or prevent duplicate records

High

Custom server scripts break silently on version upgrades

Medium

BOM routing and workstation data requires manual reconstruction

Medium

Payment ledger entries in v14+ are decoupled from invoices

Low

Frappe rate limiting is configurable per-site and undocumented

Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central gotchas

High

Named-user licensing has no concurrent-use relief

High

API rate limits throttle large-volume migrations

Medium

Historical posted transactions require selective migration scoping

Medium

NAV-to-Business Central cloud migration requires partner coordination

Low

Custom fields and AL extensions require separate migration handling

Pair-specific challenges

  • ERPNext v14+ Payment Ledger decouples payment from invoice

    ERPNext v14 introduced a split Payment Ledger where Payment Entry documents are independent of invoices. An invoice's paid/unpaid state depends on a separate query joining Payment Ledger Entry to the invoice. When migrating open invoices to Dynamics 365, a naive import sets every invoice as unpaid even if it has been fully settled, because the payment linkage is not present in the invoice document itself. We run the payment resolution query against the ERPNext database during extraction, compute the actual paid_amount and outstanding_amount per invoice, and set the Dynamics 365 invoice status accordingly. Skipping this step produces incorrect aged receivables and payables reports at go-live.

  • ERPNext custom server scripts do not migrate to non-Frappe platforms

    Frappe server scripts hook into document save, validate, and submit events and are stored in the database, not in a version-controlled file. When migrating away from ERPNext to Dynamics 365, there is no portable equivalent: server scripts must be inventoried during discovery, their business logic documented, and their Dynamics 365 equivalent rebuilt manually in X++ (Finance and Operations) or Power Automate / Dataverse plugins (Business Central). We audit the full script registry during discovery and deliver a written compatibility report listing each script, its trigger, and the recommended rebuild path. Custom DocTypes from third-party Frappe Apps cannot be migrated without access to the app source code and a compatible Frappe environment.

  • Multi-level BOM routing has no direct Dynamics 365 equivalent without configuration

    ERPNext supports arbitrarily nested BOMs with operation routing, workstation types, and piece-rate or hour-rate costing across multiple production steps. Dynamics 365 Finance and Operations stores BOM routing as a separate Route record with operations linked to work centers, but Business Central without the Manufacturing extension has no native routing object at all. We extract the full operation tree from ERPNext, flatten it, and present the customer with two options during scoping: maintain routing detail in a linked lookup table in Dynamics 365 or collapse the BOM to a simplified single-level structure. The choice depends on whether the customer uses Dynamics 365 Finance and Operations (with the Manufacturing module) or Business Central.

  • ERPNext Chart of Accounts structure may conflict with Dynamics 365 GL design

    ERPNext uses a strict parent-child account hierarchy where every account must belong to a root company and an account type (Asset, Liability, Income, Expense). Dynamics 365 Finance and Operations uses a financial dimensions model with a more flexible account structure and mandatory dimensions on journal lines. Business Central uses a standard chart of accounts with account categories. Migrations that carry over the ERPNext COA without restructuring produce journals that fail Dynamics 365 dimension validation. We audit the ERPNext COA, identify accounts with non-standard root types or missing company assignment, and flag structural changes required before account import begins.

  • Custom fields and Frappe App extensions require manual schema recreation

    ERPNext custom fields are stored in the Custom Field DocType and referenced per DocType. There is no bulk export of custom field definitions — each field must be queried individually from the database or read from the Data Export tool's per-Doctype output. We export the full Custom Field registry separately, but recreating those fields in Dynamics 365 requires manual entry in the Power Platform maker portal, Visual Studio metadata, or Business Central page designer depending on the Dynamics 365 app. We recommend allocating two to three weeks of admin time for custom field recreation after migration, separate from the data migration work.

Migration approach

Six steps for a successful ERPNext to Microsoft Dynamics 365 Business Central data migration

  1. Discovery and destination edition selection

    We audit the source ERPNext instance across version (v13, v14, v15), DocType inventory, custom field registry, active server scripts, Frappe App extensions, BOM complexity, and historical transaction volume. We extract a data quality sample from the live database (or CSV export) to assess duplicates, missing required fields, and account structure gaps. We pair this with a Dynamics 365 edition decision: Business Central ($70-$100/user/mo) suits companies under 250 users with standard accounting and distribution needs; Finance and Operations ($180/user/mo) is required for manufacturing with BOM routing, advanced warehouse management, or multi-entity legal structure. The discovery output is a written migration scope, a Dynamics 365 edition recommendation, and a custom field recreation work estimate.

  2. Source extraction and payment ledger resolution

    We extract ERPNext data via the REST API (for smaller volumes) or direct MariaDB query (for large or custom DocTypes). For v14+ instances, we run a payment resolution query that joins the Payment Entry, Payment Ledger Entry, and Sales/Purchase Invoice tables to compute the accurate outstanding_amount for each open invoice before extraction. We export BOMs with their operation routing as a separate relational dataset. We query the Custom Field DocType to produce the full custom field registry. All extractions produce de-duplicated CSVs or JSON with parent-record references preserved. We run a pre-import data quality pass to identify duplicates and missing required fields, and we present a remediation file for the customer's review before ingestion begins.

  3. Destination schema design and BOM routing decision

    We design the Dynamics 365 destination schema: Chart of Accounts structure (with dimension configuration if Finance and Operations), Item product types and costing methods, warehouse and site layout, BOM structure (flat or parent-child with route), and custom field recreation plan. For BOM routing, we present the customer with two options and document their choice before transformation begins. We create the Dynamics 365 entities in a Sandbox environment using the Data Management Framework (Finance and Operations) or directly in Business Central for validation. ERPNext Workflow and Document State rules are documented as a separate automation inventory for the customer to rebuild post-migration.

  4. Sandbox migration and reconciliation

    We run a full migration into a Dynamics 365 Sandbox using production-like data volume. The customer's finance lead reconciles trial balance (total debits equals total credits across the Chart of Accounts), open invoice counts and values, inventory on-hand quantities per warehouse, and BOM structure completeness. The operations lead spot-checks 25-50 random records against the ERPNext source. Any field mapping corrections, data quality fixes, or BOM routing decisions are resolved in the Sandbox before production migration begins.

  5. Owner and account reconciliation

    We extract every distinct ERPNext user referenced as an owner on transactions and match by email against the Dynamics 365 destination User table. Users without a match go to a reconciliation queue for the customer's admin to provision. Account and contact reconciliation ensures no duplicates on insert: we use ERPNext customer_name as the deduplication key against Account Name in Dynamics 365. Payment reconciliation is confirmed by matching total paid amounts per invoice from the ERPNext Payment Ledger query against the destination payment records.

  6. Production migration in dependency order

    We run production migration in record-dependency order: Chart of Accounts and Dimensions (if Finance and Operations), Warehouses and Sites, Items and Products (with pricing), BOMs and Routes (flattened from ERPNext), Customers and Suppliers (with company-individual split applied), open Sales and Purchase Orders, open Invoices (with Payment Ledger resolution applied), historical closed transactions (by fiscal year), Projects and Tasks, Employee records, File attachments and notes. Each phase emits a row-count and value reconciliation report. We freeze ERPNext writes during cutover, run a final delta migration of any records modified during the migration window, then enable Dynamics 365 as the system of record.

  7. Cutover, validation, and automation rebuild handoff

    We validate the production migration against the Sandbox reconciliation baseline: trial balance balances, open invoice outstanding amounts match ERPNext's payment ledger state, inventory on-hand matches the Stock Ledger snapshot, BOM operations are present in the route. We deliver the Server Script and Custom Field inventory document to the customer's admin team. We support a one-week hypercare window to resolve any data reconciliation issues raised by the business. We do not rebuild ERPNext server scripts as X++ or Power Automate flows inside the migration scope; that is a separate engagement or an internal development task.

Platform deep dives

Context on both ends of the pair

ERPNext logo

ERPNext

Source

Strengths

  • 100% open-source under GPL-3.0 — no per-user license fees, full source code access, and no vendor lock-in for hosting decisions.
  • All core ERP modules (accounting, CRM, inventory, manufacturing, HR) are included in the base product without feature-gating behind paid tiers.
  • Frappe Framework enables deep customisation through custom fields, client scripts, server scripts, and a full REST API for programmatic access.
  • Active community of 30,000+ businesses with certified implementation partners globally reduces reliance on a single vendor for support.
  • Version 16 as of 2026 includes 600+ developer contributions and 50+ new features across finance, manufacturing, and HR modules.

Weaknesses

  • Major version upgrades are complex and frequently break custom scripts and third-party Frappe Apps, requiring a regression-testing window before going live on the new version.
  • Community support lacks SLA-backed guarantees; enterprise organisations requiring 24/7 vendor support with contractually defined response times need to engage a certified partner or managed hosting provider.
  • Performance on large transaction volumes requires MariaDB backend tuning and adequate server resources — the default configuration is not optimised for high-throughput manufacturing or distribution operations.
  • Learning curve is steep for non-technical users; configuration of roles, permissions, workflows, and report builder demands dedicated training or partner consulting.
  • No native built-in data migration tooling — CSV import is the standard path but lacks conflict detection, deduplication logic, or rollback capability.
Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central

Destination

Strengths

  • Tight integration with Microsoft 365 (Outlook, Teams, SharePoint) for users already in the Microsoft ecosystem.
  • Includes Copilot AI, predictive analytics, and embedded Power BI dashboards at no additional cost in both license tiers.
  • Supports multiple companies within a single tenant for holding-company or multi-entity organizational structures.
  • Open REST API v2.0 with OAuth 2.0 authentication and data entity abstraction layer for developer-friendly integrations.
  • Strong partner ecosystem specializing in NAV-to-Business Central migrations provides implementation confidence for legacy upgrades.

Weaknesses

  • Named-user licensing model means every active user account requires a paid license — no concurrent access model to reduce costs for occasional users.
  • SaaS-only deployment means no on-premises option; organizations requiring full data residency control may not have viable alternatives within Microsoft's stack.
  • Manufacturing module (Production Orders, routing, work centers) is only available on Premium tier, pushing cost-sensitive manufacturers to higher-priced plans.
  • Customization and extension development requires AL language knowledge and developer licenses, limiting what power users can do without a partner engagement.
  • Global pricing increases effective October 2024 and again October 2025 after five years of stable pricing, creating budget uncertainty for existing customers.

Complexity grading

How hard is this migration?

Standard ERP migration. All 8 core objects map 1:1 between ERPNext and Microsoft Dynamics 365 Business Central.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across ERPNext and Microsoft Dynamics 365 Business Central.

  • Object compatibility

    A

    All 8 core objects map 1:1 between ERPNext and Microsoft Dynamics 365 Business Central.

  • 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

    C

    ERPNext: Configurable per-site; default limits are not publicly documented and are set in site_config.json by the hosting provider. We probe the rate limit headers on discovery and throttle accordingly..

  • Data volume sensitivity

    B

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

Estimator

Estimate your ERPNext to Microsoft Dynamics 365 Business Central 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 ERPNext to Microsoft Dynamics 365 Business Central data migrations

Answers to the questions buyers ask most during ERPNext to Microsoft Dynamics 365 Business Central migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your ERPNext to Microsoft Dynamics 365 Business Central migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between five and eight weeks for accounts with under 50,000 master records, fewer than 200 BOMs, and no complex payment ledger reconciliation. Migrations with multi-level BOMs, large historical transaction volumes (over 200,000 invoices), extensive custom field registries, or a Finance and Operations destination move to twelve to twenty weeks because of BOM flattening, GL restructuring, and payment state resolution work.

Adjacent paths

Related migrations to explore

Ready when you are

Move from ERPNext.
Land in Microsoft Dynamics 365 Business Central, 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