ERP migration

Migrate from Xledger to Epicor Prophet 21

Field-level mapping, validation, and rollback between Xledger and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.

Xledger logo

Xledger

Source

Epicor Prophet 21

Destination

Epicor Prophet 21 logo

Compatibility

93%

14 of 15

objects map 1:1 between Xledger and Epicor Prophet 21.

Complexity

BStandard

Timeline

5-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Xledger and Epicor ERP are fundamentally different architectural bets. Xledger is a true multi-tenant cloud ERP built around financial consolidation: Entities own Subledgers, Subledgers own AP/AR, and intercompany journal postings flow automatically across Entity boundaries. Epicor ERP is an operations-centric platform — its Company module mirrors a legal entity, Site maps a physical location, and financial consolidation is achieved through inter-company accounting configurations rather than native Entity hierarchy. Migrating from Xledger to Epicor ERP means translating a financial-consolidation data model into an operational-manufacturing data model. We extract every Entity definition and cross-reference it against Epicor Company records, map Subledger invoice chains to Epicor's open AP/AR transaction files, and use Epicor's Data Management Tool with its 60-plus import templates to load the GL, subledgers, and fixed assets in dependency order. Workflow configurations, approval chains, and OCR templates from Xledger do not migrate as code; we deliver a written inventory for the customer's team to rebuild in Epicor.

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

Xledger logo

Xledger

What's pushing teams away

  • ERP implementations frequently extend beyond the initial 6-12 month estimate for mid-market organisations, with large multi-entity rollouts reaching 18-21 months, making the migration window longer and more disruptive than expected.
  • Smaller finance teams report a steep learning curve when configuring multi-entity structures, custom workflows, and the Chart of Accounts for the first time, leading to extended reliance on Xledger's in-house consultants.
  • Some organisations evaluate switching to Sage Intacct, NetSuite, or Acumatica after implementation, citing specific feature gaps or total cost of ownership comparison after the initial subscription period ends.
  • Power users note that the flexibility of configurable dashboards and reports requires dedicated configuration time, and knowledge does not transfer easily when team members leave.

Choosing

Epicor Prophet 21 logo

Epicor Prophet 21

What's pulling them in

  • Industry-specific design for wholesale distributors, not a general-purpose ERP repurposed for distribution — distributors choose P21 because it matches their replenishment, kitting, and counter-sale workflows out of the box.
  • Strong inventory control with automated replenishment, lot and serial tracking, and multi-warehouse management appeals to distributors with complex stock requirements and tight margin pressure.
  • Responsive customer support cited across G2 and Gartner reviews, with Epicor's 90% retention rate reflecting long-term customer satisfaction in a market where switching costs are high.
  • Cloud deployment on Microsoft Azure provides the flexibility to scale user counts and warehouse locations without on-premise infrastructure investment.
  • The Software Development Kit lets distributors personalize P21 to their specific business processes without modifying the application source code, preserving upgrade paths.

Object mapping

How Xledger objects map to Epicor Prophet 21

Each row shows how a Xledger object lands in Epicor Prophet 21, including any object-level transformations, lookup resolution, or schema-design dependencies.

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

Xledger

Entity

maps to

Epicor Prophet 21

Company

1:1
Fully supported

Xledger Entities are the top-level organisational containers, each owning its own Subledger, Chart of Accounts, and bank connections. Epicor ERP uses Company as the legal-entity container. We map each Xledger Entity to one Epicor Company record, preserving Entity name as Company.Name and assigning a Company.CO cavity code for GL segment alignment. Multi-entity Xledger customers with shared bank accounts must resolve those shared references before Epicor import because Epicor's bank module expects one Company context per bank account.

Xledger

Subledger

maps to

Epicor Prophet 21

Company + Fiscal Calendar alignment

1:1
Fully supported

Xledger Subledgers carry a type classification (AP, AR, Banking, Project) and reference the owning Entity. Epicor ERP does not have a Subledger object but uses Company plus separate AP, AR, and GL modules. We map each Xledger Subledger to its owning Entity's corresponding Epicor module context, preserving the Subledger type classification in a UD field on the Epicor Company record. Fiscal period definitions migrate from Xledger's Subledger calendar to Epicor's Fiscal Calendar for each Company.

Xledger

Chart of Accounts

maps to

Epicor Prophet 21

Account

lossy
Mapping required

