Partner Integrations

Shoppex Partner API

The Shoppex Partner API enables approved external partners to securely retrieve the available product catalog and create orders for existing Shoppex customers through server-to-server REST integrations. Requests are authenticated with API key plus HMAC signature headers.

HMAC authentication required. Every request must include X-Shoppex-Key, X-Shoppex-Timestamp, X-Shoppex-Nonce, and X-Shoppex-Signature. JSON requests must also include Content-Type: application/json.
The signature is calculated from METHOD, ROUTE, TIMESTAMP, NONCE, and the SHA256 hash of the raw body. ROUTE is the REST path only: no domain and no query string. For example /api/v1/products?page=1 signs /api/v1/products.

GET /api/v1/products

List paginated products for external partners using the Shoppex Partner API product payload. Backorder only changes which products are visible and whether stock_quantity comes from Stock or StockSC. image_url is resolved from SellerCloud and cached server-side; on a rare cache miss it can be null and is populated on a subsequent request.

GET
Endpoint path /api/v1/products
Full URL https://partners-api.shoppexcorp.com/api/v1/products

Required headers

  • X-Shoppex-Key: pk_demo_partner_key
  • X-Shoppex-Timestamp: 1775726400
  • X-Shoppex-Nonce: req-demo-001
  • X-Shoppex-Signature: hmac_sha256_signature_placeholder

Request attributes

Required attributes

  • None This endpoint does not require request body attributes.

Optional attributes

  • page Catalog page to retrieve. Default: 1.
  • per_page Products per page. Default: 100. Maximum: 100.
  • search Search by product name, ProductID/SKU, or UPC.
  • brand Filter by exact brand.
  • type Filter by exact product type.

Request example

curl -X GET "https://partners-api.shoppexcorp.com/api/v1/products?page=1&per_page=100" \
  -H "X-Shoppex-Key: pk_demo_partner_key" \
  -H "X-Shoppex-Timestamp: 1775726400" \
  -H "X-Shoppex-Nonce: req-demo-001" \
  -H "X-Shoppex-Signature: hmac_sha256_signature_placeholder"
Implementation snippets
JavaScript Node.js
import crypto from 'node:crypto';

const baseUrl = 'https://partners-api.shoppexcorp.com';
const partnerKey = 'YOUR_PARTNER_KEY';
const partnerSecret = 'YOUR_PARTNER_SECRET';
const method = 'GET';
const route = '/api/v1/products';
const body = '';
const timestamp = Math.floor(Date.now() / 1000).toString();
const nonce = crypto.randomUUID();
const bodyHash = crypto.createHash('sha256').update(body).digest('hex');
const message = [method, route, timestamp, nonce, bodyHash].join('\n');
const signature = crypto
  .createHmac('sha256', partnerSecret)
  .update(message)
  .digest('hex');

const response = await fetch(`${baseUrl}/api/v1/products?page=1&per_page=100`, {
  method,
  headers: {
    'Content-Type': 'application/json',
    'X-Shoppex-Key': partnerKey,
    'X-Shoppex-Timestamp': timestamp,
    'X-Shoppex-Nonce': nonce,
    'X-Shoppex-Signature': signature,
  },
});

const data = await response.json();
console.log(data);
PHP cURL
<?php
$baseUrl = 'https://partners-api.shoppexcorp.com';
$partnerKey = 'YOUR_PARTNER_KEY';
$partnerSecret = 'YOUR_PARTNER_SECRET';
$method = 'GET';
$route = '/api/v1/products';
$body = '';
$timestamp = (string) time();
$nonce = bin2hex(random_bytes(16));
$bodyHash = hash('sha256', $body);
$message = implode("\n", [$method, $route, $timestamp, $nonce, $bodyHash]);
$signature = hash_hmac('sha256', $message, $partnerSecret);

$ch = curl_init($baseUrl.'/api/v1/products?page=1&per_page=100');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => $method,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-Shoppex-Key: '.$partnerKey,
        'X-Shoppex-Timestamp: '.$timestamp,
        'X-Shoppex-Nonce: '.$nonce,
        'X-Shoppex-Signature: '.$signature,
    ],
]);

if ($body !== '') {
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
}

$response = curl_exec($ch);
curl_close($ch);

