Documentation Index
Fetch the complete documentation index at: https://docs.arcuserp.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
This guide explains how to migrate your existing data into Arcus using the public API. Whether you are migrating from another ERP, importing a CSV export, or writing a custom loader, the same principles apply: use the API endpoints your integration will use in production, include idempotency keys for safe retries, and import in dependency order. Estimated time: 2-4 hours for a typical dataset (under 100K records per resource type).Prerequisites
Before starting:- An Arcus entity provisioned by your account manager
- An API key with
accounts:write,products:write,orders:write,inventory:write,purchasing:write,payments:writescopes - Your source data exported to a structured format (CSV, JSON, or database dump)
- Node.js 20 or later installed locally (if using the reference migration scripts)
Migration order
Data must be imported in dependency order. Arcus enforces referential integrity; importing in the wrong order causes validation errors.| Step | Resource | Depends on |
|---|---|---|
| 1 | Locations | (none) |
| 2 | Payment Terms | (none) |
| 3 | Units of Measure | (none) |
| 4 | Product Categories | (none) |
| 5 | Accounts (customers + vendors) | Payment Terms |
| 6 | Products | Categories, UoM |
| 7 | Inventory balances | Products, Locations |
| 8 | Purchase Orders | Vendors, Products |
| 9 | Sales Orders + Invoices | Customers, Products |
| 10 | Payments | Orders |
| 11 | Returns | Orders |
Step 1: Configure your environment
ark_test_ent_...) against your test data before switching to live mode.
Step 2: Validate your source data
Before importing, validate your source records:- Required fields are non-null
- Foreign key references can be resolved (e.g. account on orders)
- Date formats are parseable (ISO 8601)
- Numeric fields are within expected ranges
Step 3: Import records
Use the API endpoints directly. Always includeIdempotency-Key on every POST so retries are safe:
source_system and source_id fields let you track the original record and detect duplicates across runs.
Step 4: Verify
After importing each resource type:- Count records returned from
GET /entities/{entity_id}/{resource}vs your source - Spot-check random records for field accuracy
- Check inventory balances against your source totals
- Check AR balance against open invoices
Resuming an interrupted migration
Use thesource_id field as a checkpoint: before inserting a record, query by source_id to check if it was already imported. If it exists, skip it. This makes your import script idempotent and safe to re-run.
Rollback
If you need to start over, records tagged with yoursource_system value can be identified and deleted. Deletion is only safe before the entity goes live; contact your account manager for guidance on large-scale rollbacks.
Getting help
- API errors: check
request_idin error responses and include it in your support ticket - Data questions: your Arcus account manager can review your import plan
- Use the in-app Help button for migration-specific support