Xledger's Chart of Accounts varies significantly by organisation and may include extended account dimensions for non-profits or project-based entities. Epicor ERP uses a flat or segmented account code structure configurable at the Company level. We map Xledger account codes to Epicor Account records, preserving account type (Asset, Liability, Equity, Revenue, Expense) and any Xledger dimension tags as Epicor UD codes on the Account. If Xledger uses multi-dimensional accounts, we configure Epicor's Natural Account + Department/Cost Centre segment model to match.

Xledger

Customer

maps to

Epicor Prophet 21

Customer

1:1
Fully supported

Xledger Customer records include address, contact, payment terms, tax codes, and Subledger references. Multi-entity Customers shared across Entities require deduplication — we merge records sharing the same tax ID or email into a single Epicor Customer and assign the primary Company context. Payment terms migrate to Epicor's Terms table and link to Customer.TermsCode. Credit limits map to Epicor Customer.CreditLimit fields.

Xledger

Supplier

maps to

Epicor Prophet 21

Supplier

1:1
Fully supported

Xledge Supplier records mirror the Customer schema: address, contact, payment terms, tax codes, Subledger reference. Shared Suppliers across Xledger Entities deduplicate to a single Epicor Supplier by tax ID. Remit-to address, one-time supplier flag, and 1099 settings map to Epicor Supplier table fields. Multi-currency supplier records carry the Xledger currency code to Epicor's SupplierRisk.PaymentMETHOD value.

Xledger

General Ledger Journal Entries

maps to

Epicor Prophet 21

GLJrnHed + GLJrnDtl

1:1
Mapping required

Xledger journal entries span the full transaction lifecycle with posting date, amount, account, and optional dimensions. Epicor stores journal entries as GLJrnHed (header) with multiple GLJrnDtl (detail) lines. We split each multi-line Xledger journal entry into one Epicor header and multiple detail lines, preserving the original posting date, description, journal number, and source module. Detail lines carry the mapped account code, debit/credit amount, and any dimension references as EpicorExt or UD columns.

Xledger

Open AP (Subledger Invoices)

maps to

Epicor Prophet 21

APInvHed + APInvDtl

1:1
Fully supported

Xledger stores open AP as Subledger invoice records linked to Suppliers with payment terms and aging data. Epicor AP Invoice (APInvHed/APInvDtl) mirrors this structure with separate header and detail levels. We extract every open Xledger AP Subledger record, map it to one Epicor APInvHed with the Supplier resolved by tax ID, and create APInvDtl lines for each invoice distribution. Payment terms and due dates migrate to APInvHed.Terms and APInvHed.DueDate. Historical closed AP invoices migrate as GL journal entries against the General Ledger, not as open AP records.

Xledger

Open AR (Subledger Invoices)

maps to

Epicor Prophet 21

ARInvoice + ARInvoiceTax + ARTran

1:1
Fully supported

Xledger open AR Subledger records link to Customers with invoice amounts, aging schedules, and currency. Epicor AR Invoice uses ARInvoice as the header with ARTran detail lines and ARInvoiceTax for tax. We map each open Xledger AR Subledger record to one Epicor ARInvoice with Customer resolved by tax ID, invoice date and due date preserved, and amount split into ARTran lines by the original distribution accounts. Currency and exchange rate migrate from Xledger's multi-currency Subledger to Epicor's Currency and Rate tables.

Xledger

Bank Account

maps to

Epicor Prophet 21

BankAcct

1:1
Fully supported

Xledger Bank Account records include routing details, account type, currency, and Entity assignment. Epicor BankAcct stores bank account information per Company. We map each Xledger bank account to an Epicor BankAcct record, preserving routing number, account number (masked), currency, and Company context. Bank feed configuration from Xledger (JPMorgan, Wells Fargo, Bank of America) does not migrate; we document the Xledger bank feed settings as a reference for the customer to configure Epicor's bank integration separately.

Xledger

Fixed Asset

maps to

Epicor Prophet 21

FaAsset + FaLog

1:1
Fully supported

Xledger Fixed Asset records include acquisition date, cost, depreciation method, useful life, and current depreciation schedule. Epicor Fixed Assets (FaAsset table) with FaLog tracking depreciation entries. We map asset definitions from Xledger to FaAsset with AcquisitionDate, Cost, DepreciationMethod (mapped to Epicor FaAsset.DepreciationMethod values), useful life in periods, and a current net book value. Depreciation log entries carry forward into FaLog from the date of last depreciation in Xledger, with a reconciliation flag if the Xledger depreciation schedule has been modified mid-period.

