ERP migration

Migrate from SoftLedger to Epicor Prophet 21

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

SoftLedger logo

SoftLedger

Source

Epicor Prophet 21

Destination

Epicor Prophet 21 logo

Compatibility

75%

9 of 12

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

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from SoftLedger to Epicor ERP is a shift from a cloud-native multi-entity accounting ledger to a full manufacturing-centric ERP. SoftLedger organizes financial data around Locations with independent COAs and currencies; Epicor ERP consolidates financial data under a Company-Plant-Warehouse hierarchy with GL accounts shared across legal entities. We map each SoftLedger Location to an Epicor Company (or a Division within a Company), resolve the multi-currency journal entries with their custom exchange rate overrides, and load opening trial balances through Epicor's Data Management Tool rather than standard journal postings. Epicor's manufacturing modules (production, inventory, BOMs) do not exist in SoftLedger and are scoped as new configuration rather than migration. We do not migrate SoftLedger's workflow rules or financial report definitions; we deliver a written inventory of each for the customer's Epicor admin to rebuild in BAQ and Kinetic.

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

SoftLedger logo

SoftLedger

What's pushing teams away

  • The crypto module is described as rigid by users who need more flexible handling of non-standard wallet types, chain-specific transactions, or custom DeFi positions beyond NODE40's supported formats.
  • Custom report creation requires workarounds for highly tailored management reporting formats, pushing some users toward Excel exports as a standing process.
  • Limited custom field options constrain organizations that need deep operational metadata on vendors, customers, or transactions, driving them to platforms with more extensible schemas.
  • Steep learning curve emerges once organizations move beyond basic AP/AR into multi-currency consolidations and intercompany eliminations, particularly during period-close.

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 SoftLedger objects map to Epicor Prophet 21

Each row shows how a SoftLedger 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.

SoftLedger

Location

maps to

Epicor Prophet 21

Company / Site

1:many
Fully supported

SoftLedger Locations are top-level entities with independent currency, COA, and address. Each Location maps to an Epicor ERP Company (the legal entity level). If the customer operates multiple co-located divisions within one legal entity, we split the Location into one Company plus multiple Epicor Sites under that Company. The mapping decision is made during scoping based on whether the customer needs separate legal-entity financials or shared-entity management reporting.

SoftLedger

Chart of Accounts

maps to

Epicor Prophet 21

GL Account

1:1
Fully supported

SoftLedger's per-Location COA (account number, name, type, tax code, status) maps to Epicor GL Account records under the destination Company. We extract the full account range per entity and create corresponding Epicor accounts in the same number/name/type structure. Active/inactive status maps to the Epicor AcctFlag. Accounts used only in specific SoftLedger dimensions are flagged as restricted by Plant or Division in Epicor.

SoftLedger

Customer

maps to

Epicor Prophet 21

Customer

1:1
Fully supported

SoftLedger Customers (name, email, address, payment terms, currency, custom fields) map to Epicor Customer records. The customer number in Epicor is assigned from a configurable range; we preserve the SoftLedger customer ID in a User-Defined field for reference. Payment terms map to Epicor's Terms of Payment table. Multi-currency customers carry their billing currency through to the Epicor AR invoice currency field.

SoftLedger

Vendor

maps to

Epicor Prophet 21

Supplier

1:1
Fully supported

SoftLedger Vendors (name, email, address, payment terms, 1099 eligibility, currency) map to Epicor Supplier records. The 1099 eligibility flag maps to the Epicor 1099 Code field on Supplier. We preserve all vendor metadata including any custom field values in Epicor UD fields. Outstanding AP balances transfer as open PO receipts or unmatched bills depending on the destination payables workflow.

SoftLedger

Journal Entry

maps to

Epicor Prophet 21

GL Journal Entry

1:1
Fully supported

SoftLedger Journal Entries carry lines with account ID, amount, currency, dimension tags, and source references. Multi-currency entries require explicit exchange rate extraction: we pull the effective rate at posting date and any manual override stored as journal metadata, then apply the same rate type in Epicor GL. Epicor supports multiple rate types (Actual, Budget, Historical) and we assign the equivalent type based on the SoftLedger source. We chunk large journal batches to respect the SoftLedger 200 req/min API limit and load them via Epicor DMT using the GLJrnHed / GLJrnDtl template.

SoftLedger

Dimension

maps to

Epicor Prophet 21

Epicor Analysis Code (Category) or UD Field

lossy
Fully supported

SoftLedger Dimensions tag journal lines with organizational attributes (department, cost center, region). We map these to Epicor Analysis Codes or map them to User-Defined fields on GLJrnDtl depending on how the customer uses dimensional reporting in Epicor. The decision is made during scoping by reviewing the customer's existing SoftLedger dimension usage and Epicor reporting patterns. All tag assignments are preserved so analytical reporting continuity is maintained.

SoftLedger

Invoice (AR)

maps to

Epicor Prophet 21

AR Invoice

1:1
Fully supported

