Skip to navigation

Getting Started

This walkthrough submits one order and follows it through to tracking.

1. Submit the order

POST /orders accepts a single order. AdCode, AltOrderNumber, OrderDate, ShipMethod, BillToCustomer, and LineItems are required.

On the customer objects, Address1, City, Country, and Zip are required, and at least one of Company, FirstName, or LastName must be supplied.

curl -X POST https://dream.rushorder.com/api/orders \
--user "$RO_API_USER:$RO_API_PASSWORD" \
-H "Content-Type: application/json" \
-d '{
"AdCode": "PROD",
"AltOrderNumber": "PO1234A",
"OrderDate": "2026-09-18T14:02:00Z",
"ShipMethod": "UPS",
"Total": 49.98,
"Paid": 49.98,
"Tax": 0,
"Shipcost": 0,
"Signature": false,
"LineItems": [
{
"Sku": "810-00051",
"Description": "Example item",
"Quantity": 2,
"Price": 24.99,
"ExtendedPrice": 49.98,
"LineNumber": "1"
}
],
"BillToCustomer": {
"FirstName": "Jane",
"LastName": "Doe",
"Company": "",
"Address1": "123 Main St",
"City": "Columbus",
"State": "OH",
"Zip": "43215",
"Country": "US",
"Email": "jane@example.com"
}
}'

A successful submission returns a confirmation reference:

{
"Success": true,
"ErrorMessage": "",
"RefId": "a1b2c3d4",
"AltOrderNumber": "PO1234A"
}
Keep AltOrderNumber stable

AltOrderNumber is how you correlate your order with ours on every later call. Use your own order number and keep it unchanged.

LineNumber length

Keep LineNumber short — around 10 characters. Longer values are not rejected; they are silently truncated or dropped, which breaks line-level correlation when you read shipments back. Platform-generated identifiers such as Shopify global IDs are too long to survive, so map them to a short ordinal before submitting.

2. Confirm it imported

Submission is accepted asynchronously. Use the RefId from step 1 to confirm the order landed:

curl "https://dream.rushorder.com/api/orders/a1b2c3d4/status" \
--user "$RO_API_USER:$RO_API_PASSWORD"

3. Poll for shipment status

Once the order ships, GET /orders returns shipment records with tracking. Query by your own order number:

curl -G "https://dream.rushorder.com/api/orders" \
--user "$RO_API_USER:$RO_API_PASSWORD" \
--data-urlencode "altOrderNumber=PO1234A"

For routine syncing, prefer the paged and batch variants over per-order polling:

  • GET /orders/batch — status for a batch of orders in one call
  • GET /orders (paged) — walk all recent shipment activity

To be told when an order ships instead of polling, subscribe to the order.shipped webhook.

4. Reconcile inventory

GET /stock returns current on-hand quantities for every SKU, and GET /stock/{sku} returns one.

Quantities are net of committed stock

On-hand figures already have units committed to open orders deducted, so they reflect what is actually available to promise.

Next steps

  • Authentication — credential handling and rotation
  • Webhooks — get notified of order events instead of polling
  • API Reference — every endpoint, schema, and an interactive request builder