echo $response;
Python requests
import hashlib
import hmac
import json
import time
import uuid
import requests

base_url = 'https://partners-api.shoppexcorp.com'
partner_key = 'YOUR_PARTNER_KEY'
partner_secret = 'YOUR_PARTNER_SECRET'
method = 'GET'
route = '/api/v1/products'
body = ''
timestamp = str(int(time.time()))
nonce = str(uuid.uuid4())
body_hash = hashlib.sha256(body.encode()).hexdigest()
message = '\n'.join([method, route, timestamp, nonce, body_hash])
signature = hmac.new(
    partner_secret.encode(),
    message.encode(),
    hashlib.sha256,
).hexdigest()

response = requests.request(
    method,
    base_url + '/api/v1/products?page=1&per_page=100',
    headers={
        'Content-Type': 'application/json',
        'X-Shoppex-Key': partner_key,
        'X-Shoppex-Timestamp': timestamp,
        'X-Shoppex-Nonce': nonce,
        'X-Shoppex-Signature': signature,
    },
    timeout=30,
)

print(response.status_code)
print(response.json())

Successful response example

{
    "success": true,
    "data": [
        {
            "product_id": "WHO-ZAK-731529",
            "sku": "WHO-ZAK-731529",
            "name": "Demo SC Product",
            "price": "19.99",
            "stock_quantity": 24,
            "type": "Perfume",
            "brand": "Demo Brand",
            "upc": "000000000001",
            "image_url": "https://cdn.shoppexcorp.com/products/demo-product.jpg",
            "origin": "SC",
            "stock_sc": 24,
            "qty_per_case": 12,
            "min_start": 12
        }
    ],
    "pagination": {
        "page": 1,
        "per_page": 100,
        "total": 348,
        "total_pages": 4,
        "has_next": true,
        "has_prev": false
    }
}

Error response example

{
    "success": false,
    "code": "partner_auth_invalid_signature",
    "message": "La firma HMAC no coincide."
}

Possible error codes

CodeReason
401 Missing HMAC headers, invalid timestamp, expired timestamp, reused nonce, invalid key, or incorrect signature.
403 The partner does not have the products.read permission.
429 Too many requests for the same partner key and endpoint. Retry after the rate-limit window resets.

POST /api/v1/orders

Create an order through the default customer configured for the authenticated partner. The request sends the partner order ID and items only; customer, billing, and shipping data are loaded from the partner configuration. The order amount must satisfy the partner business rule. SellerCloud send is queued after the local order is created.

POST
Endpoint path /api/v1/orders
Full URL https://partners-api.shoppexcorp.com/api/v1/orders

Required headers

  • Content-Type: application/json
  • X-Shoppex-Key: pk_demo_partner_key
  • X-Shoppex-Timestamp: 1775726400
  • X-Shoppex-Nonce: req-demo-001
  • X-Shoppex-Signature: hmac_sha256_signature_placeholder

Request attributes

Required attributes

  • items Array of products to include in the order. It must contain at least one item.
  • items[].product_id or items[].sku Send the data-sc.csv ProductID/SKU. If both product_id and sku are sent, they must point to the same product.
  • items[].quantity Quantity to purchase. It must be an integer greater than zero.
  • id_order_partner Order ID from the partner external system. It is saved locally and sent to SellerCloud in each item Notes field.

Optional attributes

  • comments Optional partner comment or note.
  • tax_id Optional fiscal metadata. Defaults from the partner customer when configured.
  • resale_tax Optional fiscal metadata. Defaults from the partner customer when configured.

Request example

curl -X POST "https://partners-api.shoppexcorp.com/api/v1/orders" \
  -H "Content-Type: application/json" \
  -H "X-Shoppex-Key: pk_demo_partner_key" \
  -H "X-Shoppex-Timestamp: 1775726400" \
  -H "X-Shoppex-Nonce: req-demo-001" \
  -H "X-Shoppex-Signature: hmac_sha256_signature_placeholder" \
  -d '{
    "items": [
        {
            "product_id": "WHO-ZAK-731529",
            "quantity": 2
        }
    ],
    "id_order_partner": "PARTNER-ORDER-12345",
    "comments": "Demo order created by an external partner integration."
}'
Implementation snippets
JavaScript Node.js
import crypto from 'node:crypto';

