Skip to main content
GET
Error

Authorizations

Authorization
string
header
required

Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.

Query Parameters

page
integer
default:1

1-based page index to return. Defaults to 1.

Required range: 1 <= x <= 9007199254740991
pageSize
integer
default:20

Rows per page, 1..100. Defaults to 20.

Required range: 1 <= x <= 100

Free-text search matched SERVER-SIDE, case-insensitive, against the supplier's name and id. Applied across the WHOLE directory before the page window, so total is the real match count — a picker never has to walk the directory to search it.

Minimum string length: 1
ids
string

BATCH LOOKUP — a comma-separated set of supplier ids to resolve, e.g. ids=sup-denim,sup-outdoor. This is the RESOLVER's read, the counterpart of search: use it to name the vendors that rows already on screen point at, instead of paging the whole directory into memory to build a lookup.

At most 100 ids (the page size cap — a page of rows can carry no more), deduplicated. The set must FIT the requested page: pass pageSize ≥ the number of ids, or the request is a 400 rather than a silently short answer.

An id the directory does not carry is simply ABSENT from items — never a placeholder row — and total counts the ids that RESOLVED, so total below the number you asked for is how you learn which ones do not exist. An empty ids= and a blank entry (a,,b) are both a 400: 'resolve nothing' must never be read as 'the whole directory'.

Combines with the other facets as AND — which means a resolver should normally pass ids ALONE: adding active=true would drop the vendors that have since been archived, and a link to an archived vendor still has to be named.

Minimum string length: 1
category
string

Filter to one supplier category (exact match).

Minimum string length: 1
active
enum<string>

Filter by active flag: true for active suppliers, false for archived ones.

Available options:
true,
false
sortField
enum<string>

Sort key: supplier name or replenishment lead time in days (default name).

Available options:
name,
leadTimeDays
sortDirection
enum<string>

Sort direction (default asc).

Available options:
asc,
desc

Response

A page of suppliers with the pagination totals.

A page of suppliers with the pagination totals.

items
object[]
required

The rows on this page, in the query's sort order.

total
integer
required

Total rows matching the filter across ALL pages, not just this one.

Required range: 0 <= x <= 9007199254740991
page
integer
required

The 1-based page number served.

Required range: 0 < x <= 9007199254740991
pageSize
integer
required

Rows requested per page.

Required range: 0 < x <= 9007199254740991
pageCount
integer
required

Total number of pages; stop walking when page reaches it.

Required range: 0 <= x <= 9007199254740991