Response envelope
| Environment | Base URL |
|---|---|
| Production | https://api.saveonexpress.ca/integrations/public-api/v1 |
| Development | https://api.dev.saveonexpress.ca/integrations/public-api/v1 |
All JSON responses use the Public API base URL. Successful responses return:
HTTP/1.1 200
Content-Type: application/json
{
"data": {}
}
Errors return:
HTTP/1.1 {4xx|5xx}
Content-Type: application/json
{
"error": "Human-readable or serialized error message"
}
Ship and Cancel may return HTTP 200 with data.status: "error" for carrier or business failures (see Ship and Cancel sections).
Label download (GET /labels/{orderId}/{labelType}) may return HTTP 302 with a Location header pointing at a signed S3 URL (not the JSON envelope above).
CORS headers are included on responses (Access-Control-Allow-Origin: *, etc.).