Orders

PIMS Open API endpoints for reading, querying, and creating PIMS orders and order line items through Weevio Cloud.

Read, query, and create PIMS orders, and add or update order line items. All endpoints require the standard PIMS Open API authentication and a teamID parameter. Order fields use raw PIMS column names (for example REFERENCE_NUMBER, CUSTOMER_CODE).

Note:

Looking for a normalized, read-only view of an order's fulfillment state by its Shopify order number? See Order Lookup by Shopify Reference, a higher-level convenience endpoint.

Get a single order

GET /tenant/api/pims/v1/orders/single

Retrieves one order by its PIMS order number. Order line items are returned in subRecords.

ParameterRequiredDescription
teamIDYesYour tenant identifier.
orderNumYesThe PIMS order number to look up.
curl -s -u 'YOUR_API_ID:YOUR_API_SECRET' \
  'https://cloud.weevio.co/tenant/api/pims/v1/orders/single' \
  --get \
  --data-urlencode 'teamID=<YOUR-TEAM-ID>' \
  --data-urlencode 'orderNum=54321'

Note:

The fields shown below are representative — the exact set returned depends on your PIMS configuration. The status / data / subRecords envelope is always present.

{
  "status": "success",
  "data": {
    "ORDER_NUMBER": "54321",
    "REFERENCE_NUMBER": "0001",
    "CUSTOMER_CODE": "M-1000",
    "ORDER_DATE": "05/15/2026",
    "ORDER_STATUS": "Open"
  },
  "subRecords": [
    {
      "ORDER_LINEITEMS": {
        "LINE_NUMBER": "1",
        "PART_CODE": "MDVQ4LL/A",
        "DESCRIPTION": "iPhone 14 Pro",
        "QUANTITY": "5",
        "NUMBER_SHIPPED": "3"
      }
    }
  ]
}

Query a list of orders

POST /tenant/api/pims/v1/orders/query

Returns orders matching a set of filters. The request body is an array of filter objects.

ParameterRequiredDescription
teamIDYesYour tenant identifier (query param).
maxReturnNoMaximum number of records to return (query param), for example 10.

Each filter object:

FieldRequiredDescription
fieldYesA PIMS order field name to match against (see below).
valueYesThe value to match.
containsNotrue for a substring match, false (default) for an exact match.
conjunctionNo"AND" or "OR" — how this filter combines with the previous one. Omit on the first filter.

Common queryable order fields include ORDER_NUMBER, REFERENCE_NUMBER, CUSTOMER_CODE, ORDER_DATE, ORDER_STATUS. Any PIMS ORDERS table field name may be used.

curl -s -u 'YOUR_API_ID:YOUR_API_SECRET' \
  'https://cloud.weevio.co/tenant/api/pims/v1/orders/query?teamID=<YOUR-TEAM-ID>&maxReturn=10' \
  -H 'Content-Type: application/json' \
  --data '[
    { "field": "CUSTOMER_CODE", "value": "M-1000", "contains": false }
  ]'
{
  "status": "success",
  "data": [
    { "ORDER_NUMBER": "54321", "REFERENCE_NUMBER": "0001", "CUSTOMER_CODE": "M-1000", "ORDER_STATUS": "Open" }
  ],
  "subRecords": null
}

The data array is empty when nothing matches.

Create an order

PUT /tenant/api/pims/v1/orders/create

Creates a new order. Send the order's PIMS fields as a JSON object. All fields are optional and any PIMS ORDERS field name is accepted; you do not send a FUNCTION field (the API sets it). Add line items with the Add a line item endpoint after creating the order.

curl -s -u 'YOUR_API_ID:YOUR_API_SECRET' \
  'https://cloud.weevio.co/tenant/api/pims/v1/orders/create?teamID=<YOUR-TEAM-ID>' \
  -H 'Content-Type: application/json' \
  --data '{
    "REFERENCE_NUMBER": "0001",
    "CUSTOMER_CODE": "M-1000",
    "LOCATION_CODE": "MAIN",
    "BNAME": "Acme Repair",
    "BADDRESS1": "101 Main St",
    "BCITY": "Bloomington",
    "BSTATE": "IN",
    "BZIPCODE": "47404",
    "BCOUNTRY": "US"
  }'
{
  "status": "success",
  "data": "54321"
}

data is the newly assigned PIMS order number. Use it as ORDER_NUMBER when adding line items.

Add a line item to an order

PUT /tenant/api/pims/v1/orders/line_item

Adds a line item to an existing order. Send ORDER_NUMBER plus the line item's PIMS fields. You do not send a FUNCTION field (the API sets it).

curl -s -u 'YOUR_API_ID:YOUR_API_SECRET' \
  'https://cloud.weevio.co/tenant/api/pims/v1/orders/line_item?teamID=<YOUR-TEAM-ID>' \
  -H 'Content-Type: application/json' \
  --data '{
    "ORDER_NUMBER": "54321",
    "PART_CODE": "MDVQ4LL/A",
    "DESCRIPTION": "iPhone 14 Pro",
    "QUANTITY": "5"
  }'
{
  "status": "success",
  "data": {
    "LINE_NUMBER": "1",
    "PART_CODE": "MDVQ4LL/A",
    "DESCRIPTION": "iPhone 14 Pro",
    "QUANTITY": "5",
    "LINE_REF_LOCK_CODE": "ABC123XYZ",
    "NUMBER_SHIPPED": "0"
  },
  "subRecords": null
}

The returned LINE_REF_LOCK_CODE is required to update this line item later.

Update a line item on an order

POST /tenant/api/pims/v1/orders/line_item

Updates an existing line item. Send ORDER_NUMBER, the line's LINE_REF_LOCK_CODE (from the add-line-item response), and the fields to change. You do not send a FUNCTION field (the API sets it).

curl -s -u 'YOUR_API_ID:YOUR_API_SECRET' \
  'https://cloud.weevio.co/tenant/api/pims/v1/orders/line_item?teamID=<YOUR-TEAM-ID>' \
  -X POST \
  -H 'Content-Type: application/json' \
  --data '{
    "ORDER_NUMBER": "54321",
    "LINE_REF_LOCK_CODE": "ABC123XYZ",
    "QUANTITY": "8"
  }'

Note:

Send teamID as a query parameter and the line-item fields as the JSON body. The LINE_REF_LOCK_CODE comes from the response when the line item was added.

{
  "status": "success",
  "data": {
    "LINE_NUMBER": "1",
    "PART_CODE": "MDVQ4LL/A",
    "DESCRIPTION": "iPhone 14 Pro",
    "QUANTITY": "8",
    "LINE_REF_LOCK_CODE": "ABC123XYZ",
    "NUMBER_SHIPPED": "3"
  },
  "subRecords": null
}

Errors

StatusWhen
400The teamID parameter is missing, or PIMS rejected the request (the body carries the underlying message).
401The API ID or API Secret is missing or invalid.

Need Help?

For assistance, please send a message to our Support page.