const baseUrl = 'https://partners-api.shoppexcorp.com';
const partnerKey = 'YOUR_PARTNER_KEY';
const partnerSecret = 'YOUR_PARTNER_SECRET';
const method = 'POST';
const route = '/api/v1/orders';
const body = JSON.stringify({
    "items": [
        {
            "product_id": "WHO-ZAK-731529",
            "quantity": 2
        }
    ],
    "id_order_partner": "PARTNER-ORDER-12345",
    "comments": "Demo order created by an external partner integration."
});
const timestamp = Math.floor(Date.now() / 1000).toString();
const nonce = crypto.randomUUID();
const bodyHash = crypto.createHash('sha256').update(body).digest('hex');
const message = [method, route, timestamp, nonce, bodyHash].join('\n');
const signature = crypto
  .createHmac('sha256', partnerSecret)
  .update(message)
  .digest('hex');

const response = await fetch(`${baseUrl}/api/v1/orders`, {
  method,
  headers: {
    'Content-Type': 'application/json',
    'X-Shoppex-Key': partnerKey,
    'X-Shoppex-Timestamp': timestamp,
    'X-Shoppex-Nonce': nonce,
    'X-Shoppex-Signature': signature,
  },
  body,
});

const data = await response.json();
console.log(data);
PHP cURL
<?php
$baseUrl = 'https://partners-api.shoppexcorp.com';
$partnerKey = 'YOUR_PARTNER_KEY';
$partnerSecret = 'YOUR_PARTNER_SECRET';
$method = 'POST';
$route = '/api/v1/orders';
$body = json_encode(array (
  'items' => 
  array (
    0 => 
    array (
      'product_id' => 'WHO-ZAK-731529',
      'quantity' => 2,
    ),
  ),
  'id_order_partner' => 'PARTNER-ORDER-12345',
  'comments' => 'Demo order created by an external partner integration.',
), JSON_UNESCAPED_SLASHES);
$timestamp = (string) time();
$nonce = bin2hex(random_bytes(16));
$bodyHash = hash('sha256', $body);
$message = implode("\n", [$method, $route, $timestamp, $nonce, $bodyHash]);
$signature = hash_hmac('sha256', $message, $partnerSecret);

$ch = curl_init($baseUrl.'/api/v1/orders');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => $method,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-Shoppex-Key: '.$partnerKey,
        'X-Shoppex-Timestamp: '.$timestamp,
        'X-Shoppex-Nonce: '.$nonce,
        'X-Shoppex-Signature: '.$signature,
    ],
]);

if ($body !== '') {
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
}

$response = curl_exec($ch);
curl_close($ch);

echo $response;
Python requests
import hashlib
import hmac
import json
import time
import uuid
import requests

base_url = 'https://partners-api.shoppexcorp.com'
partner_key = 'YOUR_PARTNER_KEY'
partner_secret = 'YOUR_PARTNER_SECRET'
method = 'POST'
route = '/api/v1/orders'
body = json.dumps({
    "items": [
        {
            "product_id": "WHO-ZAK-731529",
            "quantity": 2
        }
    ],
    "id_order_partner": "PARTNER-ORDER-12345",
    "comments": "Demo order created by an external partner integration."
}, separators=(",", ":"))
timestamp = str(int(time.time()))
nonce = str(uuid.uuid4())
body_hash = hashlib.sha256(body.encode()).hexdigest()
message = '\n'.join([method, route, timestamp, nonce, body_hash])
signature = hmac.new(
    partner_secret.encode(),
    message.encode(),
    hashlib.sha256,
).hexdigest()

response = requests.request(
    method,
    base_url + '/api/v1/orders',
    headers={
        'Content-Type': 'application/json',
        'X-Shoppex-Key': partner_key,
        'X-Shoppex-Timestamp': timestamp,
        'X-Shoppex-Nonce': nonce,
        'X-Shoppex-Signature': signature,
    }, data=body,
    timeout=30,
)

print(response.status_code)
print(response.json())

Successful response example

{
    "success": true,
    "order_id": 98765,
    "order_source_order_id": "SP15O98765",
    "partner_order_id": "PARTNER-ORDER-12345",
    "status": "queued",
    "sellercloud_order_id": null
}

