List the coupon catalogue (code promo)
Returns EVERY authored promo code — active and deactivated alike — each with its terms and its redemptionCount from the ledger. This is the operation to reach for when you need a coupon’s id (codes are what customers type, ids are what POST /v1/coupons/{id}/deactivate takes), when you want to know how much of a campaign has been consumed. It is PAGINATED: page with page/pageSize (max 100) until page reaches pageCount. Do NOT treat it as a uniqueness check before minting a code: nothing enforces uniqueness on code, and listing then creating is a race, not a safeguard (solya-pos#944). It does NOT tell you whether a code applies to a given basket — use POST /v1/coupons/validate for that — and it does not list automatic promotions, which live at GET /v1/promotions.
Authorizations
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
1-based page index to return. Defaults to 1.
1 <= x <= 9007199254740991Rows per page, 1..100. Defaults to 20.
1 <= x <= 100Response
A page of coupons, each with its active flag and ledger redemption count.
A page of coupons, each with its active flag and ledger redemption count.
The rows on this page, in the query's sort order.
Total rows matching the filter across ALL pages, not just this one.
0 <= x <= 9007199254740991The 1-based page number served.
0 < x <= 9007199254740991Rows requested per page.
0 < x <= 9007199254740991Total number of pages; stop walking when page reaches it.
0 <= x <= 9007199254740991
