ERP migration

Migrate from AFAS to Epicor Prophet 21

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

AFAS logo

AFAS

Source

Epicor Prophet 21

Destination

Epicor Prophet 21 logo

Compatibility

92%

12 of 13

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

Complexity

BStandard

Timeline

6-10 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from AFAS to Epicor ERP is a cross-platform data migration with no standard export path, requiring careful schema inventory, tax code preservation, and BOM-level translation for manufacturing organizations. AFAS stores financial data across GL, AP, and AR modules, HR and payroll in personnel administration tables, and operational data in inventory and project ledgers. AFAS installations are effectively unique per tenant because of extensive custom field and table extensibility, which means we must inventory every custom field and user-defined table before extraction. Epicor ERP targets mid-market discrete manufacturers and distributors with deep shop-floor, MES, APS, and quality modules; organizations moving from AFAS to Epicor are typically leaving the Benelux-focused Dutch-localized AFAS model for global manufacturing depth. We extract via the AFAS REST API (which requires partner enrollment), validate Dutch VAT codes on every invoice line, translate AFAS project and time-entry records to Epicor Project and Labor, and load via Epicor's REST and bulk APIs with parent-record lookup resolution. Workflows, approval chains, and automated routing do not migrate as data; we deliver a written inventory of every active AFAS workflow for the customer's Epicor administrator to rebuild in Epicor Business Process Management (BPM).

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

AFAS logo

AFAS

What's pushing teams away

  • Pricing is opaque and requires direct sales engagement with AFAS or a partner, making it difficult for organizations to compare cost against competing ERP platforms during evaluation.
  • Smaller organizations or those with international operations find AFAS less suitable as it was designed primarily for Dutch and Belgian business practices and regulatory environments.
  • The platform's deep customization capabilities mean that every AFAS installation is effectively unique, making it costly and time-consuming to change systems later, which traps some customers despite frustration.
  • Users on G2 note that the UI and reporting tools lag behind modern SaaS ERP alternatives, with dashboards that require significant manual configuration to feel useful.
  • Integration with non-Dutch third-party applications can be limited, forcing organizations to build and maintain custom middleware for ecosystem tools that more globally-oriented ERPs offer natively.

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

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

AFAS

Chart of Accounts

maps to

Epicor Prophet 21

GL Account (GLAccount)

1:1
Fully supported

AFAS stores the Dutch chart of accounts with statutory account codes, cost-center mappings, and BTW tax control accounts in its financial ledger tables. We extract the full account structure and map each AFAS account code to an Epicor GLAccount with the matching Segment values. Dutch statutory account codes are preserved as a custom GLAccount field for audit compliance. Account type (Asset, Liability, Equity, Revenue, Expense) maps to Epicor GLAccount Type.

AFAS

Customer

maps to

Epicor Prophet 21

Customer

1:1
Fully supported

AFAS CRM module customers with contact details, addresses, payment terms, and Dutch VAT registration numbers map to Epicor Customer. The BTW registration number (KvK/BTW) migrates to the Tax ID field. We preserve the AFAS customer classification codes and map them to Epicor Customer Group for reporting segmentation. Open AR balances migrate as Epicor AR Invoice records with aging preserved against the correct Customer and Terms of Payment.

AFAS

Supplier

maps to

Epicor Prophet 21

Vendor

1:1
Fully supported

AFAS procurement module suppliers map to Epicor Vendor records. Dutch BTW registration numbers on suppliers migrate to the Vendor Tax ID. Payment terms, bank details, and purchase address records transfer to Epicor Vendor with TermsCode and RemitTo mapping. Open AP balances from AFAS become Epicor AP Invoice records linked to the correct Vendor.

AFAS

Sales Invoice and Purchase Invoice

maps to

Epicor Prophet 21

AR Invoice and AP Invoice

1:1
Fully supported