Error response example

{
    "success": false,
    "code": "partner_customer_billing_incomplete",
    "message": "Partner billing address is incomplete."
}

Possible error codes

CodeReason
400 Invalid payload, missing items, missing id_order_partner, invalid product identifier, mismatched product_id and sku, or invalid product quantity.
401 Missing HMAC headers, invalid timestamp, expired timestamp, reused nonce, invalid key, or incorrect signature.
403 The partner does not have orders.create permission, the order amount is not allowed, or the order contains backorder products while backorder is disabled.
404 The configured customer or one of the requested products was not found.
409 The same id_order_partner was already used by this partner with a different payload.
422 The partner default customer, billing address, or shipping address is incomplete.
429 Too many requests for the same partner key and endpoint. Retry after the rate-limit window resets.

GET /api/v1/orders

List orders owned by the authenticated partner only.

GET
Endpoint path /api/v1/orders
Full URL https://partners-api.shoppexcorp.com/api/v1/orders

Required headers

  • X-Shoppex-Key: pk_demo_partner_key
  • X-Shoppex-Timestamp: 1775726400
  • X-Shoppex-Nonce: req-demo-001
  • X-Shoppex-Signature: hmac_sha256_signature_placeholder

Request attributes

Required attributes

  • None This endpoint does not require request body attributes.

Optional attributes

  • page Order page to retrieve. Default: 1.
  • per_page Orders per page. Default: 100. Maximum: 200.
  • limit Alias for per_page when per_page is not sent. Maximum: 200.
  • status Filter by order status, for example queued, sending, confirmed, or failed.
  • from Filter orders created on or after this date. Format: YYYY-MM-DD.
  • to Filter orders created on or before this date. Format: YYYY-MM-DD.

Request example

curl -X GET "https://partners-api.shoppexcorp.com/api/v1/orders?page=1&per_page=100" \
  -H "X-Shoppex-Key: pk_demo_partner_key" \
  -H "X-Shoppex-Timestamp: 1775726400" \
  -H "X-Shoppex-Nonce: req-demo-001" \
  -H "X-Shoppex-Signature: hmac_sha256_signature_placeholder"
Implementation snippets
JavaScript Node.js
import crypto from 'node:crypto';

const baseUrl = 'https://partners-api.shoppexcorp.com';
const partnerKey = 'YOUR_PARTNER_KEY';
const partnerSecret = 'YOUR_PARTNER_SECRET';
const method = 'GET';
const route = '/api/v1/orders';
const body = '';
const timestamp = Math.floor(Date.now() / 1000).toString();
const nonce = crypto.randomUUID();
const bodyHash = crypto.createHash('sha256').update(body).digest('hex');
const message = [method, route, timestamp, nonce, bodyHash].join('\n');
const signature = crypto
  .createHmac('sha256', partnerSecret)
  .update(message)
  .digest('hex');

const response = await fetch(`${baseUrl}/api/v1/orders?page=1&per_page=100`, {
  method,
  headers: {
    'Content-Type': 'application/json',
    'X-Shoppex-Key': partnerKey,
    'X-Shoppex-Timestamp': timestamp,
    'X-Shoppex-Nonce': nonce,
    'X-Shoppex-Signature': signature,
  },
});

const data = await response.json();
console.log(data);
PHP cURL
<?php
$baseUrl = 'https://partners-api.shoppexcorp.com';
$partnerKey = 'YOUR_PARTNER_KEY';
$partnerSecret = 'YOUR_PARTNER_SECRET';
$method = 'GET';
$route = '/api/v1/orders';
$body = '';
$timestamp = (string) time();
$nonce = bin2hex(random_bytes(16));
$bodyHash = hash('sha256', $body);
$message = implode("\n", [$method, $route, $timestamp, $nonce, $bodyHash]);
$signature = hash_hmac('sha256', $message, $partnerSecret);

$ch = curl_init($baseUrl.'/api/v1/orders?page=1&per_page=100');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => $method,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-Shoppex-Key: '.$partnerKey,
        'X-Shoppex-Timestamp: '.$timestamp,
        'X-Shoppex-Nonce: '.$nonce,
        'X-Shoppex-Signature: '.$signature,
    ],
]);