Xledger

Budget Item

maps to

Epicor Prophet 21

GlBudget + GlBudgetDtl

1:1
Fully supported

Xledger budgets are created at the Entity level and linked to specific accounts and dimensions. Epicor ERP stores budgets as GlBudget with GlBudgetDtl detail lines per account and period. We map each Xledger budget version and forecast iteration to a named GlBudget record, with budget amounts distributed across period-linked GlBudgetDtl lines. Budget vs actual comparison reporting requires the same account mapping used for journal entry migration, so account mapping is completed before budget migration to ensure dimensional consistency.

Xledger

Project

maps to

Epicor Prophet 21

Project

1:1
Fully supported

Xledger Project records track billing, revenue recognition, and cost allocation against a project's financial lifecycle, with Subledger and custom field references. Epicor ERP has a Project module for project-based manufacturers and services businesses. We map Xledger Project records to Epicor Project with Phase and Task hierarchies, project status, billing rules, and revenue recognition method. Custom field values from Xledger carry into Epicor Project UD columns. WIP and billing milestones migrate as ProjectPhase records with associated revenue and cost budgets.

Xledger

Time Entry and Expense

maps to

Epicor Prophet 21

LaborHed + ExpenseReport + TimeExpense

1:1
Fully supported

Xledger time entries and expense records are linked to Employees and Projects, with expense submissions including receipt data and approval workflow status. Epicor Labour captures time against jobs and projects via LaborHed/LaborDtl; expense reporting uses Epicor ExpenseReport. We map Xledger time entries to Epicor LaborHed records with the Project and Phase resolved from the Xledger Project mapping, preserving hours, cost rate, and entry date. Expense records migrate to Epicor ExpenseReport with line items, amounts, and receipt metadata. Approved status migrates but the approval workflow is not replicated.

Xledger

Employee

maps to

Epicor Prophet 21

EmpBasic + HrEmployee

1:1
Fully supported

Xledger Employee records include payroll, benefits, cost rate, and Entity assignment for multi-entity organisations. Epicor ERP stores employee data in EmpBasic (for Labour purposes) and HrEmployee (for HRM). We map Xledger Employees to Epicor EmpBasic for Labour module context and HrEmployee for HRM context, preserving employee number, name, email, cost rate, and Entity-to-Company mapping. Employee status (active, inactive) maps directly. Xledger expense and time approval hierarchies are not migrated; the Epicor approval chain is configured separately.

Xledger

Document and Attachment

maps to

Epicor Prophet 21

DocType + External reference

1:1
Fully supported

Xledger documents and attachments are stored against journal entries, vendors, customers, and assets. Epicor ERP uses DocType and a document management reference model rather than a flat file attachment table. We migrate document metadata (filename, description, attachment date, linked record type and ID) to a migration reference table. Large-volume document archives (over 5,000 files) require chunked migration with a document mapping manifest so that the customer can relink attachments in Epicor's document management system 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.

Xledger logo

Xledger gotchas

High

Multi-entity intercompany journal entries require careful cross-mapping

High

Historical AP/AR records map to invoice-level objects, not account balances

Medium

Workflow and approval configurations are custom and non-transferable

Medium

ERP implementations extend well beyond the initial migration window

Low

Built-in integrations are Xledger-side only and require separate destination-side configuration

Epicor Prophet 21 logo

Epicor Prophet 21 gotchas

High

Third-party bolt-on integrations complicate migration scope

High

Dirty data without standardized processes compounds migration risk

Medium

SDK customizations and BPMs may not survive platform upgrades

Medium

Report-based export only for non-technical users

Low

Per-user pricing model requires accurate user count before migration planning

