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.
| Parameter | Required | Description |
|---|---|---|
teamID | Yes | Your tenant identifier. |
orderNum | Yes | The 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.
| Parameter | Required | Description |
|---|---|---|
teamID | Yes | Your tenant identifier (query param). |
maxReturn | No | Maximum number of records to return (query param), for example 10. |
Each filter object:
| Field | Required | Description |
|---|---|---|
field | Yes | A PIMS order field name to match against (see below). |
value | Yes | The value to match. |
contains | No | true for a substring match, false (default) for an exact match. |
conjunction | No | "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
| Status | When |
|---|---|
400 | The teamID parameter is missing, or PIMS rejected the request (the body carries the underlying message). |
401 | The API ID or API Secret is missing or invalid. |
Need Help?
For assistance, please send a message to our Support page.