> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.rushorder.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.rushorder.com/_mcp/server.

# 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.

```bash maxLines=0
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:

```json
{
  "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:

```bash
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:

```bash
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](/webhooks/event-reference#ordershipped).

## 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](/authentication) — credential handling and rotation
* [Webhooks](/webhooks/overview) — get notified of order events instead of polling
* [API Reference](/api-reference) — every endpoint, schema, and an interactive request builder