if ($body !== '') {
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
}

$response = curl_exec($ch);
curl_close($ch);

echo $response;
Python requests
import hashlib
import hmac
import json
import time
import uuid
import requests

base_url = 'https://partners-api.shoppexcorp.com'
partner_key = 'YOUR_PARTNER_KEY'
partner_secret = 'YOUR_PARTNER_SECRET'
method = 'GET'
route = '/api/v1/orders'
body = ''
timestamp = str(int(time.time()))
nonce = str(uuid.uuid4())
body_hash = hashlib.sha256(body.encode()).hexdigest()
message = '\n'.join([method, route, timestamp, nonce, body_hash])
signature = hmac.new(
    partner_secret.encode(),
    message.encode(),
    hashlib.sha256,
).hexdigest()

response = requests.request(
    method,
    base_url + '/api/v1/orders?page=1&per_page=100',
    headers={
        'Content-Type': 'application/json',
        'X-Shoppex-Key': partner_key,
        'X-Shoppex-Timestamp': timestamp,
        'X-Shoppex-Nonce': nonce,
        'X-Shoppex-Signature': signature,
    },
    timeout=30,
)

print(response.status_code)
print(response.json())

Successful response example

{
    "success": true,
    "data": [
        {
            "id": 98765,
            "order": null,
            "partner_order_id": "PARTNER-ORDER-12345",
            "order_source_order_id": "SP15O98765",
            "date": "2026-08-10T08:30:00+00:00",
            "status": "queued",
            "price": 1999.98,
            "invoiceAvailable": false,
            "shipping_service": "Local Delivery"
        }
    ],
    "pagination": {
        "page": 1,
        "per_page": 100,
        "total": 8,
        "total_pages": 1
    }
}

Error response example

{
    "success": false,
    "code": "partner_auth_invalid_signature",
    "message": "La firma HMAC no coincide."
}

Possible error codes

CodeReason
401 Missing HMAC headers, invalid timestamp, expired timestamp, reused nonce, invalid key, or incorrect signature.
403 The partner does not have the orders.read permission.
429 Too many requests for the same partner key and endpoint. Retry after the rate-limit window resets.

GET /api/v1/orders/{order_id}

Find an order owned by the authenticated partner by local ID, partner order ID, OrderSourceOrderID, or SellerCloud order ID.

GET
Endpoint path /api/v1/orders/{order_id}
Full URL https://partners-api.shoppexcorp.com/api/v1/orders/{order_id}

Required headers

  • X-Shoppex-Key: pk_demo_partner_key
  • X-Shoppex-Timestamp: 1775726400
  • X-Shoppex-Nonce: req-demo-001
  • X-Shoppex-Signature: hmac_sha256_signature_placeholder

Request attributes

Required attributes

  • order_id Local order ID, partner order ID, OrderSourceOrderID, or SellerCloud order ID.

Optional attributes

  • None This endpoint does not support optional request attributes.

Request example

curl -X GET "https://partners-api.shoppexcorp.com/api/v1/orders/PARTNER-ORDER-12345" \
  -H "X-Shoppex-Key: pk_demo_partner_key" \
  -H "X-Shoppex-Timestamp: 1775726400" \
  -H "X-Shoppex-Nonce: req-demo-001" \
  -H "X-Shoppex-Signature: hmac_sha256_signature_placeholder"
Implementation snippets
JavaScript Node.js
import crypto from 'node:crypto';

const baseUrl = 'https://partners-api.shoppexcorp.com';
const partnerKey = 'YOUR_PARTNER_KEY';
const partnerSecret = 'YOUR_PARTNER_SECRET';
const method = 'GET';
const route = '/api/v1/orders/PARTNER-ORDER-12345';
const body = '';
const timestamp = Math.floor(Date.now() / 1000).toString();
const nonce = crypto.randomUUID();
const bodyHash = crypto.createHash('sha256').update(body).digest('hex');
const message = [method, route, timestamp, nonce, bodyHash].join('\n');
const signature = crypto
  .createHmac('sha256', partnerSecret)
  .update(message)
  .digest('hex');