SoftLedger AR Invoices map to Epicor AR Invoice records with status preserved (Open, Closed). We extract the invoice header, line items, and tax information, then load via DMT. Customer lookup is resolved against the Customer mapping completed in the earlier phase. Open invoices are migrated with their payment status so the destination AR team picks up the outstanding balance; closed invoices are migrated as historical records without reopening the AR cycle.

SoftLedger

Invoice (AP)

maps to

Epicor Prophet 21

AP Invoice / Bill

1:1
Fully supported

SoftLedger AP Invoices map to Epicor AP Invoice or Bill records with status preserved. The vendor lookup is resolved against the Supplier mapping. Outstanding AP balances (unpaid bills) migrate with their open status so the accounts payable team manages payment in Epicor. SoftLedger's bill-to address and ship-to address are mapped to Epicor's separate address fields on the invoice.

SoftLedger

Bank Transaction

maps to

Epicor Prophet 21

Bank Transaction

1:1
Fully supported

SoftLedger Bank Transactions link to Journal Entries and carry a reconciliation status flag. We preserve the reconciliation flag on each item and set the Epicor bank transaction to Open so the finance team completes reconciliation in the destination. Unreconciled items are not marked as reconciled during migration, which prevents prematurely closing the bank reconciliation and hiding outstanding variances.

SoftLedger

Custom Field

maps to

Epicor Prophet 21

User-Defined (UD) Field

lossy
Fully supported

SoftLedger Custom Fields on Invoices, Customers, Bills, and warehouse items map to Epicor UD fields on the corresponding business objects. We discover all active custom fields during scoping, map their data types to Epicor UD field types (character, numeric, date, checkbox), and create the UD field definitions in Epicor before loading data. Any SoftLedger custom fields with no Epicor equivalent are flagged as requiring a new UD field or a data model redesign.

SoftLedger

Beginning Balance

maps to

Epicor Prophet 21

GL Account Beginning Balance

1:1
Fully supported

SoftLedger uses a specific Beginning Balance upload mechanism rather than standard journal entry posting for opening trial balances. We use Epicor DMT with the GLJrnDtl template to load account opening balances, structuring the payload to match the expected format for each entity's account range. Beginning balances are loaded before any historical transaction migration so the trial balance reflects the correct starting position.

SoftLedger

Financial Report Definition

maps to

Epicor Prophet 21

BAQ (Business Activity Query) / RDL Report

1:1
Fully supported

SoftLedger stores custom report definitions as JSON configurations referencing account IDs. We extract each report definition, map the referenced SoftLedger account IDs to their Epicor GL Account equivalents, and deliver a written inventory of every report requiring rebuild in Epicor BAQ or SQL-based RDL. The rebuilt queries are created by the customer's Epicor admin or partner 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.

SoftLedger logo

SoftLedger gotchas

High

200 req/min API rate limit can throttle bulk exports

High

Beginning balances require a dedicated upload mechanism

Medium

Unreconciled bank items carry status that must transfer intact

Medium

Custom exchange rate overrides on journal entries require explicit extraction

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

  • SoftLedger API rate limit throttles bulk journal export

    SoftLedger enforces a 200 requests per minute rate limit on its API. Exporting large volumes of journal lines and multi-currency entries across multiple entities can exhaust this limit during migration. We manage this by implementing request pacing, chunking large data pulls into queue-managed batches of 150 requests per minute to leave headroom, and serializing entity-level exports rather than parallelizing calls that would trigger 429 responses. The SoftLedger API returns an HTTP 429 with a Retry-After header; we honor that header before resuming.

  • Multi-currency exchange rate overrides require explicit extraction

    SoftLedger allows manual exchange rate overrides on multi-currency journal entries. These override rates are stored as metadata on the journal entry rather than fetched from a rates table. If we do not explicitly extract the override rate on each multi-currency journal line, the migrated entry defaults to the system rate in Epicor, producing incorrect translated amounts for historical periods. We query the exchange rate metadata on every multi-currency journal entry during extraction and apply the override rate explicitly as a custom rate type in Epicor GL during import.

  • Epicor historical data volume requires pre-migration archiving

    Epicor environments typically contain decades of accumulated production history, financial transactions, inventory movements, WIP activity, job logs, and attachments. Importing this historical data into a clean Epicor deployment without archiving can create performance degradation, increased storage costs, and confusion between live and historical records. We work with the customer's Epicor admin to archive pre-migration Epicor data (if Epicor is already in use) and scope the migration to include only the active data range needed for day-to-day operations in SoftLedger. Historical SoftLedger data is preserved in a structured export for audit access.

  • Beginning balances require Epicor DMT upload, not journal postings

    SoftLedger uses a dedicated Beginning Balance upload workflow to seed opening trial balances rather than standard journal entry posting. Attempting to migrate historical trial balances by posting journal entries directly results in duplicate balance-sheet impact and distorted opening positions in Epicor. We use Epicor DMT with the appropriate GLJrnDtl template to load account opening balances in the correct format, and we validate the trial balance totals post-load against the SoftLedger source before proceeding to transaction migration.

  • SoftLedger custom fields and dimensions do not map to Epicor workflows

    SoftLedger Custom Dimensions and Custom Fields have no direct Epicor automation equivalent. Dimensions that drive SoftLedger reporting need to be mapped to either Epicor Analysis Codes or UD fields on the GLJrnDtl table, and any SoftLedger workflow or approval rule that triggers on a custom field value cannot migrate to Epicor. We deliver a written inventory of every SoftLedger automation, custom field dependency, and dimensional tag that requires a rebuild in Epicor's Kinetic interface as part of the migration handoff package.