Pair-specific challenges

  • Xledger multi-entity structure does not map directly to Epicor Company and Site

    Xledger's Entity model is a financial consolidation container: each Entity has its own Chart of Accounts, Subledgers, and bank feeds, and intercompany postings reference both the source and destination Entity. Epicor ERP's Company is a legal-entity container and Site is a physical location; there is no native Entity-to-Site equivalence. We must design the Company and Site topology during discovery before any data moves. If the customer has intercompany postings in Xledger, we flag every cross-Entity journal entry and either replicate them as standard journal entries with elimination notation in Epicor or defer them to an inter-company accounting configuration in Epicor Financial Management. Skipping this step creates orphan Entity balances in Epicor's GL.

  • Epicor's REST API documentation is sparse; DMT is the primary migration path

    Epicor ERP's public REST API documentation is limited and requires self-service access to Epicor ICE tools or Swagger endpoints for interactive exploration, as noted in Reddit discussions and developer guides. Epicor's Data Management Tool (DMT) with over 60 pre-built import templates is the supported path for bulk data loading, not raw API calls. We use Epicor DMT for GL journal entries, AP/AR invoices, fixed assets, customers, and suppliers, with template customisation for Xledger field names. The DMT validates data against Epicor business logic and enforces referential integrity, which means parent records (Company, Supplier, Customer) must load before child records (AP invoice lines, AR invoice lines).

  • Open AP/AR Subledger invoices are not account balances

    Xledger stores open AP and AR as Subledger invoice records with individual payment terms, aging buckets, and currency — not as summarised balance sheet figures. Loading a balance into Epicor's GL without recreating the underlying invoices means the customer loses the ability to apply payments against specific invoices in Epicor's payable and receivable modules. We extract every open invoice from Xledger's Subledgers, map each to an Epicor APInvHed or ARInvoice header with detail lines, and preserve payment terms and due dates. Closed invoices are migrated as historical GL journal entries. This requires more extraction work but preserves the customer's open-item context in Epicor.

  • Xledger workflow and approval configurations do not migrate

    Xledger's automated workflow engine handles expense approvals, cash release, purchase order sign-off, and intercompany posting controls, configured per Entity and per module. Epicor ERP uses a different approval model: Labour approvals, expense approvals, and PO approvals are separate modules with distinct configuration paths. We do not export workflow rules as structured data. Instead, we document every active Xledger workflow during discovery (trigger, conditions, approver chain, actions) and provide an Epicor configuration guide so the customer's team or an Epicor partner can rebuild equivalent approval rules. This documentation deliverable is included in the migration scope.

  • Multi-currency handling differs between Xledger and Epicor

    Xledger provides native multi-currency and multi-language support across all entities in a single subscription. Epicor ERP handles multi-currency through the Currency and Exchange Rate tables at the Company level, with each Company able to maintain its own base currency. If Xledger entities use different currencies and the customer needs to preserve per-Entity currency context in Epicor, we configure each Epicor Company with its corresponding base currency and map Xledger transaction currencies to Epicor Currency codes. Exchange rate sources and gain/loss GL accounts must be specified per currency pair during Epicor configuration.

Migration approach

Six steps for a successful Xledger to Epicor Prophet 21 data migration

  1. Discovery and Entity-to-Company topology design

    We audit the source Xledger environment: every Entity, Subledger, and Chart of Accounts structure; open AP/AR invoice volume and aging; fixed asset register size; historical journal entry volume and date range; project count and type; employee headcount and time/expense data. We also extract workflow and approval configurations for documentation. In parallel, we review the target Epicor ERP environment: Company count, Site count, fiscal calendar configuration, existing account codes, and enabled modules. The discovery output is a written Entity-to-Company topology map, a Chart of Accounts translation table, and a phased migration scope with record counts per object.

  2. Schema design and Epicor DMT template preparation

    We design the Epicor schema to receive Xledger data: each Xledger Entity maps to one Epicor Company; Subledger types map to module context; Xledger account codes map to Epicor Account records with type classification and segment assignments. We configure multi-currency per Company using Xledger's currency assignments as the source of truth. We customise Epicor DMT templates for each data type, pre-validating field mappings against Epicor business rules. Any Epicor validation rules that would reject Xledger-formatted data are identified and a temporary bypass or transform rule is agreed with the customer before testing begins.

  3. Sandbox migration and GL balance reconciliation

    We run a full migration into the Epicor Sandbox using production-equivalent data volume. We load Companies first, then account codes, then customers, suppliers, open AP/AR, fixed assets, projects, and historical journals in dependency order. After each phase, we produce a reconciliation report comparing source record counts to destination record counts. We close with a GL trial balance comparison: total debits minus total credits by period must match between Xledger and Epicor within a configurable tolerance (typically $0.01 per period). The customer signs off the Sandbox migration before production migration begins.

  4. Intercompany journal entry resolution

    If Xledger contains cross-Entity intercompany journal postings, we run a separate resolution pass. We identify every intercompany transaction, categorise by Entity pair, and propose a treatment: either recreate as standard journal entries in each Epicor Company with elimination notation and a flag in the journal description, or defer to Epicor's inter-company accounting configuration for formal elimination at period close. The customer selects the treatment per Entity pair, and we document the chosen approach in the intercompany journal inventory.

  5. Production migration in dependency order

    Production migration follows the Sandbox sequence with a final delta extraction: GL accounts, Company records, customer and supplier masters, open AP invoices (APInvHed + APInvDtl), open AR invoices (ARInvoice + ARTran), fixed assets, projects, time and expense entries, and historical journal entries (GLJrnHed + GLJrnDtl). Each phase emits a reconciliation report before the next begins. DMT runs in batch mode with error logging; failed records are corrected in the Xledger staging environment and reloaded in the same phase. Epicor DMT enforces referential integrity, so parent records load completely before child records for each module.

  6. Cutover, delta migration, and workflow handoff

    We freeze Xledger write access at cutover and run a final delta migration of any records created or modified during the migration window. We then enable Epicor ERP as the system of record and deliver the workflow configuration inventory document to the customer's Epicor admin team. We support a one-week hypercare window for reconciliation issues raised by the finance team. We do not rebuild Xledger workflow configurations as Epicor approvals inside the migration scope; that work uses the delivered configuration guide and is handled by the customer's Epicor partner or internal admin team as a separate engagement.

