Protect Your Data
Authentication ensures only authorized users and systems can access your orders, inventory, and warehouse data.
All ShipEdge Core APIs require authentication to protect your data and ensure only authorized users can access your account. The authentication method varies depending on which API you’re using.
Authentication ensures only authorized users and systems can access your orders, inventory, and warehouse data.
Each authenticated request is logged, allowing you to monitor API usage and troubleshoot issues.
API keys can be regenerated if compromised, providing better security than password-based authentication.
Different authentication methods support different access levels, from account-level to user-level permissions.
ShipEdge Core supports different authentication methods depending on the API version and use case:
| API Version | Method | Headers Required | Use Case |
|---|---|---|---|
| REST API v4 (OMS) | API Key | AccountID + Key | Order and inventory management |
| REST API v4 (WMS) | Master API Key | userName + Key | Warehouse operations |
| API v2 | API Key | AccountID + Authorization or Key | Legacy integrations |
| eXos Mobile | JWT Tokens | Multiple headers | Mobile warehouse applications |
REST API v4 (OMS) uses account-level API keys for authentication.
AccountID: [Your numeric AccountID]Key: [Your API Key]Log in to your ShipEdge OMS account
Access your Order Management System account through the web interface.
Navigate to Preferences
Go to My Account > Preferences in the main menu.
Open API Integration section
Click on the API Integration tab in Preferences.
Find your credentials
You’ll see:
Your account must meet these requirements:
Activated = 'Y')curl -X POST https://your-instance.shipedge.com/apirest/v4/oms/ping \ -H "AccountID: 100" \ -H "Key: abcde12345"Missing Key:
{ "response": { "success": false, "message": "The Key is invalid or doesn't have access to this API resource" }}Missing AccountID:
{ "response": { "success": false, "message": "The Header value is invalid. AccountID is missing or empty" }}Account Not Found:
{ "response": { "success": false, "message": "The Header value is invalid. AccountID doesn't exist." }}Account Not Activated:
{ "response": { "success": false, "message": "The Header value is invalid. AccountID isn't activated" }}REST API v4 (WMS) uses warehouse user credentials with a master API key.
userName: [Your warehouse username]Key: [Master API Key]Log in to your ShipEdge WMS account
Access your Warehouse Management System account through the web interface.
Navigate to System Config
Go to System Config in the main menu.
Open Preferences
Click on Preferences in the System Config menu.
Go to Operations section
Navigate to the Operations tab or section.
Find Master API Key
Look for Shipedge master API Key field. If no key exists, click Generate an API Key to create one.
Get your Username
Your username is the same username you use to log in to the WMS system.
Your WMS user account must meet these requirements:
Activated = 'Y')curl -X POST https://your-instance.shipedge.com/apirest/v4/wms/ping \ -H "userName: manager" \ -H "Key: abcde12345"Missing Key:
{ "response": { "success": false, "message": "The Key is invalid or doesn't have access to this API resource" }}Missing Username:
{ "response": { "success": false, "message": "The Header value is invalid. UserName is missing or empty" }}User Not Found or No Permissions:
{ "response": { "success": false, "message": "The Header value is invalid. User doesn't exist or it has no permissions" }}User Not Activated:
{ "response": { "success": false, "message": "The Header value is invalid. User isn't activated" }}API v2 supports account-level API key authentication, similar to API v4 OMS but with slightly different header names.
Option 1 (Preferred):
AccountID: [Your numeric AccountID]Authorization: [Your API Key]Option 2 (Alternative):
AccountID: [Your numeric AccountID]Key: [Your API Key]Credentials are the same as REST API v4 (OMS):
Activated = 'Y')curl -X POST https://your-instance.shipedge.com/apiv2/endpoint \ -H "AccountID: 100" \ -H "Authorization: abcde12345"Or using the alternative format:
curl -X POST https://your-instance.shipedge.com/apiv2/endpoint \ -H "AccountID: 100" \ -H "Key: abcde12345"eXos mobile applications use JWT (JSON Web Token) authentication with multiple headers for enhanced security.
Authorization: [JWT token]Token: [Hash token]User-Id: [User ID]Device-Id: [Device identifier]App: [Application name]App-Version: [Application version]System-Version: [System version]/exos-login-1 endpointcurl -X POST https://your-instance.shipedge.com/apiv2/exos-v1/pp-getOrders-1 \ -H "Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \ -H "Token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \ -H "User-Id: 123" \ -H "Device-Id: device123" \ -H "App: eXos" \ -H "App-Version: 1.0.0" \ -H "System-Version: iOS 15.0"Never expose API keys in public code, repositories, or client-side JavaScript. Use environment variables or secret managers.
Periodically regenerate your API keys, especially if you suspect they may have been compromised.
Always use HTTPS when making API requests. Never send credentials over unencrypted connections.
Only share API keys with trusted systems and users. Revoke access immediately if compromised.
Regularly review API logs to detect unauthorized access or unusual activity patterns.
Use different API keys for different environments (development, staging, production) when possible.
Always validate API responses and handle authentication errors appropriately in your code.
Never log API keys or include them in error messages that might be exposed to users.
Common causes:
Solution:
Common causes:
Solution:
Common causes:
Solution:
If you suspect your API key has been compromised or want to rotate keys for security:
Log in to your OMS account
Go to My Account > Preferences
Click API Integration tab
Click “Generate new Key”
Confirm the action
Update all integrations with the new key immediately
Log in to your WMS account
Go to System Config > Preferences
Navigate to Operations section
Click “Generate an API Key”
Confirm the action
Update all integrations with the new key immediately
The easiest way to test authentication is using the ping endpoints:
REST API v4 (OMS):
curl -X POST https://your-instance.shipedge.com/apirest/v4/oms/ping \ -H "AccountID: 100" \ -H "Key: abcde12345"REST API v4 (WMS):
curl -X POST https://your-instance.shipedge.com/apirest/v4/wms/ping \ -H "userName: manager" \ -H "Key: abcde12345"Expected Response:
{ "data": { "status": "Successful", "result": "pong!" }}Both REST API v4 (OMS) and REST API v4 (WMS) include interactive Swagger documentation where you can test authentication:
https://your-instance.shipedge.com/apirest/v4/oms/docshttps://your-instance.shipedge.com/apirest/v4/wms/docs (requires WMS session)Check:
Solution:
Check:
Solution:
Next Step: REST API v4 (OMS) - Learn to use OMS endpoints for order and inventory management