eveXso Integration Guide
One web service runs the warehouse, the mobile app, and every integration. These steps show how to call it.
eveXso is API first
The web portal, the mobile app, and any system you connect all use the same REST API. That is how eveXso controls the process and keeps the data consistent. There is one address. You POST https://global.evexso.com and name the work in the body with entity and action.
sales_order with action import is not a separate URL. It is those two fields on that same call, with the order inside data.items.
There are more than 1,200 actions, and the list keeps growing. A printed catalogue would be out of date the day it was written. Dave is the live specification. Once your eveXso site is running, open Dave and ask how to do the thing you need. He will name the entity and the action, explain the request and the response, what each element means, and the checks eveXso runs before it accepts the call.
The steps below are starters for a typical connection. When Dave and a starter disagree, follow Dave.
POST https://global.evexso.com
Content-Type: application/json
x-api-key: YOUR_API_KEY
X-Site-ID: YOUR_SITE_ID
{
"entity": "sales_order",
"action": "import",
"data": { "items": [ { } ] }
}Getting Connected
Obtain your API credentials and test your first connection to eveXso.
What You Need
- API Key: Create it in eveXso on Admin, Integration, Connect your own system. The key is locked to the site you are in.
- Site ID: The same site code, sent as the X-Site-ID header
- Environment: Production is https://global.evexso.com. A UAT site uses https://global-beta.evexso.com
Choose Your Testing Environment
API Playground
Test APIs in your browser with live responses and ERP-specific code generation
Open PlaygroundAsk Dave
These steps are starters. In eveXso, ask Dave for the inputs and validations of the action you are calling.
Open the wizardTest Your Connection
Call warehouse/list to verify the key. Do not send a user id. The key is the login.
POST https://global.evexso.com
Content-Type: application/json
x-api-key: YOUR_API_KEY
X-Site-ID: YOUR_SITE_ID
{
"entity": "warehouse",
"action": "list",
"data": {}
}Setup Warehouses & Locations
Define your warehouse structure including storage groups, zones, and pick faces.
Location Hierarchy
eveXso supports a flexible 4-level location hierarchy. You can use all levels or just what you need:
Area
Top level (e.g., "WAREHOUSE", "YARD")
Zone
Zones within area (e.g., "A", "B", "COOL-ROOM")
Location
Specific locations (e.g., "A01", "B12")
Slot (Optional)
Pallet positions within a location
Define Warehouse
Create your warehouse record with address details.
entity warehouse, action checkDefine Location Types
Set up your location hierarchy levels (required for locations).
entity warehouse_location_type, action checkCreate Locations
Create your actual storage locations, pick faces, and packing areas.
entity warehouse_location, action checkImport Inventory
Import your product catalog with all tracking, packaging, and warehouse information.
Important: Complete Inventory Setup
Each inventory item requires multiple API calls to be fully configured. Follow the order below:
- inventory - Core product information
- inventory_stocking_factor - At least ONE with pack_size = 1 (required)
- inventory_warehouse_information - Warehouse-specific settings
- inventory_dangerous_goods_information - DG/Hazmat data (if applicable)
- inventory_lookup - Barcodes and alternate codes
Core Inventory Record
Create the main product record with description, category, and inventory type.
entity inventory, action checkView Example
{
"entity": "inventory",
"action": "check",
"data": {
"items": [
{
"inventory_code": "WIDGET-01",
"display_code": "WIDGET-01",
"description": "Widget 100mm",
"description_warehouse": "Widget 100mm",
"active": true,
"sale_unit": "EA",
"purchase_unit": "EA"
}
]
}
}Stocking Factors (Packaging)
⚠️ CRITICAL: You MUST create at least ONE stocking factor with pack_size = 1. This is the base unit.
Define how products are packaged (EA, BOX, PALLET, etc.). Create multiple stocking factors for different packaging levels.
entity inventory_stocking_factor, action checkView Example
{
"entity": "inventory_stocking_factor",
"action": "check",
"data": {
"items": [
{
"inventory_code": "WIDGET-01",
"unit_of_measure": "EA",
"pack_size": 1,
"pick_type_id": 1,
"random": false,
"height_cm": 10,
"width_cm": 10,
"depth_cm": 10,
"weight_kg": 0.4
}
]
}
}Warehouse Information
Set warehouse-specific settings like pick face location and average cost.
entity inventory_warehouse_information, action checkDangerous Goods (Optional)
If your product is hazardous, include DG information for compliance.
entity inventory_dangerous_goods_information, action checkBarcodes & Lookups
Add GS1 barcodes (AI 01 for GTIN), part numbers (AI 240/241), and alternate lookup codes.
entity inventory_lookup, action checkView Example
{
"items": [
{
"inventory_code": "WIDGET-001",
"lookup_code": "9312345678901",
"gs1_ai": "01",
"description": "EAN Barcode"
},
{
"inventory_code": "WIDGET-001",
"lookup_code": "SUPP-WIDGET-01",
"gs1_ai": "240",
"description": "Supplier Part Number"
}
]
}Import Customers
Create customer records with delivery locations (supply locations).
Two API Calls Required
Customers require both a customer record (basic info) and one or more supply_location records (delivery addresses).
Create Customer Record
Create the main customer record with name and basic information.
entity customer, action checkCreate Supply Locations (Delivery Addresses)
Add one or more delivery locations for each customer. Each branch/site gets its own supply location.
entity supply_location, action checkView Example
{
"entity": "supply_location",
"action": "check",
"data": {
"items": [
{
"entity": "customer",
"entity_key": "ACME",
"supply_location_code": "ACME-MAIN",
"supply_location_name": "Acme head office",
"address_1": "100 Example Street",
"suburb": "Perth",
"state": "WA",
"postcode": "6000",
"country": "AU"
}
]
}
}Import Suppliers
Create supplier records with their locations (for receiving goods).
Same Pattern as Customers
Suppliers work exactly like customers - you need both a supplier record and supply_location records.
Create Supplier Record
Create the main supplier record.
entity supplier, action checkCreate Supply Locations
Add supplier locations where goods will be received from. Set entity = "supplier" and entity_key to the supplier_code.
entity supply_location, action checkSetup Courier Services
Configure courier services in the eveXso UI for dispatch and label printing.
Setup in eveXso UI
Courier and courier service configuration is done in the eveXso admin interface, not via API. Contact eveXso support or your account manager to configure:
- Courier accounts (e.g., StarTrack, AusPost, FedEx)
- Service levels (e.g., Express, Standard)
- Consignment note printing templates
- Automatic freight calculation rules
Why This Matters
Once couriers are configured, sales orders can automatically:
- Calculate freight based on weight, dimensions, and destination
- Print consignment notes during packing
- Generate tracking numbers
- Sync shipment status back to your ERP
Import Orders
Start importing sales orders and purchase orders for fulfillment and receiving.
Sales Orders
Import customer orders for picking, packing, and dispatch.
POST https://global.evexso.com
"entity": "sales_order", "action": "import"Tip: Put the order, including its lines, in data.items. Send the same sales order number again to update it. Use entity project and action import with project_type sale when eveXso should split the job into sales orders.
Purchase Orders
Import supplier orders for receiving goods into the warehouse.
POST https://global.evexso.com
"entity": "purchase_order", "action": "import"Tip: Purchase orders enable receiving against expected quantities and supplier details.
Order Processing Flow
Import
Send order via API
Pick
Warehouse picks items
Pack
Pack and print labels
Dispatch
Ship to customer
Events back to your system
Finished warehouse work is queued for the connectors eveXso ships. A customer webhook is not available yet.
What happens when the warehouse finishes
A receipt, a pick, a despatch, or an adjustment writes a row to the integration update queue. Acumatica, Business Central, and the other shipped connectors pull that queue and post the result back to the ERP.
A connection you build yourself does not get a webhook URL yet. Do not poll a guessed address. Ask eveXso if you need those events, and ask Dave about the integration_update actions.
Until a webhook exists
- Send inventory, customers, suppliers, and orders with the calls above.
- Re-send the same business id to update. A sales order line left out of a later payload is removed.
- For the live field list, ask Dave: What are the inputs and validations for sales_order/import?
You're Ready to Integrate!
You now have a complete overview of the Global integration. Use the API Playground to call https://global.evexso.com.
Need help getting started?