ERP migration
Field-level mapping, validation, and rollback between Fulfil and Acumatica. We move data and schema; workflows are rebuilt natively in Acumatica.
Fulfil
Source
Acumatica
Destination
Compatibility
12 of 12
objects map 1:1 between Fulfil and Acumatica.
Complexity
BStandard
Timeline
72–96 hours
Overview
Fulfil.io models its core data as Customers, Vendors, Items, Sales Orders, and Purchase Orders with an open API for extraction. Acumatica organizes equivalent data under BAccount (shared for Customers and Vendors), INItemMaster (Stock and Non-Stock Items), SOOrder (Sales Orders), and POOrder (Purchase Orders). The migration runs against Fulfil's REST API to pull records in dependency order — Vendors and Stock Items before Purchase Orders, Customers before Sales Orders — then loads them into Acumatica through its OData endpoints using the correct DAC types. Fulfil's document attachments re-upload as Acumatica Files linked to the corresponding record. We do not migrate Fulfil automations, workflows, or saved searches — those require Acumatica-native rebuild. The migration uses scoped read access on Fulfil with a delta-pickup window capturing any in-flight records during cutover. Consumption-based licensing in Acumatica means teams pay for resources used, not per user, which is a structural difference from Fulfil's platform pricing model.
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 Fulfil 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.
Fulfil
Customer
Acumatica
BAccount + Customer (CR303000)
1:1Fulfil Customer maps to Acumatica BAccount record with Customer class. The BAccount holds the entity name and address; the Customer DAC (CR303000) holds credit terms and statements. Primary shipping address from Fulfil becomes the DefAddress record on BAccount. We match by customer ID or email for de-duplication against existing Acumatica BAccount records.
Fulfil
Vendor
Acumatica
BAccount + Vendor (AP303000)
1:1Fulfil Vendor maps to Acumatica BAccount with Vendor class. The AP303000 Vendor screen holds payment terms, tax zone, and remittance address. Primary address from Fulfil becomes DefAddress on the vendor BAccount. Unmatched vendors are flagged before load so your AP team can approve or merge.
Fulfil
Item (Stock)
Acumatica
INItemMaster (Stock Item) — IN202500
1:1Fulfil Stock items map to Acumatica INItemMaster with Item Type = Stock Item. Unit of Measure, lead time, and warehouse defaults come from Fulfil's item record. Lot/Serial settings transfer based on Fulfil's tracking flags. The migration creates the item header; on-hand quantities load via INReplenishment or adjustment.
Fulfil
Item (Non-Stock)
Acumatica
INItemMaster (Non-Stock Item) — IN203000
1:1Fulfil Non-Stock items map to Acumatica Non-Stock items used for services or freight charges. The CuryID defaults from Fulfil's currency setting. These items skip inventory posting but appear on Purchase and Sales orders. They can be assigned default expense accounts for accurate cost allocation.
Fulfil
Item (Kit/Assembly)
Acumatica
BOM and Material Variants — AM201000 / AM208000
1:1Fulfil Kit items become Acumatica BOMs with a template part and components from the kit structure. BOM revision defaults to the kit version date. Component quantities and scrap factors transfer from Fulfil's kit definition. Multiple BOM levels map to multi-level AM208000 structures.
Fulfil
Sales Order
Acumatica
SOOrder + SOLine — SO301000
1:1Fulfil Sales Orders map to Acumatica SOOrder with status preserving the source state (Open, Completed, Cancelled). Open orders load with Hold = false so they appear in Acumatica's fulfillment workflow. Closed orders load as historical records for reporting continuity. Line items create SOLine child records linked by OrderNbr.
Fulfil
Purchase Order
Acumatica
POOrder + POLine — PO301000
1:1Fulfil Purchase Orders map to Acumatica POOrder with lines as POLine child records. Vendor ID resolves to the matching Acumatica vendor BAccount. Expected and Promised dates transfer to request and ship dates on each line. Open POs load as active; closed POs load as completed for audit history.
Fulfil
Inventory Adjustment
Acumatica
INAdjustment — IN305000
1:1Fulfil inventory adjustments map to Acumatica INAdjustment documents with line-level inventory ID, warehouse, and quantity delta. Each adjustment reference links to Fulfil's adjustment reason code stored as a note for audit trail. They can also be imported in bulk using CSV for rapid processing.
Fulfil
Warehouse / Location
Acumatica
Warehouse + INLocation — IN204000 / IN202000
1:1Fulfil Warehouses map to Acumatica Warehouse records. Location names within each warehouse map to INLocation with LocationCD matching Fulfil's location code. Multi-bin setups create nested INLocation records per warehouse. Additionally, each location can be flagged as active or inactive for selective picking.
Fulfil
Document Attachment
Acumatica
Files + NoteDoc — SM202520
1:1Fulfil file attachments on customers, vendors, items, and orders re-upload as Acumatica Files linked by NoteID. Original file names and MIME types are preserved. Files attach to the Acumatica record matching the source entity type and ID. They can also be accessed via the Files screen.
Fulfil
Customer Note
Acumatica
Note — CR199999 or SO Note Lines
1:1Fulfil customer notes and order notes migrate as Acumatica Notes attached to the corresponding BAccount or SOOrder record via NoteID. Timestamps and author info are preserved for audit continuity. They also support tagging for simple retrieval and can be exported to PDF for compliance.
Fulfil
Purchase Receipt
Acumatica
PORceipt — PO302000
1:1Fulfil inbound shipment receipts map to Acumatica PORceipt with vendor and PO reference preserved. Line-level inventory ID and received quantity transfer; variance between ordered and received qty surfaces as receipt-level notes. These notes help reconcile short shipments and can be reviewed in the PO Receipts screen.
| Fulfil | Acumatica | Compatibility | |
|---|---|---|---|
| Customer | BAccount + Customer (CR303000)1:1 | Fully supported | |
| Vendor | BAccount + Vendor (AP303000)1:1 | Fully supported | |
| Item (Stock) | INItemMaster (Stock Item) — IN2025001:1 | Fully supported | |
| Item (Non-Stock) | INItemMaster (Non-Stock Item) — IN2030001:1 | Fully supported | |
| Item (Kit/Assembly) | BOM and Material Variants — AM201000 / AM2080001:1 | Fully supported | |
| Sales Order | SOOrder + SOLine — SO3010001:1 | Fully supported | |
| Purchase Order | POOrder + POLine — PO3010001:1 | Fully supported | |
| Inventory Adjustment | INAdjustment — IN3050001:1 | Fully supported | |
| Warehouse / Location | Warehouse + INLocation — IN204000 / IN2020001:1 | Fully supported | |
| Document Attachment | Files + NoteDoc — SM2025201:1 | Fully supported | |
| Customer Note | Note — CR199999 or SO Note Lines1:1 | Fully supported | |
| Purchase Receipt | PORceipt — PO3020001: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.
Fulfil gotchas
Reporting export requires API enumeration rather than bulk dumps
Custom product attributes are order-line metadata, not a distinct object
No publicly documented API rate limits or throttle headers
Purchase order receipts must be migrated before vendor closeout
Multi-entity financials require manual chart of accounts mapping
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 Fulfil API scope and dependencies
Before data extraction begins, FlitStack queries Fulfil's API to discover all active entities: customers, vendors, items, open orders, and warehouses. We identify circular references (items used as BOM components that are also sellable), duplicate vendor-customer matches, and gaps in required foreign keys. This produces a migration dependency graph that sequences the load correctly — Vendors before Purchase Orders, Customers before Sales Orders, Items before any transaction lines.
Build Acumatica schema foundation
Acumatica requires the BAccount entity to exist before Customer and Vendor records can attach. FlitStack generates a schema setup plan covering: BAccount class assignments, Item Type configuration (Stock vs Non-Stock), Warehouse activation, and any Usr-prefixed custom fields needed to preserve Fulfil metadata. Your Acumatica admin or VAR creates the schema before the migration run; we deliver a pre-flight checklist to confirm readiness.
Decompose Kits and build BOM structures
For each Fulfil Kit item, FlitStack generates an Acumatica BOM with a default revision. The kit's component lines become BOMLine child records with the same quantity and UOM. Multi-level kits are built as nested BOM structures using the parent-component relationship from Fulfil. The BOM template revision is set to Active at migration time so Acumatica's Material Issues and Work Orders can reference it immediately.
Run sample migration with field-level diff
A representative slice — typically 100–500 records spanning customers, vendors, items, open sales orders, and purchase orders — migrates first. FlitStack generates a field-level diff showing source values from Fulfil against destination values written to Acumatica. You verify Customer BAccount lookups, InventoryID resolution by SKU, BOM line completeness, and order status mapping. Approval of the sample unlocks the full migration run.
Execute full migration with delta-pickup window
The full load runs against Acumatica's OData endpoints, creating BAccount, INItemMaster, SOOrder, and POOrder records in dependency order. A delta-pickup window of 24–48 hours captures any records created or modified in Fulfil during the cutover window. All operations are logged to an audit trail, and one-click rollback reverts the Acumatica instance to its pre-migration state if reconciliation fails. This ensures data consistency and minimizes downtime.
Platform deep dives
Fulfil
Source
Strengths
Weaknesses
Acumatica
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 3 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 Fulfil and Acumatica.
Object compatibility
3 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
Fulfil: Not publicly documented.
Data volume sensitivity
Fulfil doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Fulfil to Acumatica migration scoping. Not seeing yours? Book a call.
Walk through your Fulfil 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 Fulfil
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.