Migration approach

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

  1. Discovery and scoping

    We audit the source SoftLedger environment across all Locations, the full COA per entity, active custom fields and dimensions, multi-currency usage (number of currency pairs and override frequency), journal entry volume and date range, open AR/AP invoice count, bank transaction reconciliation status, and any outstanding beginning balance entries. If Epicor ERP is already live, we also review the existing Company-Site hierarchy, active UD field definitions, and GL account structure. The discovery output is a written migration scope, a data volume estimate by object, and a timeline recommendation (four to six weeks for simple, ten to sixteen for complex).

  2. Schema design and Company-Site mapping

    We design the destination Epicor hierarchy. This includes mapping each SoftLedger Location to an Epicor Company (or Company + Sites), designing the GL account structure that accommodates all source accounts without duplication, defining the rate type setup for multi-currency entries, and planning the UD field creation for all active SoftLedger custom fields. If Epicor is already in use, we identify any conflicts between existing GL accounts and source accounts, and resolve them before migration. Schema is deployed via Epicor DMT into a Sandbox environment first for validation against the customer's Epicor admin.

  3. Data extraction, transformation, and Sandbox validation

    We extract all SoftLedger data in dependency order: Locations, COA, Customers, Vendors, then GL transactions and AP/AR. Multi-currency journal entries include the explicit rate metadata. We run the full migration in a Sandbox using Epicor DMT with the GLJrnHed / GLJrnDtl templates, the Customer and Supplier templates, and any custom UD field templates. The customer's finance team spot-checks 25-50 records against the SoftLedger source and reconciles trial balance totals. Any mapping corrections happen in Sandbox, not in production.

  4. Beginning balance load and trial balance reconciliation

    Before loading historical journal entries, we load beginning balances for each GL account per Company using Epicor DMT. We validate the Epicor trial balance after balance load against the SoftLedger pre-migration trial balance for each Location. The trial balance reconciliation sign-off is required before any historical transaction migration begins because correcting account balances after transactions are loaded is significantly more complex.

  5. Production migration in dependency order

    We run production migration in this order: Company / Site hierarchy, GL Account structure, Customer records (with UD fields), Supplier records (with UD fields), beginning balances, open AP invoices, open AR invoices, bank transactions (with open reconciliation status), then historical journal entries. Each phase emits a row-count reconciliation report and a trial balance delta before the next phase begins. Multi-currency entries are loaded last to ensure the correct exchange rates are applied after all account setup is confirmed.

  6. Cutover, validation, and automation handoff

    We freeze SoftLedger writes during cutover, run a final delta migration of any records modified during the migration window, then enable Epicor ERP as the system of record. We deliver the written inventory of SoftLedger automations, custom report definitions, and dimensional tagging schemes that require rebuild in Epicor. We support a one-week hypercare window where we resolve any reconciliation discrepancies. We do not rebuild SoftLedger workflows or reports as Epicor automations or BAQ queries inside the migration scope; those are documented for the customer's Epicor admin or implementation partner.

Platform deep dives

Context on both ends of the pair

SoftLedger logo

SoftLedger

Source

Strengths

  • Real-time multi-entity consolidation that reflects transactions across all subsidiaries immediately rather than requiring overnight batch jobs.
  • Integrated AP/AR with vendor and customer management removes the need for a separate billing system in many mid-market deployments.
  • Cloud-native architecture with API-first design supports custom integrations, white-label embedding, and automated workflows via third-party tools.
  • Multi-currency support with per-entity currency assignment and custom exchange rate overrides for journal entries.
  • Specialized crypto accounting with NODE40 partnership handles digital asset transaction ingestion natively within the general ledger.

Weaknesses

  • Pricing is not publicly available and requires a sales conversation, making budget validation difficult before committing to an evaluation.
  • No free trial or free version limits the ability to test fit before purchase, increasing commitment risk for smaller teams.
  • Reporting flexibility is a known gap — highly customized management reports require work beyond the standard report builder, according to user reviews.
  • Limited custom field extensibility means organizations with complex operational schemas may need to store metadata outside the system.
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 SoftLedger 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

    SoftLedger: 200 requests per minute per organization; returns HTTP 429 when exceeded.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between four and six weeks for organizations with up to five Locations, under 50,000 journal lines, and no multi-currency history. Migrations with six or more entities, large multi-currency histories (over 200,000 journal lines), active bank reconciliation batches, or complex custom field schemas spanning multiple object types extend to ten to sixteen weeks because of API rate-limit chunking, exchange rate metadata extraction, DMT template configuration, and multi-wave Sandbox validation.

Adjacent paths

Related migrations to explore

Ready when you are

Move from SoftLedger.
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