# POS - X-Radius API

> Base URL: https://x-radius.com/api/v1
> Auth: Authorization: Bearer xrt_...  (a manager API token)
> Envelope: {"data": ...}; lists add {"meta":{page,page_size,total,has_next}}
> Errors: {"error":{"code","message","request_id"}} - branch on code, never on message
> Timestamps: yyyy-MM-dd HH:mm:ss, UTC
> Money: a bare JSON number in major units, with an ISO-4217 currency code beside it
> Idempotency: redeem and activate endpoints take a client-supplied request_id (UUID)
>
> This page: https://x-radius.com/docs/api/pos
> Every group: https://x-radius.com/llms.txt

11 endpoints in 1 resource groups. 0 carry a hand-written reference entry with examples; the remaining 11 are generated from the running router and carry method, path, authentication, permission and rate-limit bucket, but no request or response example.

### Sell cards at the counter (till)

`GET /api/v1/pos/products`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`GET /api/v1/pos/sales`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`POST /api/v1/pos/sales`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write
- Rate limit bucket: `t_mutate`

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`GET /api/v1/pos/sales/{id}/print-job`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`POST /api/v1/pos/sales/{id}/printed`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write
- Rate limit bucket: `t_mutate`

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### POST /api/v1/pos/sales/{id}/void

`POST /api/v1/pos/sales/{id}/void`

- Authentication: manager session (JWT) or API token
- Permission: any one of `prm_pos_sell`, `prm_pos_void`
- Rate limit bucket: `t_mutate`

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`GET /api/v1/pos/shifts`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`POST /api/v1/pos/shifts`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write
- Rate limit bucket: `t_mutate`

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`GET /api/v1/pos/shifts/current`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`POST /api/v1/pos/shifts/{id}/close`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write
- Rate limit bucket: `t_mutate`

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


### Sell cards at the counter (till)

`GET /api/v1/pos/shifts/{id}/report`

- Authentication: manager session (JWT) or API token
- Permission: `prm_pos_sell` (Sell cards at the counter (till))
- Risk: write

_This endpoint has no hand-written reference entry yet. The method, path, authentication, permission and rate limit above are generated from the running router and are accurate; there is no request or response example._