AFAS invoices with line items, BTW tax codes, and payment references map to Epicor AR Invoice (CustomerInvoice) and AP Invoice (VendorInvoice). Each line carries the Dutch BTW rate from AFAS, which we map to the corresponding Epicor Tax connectivity: Epicor Tax Service or a manual tax code table if the customer uses local Dutch VAT configuration. Invoice status (Open, Paid, Void) is preserved for reconciliation against the general ledger.

AFAS

Credit Note

maps to

Epicor Prophet 21

AR Credit Memo and AP Credit Memo

1:1
Fully supported

AFAS credit notes map to Epicor AR CreditMemo and AP CreditMemo records. The linked original invoice reference is preserved as a custom field for traceability. BTW reversal codes (verlegd or intracommunautair) transfer to Epicor's tax treatment fields to maintain correct Dutch VAT reporting.

AFAS

Item / Inventory

maps to

Epicor Prophet 21

Part

1:1
Fully supported

AFAS inventory Items with stock levels, warehouse locations, and pricing tiers map to Epicor Part records. We map AFAS Item classes to Epicor Part Unit of Measure classes, stock levels to PartBin quantities per warehouse, and reorder thresholds to Epicor PartRpl records. Active and inactive status from AFAS carries forward as Part InActive flag. Parts with BOM structures map to Epicor PartBill records with multi-level explosion.

AFAS

Bill of Materials

maps to

Epicor Prophet 21

PartBill (BOM Header) + PartMtl (BOM Detail)

1:1
Fully supported

AFAS BOM structures with parent-part and component relationships map to Epicor PartBill (one record per BOM per revision) and PartMtl (one record per component). We preserve Phantom BOM flags, scrap percentages, and material burden rates. Operation routing from AFAS (where present) maps to Epicor PartOpDtl and JobOper records for manufacturing operations. BOM revision dates from AFAS carry into Epicor's revision tracking.

AFAS

Project

maps to

Epicor Prophet 21

Project

1:1
Fully supported

AFAS project management records with project codes, descriptions, start and end dates, and budget allocations map to Epicor Project. We map AFAS project type (internal, customer-facing, time-and-materials, fixed-price) to Epicor ProjectType and ProjectPhase codes. AFAS project custom fields (which are common in established AFAS installations) map to Epicor Project UDF fields pre-created during schema design.

AFAS

Time Entry

maps to

Epicor Prophet 21

LaborDtl

1:1
Fully supported

AFAS time entries linked to Projects map to Epicor LaborDtl records. Employee, project, phase, date, hours, and labor type transfer to Epicor with the JobNum reference resolved at migration time. AFAS overtime flags and cost-center assignments map to LaborDtl overtime and expense code fields. Time entries without a project reference migrate as direct labor against the default work center.

AFAS

Employee / Personnel Record

maps to

Epicor Prophet 21

Employee

1:1
Fully supported

AFAS employee records with personal details, contract type, department, and employment status map to Epicor Employee. We map AFAS personnel number to Epicor EmployeeNum, employment type (vast, tijdelijk, oproep) to Employee records, and department codes to Epicor ShopFloor Labor records. Active employment status determines whether the employee record is created as active or inactive in Epicor.

AFAS

Payroll History

maps to

Epicor Prophet 21

Payroll (if Epicor Payroll module active) or GL Journal Entries

1:many
Fully supported

AFAS payroll journal entries for the last 3-7 years (agreed scope with the customer) map either to Epicor Payroll records if the Epicor Payroll module is licensed, or to GL JournalEntry records if payroll is managed outside Epicor. Dutch payroll tax codes (loonheffing, sociale verzekeringen) are preserved as memo fields to satisfy Dutch tax authority documentation requirements. We scope payroll history with the customer to balance compliance obligations against migration data volume.

AFAS

Bank and Cash Account

maps to

Epicor Prophet 21

BankFee and CashFlow

1:1
Fully supported

AFAS bank account configurations with account numbers, current balances, and reconciliation data map to Epicor cash management records. We preserve bank account numbers and current period balances from AFAS. Open bank reconciliation entries from AFAS map to Epicor CashFlow or BankRec records to maintain audit trail continuity into the first Epicor close period.