const response = await fetch(`${baseUrl}/api/v1/orders/PARTNER-ORDER-12345`, {
  method,
  headers: {
    'Content-Type': 'application/json',
    'X-Shoppex-Key': partnerKey,
    'X-Shoppex-Timestamp': timestamp,
    'X-Shoppex-Nonce': nonce,
    'X-Shoppex-Signature': signature,
  },
});

const data = await response.json();
console.log(data);
PHP cURL
<?php
$baseUrl = 'https://partners-api.shoppexcorp.com';
$partnerKey = 'YOUR_PARTNER_KEY';
$partnerSecret = 'YOUR_PARTNER_SECRET';
$method = 'GET';
$route = '/api/v1/orders/PARTNER-ORDER-12345';
$body = '';
$timestamp = (string) time();
$nonce = bin2hex(random_bytes(16));
$bodyHash = hash('sha256', $body);
$message = implode("\n", [$method, $route, $timestamp, $nonce, $bodyHash]);
$signature = hash_hmac('sha256', $message, $partnerSecret);

$ch = curl_init($baseUrl.'/api/v1/orders/PARTNER-ORDER-12345');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => $method,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'X-Shoppex-Key: '.$partnerKey,
        'X-Shoppex-Timestamp: '.$timestamp,
        'X-Shoppex-Nonce: '.$nonce,
        'X-Shoppex-Signature: '.$signature,
    ],
]);

if ($body !== '') {
    curl_setopt($ch, CURLOPT_POSTFIELDS, $body);
}

$response = curl_exec($ch);
curl_close($ch);

echo $response;
Python requests
import hashlib
import hmac
import json
import time
import uuid
import requests

base_url = 'https://partners-api.shoppexcorp.com'
partner_key = 'YOUR_PARTNER_KEY'
partner_secret = 'YOUR_PARTNER_SECRET'
method = 'GET'
route = '/api/v1/orders/PARTNER-ORDER-12345'
body = ''
timestamp = str(int(time.time()))
nonce = str(uuid.uuid4())
body_hash = hashlib.sha256(body.encode()).hexdigest()
message = '\n'.join([method, route, timestamp, nonce, body_hash])
signature = hmac.new(
    partner_secret.encode(),
    message.encode(),
    hashlib.sha256,
).hexdigest()

response = requests.request(
    method,
    base_url + '/api/v1/orders/PARTNER-ORDER-12345',
    headers={
        'Content-Type': 'application/json',
        'X-Shoppex-Key': partner_key,
        'X-Shoppex-Timestamp': timestamp,
        'X-Shoppex-Nonce': nonce,
        'X-Shoppex-Signature': signature,
    },
    timeout=30,
)

print(response.status_code)
print(response.json())

Successful response example

{
    "success": true,
    "data": {
        "id": 98765,
        "partner_order_id": "PARTNER-ORDER-12345",
        "order_source_order_id": "SP15O98765",
        "sellercloud_order_id": null,
        "status": "queued",
        "subtotal": 1999.98,
        "total": 1999.98,
        "billing": {
            "first_name": "John",
            "last_name": "Doe",
            "business": "Customer Business",
            "country": "US",
            "city": "Miami",
            "state": "FL",
            "zip_code": "33101",
            "address_1": "123 Main St",
            "phone": "+17865550123",
            "email": "customer@example.com"
        },
        "shipping": {
            "first_name": "John",
            "last_name": "Doe",
            "country": "US",
            "city": "Miami",
            "state": "FL",
            "zip_code": "33101",
            "address_1": "123 Main St",
            "phone": "+17865550123"
        },
        "items": [
            {
                "product_id": "WHO-ZAK-731529",
                "name": "Demo SC Product",
                "quantity": 2,
                "price": 999.99,
                "total": 1999.98,
                "upc": "000000000001"
            }
        ],
        "sellercloud": {
            "last_status": "queued",
            "last_response": null,
            "last_error": null
        }
    }
}

Error response example

{
    "success": false,
    "code": "order_not_found",
    "message": "Order was not found."
}

Possible error codes

CodeReason
401 Missing HMAC headers, invalid timestamp, expired timestamp, reused nonce, invalid key, or incorrect signature.
403 The partner does not have the orders.read permission.
404 The order was not found for the authenticated partner.
429 Too many requests for the same partner key and endpoint. Retry after the rate-limit window resets.