Quick Start Guide

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": [ { } ] }
}
Step 1

check_circleGetting Connected

Obtain your API credentials and test your first connection to eveXso.

What You Need

  • checkAPI Key: Create it in eveXso on Admin, Integration, Connect your own system. The key is locked to the site you are in.
  • checkSite ID: The same site code, sent as the X-Site-ID header
  • checkEnvironment: Production is https://global.evexso.com. A UAT site uses https://global-beta.evexso.com

Choose Your Testing Environment

science

API Playground

Test APIs in your browser with live responses and ERP-specific code generation

Open Playgroundarrow_forward
integration_instructions

Ask Dave

These steps are starters. In eveXso, ask Dave for the inputs and validations of the action you are calling.

Open the wizardarrow_forward

Test 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": {}
}
Step 2

warehouseSetup 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

looks_oneDefine Warehouse

Create your warehouse record with address details.

entity warehouse, action check

looks_twoDefine Location Types

Set up your location hierarchy levels (required for locations).

entity warehouse_location_type, action check

looks_3Create Locations

Create your actual storage locations, pick faces, and packing areas.

entity warehouse_location, action check
Step 3

inventory_2Import Inventory

Import your product catalog with all tracking, packaging, and warehouse information.

warning

Important: Complete Inventory Setup

Each inventory item requires multiple API calls to be fully configured. Follow the order below:

  1. inventory - Core product information
  2. inventory_stocking_factor - At least ONE with pack_size = 1 (required)
  3. inventory_warehouse_information - Warehouse-specific settings
  4. inventory_dangerous_goods_information - DG/Hazmat data (if applicable)
  5. inventory_lookup - Barcodes and alternate codes

looks_oneCore Inventory Record

Create the main product record with description, category, and inventory type.

entity inventory, action check
View 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"
      }
    ]
  }
}

looks_twoStocking 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 check
View 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
      }
    ]
  }
}

looks_3Warehouse Information

Set warehouse-specific settings like pick face location and average cost.

entity inventory_warehouse_information, action check

looks_4Dangerous Goods (Optional)

If your product is hazardous, include DG information for compliance.

entity inventory_dangerous_goods_information, action check

looks_5Barcodes & Lookups

Add GS1 barcodes (AI 01 for GTIN), part numbers (AI 240/241), and alternate lookup codes.

entity inventory_lookup, action check
View 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"
    }
  ]
}
Step 4

peopleImport 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).

looks_oneCreate Customer Record

Create the main customer record with name and basic information.

entity customer, action check

looks_twoCreate 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 check
View 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"
      }
    ]
  }
}
Step 5

local_shippingImport 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.

looks_oneCreate Supplier Record

Create the main supplier record.

entity supplier, action check

looks_twoCreate 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 check
Step 6

local_shippingSetup Courier Services

Configure courier services in the eveXso UI for dispatch and label printing.

info

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:

  • arrow_rightCourier accounts (e.g., StarTrack, AusPost, FedEx)
  • arrow_rightService levels (e.g., Express, Standard)
  • arrow_rightConsignment note printing templates
  • arrow_rightAutomatic freight calculation rules

Why This Matters

Once couriers are configured, sales orders can automatically:

  • check_circleCalculate freight based on weight, dimensions, and destination
  • check_circlePrint consignment notes during packing
  • check_circleGenerate tracking numbers
  • check_circleSync shipment status back to your ERP
Step 7

shopping_cartImport Orders

Start importing sales orders and purchase orders for fulfillment and receiving.

shopping_cartSales 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.

receiptPurchase 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

Step 8

syncEvents 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.

infoA 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?

eveXso Sales Assistant