AFAS

Document and Attachment

maps to

Epicor Prophet 21

DocumentRev and Attachment (via Epicor Attachment Management)

1:1
Fully supported

AFAS documents linked to transactional records (invoices, projects, employees) are extracted from AFAS's internal document storage and loaded into Epicor's document management system or as Epicor Attachment records linked to the corresponding Part, Customer, Vendor, Project, or Employee record. Some AFAS document formats require conversion (PDF preferred for Epicor attachment compatibility). Document metadata (date, author, type) transfers as Epicor DocField values.

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.

AFAS logo

AFAS gotchas

High

Custom fields and user-defined tables vary per installation

High

API access requires AFAS partner enrollment

Medium

Workflow logic does not migrate as data

Medium

Dutch fiscal and tax data must be preserved accurately

Low

Historical payroll data volumes can be large

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

  • AFAS API access requires partner enrollment before extraction begins

    The AFAS REST API is not self-service; organizations must register as an AFAS partner and obtain credentials through the partner portal before any automated extraction can begin. This adds lead time of two to four weeks to the migration project before data extraction can start. We coordinate with the customer's AFAS account manager or an existing AFAS partner to expedite partner access, or we work with the customer's current AFAS partner if one is engaged. If the customer does not have an AFAS partner relationship, we help them initiate partner enrollment before scheduling the migration discovery session.

  • Every AFAS installation has a unique schema due to custom fields

    AFAS allows administrators to extend standard objects with custom fields and create entirely new user-defined tables. This means no two AFAS installations share the same schema. Before extraction, we must inventory every custom field, custom object, and user-defined table in the specific customer's environment. Failing to do this results in data loss for any records that use non-standard fields, which is common in established AFAS deployments with years of configuration. We deliver a schema inventory worksheet during discovery and map every custom field before extraction begins.

  • Dutch BTW tax codes must transfer with exact fidelity to the destination

    AFAS stores Dutch VAT rates, BTW configurations, and fiscal account mappings that govern how invoices are coded and reported to the Dutch tax authority. During migration, we must preserve exact tax code assignments on every invoice line. Any remapping of BTW codes at the destination requires sign-off from the customer's accounting team and a Dutch tax advisor to confirm that verlegd BTW, intracommunautaire levering, and standard-rate BTW treatment aligns with current Dutch tax authority requirements. We do not remap tax codes without explicit customer authorization.

  • Epicor Kinetic customizations require upgrade-path documentation

    Epicor Kinetic supports extensive customization through BPMs (Business Process Management), user-defined fields, and dashboard modifications. However, Epicor user forum discussions and implementation partner case studies confirm that Kinetic customizations built for on-premises or prior cloud versions can break during cloud upgrade passes. We document all migrated custom fields and BPMs as part of the migration handoff so the customer's Epicor administrator has a complete change-log for every Kinetic upgrade cycle.

  • AFAS Workflows and approval chains do not migrate as data

    AFAS workflows encode approval chains, conditional routing, and automated actions across HR, finance, and operations. These are platform-configured business processes, not records. We do not migrate workflows; they must be redesigned in Epicor BPM. We extract workflow configurations as documentation with process maps, identifying which AFAS workflows are active and mapping them to equivalent Epicor BPM triggers. The customer's Epicor administrator rebuilds workflows in Epicor Kinetic post-migration.

