CLIENT API GUIDE

The customer-facing endpoints, in one place.

This guide intentionally includes only endpoints whose URLs begin with /api/v2/client. Use it for implementation guidance; use Swagger when you need the authoritative machine-readable schema.

Quick reference

MethodEndpointPurpose
POST/client/sales_orderCreate a Sales Order
GET/client/available_devicesGet available devices, projects, and kits
GET/client/available_shipping_methodsGet available shipping methods
GET/client/sales_order/{sales_order_id}Get detailed Sales Order information
GET/client/sales_order_statusesGet active Sales Order statuses
GET/client/kits/{kit_id}/assembledList assembled kits
GET/client/projects/{project_id}/kitsList kits for a project
GET/client/projectsList projects
POST/client/search_sales_ordersSearch Sales Orders by PO number or status

Sales Orders

POST/client/sales_order — Create Sales Order

Required JSON fields: customer_po_no, items. Every item requires sku and quantity ≥ 1.

Optional: ship_address, shipping_method, shipping_instructions, custom_fields. If custom_fields are included, project_name is required by the schema.

POST https://workspace-stage.connectuscorp.com/api/v2/client/sales_order
Authorization: Bearer YOUR_TOKEN
Content-Type: application/json

{
  "customer_po_no": "PO-2026-001",
  "items": [{"sku":"STR-12345","quantity":2}]
}

201: returns message, sales_order_number, and customer_po_no. 422: validation failed. 500: internal Sales Order creation error.

GET/client/sales_order/{sales_order_id} — Get Sales Order

Path parameter: sales_order_id (integer).

GET https://workspace-stage.connectuscorp.com/api/v2/client/sales_order/12345

The detailed response includes fields such as id, status_id, status_type, status, customer_po_no, shipping_date, delivery_date, shipping_method, shipping_instructions, ship_address, custom_fields, and ship_doc.

A shipping document can include a tracking number, shipping method, status, ship-document ID, date, and shipped item details.

POST/client/search_sales_orders — Search Sales Orders

Search using optional query parameters customer_po_no and/or so_status (array of integer status IDs).

POST https://workspace-stage.connectuscorp.com/api/v2/client/search_sales_orders?customer_po_no=PO-2026-001
{
  "message": "Sales orders successfully retrieved",
  "sales_orders": [
    {
      "id": 12345,
      "statusId": 20,
      "statusType": "Open",
      "status": "Processing",
      "customerPoNo": "PO-2026-001",
      "shipDoc": null
    }
  ]
}
GET/client/sales_order_statuses — Get Sales Order Statuses

Returns active status IDs and names. Use these IDs when filtering Sales Orders.

GET https://workspace-stage.connectuscorp.com/api/v2/client/sales_order_statuses
{
  "data": [{"id": 1, "name": "Example Status"}],
  "message": "Sales Order Statuses retrieved successfully."
}

Availability

GET/client/available_devices — Get Available Devices

Returns an account-level container with devices, projects, and kits.

GET https://workspace-stage.connectuscorp.com/api/v2/client/available_devices
{
  "data": {
    "devices": [
      {"sku":"DEVICE-001","description":"Example device","available":12,"is_active":true}
    ],
    "projects": [{"name":"Project Alpha"}],
    "kits": [{"name":"Starter Kit","code":"KIT-001"}]
  }
}
GET/client/available_shipping_methods — Get Shipping Methods

Retrieves shipping methods currently available from the OrderTime service.

GET https://workspace-stage.connectuscorp.com/api/v2/client/available_shipping_methods
{
  "message": "Shipping methods successfully retrieved",
  "shippingMethods": [
    {"id":12,"name":"FedEx Ground"}
  ]
}

Projects & Kits

GET/client/projects — List Projects

Query parameters: page (default 1), per_page (default 15).

GET https://workspace-stage.connectuscorp.com/api/v2/client/projects?page=1&per_page=15

Returns paginated project records: id, name, description, status, and default_kit_id.

GET/client/projects/{project_id}/kits — List Project Kits

Path parameter: project_id. Query parameters: page, per_page.

GET https://workspace-stage.connectuscorp.com/api/v2/client/projects/101/kits?page=1&per_page=15

Returns paginated kit records: id, name, code, and is_archived. A 404 means the project was not found or is not owned by the authenticated customer.

GET/client/kits/{kit_id}/assembled — List Assembled Kits

Path parameter: kit_id. Query parameters: page, per_page.

GET https://workspace-stage.connectuscorp.com/api/v2/client/kits/42/assembled?page=1&per_page=15

Records contain id, scanned_code, validated, activation_required, status, and created_at. A 404 means the kit was not found or is not owned by the authenticated customer.

Headers used by the API

HeaderRequired?Purpose
Authorization: Bearer …YesAuthenticates the customer account.
Accept: application/jsonRecommendedRequests JSON responses.
Content-Type: application/jsonFor JSON bodiesRequired when sending JSON request data.
X-Request-IDNoRequest tracing / idempotency identifier.
READY TO INTEGRATE?

Start in the sandbox and move to production with confidence.