ERP migration
Field-level mapping, validation, and rollback between SAP S/4HANA Cloud and Acumatica. We move data and schema; workflows are rebuilt natively in Acumatica.
SAP S/4HANA Cloud
Source
Acumatica
Destination
Compatibility
9 of 12
objects map 1:1 between SAP S/4HANA Cloud and Acumatica.
Complexity
BStandard
Timeline
2–4 months
Overview
SAP S/4HANA Cloud organizes its data model around clients, company codes, and plants, with Business Partners serving as unified vendor/customer entities and Material Masters carrying rich classification hierarchies (material type, procurement type, valuation class). Acumatica uses a simpler tenant-scoped model with separate Customer and Vendor entities, Stock Items for inventory, and a single-segment GL with Cost Codes for dimensional analysis. We extract data from SAP via the S/4HANA OData API (constrained by SAP's per-entity rate limits — typically 100–5,000 records per page depending on entity), map each SAP module to its Acumatica equivalent, and load through Acumatica's REST endpoints. Workflows, approval routines, and pricing condition tables do not migrate and must be rebuilt as Acumatica automation scripts and notification rules. SAP's Flexible General Ledger (with multi-segment account codes) must be flattened to a single Acumatica GL code, with extra segment values preserved as custom fields. A sample migration of 200–500 records per major object type runs first, generating a field-level diff that you review before the full cutover commits. During cutover, a 24–48-hour delta-pickup window captures any records created or modified in SAP after the initial extraction snapshot.
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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a SAP S/4HANA Cloud object lands in Acumatica, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
SAP S/4HANA Cloud
Business Partner (SAP)
Acumatica
Customer + Vendor (Acumatica)
1:manySAP Business Partner is a single entity covering both customer and vendor roles. We split on BP role (KUNNR for customers, LIFNR for vendors) into separate Acumatica Customer and Vendor records. Where a BP carries both roles in SAP, both Acumatica entities are created and linked by the original BP number stored in Source_System_ID__c on each record.
SAP S/4HANA Cloud
Material Master (SAP)
Acumatica
Stock Item or Non-Stock Item (Acumatica)
1:1SAP Material Master carries material type (ROH, HALB, FERT, HAWA), procurement type (in-house/external/both), and valuation class. We map material type 'ROH'/'HALB'/'FERT' to Acumatica Stock Item with ValuationGroupID derived from SAP valuation class; 'DIEN'/'KMPF' map to Non-Stock Item. Basic Unit of Measure becomes Item UOM; alternate UoMs are stored in Acumatica's UoM conversion table if fewer than three exist, otherwise flagged for post-migration cleanup.
SAP S/4HANA Cloud
G/L Account (SAP)
Acumatica
Account (Acumatica)
1:1SAP Flexible General Ledger charts of accounts with up to 10 segments are flattened into a single Acumatica Account.cd3 account code. We concatenate the primary segment (typically company-code-level account number) with secondary segments using a delimiter of your choice. All additional segment values are stored in Custom_SAP_GL_Segment_Ref__c on the Acumatica Account for post-migration Cost Code assignment. Account type (balance sheet vs. P&L) is mapped from SAP's chart-type field (SATYP).
SAP S/4HANA Cloud
Cost Center (SAP)
Acumatica
Cost Code (Acumatica)
1:1SAP Cost Center (KOSTL) maps directly to Acumatica Cost Code. The SAP Cost Center hierarchy (controlling area level) is preserved as a parent-child relationship in Acumatica Cost Codes. Functional area assignments from SAP are stored in CostCodeCategory__c on the Acumatica Cost Code. Users recreate cost center-based reporting in Acumatica's Report Designer using Cost Code as the primary dimension.
SAP S/4HANA Cloud
Purchase Order / Purchase Requisition (SAP)
Acumatica
Purchase Order (Acumatica)
many:1SAP separates Purchasing Requisitions (ME51N) from Purchase Orders (ME21N) as distinct documents. Acumatica has one Purchase Orders screen that covers both planned and released orders. We map SAP PO header and line data directly; SAP requisitions without a released PO are loaded as Acumatica purchase orders in Draft status, with the original requisition number preserved in Custom_SAP_PO_Number__c. Release strategy codes are not replicated — your Acumatica admin implements approval workflows post-migration.
SAP S/4HANA Cloud
Sales Order (SAP)
Acumatica
Sales Order (Acumatica)
1:1SAP Sales Document (VA01/VA02) maps to Acumatica Sales Order with full header and line-level detail. SAP sales area (sales org / distribution channel / division) is stored as Custom_SAP_SalesArea__c on the Acumatica header. Pricing conditions from SAP (KONV) are mapped to Acumatica manual line adjustments where the number of conditions is fewer than five; complex multi-condition structures are flagged for Acumatica price manager configuration post-migration.
SAP S/4HANA Cloud
Invoice (SAP FI)
Acumatica
Bill / Invoice (Acumatica)
1:1SAP FI Invoice (FB60 for vendors, FB01 for GL direct) maps to Acumatica Bills (vendors) and Invoices (customers). Invoice line items are mapped to Acumatica bill/invoice details with account or project reference. Payment terms from SAP (ZTERM) are stored in Custom_SAP_Payment_Terms__c on the Acumatica bill; your admin configures matching Payment Terms in Acumatica's Terms editor post-migration.
SAP S/4HANA Cloud
Asset (SAP)
Acumatica
Fixed Asset (Acumatica)
1:1SAP Fixed Asset Master (AS01) maps to Acumatica Fixed Asset. Depreciation area assignments from SAP are not replicated — Acumatica calculates depreciation on its own depreciation schedule. Useful life, acquisition date, acquisition cost, and accumulated depreciation are preserved from SAP fields ANLA-aktiv, AKTFN, and AFAVC. Asset class (ANLA-ANLKL) is stored as Custom_SAP_Asset_Class__c on the Acumatica asset.
SAP S/4HANA Cloud
Project (SAP PS)
Acumatica
Project (Acumatica)
1:1SAP Project System (CJ01) projects map to Acumatica Projects where the SAP PS module is active. WBS elements map to Acumatica Project Tasks with the WBS hierarchy preserved as task parent-child relationships. Network activities map to Project Tasks of type Labor. Revenue and cost planning lines are stored in Custom_SAP_Planning_Data__c for reference; your Acumatica project accountant rebuilds budget tracking within Acumatica's Project Budget module.
SAP S/4HANA Cloud
Custom Fields / Appends (SAP)
Acumatica
Custom Fields (Acumatica)
1:1SAP Custom Fields added via Custom Fields and Logic (SAP S/4HANA Cloud) or customer-specific appends are exported with the standard entity. Each custom field requires an equivalent Acumatica custom field created in the Customization Project editor before migration runs. Custom field labels and help text from SAP are exported as reference documentation for your Acumatica admin during field creation. Fields on SAP-delivered tables that cannot be extended require a custom Acumatica screen or note field.
SAP S/4HANA Cloud
Address (SAP BP)
Acumatica
Address (Acumatica Customer / Vendor)
many:1SAP Business Partner can hold multiple addresses per role (headquarters, purchasing, remittance). Acumatica stores one primary address per Customer or Vendor. We map the SAP address flagged as the 'Primary' address for each role to the Acumatica primary address. Any additional SAP addresses are stored as a JSON-formatted reference in Custom_SAP_Additional_Addresses__c on the Acumatica entity, available for manual distribution to contacts or shipping addresses post-migration.
SAP S/4HANA Cloud
Material Valuation (SAP)
Acumatica
Stock Item ValuationGroupID (Acumatica)
1:1SAP Valuation Class controls which G/L accounts are posted for inventory transactions. Acumatica uses ValuationGroupID on Stock Item to determine valuation method (Standard, Average, FIFO). We map SAP valuation class to Acumatica ValuationGroupID and store the original SAP valuation class in Custom_SAP_Valuation_Class__c on the Stock Item. Where SAP maintains multiple parallel valuations per material, the primary (company-code-level) valuation is used; secondary valuations are preserved in the custom field reference for cost-audit purposes.
| SAP S/4HANA Cloud | Acumatica | Compatibility | |
|---|---|---|---|
| Business Partner (SAP) | Customer + Vendor (Acumatica)1:many | Fully supported | |
| Material Master (SAP) | Stock Item or Non-Stock Item (Acumatica)1:1 | Fully supported | |
| G/L Account (SAP) | Account (Acumatica)1:1 | Fully supported | |
| Cost Center (SAP) | Cost Code (Acumatica)1:1 | Fully supported | |
| Purchase Order / Purchase Requisition (SAP) | Purchase Order (Acumatica)many:1 | Fully supported | |
| Sales Order (SAP) | Sales Order (Acumatica)1:1 | Fully supported | |
| Invoice (SAP FI) | Bill / Invoice (Acumatica)1:1 | Fully supported | |
| Asset (SAP) | Fixed Asset (Acumatica)1:1 | Fully supported | |
| Project (SAP PS) | Project (Acumatica)1:1 | Fully supported | |
| Custom Fields / Appends (SAP) | Custom Fields (Acumatica)1:1 | Fully supported | |
| Address (SAP BP) | Address (Acumatica Customer / Vendor)many:1 | Fully supported | |
| Material Valuation (SAP) | Stock Item ValuationGroupID (Acumatica)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.
SAP S/4HANA Cloud gotchas
Clean Core blocks in-app customizations on Public Cloud
OData API rate limits are per-endpoint, not tenant-wide
RISE/GROW contracts are nearly impossible to unbundle
In-memory data quality problems surface immediately post-go-live
Quarterly forced updates can break custom integrations
Acumatica gotchas
API user licenses cap concurrent sessions and request throughput
Multi-tenant filtering requires CompanyID awareness
Custom fields require separate discovery before field mapping
Notes and attachments use a separate linked table structure
Implementation timelines frequently run 3–9 months end-to-end
Pair-specific challenges
Migration approach
Inventory all SAP entities and build the field mapping specification
We connect to your SAP S/4HANA Cloud tenant via read-only OAuth credentials and run a schema inventory across all active modules (FI, CO, MM, SD, PP, PS where active). This produces a list of every entity, field, and active custom field in use — not just the fields that have data. We compare the SAP field list against the Acumatica default schema to identify gaps that require custom field creation. The output is a Field Mapping Specification document that your Acumatica admin reviews and approves before we create a single custom field or load a single record. This step typically runs 2–3 weeks and includes a working session with your SAP functional lead and your Acumatica admin to resolve ambiguous mappings (particularly GL segment flattening and valuation class decisions).
Create Acumatica custom fields and configure GL structure
With the approved Field Mapping Specification in hand, we create all required custom fields in your Acumatica tenant before any data is loaded. This includes custom fields on Customer, Vendor, Stock Item, Non-Stock Item, Account, Cost Code, Purchase Order, Sales Order, and any other entity identified in the mapping. We also configure the GL account segment structure — flattening multi-segment SAP accounts into single Acumatica account codes per the mapping agreed in step 1. Branch structure is configured to reflect the SAP company code hierarchy. This step is sequential: Acumatica custom fields must exist before we can load data that references them. We deliver a custom-field-creation checklist so your admin can pre-stage any fields if desired.
Extract master data in dependency order and validate referential integrity
We extract SAP master data in the order required by Acumatica's foreign-key constraints: Customers and Vendors first (no dependencies), then Stock Items (no dependencies), then G/L Accounts and Cost Codes, then transactional documents (which reference masters). Each extraction uses SAP OData API paginated reads with rate-limit-aware throttling. We validate foreign keys as we extract — any SAP record that references a missing parent (for example, a PO line referencing a material not yet loaded) is flagged in the extraction log and resolved before the load file is built. This prevents foreign-key violations that would stall the Acumatica import. The extraction log is shared with you for a 48-hour review before the load phase begins.
Run sample migration and generate field-level diff
A representative sample of 200–500 records per major object type (typically 1,000–2,500 total records) is loaded into Acumatica using the production field mappings. We generate a field-level diff comparing every populated source field against the corresponding Acumatica field, highlighting any value that was truncated, transformed, or omitted. You receive a diff report organized by entity so your SAP functional lead and Acumatica admin can verify that critical fields mapped as expected before we commit to the full load. Known transformation gaps (GL segment flattening, valuation class, additional SAP addresses) are pre-flagged in the diff report with references to the mapping decisions documented in step 1. Sample validation typically runs 5–7 business days including your review time.
Execute full migration with delta-pickup window and audit logging
After you sign off on the sample diff, we execute the full migration against your Acumatica production tenant. The migration runs in waves by entity in the same dependency order as the extraction. A delta-pickup window (typically 24–48 hours after the initial extraction snapshot) captures any records created or modified in SAP during the cutover period — your team continues working in SAP throughout. Every operation is written to an audit log: record count per entity, transformation applied, any field that received a default value because the source was blank, and any record that failed to load with the error returned by the Acumatica API. If reconciliation identifies missing or incorrectly mapped records, one-click rollback reverts the Acumatica tenant to its pre-migration state so the mapping can be corrected and the full load re-run.
Platform deep dives
SAP S/4HANA Cloud
Source
Strengths
Weaknesses
Acumatica
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across SAP S/4HANA Cloud and Acumatica.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
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
SAP S/4HANA Cloud: API-specific limits published per endpoint; Journal Entry API recommends max 15 parallel sync calls, 30 async; no tenant-wide X req/sec figure is published.
Data volume sensitivity
SAP S/4HANA Cloud exposes a bulk API — large-volume migrations stream efficiently.
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 SAP S/4HANA Cloud to Acumatica migration scoping. Not seeing yours? Book a call.
Walk through your SAP S/4HANA Cloud to Acumatica migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave SAP S/4HANA Cloud
Other ways to arrive at Acumatica
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.