ERP migration
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
Source
Microsoft Dynamics 365 Business Central
Destination
Compatibility
12 of 15
objects map 1:1 between ERPNext and Microsoft Dynamics 365 Business Central.
Complexity
BStandard
Timeline
5-8 weeks
Overview
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.
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.
Source platform
ERPNext platform overview
Scorecard, SWOT, gotchas, and pricing for ERPNext.
Destination platform
Microsoft Dynamics 365 Business Central platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Business Central.
Data migration guide
The complete Dynamics 365 Business Central migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Dynamics 365 Business Central migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Business Central.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Microsoft Dynamics 365 Business Central
Account + Contact (split by type)
1:manyERPNext 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
Microsoft Dynamics 365 Business Central
Vendor
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Item (Released Product in Finance and Operations; Item in Business Central)
1:1ERPNext 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)
Microsoft Dynamics 365 Business Central
BOM (Engineering or Manufacturing BOM) + Route (Finance and Operations)
lossyERPNext 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
Microsoft Dynamics 365 Business Central
Warehouse + Site (Finance and Operations)
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Warehouse Entry (Business Central) or Inventory Transactions (Finance and Operations)
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Sales Invoice (Finance and Operations) or Sales Invoice Header + Lines (Business Central)
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Vendor Invoice (Finance and Operations) or Purchase Invoice (Business Central)
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Sales Order (Finance and Operations) or Sales Order (Business Central)
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Purchase Order
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Customer Ledger Entry / Vendor Ledger Entry (Finance and Operations) or Payment Journal lines (Business Central)
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Project + Task (Finance and Operations) or Project + Project Task (Business Central)
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Worker (Finance and Operations) or Employee (Business Central)
1:1ERPNext 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
Microsoft Dynamics 365 Business Central
Extended fields (Finance and Operations) or Custom fields (Business Central)
lossyERPNext 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
Microsoft Dynamics 365 Business Central
SharePoint document location + Note (Dataverse) or Document attachments (Business Central)
1:1ERPNext 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.
| ERPNext | Microsoft Dynamics 365 Business Central | Compatibility | |
|---|---|---|---|
| Customer | Account + Contact (split by type)1:many | Fully supported | |
| Supplier | Vendor1:1 | Fully supported | |
| Item | Item (Released Product in Finance and Operations; Item in Business Central)1:1 | Fully supported | |
| BOM (Bill of Materials) | BOM (Engineering or Manufacturing BOM) + Route (Finance and Operations)lossy | Fully supported | |
| Warehouse | Warehouse + Site (Finance and Operations)1:1 | Fully supported | |
| Stock Ledger Entry | Warehouse Entry (Business Central) or Inventory Transactions (Finance and Operations)1:1 | Fully supported | |
| Sales Invoice | Sales Invoice (Finance and Operations) or Sales Invoice Header + Lines (Business Central)1:1 | Fully supported | |
| Purchase Invoice | Vendor Invoice (Finance and Operations) or Purchase Invoice (Business Central)1:1 | Fully supported | |
| Sales Order | Sales Order (Finance and Operations) or Sales Order (Business Central)1:1 | Fully supported | |
| Purchase Order | Purchase Order1:1 | Fully supported | |
| Payment Entry | Customer Ledger Entry / Vendor Ledger Entry (Finance and Operations) or Payment Journal lines (Business Central)1:1 | Fully supported | |
| Project + Task | Project + Task (Finance and Operations) or Project + Project Task (Business Central)1:1 | Fully supported | |
| Employee | Worker (Finance and Operations) or Employee (Business Central)1:1 | Fully supported | |
| Custom Field DocType registry | Extended fields (Finance and Operations) or Custom fields (Business Central)lossy | Fully supported | |
| File / Attachment | SharePoint document location + Note (Dataverse) or Document attachments (Business Central)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.
ERPNext gotchas
CSV import does not detect or prevent duplicate records
Custom server scripts break silently on version upgrades
BOM routing and workstation data requires manual reconstruction
Payment ledger entries in v14+ are decoupled from invoices
Frappe rate limiting is configurable per-site and undocumented
Microsoft Dynamics 365 Business Central gotchas
Named-user licensing has no concurrent-use relief
API rate limits throttle large-volume migrations
Historical posted transactions require selective migration scoping
NAV-to-Business Central cloud migration requires partner coordination
Custom fields and AL extensions require separate migration handling
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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.
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
ERPNext
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Business Central
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. All 8 core objects map 1:1 between ERPNext and Microsoft Dynamics 365 Business Central.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across ERPNext and Microsoft Dynamics 365 Business Central.
Object compatibility
All 8 core objects map 1:1 between ERPNext and Microsoft Dynamics 365 Business Central.
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
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
ERPNext 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 ERPNext to Microsoft Dynamics 365 Business Central migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave ERPNext
Other ways to arrive at Microsoft Dynamics 365 Business Central
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.