Platform deep dives

Context on both ends of the pair

Xledger logo

Xledger

Source

Strengths

  • Native multi-entity consolidation with live roll-up across parent and subsidiary hierarchies in a single subscription.
  • Advanced OCR for AP invoice capture and expense receipts built into the platform at no additional licensing fee.
  • Multi-currency and multi-language support for international operations without edition gating.
  • True multi-tenant cloud architecture with automatic updates and no per-user replication of integrations.
  • Project accounting, time tracking, and fund accounting modules designed for contract-based and grant-funded organisations.

Weaknesses

  • No publicly available pricing tiers or rate limit documentation on the public website, requiring direct sales engagement for scoping.
  • Limited public review presence with only 2 verified reviews on G2 and 1 on Gartner Peer Insights, making independent feature validation difficult.
  • Implementation timelines frequently extend to 12-18 months for organisations with complex multi-entity or multi-currency configurations.
  • Web Services API uses a legacy SOAP-based interface alongside the newer GraphQL API, requiring two different authentication schemes depending on the integration path.
Epicor Prophet 21 logo

Epicor Prophet 21

Destination

Strengths

  • Purpose-built for wholesale distribution with industry-specific replenishment, kitting, and counter-sale workflows out of the box.
  • Multi-warehouse management with bin locations, cross-docking, and real-time inventory visibility across all warehouse locations.
  • Automated replenishment engine with demand-based and min-max planning reduces stockouts and overstock carrying costs.
  • AI-infused reporting via Epicor Prism provides Gen AI-driven insights into ERP data without requiring a BI team.
  • Strong customer retention at 90% and a 50-year track record in the distribution vertical provides long-term vendor stability.

Weaknesses

  • High total cost of ownership — per-user pricing of $150-200/month plus $10K-$500K implementation creates significant budget commitment for small and mid-market distributors.
  • Customization via SDK requires technical expertise and introduces upgrade risk when custom code conflicts with new P21 releases.
  • Report generation performance is a known pain point — multiple users report system freezes during large or complex report exports.
  • Third-party bolt-on reliance for functionality that competitors include natively increases integration complexity and total solution cost.
  • Limited public API documentation — developers building custom integrations report difficulty finding P21 API authentication methods and endpoint specifications.

Complexity grading

How hard is this migration?

Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Xledger and Epicor Prophet 21.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • 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

    Xledger: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Xledger to Epicor Prophet 21 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 Xledger to Epicor Prophet 21 data migrations

Answers to the questions buyers ask most during Xledger to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Xledger to Epicor Prophet 21 migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Typical migrations land between five and eight weeks for organisations with two to five Xledger Entities, under 500 open AP/AR invoices, and no fixed asset carry-forward requirements. Migrations with six or more Entities, complex intercompany journal postings, a large fixed asset register (over 500 assets), or a multi-Company plus multi-Site Epicor topology extend to twelve to twenty weeks because of DMT template customisation, intercompany journal resolution, and GL balance reconciliation across the full historical range. Epicor implementation itself (new environment provisioning, user provisioning, module configuration) runs in parallel and is scoped separately from the data migration.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Xledger.
Land in Epicor Prophet 21, 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