Migration approach

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

  1. Discovery and AFAS schema inventory

    We audit the customer's AFAS environment across all active modules: GL, AP, AR, inventory, HR and payroll, projects, and any custom tables or fields. We document the complete schema including every user-defined field and table, the current Dutch BTW tax code configuration, the AFAS workflow inventory, and the API credential status (partner enrollment or partner enrollment initiation). We pair this with an Epicor edition assessment: Epicor Kinetic (cloud-first, browser-based Kinetic UI) versus Epicor ERP 10 (on-premises or hosted), and whether Epicor Payroll is in scope for the destination license.

  2. Epicor schema design and tax code preparation

    We design the destination Epicor schema based on the AFAS schema inventory. This includes provisioning GL Accounts, Tax codes (configured for Dutch BTW rates), Customers, Vendors, Parts, PartBill structures, and Project records. We create user-defined fields on Epicor objects to receive AFAS custom fields that have no direct Epicor equivalent. Dutch BTW tax codes are pre-loaded into Epicor's tax service or manual tax table with rates verified against the customer's AFAS configuration before any invoice data is loaded.

  3. Sandbox migration and reconciliation

    We run a full migration into an Epicor test environment using production-like data volume. The customer's finance team and Epicor administrator reconcile record counts, spot-check sample invoices against AFAS source records, verify BTW treatment on invoice lines, and validate project and BOM structures. This is also the validation point for any Epicor BPM rebuild decisions. Mapping corrections are logged and fixed before production migration begins. No production migration proceeds without a signed reconciliation report from the customer's finance lead.

  4. Master data migration in dependency order

    We load master data in dependency order: GL Accounts (foundation for all financial records), Tax codes (required for invoice lines), Bank and Cash accounts, Customers and Vendors, Parts with stock levels, BOM structures (Parts with PartBill), Projects with phase structures. Each phase emits a row-count and balance reconciliation report. Parent-record lookups (Customer on AR Invoice, Vendor on AP Invoice, Part on PartBin) are resolved before each phase commit so referential integrity holds at every checkpoint.

  5. Transactional data and payroll history migration

    Open and historical invoices, credit notes, and project transactions load after master data is validated. Invoice BTW codes are verified against the Epicor tax table at line level before insert. Time entries and labor detail records load with project and phase references resolved. Payroll history (if in scope) loads as either Epicor Payroll records or GL JournalEntry records depending on the destination license. All transactional loads use Epicor's bulk API endpoints with batch chunking, error logging, and retry logic for records that fail due to validation rule violations.

  6. Cutover, validation, and workflow handoff

    We freeze AFAS write access during the cutover window, run a final delta migration of any records modified during the migration run, and validate Epicor trial balance against the AFAS closing balance. We deliver the AFAS workflow inventory document and BPM rebuild guide to the customer's Epicor administrator. We support a one-week hypercare window where we resolve any reconciliation discrepancies identified by the finance or operations team. We do not rebuild AFAS workflows as Epicor BPMs inside the migration scope; that is a separate engagement for the customer's Epicor administrator or implementation partner.

Platform deep dives

Context on both ends of the pair

AFAS logo

AFAS

Source

Strengths

  • Integrated ERP, HR, and payroll under one vendor eliminates synchronization between separate finance and HR systems.
  • Built-in Dutch and Belgian regulatory compliance for payroll tax, fiscal reporting, and statutory filings.
  • Customizable workflow engine lets functional staff create approval processes without code.
  • Established Benelux partner ecosystem provides local implementation and support options.
  • AFAS Profit is available as on-premises, hosted, or SaaS deployment to suit different data-residency requirements.

Weaknesses

  • Pricing is not publicly published, requiring a sales conversation before any cost evaluation can begin.
  • The platform is heavily localized to Dutch business practices, creating friction for international or multilingual organizations.
  • Custom field and table extensibility means every AFAS installation diverges from the standard data model, increasing migration complexity.
  • Modern UX and self-service reporting lag behind newer cloud-native ERP competitors.
  • Limited self-service API access requires partner enrollment, restricting independent integration development.
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 AFAS 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

    AFAS: Not publicly documented in AFAS public materials.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations land between six and ten weeks for organizations with under 5,000 customers, 15,000 inventory items, no multi-level BOMs, and a scoped payroll history (3 years). Migrations with complex BOM structures, hundreds of thousands of historical invoice lines, extensive AFAS custom tables, or payroll spanning 7 years move to fourteen to twenty-two weeks. The AFAS partner enrollment step adds two to four weeks of lead time before extraction begins, which is why we initiate partner access as early as possible in the engagement.

Adjacent paths

Related migrations to explore

Ready when you are

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