Orders

Send your orders to CONNEX and they land on the CONNEX order desk, ready to ship — exactly like a sale from a CONNEX Sale Page.

Feed an order

POST/v1/orders

Feeds one order into your CONNEX account. Requires orders:write. The order is filed in the account your API key belongs to — there is no account field to set.

Quote first with Get rates and pass the chosen option's id as shipping.serviceId: CONNEX then preselects that service when the order is shipped. Weights are in grams and dimensions in cm, as in Get rates.

Body parameters

orderIdstringrequired
Your own order id — 1–80 characters of A–Z a–z 0–9 . _ : -. You track the order by it later.
currencystringrequired
ISO 4217, e.g. THB. Every amount is in it.
items[]arrayrequired
1–100 lines: sku, name, quantity (whole number) and unitPrice are required; weight (g, per unit), length/width/height (cm), hsCode, originCountry (ISO) and imageUrl (https) are optional.
shippingAddressobjectrequired
name, phone, line1, city and country (ISO alpha-2 or alpha-3) are required — phone falls back to customer.phone, and carriers need it; company, line2, state, postalCode are optional.
customerobject
name, email, phone — the phone also stands in for a shipping address without one.
shippingobject
serviceId (from Get rates), serviceName and price — what the buyer chose and paid.
parcelobject
The packed box, when you know it: weight (g), length, width, height (cm) — all four.
totalsobject
shipping, tax, discount, total. The subtotal is computed from the lines; a total that doesn't equal subtotal + shipping + tax − discount is refused, rather than recorded wrong.
paymentobject
method (e.g. CREDIT_CARD, COD) and your gateway's reference.
billingAddressobject
Same shape as shippingAddress. Defaults to it.
orderDatestring
ISO 8601. Defaults to now.
notesobject
gift, delivery, customer — printed for the warehouse.
storeobject
name and id of your shop, when one account sells through several. Defaults to your account name.
iossNumberstring
Your EU IOSS registration, for EU deliveries.
StatusMeaning
201Received — the order is on its way to the CONNEX order desk.
400The order is invalid. error says why and field names the field, e.g. items[0].quantity.
422CONNEX could not create the order; error carries its reason. Fix and send again.
503Order intake is briefly unavailable. Retry with backoff — retries are safe.
Request
curl https://api.connexglobal.co/v1/orders \
  -H "Authorization: Bearer $CONNEX_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d @order.json
Response — 201 Createdjson
{
  "object": "order",
  "orderId": "ORD-10432",
  "connexOrderNo": "API-137971-ORD-10432",
  "status": "received",
  "total": { "amount": 2884, "currency": "THB" },
  "items": 1
}

Order ids & retries

CONNEX files your order as API-<account>-<orderId> — the connexOrderNo in the response, and what the order desk shows. The prefix keeps your ids from ever colliding with another account's.

  • Retries are safe. Sending the same orderId again creates nothing new — CONNEX keeps the first. After a timeout, just send it again.
  • Track it by your own id. Get tracking takes the orderId you sent: /v1/tracking?refs=ORD-10432.
  • Changes go through CONNEX. A second send with different contents does not update the first — contact CONNEX to change or cancel an order already received.