A valid request URL is required to generate request examples{
"items": [
{
"id": "rtv-1f2e3d4c-5b6a-7089-90ab-cdef01234567",
"supplierId": "nike-fr",
"status": "draft",
"reason": "defective batch",
"lines": [
{
"skuId": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"quantity": 3,
"unitValueCents": 4500
}
],
"creditCents": null,
"createdAt": "2026-07-28T10:00:00.000Z",
"shippedAt": null,
"creditedAt": null
}
],
"total": 1,
"page": 1,
"pageSize": 20,
"pageCount": 1
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}List returns-to-vendor (retours fournisseur)
Returns one PAGE of the RTV history (retours fournisseur) newest-first, optionally narrowed by supplierId and/or status (incl. cancelled — annulé). An unrecognised status filter is ignored rather than rejected. The response is the canonical paged envelope (items, total, page, pageSize, pageCount): walk page up to pageCount to read the whole history, and narrow with supplierId/status to keep the walk short.
A valid request URL is required to generate request examples{
"items": [
{
"id": "rtv-1f2e3d4c-5b6a-7089-90ab-cdef01234567",
"supplierId": "nike-fr",
"status": "draft",
"reason": "defective batch",
"lines": [
{
"skuId": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"quantity": 3,
"unitValueCents": 4500
}
],
"creditCents": null,
"createdAt": "2026-07-28T10:00:00.000Z",
"shippedAt": null,
"creditedAt": null
}
],
"total": 1,
"page": 1,
"pageSize": 20,
"pageCount": 1
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}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 <= 100Filter to returns for one supplier (fournisseur).
1Filter by lifecycle status: draft (brouillon), shipped (expédié), credited (avoir reçu), cancelled (annulé). An unrecognised value is ignored, not rejected.
draft, shipped, credited, cancelled Response
One page of the RTV history (newest first).
One page of the RTV history (newest first).
The rows on this page, in the query's sort order.
Show child attributes
Show child attributes
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
