Returns ONE repair order: the article taken in, the customer’s issueDescription, the money (quoteAmountCents quoted, depositAmountCents acompte already captured at intake), the promised expectedPickupDate and the lifecycle status. updatedAt is the instant of the LAST transition and equals createdAt while the order is still at intake. The balance the customer still owes at pickup is quoteAmountCents - depositAmountCents — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (sendRepairToWorkshop from intake, markRepairReady from in_workshop, collectRepair from ready), but markRepairUnrepairable is NOT state-guarded that way: it is legal from intake, in_workshop AND ready, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.
GET
/
v1
/
repairs
/
{orderId}
Error
A valid request URL is required to generate request examples
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.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Solya POS Docs","description":"Documentation for Solya POS — the Centrale back-office, the Caisse point-of-sale, and the REST API.","colors":{"primary":"#7367F0","light":"#8F85F3","dark":"#675DD8"},"logo":{"light":"https://mintcdn.com/solya-pos/-jF44ACKJ9wNNMCD/images/logo-light.png?fit=max\u0026auto=format\u0026n=-jF44ACKJ9wNNMCD\u0026q=85\u0026s=f4e34e81952858b22c95479dc4bcb8b4","dark":"https://mintcdn.com/solya-pos/-jF44ACKJ9wNNMCD/images/logo-dark.png?fit=max\u0026auto=format\u0026n=-jF44ACKJ9wNNMCD\u0026q=85\u0026s=2e3a7ec3c63e54c6ff549a1afa1a25a0"},"favicon":"https://mintcdn.com/solya-pos/-jF44ACKJ9wNNMCD/images/favicon.svg?fit=max\u0026auto=format\u0026n=-jF44ACKJ9wNNMCD\u0026q=85\u0026s=2bc0fe5039f661a3dc8617855cf55406","navbar":{"links":[{"href":"https://caisse.solya.app","label":"Caisse"},{"href":"https://centrale.solya.app","label":"Centrale"}]},"footer":{"socials":{"website":"https://www.solya.app"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":"en"},{"language":"fr","href":"fr"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"solya-pos","hasAudioNarration":false,"actualSubdomain":"solya-pos","customDomains":["docs-pos.solya.app"],"gitSource":{"type":"github","owner":"solya-app","repo":"solya-pos","deployBranch":"main","contentDirectory":"docs-site","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a7c0afdf4dde05d267c56a1","collectionId":"3317598b-fb95-4bd6-b828-15039783c77c","liveDeploymentHistoryId":"6a7c0afdf4dde05d267c56a1","schemaVersion":"v3"},"entitlements":{},"buildId":"6a7c0afdf4dde05d267c56a1:success","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API Reference","count":309},{"language":"default","tag":"Catalogue \u0026 stock","count":124},{"language":"default","tag":"Ventes \u0026 encaissement","count":59},{"language":"default","tag":"Finance","count":52},{"language":"en","tag":"Guides","count":48},{"language":"fr","tag":"Guides","count":48},{"language":"default","tag":"Catalog","count":42},{"language":"default","tag":"Checkout","count":35},{"language":"default","tag":"Système","count":30},{"language":"default","tag":"Network","count":27},{"language":"default","tag":"Procurement","count":26},{"language":"en","tag":"Centrale","count":23},{"language":"fr","tag":"Centrale","count":23},{"language":"default","tag":"Clients \u0026 fidélité","count":21},{"language":"en","tag":"Caisse","count":18},{"language":"fr","tag":"Caisse","count":18},{"language":"en","tag":"Developers","count":10},{"language":"fr","tag":"Développeurs","count":10},{"language":"en","tag":"Get started","count":7},{"language":"fr","tag":"Prise en main","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/repairs/get-a-repair-order-by-id","slug":"/api-reference/repairs/get-a-repair-order-by-id","pageMetadata":{"title":"Get a repair order by id","description":"Returns ONE repair order: the `article` taken in, the customer's `issueDescription`, the money (`quoteAmountCents` quoted, `depositAmountCents` acompte already captured at intake), the promised `expectedPickupDate` and the lifecycle `status`. `updatedAt` is the instant of the LAST transition and equals `createdAt` while the order is still at `intake`. The balance the customer still owes at pickup is `quoteAmountCents - depositAmountCents` — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (`sendRepairToWorkshop` from `intake`, `markRepairReady` from `in_workshop`, `collectRepair` from `ready`), but `markRepairUnrepairable` is NOT state-guarded that way: it is legal from `intake`, `in_workshop` AND `ready`, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/repairs/{orderId}","href":"/api-reference/repairs/get-a-repair-order-by-id","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Returns ONE repair order: the \", _jsx(_components.code, {\n children: \"article\"\n }), \" taken in, the customer’s \", _jsx(_components.code, {\n children: \"issueDescription\"\n }), \", the money (\", _jsx(_components.code, {\n children: \"quoteAmountCents\"\n }), \" quoted, \", _jsx(_components.code, {\n children: \"depositAmountCents\"\n }), \" acompte already captured at intake), the promised \", _jsx(_components.code, {\n children: \"expectedPickupDate\"\n }), \" and the lifecycle \", _jsx(_components.code, {\n children: \"status\"\n }), \". \", _jsx(_components.code, {\n children: \"updatedAt\"\n }), \" is the instant of the LAST transition and equals \", _jsx(_components.code, {\n children: \"createdAt\"\n }), \" while the order is still at \", _jsx(_components.code, {\n children: \"intake\"\n }), \". The balance the customer still owes at pickup is \", _jsx(_components.code, {\n children: \"quoteAmountCents - depositAmountCents\"\n }), \" — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (\", _jsx(_components.code, {\n children: \"sendRepairToWorkshop\"\n }), \" from \", _jsx(_components.code, {\n children: \"intake\"\n }), \", \", _jsx(_components.code, {\n children: \"markRepairReady\"\n }), \" from \", _jsx(_components.code, {\n children: \"in_workshop\"\n }), \", \", _jsx(_components.code, {\n children: \"collectRepair\"\n }), \" from \", _jsx(_components.code, {\n children: \"ready\"\n }), \"), but \", _jsx(_components.code, {\n children: \"markRepairUnrepairable\"\n }), \" is NOT state-guarded that way: it is legal from \", _jsx(_components.code, {\n children: \"intake\"\n }), \", \", _jsx(_components.code, {\n children: \"in_workshop\"\n }), \" AND \", _jsx(_components.code, {\n children: \"ready\"\n }), \", so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Get a repair order by id","description":"Returns ONE repair order: the `article` taken in, the customer's `issueDescription`, the money (`quoteAmountCents` quoted, `depositAmountCents` acompte already captured at intake), the promised `expectedPickupDate` and the lifecycle `status`. `updatedAt` is the instant of the LAST transition and equals `createdAt` while the order is still at `intake`. The balance the customer still owes at pickup is `quoteAmountCents - depositAmountCents` — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (`sendRepairToWorkshop` from `intake`, `markRepairReady` from `in_workshop`, `collectRepair` from `ready`), but `markRepairUnrepairable` is NOT state-guarded that way: it is legal from `intake`, `in_workshop` AND `ready`, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/repairs/{orderId}","href":"/api-reference/repairs/get-a-repair-order-by-id","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getRepairOrder","summary":"Get a repair order by id","tags":["Repairs"],"description":"Returns ONE repair order: the `article` taken in, the customer's `issueDescription`, the money (`quoteAmountCents` quoted, `depositAmountCents` acompte already captured at intake), the promised `expectedPickupDate` and the lifecycle `status`. `updatedAt` is the instant of the LAST transition and equals `createdAt` while the order is still at `intake`. The balance the customer still owes at pickup is `quoteAmountCents - depositAmountCents` — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (`sendRepairToWorkshop` from `intake`, `markRepairReady` from `in_workshop`, `collectRepair` from `ready`), but `markRepairUnrepairable` is NOT state-guarded that way: it is legal from `intake`, `in_workshop` AND `ready`, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.","parameters":["9e073226-a568-43fa-a2a6-ab5a1f785d6b"],"security":["6d431e62-975a-4940-8639-4b1aa9f3ddc5"],"x-agent-tier":"preferred","x-required-permissions":["pos.sav.manage"],"responses":{"200":"a52c42f3-3b35-4f32-a56a-c53ec2f6ccfb","400":"af86ac90-cf47-4376-9685-0f9568d1ea6d","401":"53249d71-485d-4f9d-b9dc-35e1cc11b2d9","403":"a0d96a6e-4a4a-411b-be40-d800cd37e41e","404":"1467abca-c32f-46f3-a14c-c8d94a412f0d","500":"1a67716c-6ae0-458d-8671-a657e1ddf38e"},"method":"get","type":"path","servers":["e916e6f6-9ac8-4670-9030-c73027795f70"],"path":"/v1/repairs/{orderId}","baseUrlOptions":["/"],"title":"Get a repair order by id","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"9e073226-a568-43fa-a2a6-ab5a1f785d6b":{"schema":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"","typeLabel":"string"},"in":"path","name":"orderId","required":true}},"responses":{"a52c42f3-3b35-4f32-a56a-c53ec2f6ccfb":{"description":"The repair order in its current lifecycle state.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"article":{"type":"object","properties":{"label":{"type":"string","isRequired":true,"uniqueKey":"article.label","typeLabel":"string"},"skuId":{"type":"string","uniqueKey":"article.skuId","typeLabel":"string"},"serial":{"type":"object","properties":{"kind":{"type":"string","enum":["serial","imei"],"isRequired":true,"uniqueKey":"article.serial.kind","typeLabel":"enum\u003cstring>"},"value":{"type":"string","isRequired":true,"uniqueKey":"article.serial.value","typeLabel":"string"}},"required":["kind","value"],"additionalProperties":false,"uniqueKey":"article.serial","typeLabel":"object"},"purchasedAt":{"type":"string","uniqueKey":"article.purchasedAt","typeLabel":"string"}},"required":["label"],"additionalProperties":false,"isRequired":true,"uniqueKey":"article","typeLabel":"object"},"issueDescription":{"type":"string","isRequired":true,"uniqueKey":"issueDescription","typeLabel":"string"},"quoteAmountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"quoteAmountCents","typeLabel":"integer"},"depositAmountCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"depositAmountCents","typeLabel":"integer"},"expectedPickupDate":{"type":"string","isRequired":true,"uniqueKey":"expectedPickupDate","typeLabel":"string"},"customerId":{"type":"string","isRequired":true,"uniqueKey":"customerId","typeLabel":"string"},"storeId":{"type":"string","isRequired":true,"uniqueKey":"storeId","typeLabel":"string"},"status":{"type":"string","enum":["intake","in_workshop","ready","collected","unrepairable"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"actorId":{"type":"string","isRequired":true,"uniqueKey":"actorId","typeLabel":"string"},"createdAt":{"type":"string","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string"},"updatedAt":{"type":"string","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string"}},"required":["id","article","issueDescription","quoteAmountCents","depositAmountCents","expectedPickupDate","customerId","storeId","status","actorId","createdAt","updatedAt"],"additionalProperties":false,"description":"The repair order in its current lifecycle state.","example":{"id":"rep-2030-000471","article":{"label":"Smartphone screen","skuId":"d4c81e5b0f7a396248ce15b7d0a83f62915ce4d7b0863af251d94c7e08b3f6a1","purchasedAt":"2029-01-16T09:00:00.000Z"},"issueDescription":"Cracked screen after a drop","quoteAmountCents":12000,"depositAmountCents":3600,"expectedPickupDate":"2030-07-20T18:00:00.000Z","customerId":"cust-1","storeId":"store-rivoli","status":"intake","actorId":"user-camille","createdAt":"2030-07-10T14:05:00.000Z","updatedAt":"2030-07-10T14:05:00.000Z"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"rep-2030-000471","article":{"label":"Smartphone screen","skuId":"d4c81e5b0f7a396248ce15b7d0a83f62915ce4d7b0863af251d94c7e08b3f6a1","purchasedAt":"2029-01-16T09:00:00.000Z"},"issueDescription":"Cracked screen after a drop","quoteAmountCents":12000,"depositAmountCents":3600,"expectedPickupDate":"2030-07-20T18:00:00.000Z","customerId":"cust-1","storeId":"store-rivoli","status":"intake","actorId":"user-camille","createdAt":"2030-07-10T14:05:00.000Z","updatedAt":"2030-07-10T14:05:00.000Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"af86ac90-cf47-4376-9685-0f9568d1ea6d":{"description":"The request failed schema validation; `error.fieldErrors` lists the fields.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"description":"A `VALIDATION_FAILED` envelope carrying the offending fields in `fieldErrors`.","properties":{"error":{"type":"object","required":["code","message","statusCode"],"additionalProperties":false,"properties":{"code":{"type":"string","enum":["VALIDATION_FAILED"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"statusCode":{"type":"integer","isRequired":true,"uniqueKey":"error.statusCode","typeLabel":"integer"},"fieldErrors":{"type":"array","description":"One entry per rejected field: the field path and why it was rejected.","items":{"type":"object","required":["field","message"],"additionalProperties":false,"properties":{"field":{"type":"string","description":"Dot-path of the offending field.","isRequired":true,"uniqueKey":"error.fieldErrors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","description":"Why the field was rejected.","isRequired":true,"uniqueKey":"error.fieldErrors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.fieldErrors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.fieldErrors","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_FAILED","message":"\u003cstring>","statusCode":123,"fieldErrors":[{"field":"\u003cstring>","message":"\u003cstring>"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"53249d71-485d-4f9d-b9dc-35e1cc11b2d9":{"description":"No valid credential was presented — send a bearer token.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"description":"The uniform failure envelope every non-2xx response returns.","properties":{"error":{"type":"object","required":["code","message","statusCode"],"additionalProperties":false,"properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","BUSINESS_RULE_VIOLATION","INTERNAL_ERROR"],"description":"Machine-readable kernel `ResultCode` — branch on this, not on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation. Safe to surface; never leaks server internals.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"statusCode":{"type":"integer","description":"The HTTP status, mirrored into the body so a client need not read headers.","isRequired":true,"uniqueKey":"error.statusCode","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_FAILED","message":"\u003cstring>","statusCode":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"a0d96a6e-4a4a-411b-be40-d800cd37e41e":{"description":"The actor is authenticated but lacks the required `pos.*` scope.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"description":"The uniform failure envelope every non-2xx response returns.","properties":{"error":{"type":"object","required":["code","message","statusCode"],"additionalProperties":false,"properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","BUSINESS_RULE_VIOLATION","INTERNAL_ERROR"],"description":"Machine-readable kernel `ResultCode` — branch on this, not on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation. Safe to surface; never leaks server internals.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"statusCode":{"type":"integer","description":"The HTTP status, mirrored into the body so a client need not read headers.","isRequired":true,"uniqueKey":"error.statusCode","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_FAILED","message":"\u003cstring>","statusCode":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"1467abca-c32f-46f3-a14c-c8d94a412f0d":{"description":"No resource matches the addressed identifier.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"description":"The uniform failure envelope every non-2xx response returns.","properties":{"error":{"type":"object","required":["code","message","statusCode"],"additionalProperties":false,"properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","BUSINESS_RULE_VIOLATION","INTERNAL_ERROR"],"description":"Machine-readable kernel `ResultCode` — branch on this, not on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation. Safe to surface; never leaks server internals.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"statusCode":{"type":"integer","description":"The HTTP status, mirrored into the body so a client need not read headers.","isRequired":true,"uniqueKey":"error.statusCode","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_FAILED","message":"\u003cstring>","statusCode":123}}}},"exampleType":"generated"}},"exampleType":"generated"},"1a67716c-6ae0-458d-8671-a657e1ddf38e":{"description":"An unexpected server error — safe to retry idempotent requests.","content":{"application/json":{"schema":{"type":"object","required":["error"],"additionalProperties":false,"description":"The uniform failure envelope every non-2xx response returns.","properties":{"error":{"type":"object","required":["code","message","statusCode"],"additionalProperties":false,"properties":{"code":{"type":"string","enum":["VALIDATION_FAILED","UNAUTHORIZED","FORBIDDEN","NOT_FOUND","CONFLICT","BUSINESS_RULE_VIOLATION","INTERNAL_ERROR"],"description":"Machine-readable kernel `ResultCode` — branch on this, not on `message`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation. Safe to surface; never leaks server internals.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"statusCode":{"type":"integer","description":"The HTTP status, mirrored into the body so a client need not read headers.","isRequired":true,"uniqueKey":"error.statusCode","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_FAILED","message":"\u003cstring>","statusCode":123}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6d431e62-975a-4940-8639-4b1aa9f3ddc5":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"`Authorization: Bearer \u003ctoken>`. 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.","scopes":[]}}},"servers":{"e916e6f6-9ac8-4670-9030-c73027795f70":{"url":"/","description":"The backend, relative to its deployed origin."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"`Authorization: Bearer \u003ctoken>`. 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.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"`Authorization: Bearer \u003ctoken>`. 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.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"solya-pos","siteName":"Solya POS Docs","title":"Get a repair order by id - Solya POS Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/repairs/get-a-repair-order-by-id","matchLevel":0},"fr":{"href":"/api-reference/repairs/get-a-repair-order-by-id","matchLevel":0}}},"lastModified":"2026-08-12T05:56:34.048Z","originalFileLocation":"api-reference/repairs/get-a-repair-order-by-id.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Returns ONE repair order: the article taken in, the customer\u0026#x27;s issueDescription, the money (quoteAmountCents quoted, depositAmountCents acompte already captured at intake), the promised expectedPickupDate and the lifecycle status. updatedAt is the instant of the LAST transition and equals createdAt while the order is still at intake. The balance the customer still owes at pickup is quoteAmountCents - depositAmountCents — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (sendRepairToWorkshop from intake, markRepairReady from in_workshop, collectRepair from ready), but markRepairUnrepairable is NOT state-guarded that way: it is legal from intake, in_workshop AND ready, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Solya POS Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get a repair order by id - Solya POS Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns ONE repair order: the article taken in, the customer\u0026#x27;s issueDescription, the money (quoteAmountCents quoted, depositAmountCents acompte already captured at intake), the promised expectedPickupDate and the lifecycle status. updatedAt is the instant of the LAST transition and equals createdAt while the order is still at intake. The balance the customer still owes at pickup is quoteAmountCents - depositAmountCents — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (sendRepairToWorkshop from intake, markRepairReady from in_workshop, collectRepair from ready), but markRepairUnrepairable is NOT state-guarded that way: it is legal from intake, in_workshop AND ready, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Solya POS Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://solya-pos.mintlify.app/_mintlify/api/og/v2?division=Repairs\u0026amp;title=Get+a+repair+order+by+id\u0026amp;description=Returns+ONE+repair+order%3A+the+%60article%60+taken+in%2C+the+customer%27s+%60issueDescription%60%2C+the+money+%28%60quoteAmountCents%60+quoted%2C+%60depositAmountCents%60+acompte+already+\u0026amp;theme=d38e9e894d2efabe74a4c74f\u0026amp;signature=696d0ea582177f3b98faa8bd702640546d5a22ed3161cc71ad5d62ad25cf7ab8\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Get a repair order by id - Solya POS Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns ONE repair order: the article taken in, the customer\u0026#x27;s issueDescription, the money (quoteAmountCents quoted, depositAmountCents acompte already captured at intake), the promised expectedPickupDate and the lifecycle status. updatedAt is the instant of the LAST transition and equals createdAt while the order is still at intake. The balance the customer still owes at pickup is quoteAmountCents - depositAmountCents — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (sendRepairToWorkshop from intake, markRepairReady from in_workshop, collectRepair from ready), but markRepairUnrepairable is NOT state-guarded that way: it is legal from intake, in_workshop AND ready, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://solya-pos.mintlify.app/_mintlify/api/og/v2?division=Repairs\u0026amp;title=Get+a+repair+order+by+id\u0026amp;description=Returns+ONE+repair+order%3A+the+%60article%60+taken+in%2C+the+customer%27s+%60issueDescription%60%2C+the+money+%28%60quoteAmountCents%60+quoted%2C+%60depositAmountCents%60+acompte+already+\u0026amp;theme=d38e9e894d2efabe74a4c74f\u0026amp;signature=696d0ea582177f3b98faa8bd702640546d5a22ed3161cc71ad5d62ad25cf7ab8\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/solya-pos/bjR54-UDpBaR8quu/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Solya POS Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#7367F0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/repairs/get-a-repair-order-by-id.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs-pos.solya.app/#organization\",\"name\":\"Solya POS Docs\",\"url\":\"https://docs-pos.solya.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/solya-pos/-jF44ACKJ9wNNMCD/images/logo-light.png?fit=max\u0026auto=format\u0026n=-jF44ACKJ9wNNMCD\u0026q=85\u0026s=f4e34e81952858b22c95479dc4bcb8b4\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs-pos.solya.app#website\",\"name\":\"Solya POS Docs\",\"url\":\"https://docs-pos.solya.app\",\"publisher\":{\"@id\":\"https://docs-pos.solya.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id#webpage\",\"url\":\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id\",\"name\":\"Get a repair order by id\",\"description\":\"Returns ONE repair order: the article taken in, the customer's issueDescription, the money (quoteAmountCents quoted, depositAmountCents acompte already captured at intake), the promised expectedPickupDate and the lifecycle status. updatedAt is the instant of the LAST transition and equals createdAt while the order is still at intake. The balance the customer still owes at pickup is quoteAmountCents - depositAmountCents — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (sendRepairToWorkshop from intake, markRepairReady from in_workshop, collectRepair from ready), but markRepairUnrepairable is NOT state-guarded that way: it is legal from intake, in_workshop AND ready, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.\",\"dateModified\":\"2026-08-12T05:56:34.048Z\",\"isPartOf\":{\"@id\":\"https://docs-pos.solya.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Services\",\"item\":\"https://docs-pos.solya.app/api-reference/rentals/list-rentals\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Repairs\",\"item\":\"https://docs-pos.solya.app/api-reference/repairs/list-repair-orders\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get a repair order by id\",\"item\":\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id#apireference\",\"headline\":\"Get a repair order by id\",\"name\":\"Get a repair order by id\",\"description\":\"Returns ONE repair order: the article taken in, the customer's issueDescription, the money (quoteAmountCents quoted, depositAmountCents acompte already captured at intake), the promised expectedPickupDate and the lifecycle status. updatedAt is the instant of the LAST transition and equals createdAt while the order is still at intake. The balance the customer still owes at pickup is quoteAmountCents - depositAmountCents — the API does NOT return it as a field, so compute it. Call this before any transition to confirm the current state, because none of them can be reversed. The three FORWARD verbs each advance from exactly one state (sendRepairToWorkshop from intake, markRepairReady from in_workshop, collectRepair from ready), but markRepairUnrepairable is NOT state-guarded that way: it is legal from intake, in_workshop AND ready, so a repaired order waiting at the counter can still be written off terminally in one call. Never call it speculatively expecting a 422 to protect you. 404s when no order carries the id.\",\"url\":\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id\",\"mainEntityOfPage\":{\"@id\":\"https://docs-pos.solya.app/api-reference/repairs/get-a-repair-order-by-id#webpage\"},\"dateModified\":\"2026-08-12T05:56:34.048Z\",\"publisher\":{\"@id\":\"https://docs-pos.solya.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs-pos.solya.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Solya POS Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Solya POS Docs","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/en"}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/en/developers/overview"}]},{"tab":"API Reference","groups":[{"group":"Ventes \u0026 encaissement","pages":[{"group":"Checkout","pages":[{"title":"List appointments (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/appointments","href":"/api-reference/checkout/list-appointments-rdv"},{"title":"Book an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments","href":"/api-reference/checkout/book-an-appointment-rdv"},{"title":"Get an appointment (RDV) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/appointments/{appointmentId}","href":"/api-reference/checkout/get-an-appointment-rdv-by-id"},{"title":"Cancel an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/cancel","href":"/api-reference/checkout/cancel-an-appointment-rdv"},{"title":"Complete an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/complete","href":"/api-reference/checkout/complete-an-appointment-rdv"},{"title":"Confirm an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/confirm","href":"/api-reference/checkout/confirm-an-appointment-rdv"},{"title":"Mark an appointment (RDV) as a no-show","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/no-show","href":"/api-reference/checkout/mark-an-appointment-rdv-as-a-no-show"},{"title":"Reschedule an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/reschedule","href":"/api-reference/checkout/reschedule-an-appointment-rdv"},{"title":"Finalize a settled sale (encaissement)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/finalize","href":"/api-reference/checkout/finalize-a-settled-sale-encaissement"},{"title":"List deposits (acomptes)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/deposits","href":"/api-reference/checkout/list-deposits-acomptes"},{"title":"Open a deposit (acompte)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/deposits","href":"/api-reference/checkout/open-a-deposit-acompte"},{"title":"Get a deposit (acompte) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/deposits/{depositId}","href":"/api-reference/checkout/get-a-deposit-acompte-by-id"},{"title":"Record a deposit payment (versement)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/deposits/{depositId}/payments","href":"/api-reference/checkout/record-a-deposit-payment-versement"},{"title":"Settle a deposit (acompte)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/deposits/{depositId}/settle","href":"/api-reference/checkout/settle-a-deposit-acompte"},{"title":"List open parked sales","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/parked","href":"/api-reference/checkout/list-open-parked-sales"},{"title":"Park a cart","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/parked","href":"/api-reference/checkout/park-a-cart"},{"title":"Get a parked sale by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/parked/{parkedSaleId}","href":"/api-reference/checkout/get-a-parked-sale-by-id"},{"title":"Drop a parked sale","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/parked/{parkedSaleId}","href":"/api-reference/checkout/drop-a-parked-sale"},{"title":"Resume a parked sale","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/parked/{parkedSaleId}/resume","href":"/api-reference/checkout/resume-a-parked-sale"},{"title":"List quotes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/quotes","href":"/api-reference/checkout/list-quotes"},{"title":"Create a quote (devis)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/quotes","href":"/api-reference/checkout/create-a-quote-devis"},{"title":"Get a quote by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/quotes/{quoteId}","href":"/api-reference/checkout/get-a-quote-by-id"},{"title":"Update a quote","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/quotes/{quoteId}","href":"/api-reference/checkout/update-a-quote"},{"title":"Accept a quote","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/quotes/{quoteId}/accept","href":"/api-reference/checkout/accept-a-quote"},{"title":"Cancel a quote","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/quotes/{quoteId}/cancel","href":"/api-reference/checkout/cancel-a-quote"},{"title":"Send a quote","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/quotes/{quoteId}/send","href":"/api-reference/checkout/send-a-quote"},{"title":"List in-store holds","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reservations","href":"/api-reference/checkout/list-in-store-holds"},{"title":"Place an in-store hold (réservation)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reservations","href":"/api-reference/checkout/place-an-in-store-hold-réservation"},{"title":"Get a reservation by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reservations/{reservationId}","href":"/api-reference/checkout/get-a-reservation-by-id"},{"title":"Cancel a hold","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reservations/{reservationId}/cancel","href":"/api-reference/checkout/cancel-a-hold"},{"title":"Fulfil a hold","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reservations/{reservationId}/fulfil","href":"/api-reference/checkout/fulfil-a-hold"},{"title":"Open a register session (session de caisse)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/sessions","href":"/api-reference/checkout/open-a-register-session-session-de-caisse"},{"title":"Get a register session (session de caisse) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sessions/{sessionId}","href":"/api-reference/checkout/get-a-register-session-session-de-caisse-by-id"},{"title":"Close a register session (clôture de caisse)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/sessions/{sessionId}/close","href":"/api-reference/checkout/close-a-register-session-clôture-de-caisse"},{"title":"Record a cash movement (mouvement de caisse) on a session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/sessions/{sessionId}/movements","href":"/api-reference/checkout/record-a-cash-movement-mouvement-de-caisse-on-a-session"}]},{"group":"Orders","pages":[{"title":"List orders (commandes)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/orders","href":"/api-reference/orders/list-orders-commandes"},{"title":"Capture an order (commande)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/orders","href":"/api-reference/orders/capture-an-order-commande"},{"title":"Get an order by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/orders/{id}","href":"/api-reference/orders/get-an-order-by-id"},{"title":"Advance an order","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/orders/{id}/advance","href":"/api-reference/orders/advance-an-order"},{"title":"Revert an order one step","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/orders/{id}/revert","href":"/api-reference/orders/revert-an-order-one-step"},{"title":"Route a captured order","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/orders/{id}/route","href":"/api-reference/orders/route-a-captured-order"}]},{"group":"Returns","pages":[{"title":"How much is still refundable on an acompte / caution","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/refunds/refundable/{subjectKind}/{subjectId}","href":"/api-reference/returns/how-much-is-still-refundable-on-an-acompte-caution"},{"title":"Refund an acompte / caution as store credit (avoir)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/refunds/store-credit","href":"/api-reference/returns/refund-an-acompte-caution-as-store-credit-avoir"},{"title":"Get a store-credit refund by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/refunds/{refundId}","href":"/api-reference/returns/get-a-store-credit-refund-by-id"},{"title":"List processed returns (retours)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/returns","href":"/api-reference/returns/list-processed-returns-retours"},{"title":"Process a return (retour / avoir)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/returns","href":"/api-reference/returns/process-a-return-retour-avoir"},{"title":"Get a processed return by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/returns/{id}","href":"/api-reference/returns/get-a-processed-return-by-id"},{"title":"Get a return's cash-drawer pay-out","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/returns/{id}/cash-movement","href":"/api-reference/returns/get-a-returns-cash-drawer-pay-out"}]},{"group":"Fiscal","pages":[{"title":"List the published fiscal verification keys","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal-keys","href":"/api-reference/fiscal/list-the-published-fiscal-verification-keys"},{"title":"Export the period retention archive","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/archive","href":"/api-reference/fiscal/export-the-period-retention-archive"},{"title":"Get one sealed closure by period","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/closure","href":"/api-reference/fiscal/get-one-sealed-closure-by-period"},{"title":"List a store's sealed closures","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/closures","href":"/api-reference/fiscal/list-a-stores-sealed-closures"},{"title":"Seal a mandatory fiscal closure","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fiscal/closures","href":"/api-reference/fiscal/seal-a-mandatory-fiscal-closure"},{"title":"Export the signed fiscal journal","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/journal","href":"/api-reference/fiscal/export-the-signed-fiscal-journal"},{"title":"Verify the fiscal chain integrity","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/verify","href":"/api-reference/fiscal/verify-the-fiscal-chain-integrity"},{"title":"Fiscal X (mid-shift read)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/x","href":"/api-reference/fiscal/fiscal-x-mid-shift-read"},{"title":"Fiscal Z (closing report)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/z","href":"/api-reference/fiscal/fiscal-z-closing-report"}]},{"group":"Compliance","pages":[{"title":"List age-verification attestations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/age-attestations","href":"/api-reference/compliance/list-age-verification-attestations"},{"title":"Record an age-verification attestation","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/age-attestations","href":"/api-reference/compliance/record-an-age-verification-attestation"}]}]},{"group":"Catalogue \u0026 stock","pages":[{"group":"Catalog","pages":[{"title":"List catalog brands (marques)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/brands","href":"/api-reference/catalog/list-catalog-brands-marques"},{"title":"Create a brand (marque)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/brands","href":"/api-reference/catalog/create-a-brand-marque"},{"title":"Get a brand (marque) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/brands/{brandId}","href":"/api-reference/catalog/get-a-brand-marque-by-id"},{"title":"Update a brand (marque)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/brands/{brandId}","href":"/api-reference/catalog/update-a-brand-marque"},{"title":"Deactivate (archive) a brand (marque)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/brands/{brandId}/deactivate","href":"/api-reference/catalog/deactivate-archive-a-brand-marque"},{"title":"List a brand's suppliers (fournisseurs)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/brands/{brandId}/suppliers","href":"/api-reference/catalog/list-a-brands-suppliers-fournisseurs"},{"title":"Replace a brand's supplier (fournisseur) set","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/brands/{brandId}/suppliers","href":"/api-reference/catalog/replace-a-brands-supplier-fournisseur-set"},{"title":"Enrich a single brand or product synchronously","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/catalog/enrich","href":"/api-reference/catalog/enrich-a-single-brand-or-product-synchronously"},{"title":"Upload a supplier PDF catalogue for extraction","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/catalog/imports","href":"/api-reference/catalog/upload-a-supplier-pdf-catalogue-for-extraction"},{"title":"Poll a catalogue-import job's status and proposed products","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/catalog/imports/{jobId}","href":"/api-reference/catalog/poll-a-catalogue-import-jobs-status-and-proposed-products"},{"title":"List catalog kits (coffrets, nomenclatures)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/kits","href":"/api-reference/catalog/list-catalog-kits-coffrets-nomenclatures"},{"title":"Create a kit (coffret / nomenclature / BOM)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/kits","href":"/api-reference/catalog/create-a-kit-coffret-nomenclature-bom"},{"title":"Update a kit (coffret / nomenclature)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/kits/{id}","href":"/api-reference/catalog/update-a-kit-coffret-nomenclature"},{"title":"Deactivate (archive) a kit (coffret)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/kits/{id}/deactivate","href":"/api-reference/catalog/deactivate-archive-a-kit-coffret"},{"title":"Resolve a kit's price and explosion (nomenclature)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/kits/{id}/resolve","href":"/api-reference/catalog/resolve-a-kits-price-and-explosion-nomenclature"},{"title":"List markdown schedules (démarques / soldes)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/markdowns","href":"/api-reference/catalog/list-markdown-schedules-démarques-soldes"},{"title":"Set a product's markdown schedule (démarque programmée)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/markdowns","href":"/api-reference/catalog/set-a-products-markdown-schedule-démarque-programmée"},{"title":"Resolve a product's markdown price (prix démarqué)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/markdowns/{productId}","href":"/api-reference/catalog/resolve-a-products-markdown-price-prix-démarqué"},{"title":"Deactivate a product's markdown schedule (fin de démarque)","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/markdowns/{productId}","href":"/api-reference/catalog/deactivate-a-products-markdown-schedule-fin-de-démarque"},{"title":"List / search catalog products (produits, articles)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products","href":"/api-reference/catalog/list-search-catalog-products-produits-articles"},{"title":"Create a product (produit)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/products","href":"/api-reference/catalog/create-a-product-produit"},{"title":"Bulk-import products","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/products/import","href":"/api-reference/catalog/bulk-import-products"},{"title":"List the sellable catalogue (produits + prix de vente TTC)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products/sellable","href":"/api-reference/catalog/list-the-sellable-catalogue-produits-+-prix-de-vente-ttc"},{"title":"Get a product (produit) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products/{id}","href":"/api-reference/catalog/get-a-product-produit-by-id"},{"title":"Update a product (produit)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/products/{id}","href":"/api-reference/catalog/update-a-product-produit"},{"title":"Get a product's priced sellable units (prix de vente TTC)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products/{id}/units","href":"/api-reference/catalog/get-a-products-priced-sellable-units-prix-de-vente-ttc"},{"title":"Global cross-entity search (recherche globale)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/search","href":"/api-reference/catalog/global-cross-entity-search-recherche-globale"},{"title":"List price overrides (prix magasin) by store or by product","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/store-prices","href":"/api-reference/catalog/list-price-overrides-prix-magasin-by-store-or-by-product"},{"title":"Set a store price override (prix magasin / surcharge)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/store-prices","href":"/api-reference/catalog/set-a-store-price-override-prix-magasin-surcharge"},{"title":"Clear a store price override","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/store-prices","href":"/api-reference/catalog/clear-a-store-price-override"},{"title":"List taxonomy axes (classification, familles)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taxonomy","href":"/api-reference/catalog/list-taxonomy-axes-classification-familles"},{"title":"Create a taxonomy axis (axe de classification)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy","href":"/api-reference/catalog/create-a-taxonomy-axis-axe-de-classification"},{"title":"List the importable taxonomy presets (librairie d'axes)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taxonomy/presets","href":"/api-reference/catalog/list-the-importable-taxonomy-presets-librairie-daxes"},{"title":"Save the current taxonomy as an internal preset","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy/presets","href":"/api-reference/catalog/save-the-current-taxonomy-as-an-internal-preset"},{"title":"Delete an internal taxonomy preset","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/taxonomy/presets/{presetId}","href":"/api-reference/catalog/delete-an-internal-taxonomy-preset"},{"title":"Import a taxonomy preset (importer une librairie d'axes)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy/presets/{presetId}/import","href":"/api-reference/catalog/import-a-taxonomy-preset-importer-une-librairie-daxes"},{"title":"Preview a taxonomy preset import (dry run)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taxonomy/presets/{presetId}/preview","href":"/api-reference/catalog/preview-a-taxonomy-preset-import-dry-run"},{"title":"Get a taxonomy axis (axe de classification) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taxonomy/{axisId}","href":"/api-reference/catalog/get-a-taxonomy-axis-axe-de-classification-by-id"},{"title":"Update a taxonomy axis (axe de classification)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/taxonomy/{axisId}","href":"/api-reference/catalog/update-a-taxonomy-axis-axe-de-classification"},{"title":"Delete a taxonomy axis (supprimer un axe)","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/taxonomy/{axisId}","href":"/api-reference/catalog/delete-a-taxonomy-axis-supprimer-un-axe"},{"title":"Deactivate (archive) a taxonomy axis (axe de classification)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy/{axisId}/deactivate","href":"/api-reference/catalog/deactivate-archive-a-taxonomy-axis-axe-de-classification"},{"title":"Reparent a taxonomy node (déplacer un nœud)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy/{axisId}/nodes/{nodeId}/move","href":"/api-reference/catalog/reparent-a-taxonomy-node-déplacer-un-nœud"}]},{"group":"Inventory","pages":[{"title":"List cadence configs (cadence de comptage tournant)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cycle-counts/cadences","href":"/api-reference/inventory/list-cadence-configs-cadence-de-comptage-tournant"},{"title":"Upsert a store's cadence config","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cycle-counts/cadences","href":"/api-reference/inventory/upsert-a-stores-cadence-config"},{"title":"Plan a store's due cycle counts (comptage tournant)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cycle-counts/plan","href":"/api-reference/inventory/plan-a-stores-due-cycle-counts-comptage-tournant"},{"title":"Set a SKU's count policy","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cycle-counts/policies","href":"/api-reference/inventory/set-a-skus-count-policy"},{"title":"Complete a count task","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cycle-counts/tasks/{skuId}/complete","href":"/api-reference/inventory/complete-a-count-task"},{"title":"Skip a count task","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cycle-counts/tasks/{skuId}/skip","href":"/api-reference/inventory/skip-a-count-task"},{"title":"List stock items (stock / inventaire)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory","href":"/api-reference/inventory/list-stock-items-stock-inventaire"},{"title":"List count sessions (comptages / inventaires physiques)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/counts","href":"/api-reference/inventory/list-count-sessions-comptages-inventaires-physiques"},{"title":"Open a count session (comptage / inventaire physique)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/counts","href":"/api-reference/inventory/open-a-count-session-comptage-inventaire-physique"},{"title":"Get a count session by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/counts/{sessionId}","href":"/api-reference/inventory/get-a-count-session-by-id"},{"title":"Close a count session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/counts/{sessionId}/close","href":"/api-reference/inventory/close-a-count-session"},{"title":"Record a counted line","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/counts/{sessionId}/lines","href":"/api-reference/inventory/record-a-counted-line"},{"title":"Get a count session's valued variance","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/counts/{sessionId}/variance","href":"/api-reference/inventory/get-a-count-sessions-valued-variance"},{"title":"List stock in transit between stores","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/in-transit","href":"/api-reference/inventory/list-stock-in-transit-between-stores"},{"title":"List stock write-offs (démarque)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/write-offs","href":"/api-reference/inventory/list-stock-write-offs-démarque"},{"title":"Record a stock write-off (démarque)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/write-offs","href":"/api-reference/inventory/record-a-stock-write-off-démarque"},{"title":"Approve a stock write-off","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/write-offs/{id}/approve","href":"/api-reference/inventory/approve-a-stock-write-off"},{"title":"Reject a stock write-off","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/write-offs/{id}/reject","href":"/api-reference/inventory/reject-a-stock-write-off"},{"title":"Get a stock item by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/{id}","href":"/api-reference/inventory/get-a-stock-item-by-id"}]},{"group":"Replenishment","pages":[{"title":"List reorder policies (seuils de réapprovisionnement)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reorder-policies","href":"/api-reference/replenishment/list-reorder-policies-seuils-de-réapprovisionnement"},{"title":"Set a reorder policy (seuil min/max) for one SKU × store","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/reorder-policies","href":"/api-reference/replenishment/set-a-reorder-policy-seuil-minmax-for-one-sku-×-store"},{"title":"Generate replenishment suggestions (suggestions de réapprovisionnement) for a store","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reorder-policies/suggestions","href":"/api-reference/replenishment/generate-replenishment-suggestions-suggestions-de-réapprovisionnement-for-a-store"}]},{"group":"Transfer","pages":[{"title":"List transfers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/transfers","href":"/api-reference/transfer/list-transfers"},{"title":"Request a transfer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/transfers","href":"/api-reference/transfer/request-a-transfer"},{"title":"Get a transfer by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/transfers/{transferId}","href":"/api-reference/transfer/get-a-transfer-by-id"},{"title":"Cancel a transfer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/transfers/{transferId}/cancel","href":"/api-reference/transfer/cancel-a-transfer"},{"title":"Get a transfer's receipt discrepancy","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/transfers/{transferId}/discrepancy","href":"/api-reference/transfer/get-a-transfers-receipt-discrepancy"},{"title":"Receive a transfer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/transfers/{transferId}/receive","href":"/api-reference/transfer/receive-a-transfer"},{"title":"Ship a transfer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/transfers/{transferId}/ship","href":"/api-reference/transfer/ship-a-transfer"}]},{"group":"Procurement","pages":[{"title":"List the network's plans","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plans","href":"/api-reference/procurement/list-the-networks-plans"},{"title":"Open a plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plans","href":"/api-reference/procurement/open-a-plan"},{"title":"Get one plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plans/{planId}","href":"/api-reference/procurement/get-one-plan"},{"title":"Edit a draft plan","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/plans/{planId}","href":"/api-reference/procurement/edit-a-draft-plan"},{"title":"Cancel a draft plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plans/{planId}/cancel","href":"/api-reference/procurement/cancel-a-draft-plan"},{"title":"List the lines of one plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plans/{planId}/items","href":"/api-reference/procurement/list-the-lines-of-one-plan"},{"title":"Add a line to a draft plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plans/{planId}/items","href":"/api-reference/procurement/add-a-line-to-a-draft-plan"},{"title":"Remove a line from a draft plan","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/plans/{planId}/items/{itemId}","href":"/api-reference/procurement/remove-a-line-from-a-draft-plan"},{"title":"Judge a plan against the network's rules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plans/{planId}/rules","href":"/api-reference/procurement/judge-a-plan-against-the-networks-rules"},{"title":"Move a plan one step along its lifecycle","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plans/{planId}/transitions","href":"/api-reference/procurement/move-a-plan-one-step-along-its-lifecycle"},{"title":"List purchase orders (commandes fournisseur)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/purchase-orders","href":"/api-reference/procurement/list-purchase-orders-commandes-fournisseur"},{"title":"Create a purchase order (commande fournisseur / bon de commande)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/purchase-orders","href":"/api-reference/procurement/create-a-purchase-order-commande-fournisseur-bon-de-commande"},{"title":"Get a purchase order by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/purchase-orders/{orderId}","href":"/api-reference/procurement/get-a-purchase-order-by-id"},{"title":"Receive against a purchase order (réception de marchandise)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/purchase-orders/{orderId}/receive","href":"/api-reference/procurement/receive-against-a-purchase-order-réception-de-marchandise"},{"title":"Get a purchase order's received-vs-ordered variance (écart de réception)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/purchase-orders/{orderId}/variance","href":"/api-reference/procurement/get-a-purchase-orders-received-vs-ordered-variance-écart-de-réception"},{"title":"List returns-to-vendor (retours fournisseur)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/return-to-vendors","href":"/api-reference/procurement/list-returns-to-vendor-retours-fournisseur"},{"title":"Raise a return-to-vendor (retour fournisseur)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/return-to-vendors","href":"/api-reference/procurement/raise-a-return-to-vendor-retour-fournisseur"},{"title":"Get a return-to-vendor by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/return-to-vendors/{rtvId}","href":"/api-reference/procurement/get-a-return-to-vendor-by-id"},{"title":"Cancel a return-to-vendor","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/return-to-vendors/{rtvId}/cancel","href":"/api-reference/procurement/cancel-a-return-to-vendor"},{"title":"Credit a return-to-vendor","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/return-to-vendors/{rtvId}/credit","href":"/api-reference/procurement/credit-a-return-to-vendor"},{"title":"Ship a return-to-vendor","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/return-to-vendors/{rtvId}/ship","href":"/api-reference/procurement/ship-a-return-to-vendor"},{"title":"List suppliers (fournisseurs)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/suppliers","href":"/api-reference/procurement/list-suppliers-fournisseurs"},{"title":"Create a supplier","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/suppliers","href":"/api-reference/procurement/create-a-supplier"},{"title":"Get a supplier by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/suppliers/{supplierId}","href":"/api-reference/procurement/get-a-supplier-by-id"},{"title":"Update a supplier (fournisseur)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/suppliers/{supplierId}","href":"/api-reference/procurement/update-a-supplier-fournisseur"},{"title":"Deactivate a supplier","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/suppliers/{supplierId}/deactivate","href":"/api-reference/procurement/deactivate-a-supplier"}]},{"group":"Network","pages":[{"title":"List the companies (sociétés) the network trades under","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies","href":"/api-reference/network/list-the-companies-sociétés-the-network-trades-under"},{"title":"Create a company (société)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/companies","href":"/api-reference/network/create-a-company-société"},{"title":"Attach a store to a company and set its establishment number","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/companies/stores/{storeId}","href":"/api-reference/network/attach-a-store-to-a-company-and-set-its-establishment-number"},{"title":"Get a company with its identity history","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{companyId}","href":"/api-reference/network/get-a-company-with-its-identity-history"},{"title":"Edit a company's fiscal identity (appends a version)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/companies/{companyId}/identity","href":"/api-reference/network/edit-a-companys-fiscal-identity-appends-a-version"},{"title":"Resolve the fiscal header a store's documents print","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal-identity/stores/{storeId}","href":"/api-reference/network/resolve-the-fiscal-header-a-stores-documents-print"},{"title":"List the paired register peripherals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fleet","href":"/api-reference/network/list-the-paired-register-peripherals"},{"title":"Pair a device onto a register","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fleet","href":"/api-reference/network/pair-a-device-onto-a-register"},{"title":"Get a paired device by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fleet/{deviceId}","href":"/api-reference/network/get-a-paired-device-by-id"},{"title":"Update a paired device","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/fleet/{deviceId}","href":"/api-reference/network/update-a-paired-device"},{"title":"Retire (unpair) a paired device","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fleet/{deviceId}/retire","href":"/api-reference/network/retire-unpair-a-paired-device"},{"title":"List the network's regions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/regions","href":"/api-reference/network/list-the-networks-regions"},{"title":"Create a region","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/regions","href":"/api-reference/network/create-a-region"},{"title":"Get a region by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/regions/{regionId}","href":"/api-reference/network/get-a-region-by-id"},{"title":"Update a region","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/regions/{regionId}","href":"/api-reference/network/update-a-region"},{"title":"Deactivate (archive) a region","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/regions/{regionId}/deactivate","href":"/api-reference/network/deactivate-archive-a-region"},{"title":"List the network's stores","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/stores","href":"/api-reference/network/list-the-networks-stores"},{"title":"Provision a store","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/stores","href":"/api-reference/network/provision-a-store"},{"title":"Get a store by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/stores/{storeId}","href":"/api-reference/network/get-a-store-by-id"},{"title":"Update a store","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/stores/{storeId}","href":"/api-reference/network/update-a-store"},{"title":"Deactivate (close) a store","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/stores/{storeId}/deactivate","href":"/api-reference/network/deactivate-close-a-store"},{"title":"Reactivate (reopen) a store","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/stores/{storeId}/reactivate","href":"/api-reference/network/reactivate-reopen-a-store"},{"title":"List the network's VAT / tax codes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tax-codes","href":"/api-reference/network/list-the-networks-vat-tax-codes"},{"title":"Create a VAT / tax code","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/tax-codes","href":"/api-reference/network/create-a-vat-tax-code"},{"title":"Get a tax code by its code","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tax-codes/{code}","href":"/api-reference/network/get-a-tax-code-by-its-code"},{"title":"Update a VAT / tax code","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/tax-codes/{code}","href":"/api-reference/network/update-a-vat-tax-code"},{"title":"Deactivate (archive) a VAT / tax code","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/tax-codes/{code}/deactivate","href":"/api-reference/network/deactivate-archive-a-vat-tax-code"}]}]},{"group":"Finance","pages":[{"group":"Finance","pages":[{"title":"List finance entries","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance","href":"/api-reference/finance/list-finance-entries"},{"title":"Export a generic accounting file (journal entries / configurable CSV)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/accounting-export","href":"/api-reference/finance/export-a-generic-accounting-file-journal-entries-configurable-csv"},{"title":"Report cash discrepancies for a period","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/cash-discrepancy","href":"/api-reference/finance/report-cash-discrepancies-for-a-period"},{"title":"Get one session's cash discrepancy","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/cash-discrepancy/{sessionId}","href":"/api-reference/finance/get-one-sessions-cash-discrepancy"},{"title":"List deposit batches","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/deposits","href":"/api-reference/finance/list-deposit-batches"},{"title":"Open a deposit batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/finance/deposits","href":"/api-reference/finance/open-a-deposit-batch"},{"title":"Deposit trend (declared vs settled per day)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/deposits/trend","href":"/api-reference/finance/deposit-trend-declared-vs-settled-per-day"},{"title":"Get a deposit batch by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/deposits/{batchId}","href":"/api-reference/finance/get-a-deposit-batch-by-id"},{"title":"Settle a deposit line","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/finance/deposits/{batchId}/lines/settle","href":"/api-reference/finance/settle-a-deposit-line"},{"title":"Reconcile a deposit batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/finance/deposits/{batchId}/reconcile","href":"/api-reference/finance/reconcile-a-deposit-batch"},{"title":"Export the FEC accounting file","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/fec","href":"/api-reference/finance/export-the-fec-accounting-file"},{"title":"Report the period close","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/period-close","href":"/api-reference/finance/report-the-period-close"},{"title":"Close (lock) a fiscal period","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/finance/period-close","href":"/api-reference/finance/close-lock-a-fiscal-period"},{"title":"Get a finance entry by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/{entryId}","href":"/api-reference/finance/get-a-finance-entry-by-id"},{"title":"Windowed sales analytics report","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reports/sales","href":"/api-reference/finance/windowed-sales-analytics-report"},{"title":"List finalized sale tickets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sales","href":"/api-reference/finance/list-finalized-sale-tickets"},{"title":"Tally one salesperson's day","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sales/seller-day","href":"/api-reference/finance/tally-one-salespersons-day"},{"title":"Summarise sales into dashboard KPIs","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sales/summary","href":"/api-reference/finance/summarise-sales-into-dashboard-kpis"},{"title":"Get a sale ticket by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sales/{id}","href":"/api-reference/finance/get-a-sale-ticket-by-id"}]},{"group":"Billing","pages":[{"title":"Read the billing catalogue and current plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/credits/billing","href":"/api-reference/billing/read-the-billing-catalogue-and-current-plan"},{"title":"Grant SMS credits to the account wallet (crédit)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/credits/grant","href":"/api-reference/billing/grant-sms-credits-to-the-account-wallet-crédit"},{"title":"Read the credit wallet, ledger and usage (crédit, recharge)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/credits/overview","href":"/api-reference/billing/read-the-credit-wallet-ledger-and-usage-crédit-recharge"},{"title":"Open a Stripe Checkout session for a monthly plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/credits/plan","href":"/api-reference/billing/open-a-stripe-checkout-session-for-a-monthly-plan"},{"title":"Open a Stripe Checkout session for a credit top-up","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/credits/topup","href":"/api-reference/billing/open-a-stripe-checkout-session-for-a-credit-top-up"}]},{"group":"Instruments","pages":[{"title":"List stored-value instruments (carte cadeau, avoir)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/giftcards","href":"/api-reference/instruments/list-stored-value-instruments-carte-cadeau-avoir"},{"title":"Issue a stored-value instrument (carte cadeau, avoir)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards","href":"/api-reference/instruments/issue-a-stored-value-instrument-carte-cadeau-avoir"},{"title":"Report stored-value breakage across the whole network (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/giftcards/breakage","href":"/api-reference/instruments/report-stored-value-breakage-across-the-whole-network-carte-cadeau"},{"title":"Get an instrument by its bearer code (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/giftcards/by-code/{code}","href":"/api-reference/instruments/get-an-instrument-by-its-bearer-code-carte-cadeau"},{"title":"Bulk-issue stored-value instruments (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards/import","href":"/api-reference/instruments/bulk-issue-stored-value-instruments-carte-cadeau"},{"title":"Redeem value from an instrument (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards/redemptions","href":"/api-reference/instruments/redeem-value-from-an-instrument-carte-cadeau"},{"title":"Get an instrument by id (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/giftcards/{id}","href":"/api-reference/instruments/get-an-instrument-by-id-carte-cadeau"},{"title":"Reload an instrument with more value (recharge carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards/{id}/reload","href":"/api-reference/instruments/reload-an-instrument-with-more-value-recharge-carte-cadeau"},{"title":"Void an instrument (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards/{id}/void","href":"/api-reference/instruments/void-an-instrument-carte-cadeau"}]}]},{"group":"Clients \u0026 fidélité","pages":[{"group":"Customers","pages":[{"title":"List customers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers","href":"/api-reference/customers/list-customers"},{"title":"Register a customer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers","href":"/api-reference/customers/register-a-customer"},{"title":"Report the customer base by RFM segment (segment client)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/segments","href":"/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client"},{"title":"Get a customer by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}","href":"/api-reference/customers/get-a-customer-by-id"},{"title":"Update a customer profile","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/customers/{id}","href":"/api-reference/customers/update-a-customer-profile"},{"title":"Get a customer's consent record","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}/consent","href":"/api-reference/customers/get-a-customers-consent-record"},{"title":"Record a customer consent decision","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/consent","href":"/api-reference/customers/record-a-customer-consent-decision"},{"title":"Deactivate a customer (reversible)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/deactivation","href":"/api-reference/customers/deactivate-a-customer-reversible"},{"title":"Erase a customer's personal data (GDPR)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/erasure","href":"/api-reference/customers/erase-a-customers-personal-data-gdpr"},{"title":"Export a customer's personal data (GDPR)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/export","href":"/api-reference/customers/export-a-customers-personal-data-gdpr"},{"title":"Get a customer's purchase history","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}/purchases","href":"/api-reference/customers/get-a-customers-purchase-history"},{"title":"Reactivate a deactivated customer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/reactivation","href":"/api-reference/customers/reactivate-a-deactivated-customer"}]},{"group":"Loyalty","pages":[{"title":"List loyalty members (fidélité)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/loyalty","href":"/api-reference/loyalty/list-loyalty-members-fidélité"},{"title":"Get a customer's derived loyalty account (fidélité, palier)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/loyalty/accounts/{customerId}","href":"/api-reference/loyalty/get-a-customers-derived-loyalty-account-fidélité-palier"},{"title":"Accrue loyalty points for a sale (points de fidélité)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/loyalty/accruals","href":"/api-reference/loyalty/accrue-loyalty-points-for-a-sale-points-de-fidélité"},{"title":"Get the active loyalty program config (fidélité, paliers)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/loyalty/config","href":"/api-reference/loyalty/get-the-active-loyalty-program-config-fidélité-paliers"},{"title":"Replace the loyalty program config (fidélité, paliers)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/loyalty/config","href":"/api-reference/loyalty/replace-the-loyalty-program-config-fidélité-paliers"},{"title":"Redeem loyalty points for a discount (points de fidélité)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/loyalty/redemptions","href":"/api-reference/loyalty/redeem-loyalty-points-for-a-discount-points-de-fidélité"},{"title":"Get a loyalty member by id (fidélité)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/loyalty/{memberId}","href":"/api-reference/loyalty/get-a-loyalty-member-by-id-fidélité"}]},{"group":"Notifications","pages":[{"title":"Get per-channel notification availability","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/notifications/channels","href":"/api-reference/notifications/get-per-channel-notification-availability"},{"title":"Send a finalized sale's receipt to the customer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/notifications/receipt","href":"/api-reference/notifications/send-a-finalized-sales-receipt-to-the-customer"}]}]},{"group":"Marketing \u0026 promotions","pages":[{"group":"Promotions","pages":[{"title":"List the coupon catalogue (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/coupons","href":"/api-reference/promotions/list-the-coupon-catalogue-code-promo"},{"title":"Create one coupon under a chosen code (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons","href":"/api-reference/promotions/create-one-coupon-under-a-chosen-code-code-promo"},{"title":"Batch-generate a run of coupon codes (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons/batch","href":"/api-reference/promotions/batch-generate-a-run-of-coupon-codes-code-promo"},{"title":"Preview a coupon against a basket total (code promo, bon de réduction)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons/validate","href":"/api-reference/promotions/preview-a-coupon-against-a-basket-total-code-promo-bon-de-réduction"},{"title":"Edit an existing coupon (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/coupons/{id}","href":"/api-reference/promotions/edit-an-existing-coupon-code-promo"},{"title":"Deactivate a coupon (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons/{id}/deactivate","href":"/api-reference/promotions/deactivate-a-coupon-code-promo"},{"title":"Apply an authorised discount to a whole ticket","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/discounts/ticket","href":"/api-reference/promotions/apply-an-authorised-discount-to-a-whole-ticket"},{"title":"Get an applied discount by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/discounts/{id}","href":"/api-reference/promotions/get-an-applied-discount-by-id"},{"title":"List automatic promotion rules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/promotions","href":"/api-reference/promotions/list-automatic-promotion-rules"},{"title":"Create or replace an automatic promotion rule","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/promotions","href":"/api-reference/promotions/create-or-replace-an-automatic-promotion-rule"},{"title":"Evaluate the active promotion rules against a cart","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/promotions/evaluate","href":"/api-reference/promotions/evaluate-the-active-promotion-rules-against-a-cart"},{"title":"Get a promotion by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/promotions/{id}","href":"/api-reference/promotions/get-a-promotion-by-id"},{"title":"Update an existing promotion rule","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/promotions/{id}","href":"/api-reference/promotions/update-an-existing-promotion-rule"},{"title":"Deactivate a promotion rule","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/promotions/{id}/deactivate","href":"/api-reference/promotions/deactivate-a-promotion-rule"},{"title":"Get a promotion's full rule definition","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/promotions/{id}/rule","href":"/api-reference/promotions/get-a-promotions-full-rule-definition"}]},{"group":"Marketing","pages":[{"title":"List marketing campaigns (campagne)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/campaigns","href":"/api-reference/marketing/list-marketing-campaigns-campagne"},{"title":"Author a marketing campaign (campagne)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/campaigns","href":"/api-reference/marketing/author-a-marketing-campaign-campagne"},{"title":"Get a campaign by id (campagne)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/campaigns/{id}","href":"/api-reference/marketing/get-a-campaign-by-id-campagne"},{"title":"Preview a campaign's recipients without sending (campagne, relance)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/campaigns/{id}/dry-run","href":"/api-reference/marketing/preview-a-campaigns-recipients-without-sending-campagne-relance"},{"title":"Send a campaign to its consented audience (campagne, relance)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/campaigns/{id}/send","href":"/api-reference/marketing/send-a-campaign-to-its-consented-audience-campagne-relance"}]}]},{"group":"Services","pages":[{"group":"Rentals","pages":[{"title":"List rentals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rentals","href":"/api-reference/rentals/list-rentals"},{"title":"Open a rental","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rentals","href":"/api-reference/rentals/open-a-rental"},{"title":"Get a rental by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rentals/{rentalId}","href":"/api-reference/rentals/get-a-rental-by-id"},{"title":"Flag a rental as overdue","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rentals/{rentalId}/mark-overdue","href":"/api-reference/rentals/flag-a-rental-as-overdue"},{"title":"Return a rental and settle the caution","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rentals/{rentalId}/return","href":"/api-reference/rentals/return-a-rental-and-settle-the-caution"}]},{"group":"Repairs","pages":[{"title":"List repair orders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/repairs","href":"/api-reference/repairs/list-repair-orders"},{"title":"Take an article in for repair","description":"Opens a repair order in the `intake` state — the article is now in the store's custody. `article.label` is the only required article field; add `skuId` and `serial` when the unit is identifiable and `purchasedAt` when the original sale date is known. `purchasedAt` is RECORDED ONLY — the server derives nothing from it and never adjusts a price; the warranty helper that reads it lives in the till UI, and `quoteAmountCents` is entirely caller-supplied either way. MONEY: `quoteAmountCents` is the price quoted to the customer and `depositAmountCents` the acompte ALREADY captured at the counter (typically 30%; send `0` if none was taken). This endpoint captures nothing itself — take the acompte first, then record it here. There is NO update route: once open, neither the quote nor the acompte can ever be revised, so do not open an order on a provisional estimate. `id` is CALLER-SUPPLIED and is the dedup key: on a timeout retry with the SAME id — a 409 CONFLICT then means your first attempt committed, so read it back with `getRepairOrder` rather than minting a new id. 422 when `depositAmountCents` exceeds `quoteAmountCents`, or when `expectedPickupDate` is not in the future. Note `article.serial` is stored EXACTLY as sent — unlike the sale and warranty paths it is neither upper-cased/trimmed nor IMEI-checksummed here, so send an already-canonical value if you want it to match a serial captured elsewhere.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs","href":"/api-reference/repairs/take-an-article-in-for-repair"},{"title":"Get a repair order by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/repairs/{orderId}","href":"/api-reference/repairs/get-a-repair-order-by-id"},{"title":"Record collection of a repaired article","description":"TERMINAL AND IRREVERSIBLE. Records that the customer has taken the article back, flipping a `ready` order to `collected`. Send no body. MONEY TRAP: this records the handover ONLY — it neither collects the outstanding balance nor verifies that anyone did. That balance is `quoteAmountCents - depositAmountCents` (the API exposes no field for it, so compute it), and it must be taken at the till BEFORE you call this, because once the order is `collected` nothing in this API can reopen it, re-quote it or chase the money. Legal ONLY from `ready`; an order still `in_workshop` must be marked ready first. 422 in every other state, a second call on an already-`collected` order included; 404 for an unknown id. NOT IDEMPOTENT — there is no dedup key. It is A SEQUENTIAL replay cannot close the order twice (the status guard rejects it), but that guard is an unsynchronised read-then-write with no row lock (solya-pos#956), so do not fan concurrent calls at one order. If your call times out RE-READ with `getRepairOrder` before retrying: a `collected` status means the first attempt already committed, so do NOT collect the balance a second time.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs/{orderId}/collect","href":"/api-reference/repairs/record-collection-of-a-repaired-article"},{"title":"Mark a repair order ready for pickup","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs/{orderId}/ready","href":"/api-reference/repairs/mark-a-repair-order-ready-for-pickup"},{"title":"Send a repair order to the workshop","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs/{orderId}/to-workshop","href":"/api-reference/repairs/send-a-repair-order-to-the-workshop"},{"title":"Declare a repair order unrepairable","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs/{orderId}/unrepairable","href":"/api-reference/repairs/declare-a-repair-order-unrepairable"}]}]},{"group":"Assistant","pages":[{"title":"Ask the in-till assistant a question","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/assistant/chat","href":"/api-reference/assistant/ask-the-in-till-assistant-a-question"}]},{"group":"Intégrations \u0026 données","pages":[{"group":"Integrations","pages":[{"title":"List the connectors (intégration, connecteur)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/integrations","href":"/api-reference/integrations/list-the-connectors-intégration-connecteur"},{"title":"Read one connector (connecteur)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/integrations/{key}","href":"/api-reference/integrations/read-one-connector-connecteur"},{"title":"Configure a connector (connecteur, intégration)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/integrations/{key}","href":"/api-reference/integrations/configure-a-connector-connecteur-intégration"},{"title":"Disable a connector (connecteur)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/integrations/{key}/disable","href":"/api-reference/integrations/disable-a-connector-connecteur"},{"title":"Enable a connector (connecteur)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/integrations/{key}/enable","href":"/api-reference/integrations/enable-a-connector-connecteur"}]},{"group":"Merchandising import","pages":[{"title":"Bulk-import proposed promotions (promotions)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/import/promotions","href":"/api-reference/merchandising-import/bulk-import-proposed-promotions-promotions"},{"title":"Bulk-import proposed replenishment plans (commandes de réapprovisionnement)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/import/purchase-orders","href":"/api-reference/merchandising-import/bulk-import-proposed-replenishment-plans-commandes-de-réapprovisionnement"},{"title":"Bulk-import proposed inter-store transfer plans (transferts inter-magasins)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/import/transfers","href":"/api-reference/merchandising-import/bulk-import-proposed-inter-store-transfer-plans-transferts-inter-magasins"}]},{"group":"Data platform","pages":[{"title":"Export a resource's changed rows (incremental CDC feed)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/export/{resource}","href":"/api-reference/data-platform/export-a-resources-changed-rows-incremental-cdc-feed"}]}]},{"group":"Système","pages":[{"group":"Auth","pages":[{"title":"Resolve the authenticated actor's identity and effective POS scopes (MCP gateway alias)","deprecated":null,"version":null,"openapi":"/openapi.json get /api/auth/whoami","href":"/api-reference/auth/resolve-the-authenticated-actors-identity-and-effective-pos-scopes-mcp-gateway-alias"},{"title":"Request a single-use manager elevation grant","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/auth/elevate","href":"/api-reference/auth/request-a-single-use-manager-elevation-grant"},{"title":"Set or rotate the calling actor's own elevation PIN","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/auth/elevation/pin","href":"/api-reference/auth/set-or-rotate-the-calling-actors-own-elevation-pin"},{"title":"Resolve the authenticated actor's identity and effective POS scopes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/auth/whoami","href":"/api-reference/auth/resolve-the-authenticated-actors-identity-and-effective-pos-scopes"},{"title":"Tally the authenticated actor's own day","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/me/day-summary","href":"/api-reference/auth/tally-the-authenticated-actors-own-day"},{"title":"Get the POS permission manifest","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/permissions/manifest","href":"/api-reference/auth/get-the-pos-permission-manifest"}]},{"group":"Team","pages":[{"title":"List team members","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/team","href":"/api-reference/team/list-team-members"},{"title":"Provision a team member","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/team","href":"/api-reference/team/provision-a-team-member"},{"title":"Get a team member by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/team/{memberId}","href":"/api-reference/team/get-a-team-member-by-id"},{"title":"Replace a team member's directory record","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/team/{memberId}","href":"/api-reference/team/replace-a-team-members-directory-record"},{"title":"Offboard a team member (disable sign-in)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/team/{memberId}/deactivate","href":"/api-reference/team/offboard-a-team-member-disable-sign-in"},{"title":"Get a team member's effective permissions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/team/{memberId}/permissions","href":"/api-reference/team/get-a-team-members-effective-permissions"},{"title":"Re-onboard a team member (restore sign-in)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/team/{memberId}/reactivate","href":"/api-reference/team/re-onboard-a-team-member-restore-sign-in"},{"title":"Assign a scoped role to a team member","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/team/{memberId}/roles","href":"/api-reference/team/assign-a-scoped-role-to-a-team-member"},{"title":"Revoke a scoped role from a team member","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/team/{memberId}/roles","href":"/api-reference/team/revoke-a-scoped-role-from-a-team-member"}]},{"group":"Settings","pages":[{"title":"Read the order-routing rules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/routing-rules","href":"/api-reference/settings/read-the-order-routing-rules"},{"title":"Replace the order-routing rules","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/routing-rules","href":"/api-reference/settings/replace-the-order-routing-rules"},{"title":"List the network's business rules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rules","href":"/api-reference/settings/list-the-networks-business-rules"},{"title":"Create a rule from a catalogue template","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rules","href":"/api-reference/settings/create-a-rule-from-a-catalogue-template"},{"title":"List the network's rulesets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rules/groups","href":"/api-reference/settings/list-the-networks-rulesets"},{"title":"Create a ruleset","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rules/groups","href":"/api-reference/settings/create-a-ruleset"},{"title":"Change a ruleset","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/rules/groups/{groupId}","href":"/api-reference/settings/change-a-ruleset"},{"title":"List the rule catalogue","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rules/templates","href":"/api-reference/settings/list-the-rule-catalogue"},{"title":"Get one rule and its per-subject thresholds","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rules/{ruleId}","href":"/api-reference/settings/get-one-rule-and-its-per-subject-thresholds"},{"title":"Change a rule's threshold, mode, perimeter or switch","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/rules/{ruleId}","href":"/api-reference/settings/change-a-rules-threshold-mode-perimeter-or-switch"},{"title":"Read the network settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings","href":"/api-reference/settings/read-the-network-settings"},{"title":"Replace the network settings","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/settings","href":"/api-reference/settings/replace-the-network-settings"}]},{"group":"Devices","pages":[{"title":"Get the active card-terminal provider","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment-terminal/config","href":"/api-reference/devices/get-the-active-card-terminal-provider"},{"title":"Run the card-terminal round-trip self-test","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment-terminal/test","href":"/api-reference/devices/run-the-card-terminal-round-trip-self-test"}]},{"group":"Audit","pages":[{"title":"Query the central audit log","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/audit","href":"/api-reference/audit/query-the-central-audit-log"}]}]}]}]},{"language":"fr","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/fr"}]},{"tab":"Développeurs","pages":[{"title":"Développeurs","href":"/fr/developers/overview"}]},{"tab":"API Reference","groups":[{"group":"Ventes \u0026 encaissement","pages":[{"group":"Checkout","pages":[{"title":"List appointments (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/appointments","href":"/api-reference/checkout/list-appointments-rdv"},{"title":"Book an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments","href":"/api-reference/checkout/book-an-appointment-rdv"},{"title":"Get an appointment (RDV) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/appointments/{appointmentId}","href":"/api-reference/checkout/get-an-appointment-rdv-by-id"},{"title":"Cancel an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/cancel","href":"/api-reference/checkout/cancel-an-appointment-rdv"},{"title":"Complete an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/complete","href":"/api-reference/checkout/complete-an-appointment-rdv"},{"title":"Confirm an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/confirm","href":"/api-reference/checkout/confirm-an-appointment-rdv"},{"title":"Mark an appointment (RDV) as a no-show","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/no-show","href":"/api-reference/checkout/mark-an-appointment-rdv-as-a-no-show"},{"title":"Reschedule an appointment (RDV)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/appointments/{appointmentId}/reschedule","href":"/api-reference/checkout/reschedule-an-appointment-rdv"},{"title":"Finalize a settled sale (encaissement)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/checkout/finalize","href":"/api-reference/checkout/finalize-a-settled-sale-encaissement"},{"title":"List deposits (acomptes)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/deposits","href":"/api-reference/checkout/list-deposits-acomptes"},{"title":"Open a deposit (acompte)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/deposits","href":"/api-reference/checkout/open-a-deposit-acompte"},{"title":"Get a deposit (acompte) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/deposits/{depositId}","href":"/api-reference/checkout/get-a-deposit-acompte-by-id"},{"title":"Record a deposit payment (versement)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/deposits/{depositId}/payments","href":"/api-reference/checkout/record-a-deposit-payment-versement"},{"title":"Settle a deposit (acompte)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/deposits/{depositId}/settle","href":"/api-reference/checkout/settle-a-deposit-acompte"},{"title":"List open parked sales","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/parked","href":"/api-reference/checkout/list-open-parked-sales"},{"title":"Park a cart","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/parked","href":"/api-reference/checkout/park-a-cart"},{"title":"Get a parked sale by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/parked/{parkedSaleId}","href":"/api-reference/checkout/get-a-parked-sale-by-id"},{"title":"Drop a parked sale","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/parked/{parkedSaleId}","href":"/api-reference/checkout/drop-a-parked-sale"},{"title":"Resume a parked sale","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/parked/{parkedSaleId}/resume","href":"/api-reference/checkout/resume-a-parked-sale"},{"title":"List quotes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/quotes","href":"/api-reference/checkout/list-quotes"},{"title":"Create a quote (devis)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/quotes","href":"/api-reference/checkout/create-a-quote-devis"},{"title":"Get a quote by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/quotes/{quoteId}","href":"/api-reference/checkout/get-a-quote-by-id"},{"title":"Update a quote","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/quotes/{quoteId}","href":"/api-reference/checkout/update-a-quote"},{"title":"Accept a quote","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/quotes/{quoteId}/accept","href":"/api-reference/checkout/accept-a-quote"},{"title":"Cancel a quote","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/quotes/{quoteId}/cancel","href":"/api-reference/checkout/cancel-a-quote"},{"title":"Send a quote","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/quotes/{quoteId}/send","href":"/api-reference/checkout/send-a-quote"},{"title":"List in-store holds","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reservations","href":"/api-reference/checkout/list-in-store-holds"},{"title":"Place an in-store hold (réservation)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reservations","href":"/api-reference/checkout/place-an-in-store-hold-réservation"},{"title":"Get a reservation by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reservations/{reservationId}","href":"/api-reference/checkout/get-a-reservation-by-id"},{"title":"Cancel a hold","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reservations/{reservationId}/cancel","href":"/api-reference/checkout/cancel-a-hold"},{"title":"Fulfil a hold","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/reservations/{reservationId}/fulfil","href":"/api-reference/checkout/fulfil-a-hold"},{"title":"Open a register session (session de caisse)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/sessions","href":"/api-reference/checkout/open-a-register-session-session-de-caisse"},{"title":"Get a register session (session de caisse) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sessions/{sessionId}","href":"/api-reference/checkout/get-a-register-session-session-de-caisse-by-id"},{"title":"Close a register session (clôture de caisse)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/sessions/{sessionId}/close","href":"/api-reference/checkout/close-a-register-session-clôture-de-caisse"},{"title":"Record a cash movement (mouvement de caisse) on a session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/sessions/{sessionId}/movements","href":"/api-reference/checkout/record-a-cash-movement-mouvement-de-caisse-on-a-session"}]},{"group":"Orders","pages":[{"title":"List orders (commandes)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/orders","href":"/api-reference/orders/list-orders-commandes"},{"title":"Capture an order (commande)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/orders","href":"/api-reference/orders/capture-an-order-commande"},{"title":"Get an order by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/orders/{id}","href":"/api-reference/orders/get-an-order-by-id"},{"title":"Advance an order","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/orders/{id}/advance","href":"/api-reference/orders/advance-an-order"},{"title":"Revert an order one step","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/orders/{id}/revert","href":"/api-reference/orders/revert-an-order-one-step"},{"title":"Route a captured order","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/orders/{id}/route","href":"/api-reference/orders/route-a-captured-order"}]},{"group":"Returns","pages":[{"title":"How much is still refundable on an acompte / caution","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/refunds/refundable/{subjectKind}/{subjectId}","href":"/api-reference/returns/how-much-is-still-refundable-on-an-acompte-caution"},{"title":"Refund an acompte / caution as store credit (avoir)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/refunds/store-credit","href":"/api-reference/returns/refund-an-acompte-caution-as-store-credit-avoir"},{"title":"Get a store-credit refund by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/refunds/{refundId}","href":"/api-reference/returns/get-a-store-credit-refund-by-id"},{"title":"List processed returns (retours)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/returns","href":"/api-reference/returns/list-processed-returns-retours"},{"title":"Process a return (retour / avoir)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/returns","href":"/api-reference/returns/process-a-return-retour-avoir"},{"title":"Get a processed return by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/returns/{id}","href":"/api-reference/returns/get-a-processed-return-by-id"},{"title":"Get a return's cash-drawer pay-out","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/returns/{id}/cash-movement","href":"/api-reference/returns/get-a-returns-cash-drawer-pay-out"}]},{"group":"Fiscal","pages":[{"title":"List the published fiscal verification keys","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal-keys","href":"/api-reference/fiscal/list-the-published-fiscal-verification-keys"},{"title":"Export the period retention archive","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/archive","href":"/api-reference/fiscal/export-the-period-retention-archive"},{"title":"Get one sealed closure by period","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/closure","href":"/api-reference/fiscal/get-one-sealed-closure-by-period"},{"title":"List a store's sealed closures","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/closures","href":"/api-reference/fiscal/list-a-stores-sealed-closures"},{"title":"Seal a mandatory fiscal closure","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fiscal/closures","href":"/api-reference/fiscal/seal-a-mandatory-fiscal-closure"},{"title":"Export the signed fiscal journal","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/journal","href":"/api-reference/fiscal/export-the-signed-fiscal-journal"},{"title":"Verify the fiscal chain integrity","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/verify","href":"/api-reference/fiscal/verify-the-fiscal-chain-integrity"},{"title":"Fiscal X (mid-shift read)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/x","href":"/api-reference/fiscal/fiscal-x-mid-shift-read"},{"title":"Fiscal Z (closing report)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal/z","href":"/api-reference/fiscal/fiscal-z-closing-report"}]},{"group":"Compliance","pages":[{"title":"List age-verification attestations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/age-attestations","href":"/api-reference/compliance/list-age-verification-attestations"},{"title":"Record an age-verification attestation","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/age-attestations","href":"/api-reference/compliance/record-an-age-verification-attestation"}]}]},{"group":"Catalogue \u0026 stock","pages":[{"group":"Catalog","pages":[{"title":"List catalog brands (marques)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/brands","href":"/api-reference/catalog/list-catalog-brands-marques"},{"title":"Create a brand (marque)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/brands","href":"/api-reference/catalog/create-a-brand-marque"},{"title":"Get a brand (marque) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/brands/{brandId}","href":"/api-reference/catalog/get-a-brand-marque-by-id"},{"title":"Update a brand (marque)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/brands/{brandId}","href":"/api-reference/catalog/update-a-brand-marque"},{"title":"Deactivate (archive) a brand (marque)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/brands/{brandId}/deactivate","href":"/api-reference/catalog/deactivate-archive-a-brand-marque"},{"title":"List a brand's suppliers (fournisseurs)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/brands/{brandId}/suppliers","href":"/api-reference/catalog/list-a-brands-suppliers-fournisseurs"},{"title":"Replace a brand's supplier (fournisseur) set","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/brands/{brandId}/suppliers","href":"/api-reference/catalog/replace-a-brands-supplier-fournisseur-set"},{"title":"Enrich a single brand or product synchronously","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/catalog/enrich","href":"/api-reference/catalog/enrich-a-single-brand-or-product-synchronously"},{"title":"Upload a supplier PDF catalogue for extraction","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/catalog/imports","href":"/api-reference/catalog/upload-a-supplier-pdf-catalogue-for-extraction"},{"title":"Poll a catalogue-import job's status and proposed products","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/catalog/imports/{jobId}","href":"/api-reference/catalog/poll-a-catalogue-import-jobs-status-and-proposed-products"},{"title":"List catalog kits (coffrets, nomenclatures)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/kits","href":"/api-reference/catalog/list-catalog-kits-coffrets-nomenclatures"},{"title":"Create a kit (coffret / nomenclature / BOM)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/kits","href":"/api-reference/catalog/create-a-kit-coffret-nomenclature-bom"},{"title":"Update a kit (coffret / nomenclature)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/kits/{id}","href":"/api-reference/catalog/update-a-kit-coffret-nomenclature"},{"title":"Deactivate (archive) a kit (coffret)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/kits/{id}/deactivate","href":"/api-reference/catalog/deactivate-archive-a-kit-coffret"},{"title":"Resolve a kit's price and explosion (nomenclature)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/kits/{id}/resolve","href":"/api-reference/catalog/resolve-a-kits-price-and-explosion-nomenclature"},{"title":"List markdown schedules (démarques / soldes)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/markdowns","href":"/api-reference/catalog/list-markdown-schedules-démarques-soldes"},{"title":"Set a product's markdown schedule (démarque programmée)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/markdowns","href":"/api-reference/catalog/set-a-products-markdown-schedule-démarque-programmée"},{"title":"Resolve a product's markdown price (prix démarqué)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/markdowns/{productId}","href":"/api-reference/catalog/resolve-a-products-markdown-price-prix-démarqué"},{"title":"Deactivate a product's markdown schedule (fin de démarque)","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/markdowns/{productId}","href":"/api-reference/catalog/deactivate-a-products-markdown-schedule-fin-de-démarque"},{"title":"List / search catalog products (produits, articles)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products","href":"/api-reference/catalog/list-search-catalog-products-produits-articles"},{"title":"Create a product (produit)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/products","href":"/api-reference/catalog/create-a-product-produit"},{"title":"Bulk-import products","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/products/import","href":"/api-reference/catalog/bulk-import-products"},{"title":"List the sellable catalogue (produits + prix de vente TTC)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products/sellable","href":"/api-reference/catalog/list-the-sellable-catalogue-produits-+-prix-de-vente-ttc"},{"title":"Get a product (produit) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products/{id}","href":"/api-reference/catalog/get-a-product-produit-by-id"},{"title":"Update a product (produit)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/products/{id}","href":"/api-reference/catalog/update-a-product-produit"},{"title":"Get a product's priced sellable units (prix de vente TTC)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/products/{id}/units","href":"/api-reference/catalog/get-a-products-priced-sellable-units-prix-de-vente-ttc"},{"title":"Global cross-entity search (recherche globale)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/search","href":"/api-reference/catalog/global-cross-entity-search-recherche-globale"},{"title":"List price overrides (prix magasin) by store or by product","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/store-prices","href":"/api-reference/catalog/list-price-overrides-prix-magasin-by-store-or-by-product"},{"title":"Set a store price override (prix magasin / surcharge)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/store-prices","href":"/api-reference/catalog/set-a-store-price-override-prix-magasin-surcharge"},{"title":"Clear a store price override","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/store-prices","href":"/api-reference/catalog/clear-a-store-price-override"},{"title":"List taxonomy axes (classification, familles)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taxonomy","href":"/api-reference/catalog/list-taxonomy-axes-classification-familles"},{"title":"Create a taxonomy axis (axe de classification)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy","href":"/api-reference/catalog/create-a-taxonomy-axis-axe-de-classification"},{"title":"List the importable taxonomy presets (librairie d'axes)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taxonomy/presets","href":"/api-reference/catalog/list-the-importable-taxonomy-presets-librairie-daxes"},{"title":"Save the current taxonomy as an internal preset","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy/presets","href":"/api-reference/catalog/save-the-current-taxonomy-as-an-internal-preset"},{"title":"Delete an internal taxonomy preset","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/taxonomy/presets/{presetId}","href":"/api-reference/catalog/delete-an-internal-taxonomy-preset"},{"title":"Import a taxonomy preset (importer une librairie d'axes)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy/presets/{presetId}/import","href":"/api-reference/catalog/import-a-taxonomy-preset-importer-une-librairie-daxes"},{"title":"Preview a taxonomy preset import (dry run)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taxonomy/presets/{presetId}/preview","href":"/api-reference/catalog/preview-a-taxonomy-preset-import-dry-run"},{"title":"Get a taxonomy axis (axe de classification) by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/taxonomy/{axisId}","href":"/api-reference/catalog/get-a-taxonomy-axis-axe-de-classification-by-id"},{"title":"Update a taxonomy axis (axe de classification)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/taxonomy/{axisId}","href":"/api-reference/catalog/update-a-taxonomy-axis-axe-de-classification"},{"title":"Delete a taxonomy axis (supprimer un axe)","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/taxonomy/{axisId}","href":"/api-reference/catalog/delete-a-taxonomy-axis-supprimer-un-axe"},{"title":"Deactivate (archive) a taxonomy axis (axe de classification)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy/{axisId}/deactivate","href":"/api-reference/catalog/deactivate-archive-a-taxonomy-axis-axe-de-classification"},{"title":"Reparent a taxonomy node (déplacer un nœud)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/taxonomy/{axisId}/nodes/{nodeId}/move","href":"/api-reference/catalog/reparent-a-taxonomy-node-déplacer-un-nœud"}]},{"group":"Inventory","pages":[{"title":"List cadence configs (cadence de comptage tournant)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cycle-counts/cadences","href":"/api-reference/inventory/list-cadence-configs-cadence-de-comptage-tournant"},{"title":"Upsert a store's cadence config","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cycle-counts/cadences","href":"/api-reference/inventory/upsert-a-stores-cadence-config"},{"title":"Plan a store's due cycle counts (comptage tournant)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/cycle-counts/plan","href":"/api-reference/inventory/plan-a-stores-due-cycle-counts-comptage-tournant"},{"title":"Set a SKU's count policy","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cycle-counts/policies","href":"/api-reference/inventory/set-a-skus-count-policy"},{"title":"Complete a count task","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cycle-counts/tasks/{skuId}/complete","href":"/api-reference/inventory/complete-a-count-task"},{"title":"Skip a count task","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/cycle-counts/tasks/{skuId}/skip","href":"/api-reference/inventory/skip-a-count-task"},{"title":"List stock items (stock / inventaire)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory","href":"/api-reference/inventory/list-stock-items-stock-inventaire"},{"title":"List count sessions (comptages / inventaires physiques)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/counts","href":"/api-reference/inventory/list-count-sessions-comptages-inventaires-physiques"},{"title":"Open a count session (comptage / inventaire physique)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/counts","href":"/api-reference/inventory/open-a-count-session-comptage-inventaire-physique"},{"title":"Get a count session by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/counts/{sessionId}","href":"/api-reference/inventory/get-a-count-session-by-id"},{"title":"Close a count session","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/counts/{sessionId}/close","href":"/api-reference/inventory/close-a-count-session"},{"title":"Record a counted line","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/counts/{sessionId}/lines","href":"/api-reference/inventory/record-a-counted-line"},{"title":"Get a count session's valued variance","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/counts/{sessionId}/variance","href":"/api-reference/inventory/get-a-count-sessions-valued-variance"},{"title":"List stock in transit between stores","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/in-transit","href":"/api-reference/inventory/list-stock-in-transit-between-stores"},{"title":"List stock write-offs (démarque)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/write-offs","href":"/api-reference/inventory/list-stock-write-offs-démarque"},{"title":"Record a stock write-off (démarque)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/write-offs","href":"/api-reference/inventory/record-a-stock-write-off-démarque"},{"title":"Approve a stock write-off","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/write-offs/{id}/approve","href":"/api-reference/inventory/approve-a-stock-write-off"},{"title":"Reject a stock write-off","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/inventory/write-offs/{id}/reject","href":"/api-reference/inventory/reject-a-stock-write-off"},{"title":"Get a stock item by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/inventory/{id}","href":"/api-reference/inventory/get-a-stock-item-by-id"}]},{"group":"Replenishment","pages":[{"title":"List reorder policies (seuils de réapprovisionnement)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reorder-policies","href":"/api-reference/replenishment/list-reorder-policies-seuils-de-réapprovisionnement"},{"title":"Set a reorder policy (seuil min/max) for one SKU × store","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/reorder-policies","href":"/api-reference/replenishment/set-a-reorder-policy-seuil-minmax-for-one-sku-×-store"},{"title":"Generate replenishment suggestions (suggestions de réapprovisionnement) for a store","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reorder-policies/suggestions","href":"/api-reference/replenishment/generate-replenishment-suggestions-suggestions-de-réapprovisionnement-for-a-store"}]},{"group":"Transfer","pages":[{"title":"List transfers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/transfers","href":"/api-reference/transfer/list-transfers"},{"title":"Request a transfer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/transfers","href":"/api-reference/transfer/request-a-transfer"},{"title":"Get a transfer by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/transfers/{transferId}","href":"/api-reference/transfer/get-a-transfer-by-id"},{"title":"Cancel a transfer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/transfers/{transferId}/cancel","href":"/api-reference/transfer/cancel-a-transfer"},{"title":"Get a transfer's receipt discrepancy","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/transfers/{transferId}/discrepancy","href":"/api-reference/transfer/get-a-transfers-receipt-discrepancy"},{"title":"Receive a transfer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/transfers/{transferId}/receive","href":"/api-reference/transfer/receive-a-transfer"},{"title":"Ship a transfer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/transfers/{transferId}/ship","href":"/api-reference/transfer/ship-a-transfer"}]},{"group":"Procurement","pages":[{"title":"List the network's plans","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plans","href":"/api-reference/procurement/list-the-networks-plans"},{"title":"Open a plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plans","href":"/api-reference/procurement/open-a-plan"},{"title":"Get one plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plans/{planId}","href":"/api-reference/procurement/get-one-plan"},{"title":"Edit a draft plan","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/plans/{planId}","href":"/api-reference/procurement/edit-a-draft-plan"},{"title":"Cancel a draft plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plans/{planId}/cancel","href":"/api-reference/procurement/cancel-a-draft-plan"},{"title":"List the lines of one plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plans/{planId}/items","href":"/api-reference/procurement/list-the-lines-of-one-plan"},{"title":"Add a line to a draft plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plans/{planId}/items","href":"/api-reference/procurement/add-a-line-to-a-draft-plan"},{"title":"Remove a line from a draft plan","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/plans/{planId}/items/{itemId}","href":"/api-reference/procurement/remove-a-line-from-a-draft-plan"},{"title":"Judge a plan against the network's rules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/plans/{planId}/rules","href":"/api-reference/procurement/judge-a-plan-against-the-networks-rules"},{"title":"Move a plan one step along its lifecycle","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/plans/{planId}/transitions","href":"/api-reference/procurement/move-a-plan-one-step-along-its-lifecycle"},{"title":"List purchase orders (commandes fournisseur)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/purchase-orders","href":"/api-reference/procurement/list-purchase-orders-commandes-fournisseur"},{"title":"Create a purchase order (commande fournisseur / bon de commande)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/purchase-orders","href":"/api-reference/procurement/create-a-purchase-order-commande-fournisseur-bon-de-commande"},{"title":"Get a purchase order by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/purchase-orders/{orderId}","href":"/api-reference/procurement/get-a-purchase-order-by-id"},{"title":"Receive against a purchase order (réception de marchandise)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/purchase-orders/{orderId}/receive","href":"/api-reference/procurement/receive-against-a-purchase-order-réception-de-marchandise"},{"title":"Get a purchase order's received-vs-ordered variance (écart de réception)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/purchase-orders/{orderId}/variance","href":"/api-reference/procurement/get-a-purchase-orders-received-vs-ordered-variance-écart-de-réception"},{"title":"List returns-to-vendor (retours fournisseur)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/return-to-vendors","href":"/api-reference/procurement/list-returns-to-vendor-retours-fournisseur"},{"title":"Raise a return-to-vendor (retour fournisseur)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/return-to-vendors","href":"/api-reference/procurement/raise-a-return-to-vendor-retour-fournisseur"},{"title":"Get a return-to-vendor by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/return-to-vendors/{rtvId}","href":"/api-reference/procurement/get-a-return-to-vendor-by-id"},{"title":"Cancel a return-to-vendor","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/return-to-vendors/{rtvId}/cancel","href":"/api-reference/procurement/cancel-a-return-to-vendor"},{"title":"Credit a return-to-vendor","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/return-to-vendors/{rtvId}/credit","href":"/api-reference/procurement/credit-a-return-to-vendor"},{"title":"Ship a return-to-vendor","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/return-to-vendors/{rtvId}/ship","href":"/api-reference/procurement/ship-a-return-to-vendor"},{"title":"List suppliers (fournisseurs)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/suppliers","href":"/api-reference/procurement/list-suppliers-fournisseurs"},{"title":"Create a supplier","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/suppliers","href":"/api-reference/procurement/create-a-supplier"},{"title":"Get a supplier by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/suppliers/{supplierId}","href":"/api-reference/procurement/get-a-supplier-by-id"},{"title":"Update a supplier (fournisseur)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/suppliers/{supplierId}","href":"/api-reference/procurement/update-a-supplier-fournisseur"},{"title":"Deactivate a supplier","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/suppliers/{supplierId}/deactivate","href":"/api-reference/procurement/deactivate-a-supplier"}]},{"group":"Network","pages":[{"title":"List the companies (sociétés) the network trades under","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies","href":"/api-reference/network/list-the-companies-sociétés-the-network-trades-under"},{"title":"Create a company (société)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/companies","href":"/api-reference/network/create-a-company-société"},{"title":"Attach a store to a company and set its establishment number","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/companies/stores/{storeId}","href":"/api-reference/network/attach-a-store-to-a-company-and-set-its-establishment-number"},{"title":"Get a company with its identity history","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/companies/{companyId}","href":"/api-reference/network/get-a-company-with-its-identity-history"},{"title":"Edit a company's fiscal identity (appends a version)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/companies/{companyId}/identity","href":"/api-reference/network/edit-a-companys-fiscal-identity-appends-a-version"},{"title":"Resolve the fiscal header a store's documents print","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fiscal-identity/stores/{storeId}","href":"/api-reference/network/resolve-the-fiscal-header-a-stores-documents-print"},{"title":"List the paired register peripherals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fleet","href":"/api-reference/network/list-the-paired-register-peripherals"},{"title":"Pair a device onto a register","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fleet","href":"/api-reference/network/pair-a-device-onto-a-register"},{"title":"Get a paired device by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/fleet/{deviceId}","href":"/api-reference/network/get-a-paired-device-by-id"},{"title":"Update a paired device","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/fleet/{deviceId}","href":"/api-reference/network/update-a-paired-device"},{"title":"Retire (unpair) a paired device","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/fleet/{deviceId}/retire","href":"/api-reference/network/retire-unpair-a-paired-device"},{"title":"List the network's regions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/regions","href":"/api-reference/network/list-the-networks-regions"},{"title":"Create a region","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/regions","href":"/api-reference/network/create-a-region"},{"title":"Get a region by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/regions/{regionId}","href":"/api-reference/network/get-a-region-by-id"},{"title":"Update a region","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/regions/{regionId}","href":"/api-reference/network/update-a-region"},{"title":"Deactivate (archive) a region","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/regions/{regionId}/deactivate","href":"/api-reference/network/deactivate-archive-a-region"},{"title":"List the network's stores","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/stores","href":"/api-reference/network/list-the-networks-stores"},{"title":"Provision a store","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/stores","href":"/api-reference/network/provision-a-store"},{"title":"Get a store by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/stores/{storeId}","href":"/api-reference/network/get-a-store-by-id"},{"title":"Update a store","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/stores/{storeId}","href":"/api-reference/network/update-a-store"},{"title":"Deactivate (close) a store","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/stores/{storeId}/deactivate","href":"/api-reference/network/deactivate-close-a-store"},{"title":"Reactivate (reopen) a store","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/stores/{storeId}/reactivate","href":"/api-reference/network/reactivate-reopen-a-store"},{"title":"List the network's VAT / tax codes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tax-codes","href":"/api-reference/network/list-the-networks-vat-tax-codes"},{"title":"Create a VAT / tax code","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/tax-codes","href":"/api-reference/network/create-a-vat-tax-code"},{"title":"Get a tax code by its code","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/tax-codes/{code}","href":"/api-reference/network/get-a-tax-code-by-its-code"},{"title":"Update a VAT / tax code","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/tax-codes/{code}","href":"/api-reference/network/update-a-vat-tax-code"},{"title":"Deactivate (archive) a VAT / tax code","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/tax-codes/{code}/deactivate","href":"/api-reference/network/deactivate-archive-a-vat-tax-code"}]}]},{"group":"Finance","pages":[{"group":"Finance","pages":[{"title":"List finance entries","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance","href":"/api-reference/finance/list-finance-entries"},{"title":"Export a generic accounting file (journal entries / configurable CSV)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/accounting-export","href":"/api-reference/finance/export-a-generic-accounting-file-journal-entries-configurable-csv"},{"title":"Report cash discrepancies for a period","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/cash-discrepancy","href":"/api-reference/finance/report-cash-discrepancies-for-a-period"},{"title":"Get one session's cash discrepancy","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/cash-discrepancy/{sessionId}","href":"/api-reference/finance/get-one-sessions-cash-discrepancy"},{"title":"List deposit batches","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/deposits","href":"/api-reference/finance/list-deposit-batches"},{"title":"Open a deposit batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/finance/deposits","href":"/api-reference/finance/open-a-deposit-batch"},{"title":"Deposit trend (declared vs settled per day)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/deposits/trend","href":"/api-reference/finance/deposit-trend-declared-vs-settled-per-day"},{"title":"Get a deposit batch by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/deposits/{batchId}","href":"/api-reference/finance/get-a-deposit-batch-by-id"},{"title":"Settle a deposit line","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/finance/deposits/{batchId}/lines/settle","href":"/api-reference/finance/settle-a-deposit-line"},{"title":"Reconcile a deposit batch","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/finance/deposits/{batchId}/reconcile","href":"/api-reference/finance/reconcile-a-deposit-batch"},{"title":"Export the FEC accounting file","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/fec","href":"/api-reference/finance/export-the-fec-accounting-file"},{"title":"Report the period close","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/period-close","href":"/api-reference/finance/report-the-period-close"},{"title":"Close (lock) a fiscal period","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/finance/period-close","href":"/api-reference/finance/close-lock-a-fiscal-period"},{"title":"Get a finance entry by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/finance/{entryId}","href":"/api-reference/finance/get-a-finance-entry-by-id"},{"title":"Windowed sales analytics report","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/reports/sales","href":"/api-reference/finance/windowed-sales-analytics-report"},{"title":"List finalized sale tickets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sales","href":"/api-reference/finance/list-finalized-sale-tickets"},{"title":"Tally one salesperson's day","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sales/seller-day","href":"/api-reference/finance/tally-one-salespersons-day"},{"title":"Summarise sales into dashboard KPIs","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sales/summary","href":"/api-reference/finance/summarise-sales-into-dashboard-kpis"},{"title":"Get a sale ticket by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/sales/{id}","href":"/api-reference/finance/get-a-sale-ticket-by-id"}]},{"group":"Billing","pages":[{"title":"Read the billing catalogue and current plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/credits/billing","href":"/api-reference/billing/read-the-billing-catalogue-and-current-plan"},{"title":"Grant SMS credits to the account wallet (crédit)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/credits/grant","href":"/api-reference/billing/grant-sms-credits-to-the-account-wallet-crédit"},{"title":"Read the credit wallet, ledger and usage (crédit, recharge)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/credits/overview","href":"/api-reference/billing/read-the-credit-wallet-ledger-and-usage-crédit-recharge"},{"title":"Open a Stripe Checkout session for a monthly plan","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/credits/plan","href":"/api-reference/billing/open-a-stripe-checkout-session-for-a-monthly-plan"},{"title":"Open a Stripe Checkout session for a credit top-up","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/credits/topup","href":"/api-reference/billing/open-a-stripe-checkout-session-for-a-credit-top-up"}]},{"group":"Instruments","pages":[{"title":"List stored-value instruments (carte cadeau, avoir)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/giftcards","href":"/api-reference/instruments/list-stored-value-instruments-carte-cadeau-avoir"},{"title":"Issue a stored-value instrument (carte cadeau, avoir)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards","href":"/api-reference/instruments/issue-a-stored-value-instrument-carte-cadeau-avoir"},{"title":"Report stored-value breakage across the whole network (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/giftcards/breakage","href":"/api-reference/instruments/report-stored-value-breakage-across-the-whole-network-carte-cadeau"},{"title":"Get an instrument by its bearer code (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/giftcards/by-code/{code}","href":"/api-reference/instruments/get-an-instrument-by-its-bearer-code-carte-cadeau"},{"title":"Bulk-issue stored-value instruments (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards/import","href":"/api-reference/instruments/bulk-issue-stored-value-instruments-carte-cadeau"},{"title":"Redeem value from an instrument (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards/redemptions","href":"/api-reference/instruments/redeem-value-from-an-instrument-carte-cadeau"},{"title":"Get an instrument by id (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/giftcards/{id}","href":"/api-reference/instruments/get-an-instrument-by-id-carte-cadeau"},{"title":"Reload an instrument with more value (recharge carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards/{id}/reload","href":"/api-reference/instruments/reload-an-instrument-with-more-value-recharge-carte-cadeau"},{"title":"Void an instrument (carte cadeau)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/giftcards/{id}/void","href":"/api-reference/instruments/void-an-instrument-carte-cadeau"}]}]},{"group":"Clients \u0026 fidélité","pages":[{"group":"Customers","pages":[{"title":"List customers","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers","href":"/api-reference/customers/list-customers"},{"title":"Register a customer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers","href":"/api-reference/customers/register-a-customer"},{"title":"Report the customer base by RFM segment (segment client)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/segments","href":"/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client"},{"title":"Get a customer by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}","href":"/api-reference/customers/get-a-customer-by-id"},{"title":"Update a customer profile","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/customers/{id}","href":"/api-reference/customers/update-a-customer-profile"},{"title":"Get a customer's consent record","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}/consent","href":"/api-reference/customers/get-a-customers-consent-record"},{"title":"Record a customer consent decision","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/consent","href":"/api-reference/customers/record-a-customer-consent-decision"},{"title":"Deactivate a customer (reversible)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/deactivation","href":"/api-reference/customers/deactivate-a-customer-reversible"},{"title":"Erase a customer's personal data (GDPR)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/erasure","href":"/api-reference/customers/erase-a-customers-personal-data-gdpr"},{"title":"Export a customer's personal data (GDPR)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/export","href":"/api-reference/customers/export-a-customers-personal-data-gdpr"},{"title":"Get a customer's purchase history","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/{id}/purchases","href":"/api-reference/customers/get-a-customers-purchase-history"},{"title":"Reactivate a deactivated customer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/customers/{id}/reactivation","href":"/api-reference/customers/reactivate-a-deactivated-customer"}]},{"group":"Loyalty","pages":[{"title":"List loyalty members (fidélité)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/loyalty","href":"/api-reference/loyalty/list-loyalty-members-fidélité"},{"title":"Get a customer's derived loyalty account (fidélité, palier)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/loyalty/accounts/{customerId}","href":"/api-reference/loyalty/get-a-customers-derived-loyalty-account-fidélité-palier"},{"title":"Accrue loyalty points for a sale (points de fidélité)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/loyalty/accruals","href":"/api-reference/loyalty/accrue-loyalty-points-for-a-sale-points-de-fidélité"},{"title":"Get the active loyalty program config (fidélité, paliers)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/loyalty/config","href":"/api-reference/loyalty/get-the-active-loyalty-program-config-fidélité-paliers"},{"title":"Replace the loyalty program config (fidélité, paliers)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/loyalty/config","href":"/api-reference/loyalty/replace-the-loyalty-program-config-fidélité-paliers"},{"title":"Redeem loyalty points for a discount (points de fidélité)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/loyalty/redemptions","href":"/api-reference/loyalty/redeem-loyalty-points-for-a-discount-points-de-fidélité"},{"title":"Get a loyalty member by id (fidélité)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/loyalty/{memberId}","href":"/api-reference/loyalty/get-a-loyalty-member-by-id-fidélité"}]},{"group":"Notifications","pages":[{"title":"Get per-channel notification availability","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/notifications/channels","href":"/api-reference/notifications/get-per-channel-notification-availability"},{"title":"Send a finalized sale's receipt to the customer","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/notifications/receipt","href":"/api-reference/notifications/send-a-finalized-sales-receipt-to-the-customer"}]}]},{"group":"Marketing \u0026 promotions","pages":[{"group":"Promotions","pages":[{"title":"List the coupon catalogue (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/coupons","href":"/api-reference/promotions/list-the-coupon-catalogue-code-promo"},{"title":"Create one coupon under a chosen code (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons","href":"/api-reference/promotions/create-one-coupon-under-a-chosen-code-code-promo"},{"title":"Batch-generate a run of coupon codes (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons/batch","href":"/api-reference/promotions/batch-generate-a-run-of-coupon-codes-code-promo"},{"title":"Preview a coupon against a basket total (code promo, bon de réduction)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons/validate","href":"/api-reference/promotions/preview-a-coupon-against-a-basket-total-code-promo-bon-de-réduction"},{"title":"Edit an existing coupon (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/coupons/{id}","href":"/api-reference/promotions/edit-an-existing-coupon-code-promo"},{"title":"Deactivate a coupon (code promo)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/coupons/{id}/deactivate","href":"/api-reference/promotions/deactivate-a-coupon-code-promo"},{"title":"Apply an authorised discount to a whole ticket","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/discounts/ticket","href":"/api-reference/promotions/apply-an-authorised-discount-to-a-whole-ticket"},{"title":"Get an applied discount by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/discounts/{id}","href":"/api-reference/promotions/get-an-applied-discount-by-id"},{"title":"List automatic promotion rules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/promotions","href":"/api-reference/promotions/list-automatic-promotion-rules"},{"title":"Create or replace an automatic promotion rule","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/promotions","href":"/api-reference/promotions/create-or-replace-an-automatic-promotion-rule"},{"title":"Evaluate the active promotion rules against a cart","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/promotions/evaluate","href":"/api-reference/promotions/evaluate-the-active-promotion-rules-against-a-cart"},{"title":"Get a promotion by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/promotions/{id}","href":"/api-reference/promotions/get-a-promotion-by-id"},{"title":"Update an existing promotion rule","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/promotions/{id}","href":"/api-reference/promotions/update-an-existing-promotion-rule"},{"title":"Deactivate a promotion rule","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/promotions/{id}/deactivate","href":"/api-reference/promotions/deactivate-a-promotion-rule"},{"title":"Get a promotion's full rule definition","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/promotions/{id}/rule","href":"/api-reference/promotions/get-a-promotions-full-rule-definition"}]},{"group":"Marketing","pages":[{"title":"List marketing campaigns (campagne)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/campaigns","href":"/api-reference/marketing/list-marketing-campaigns-campagne"},{"title":"Author a marketing campaign (campagne)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/campaigns","href":"/api-reference/marketing/author-a-marketing-campaign-campagne"},{"title":"Get a campaign by id (campagne)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/campaigns/{id}","href":"/api-reference/marketing/get-a-campaign-by-id-campagne"},{"title":"Preview a campaign's recipients without sending (campagne, relance)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/campaigns/{id}/dry-run","href":"/api-reference/marketing/preview-a-campaigns-recipients-without-sending-campagne-relance"},{"title":"Send a campaign to its consented audience (campagne, relance)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/campaigns/{id}/send","href":"/api-reference/marketing/send-a-campaign-to-its-consented-audience-campagne-relance"}]}]},{"group":"Services","pages":[{"group":"Rentals","pages":[{"title":"List rentals","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rentals","href":"/api-reference/rentals/list-rentals"},{"title":"Open a rental","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rentals","href":"/api-reference/rentals/open-a-rental"},{"title":"Get a rental by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rentals/{rentalId}","href":"/api-reference/rentals/get-a-rental-by-id"},{"title":"Flag a rental as overdue","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rentals/{rentalId}/mark-overdue","href":"/api-reference/rentals/flag-a-rental-as-overdue"},{"title":"Return a rental and settle the caution","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rentals/{rentalId}/return","href":"/api-reference/rentals/return-a-rental-and-settle-the-caution"}]},{"group":"Repairs","pages":[{"title":"List repair orders","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/repairs","href":"/api-reference/repairs/list-repair-orders"},{"title":"Take an article in for repair","description":"Opens a repair order in the `intake` state — the article is now in the store's custody. `article.label` is the only required article field; add `skuId` and `serial` when the unit is identifiable and `purchasedAt` when the original sale date is known. `purchasedAt` is RECORDED ONLY — the server derives nothing from it and never adjusts a price; the warranty helper that reads it lives in the till UI, and `quoteAmountCents` is entirely caller-supplied either way. MONEY: `quoteAmountCents` is the price quoted to the customer and `depositAmountCents` the acompte ALREADY captured at the counter (typically 30%; send `0` if none was taken). This endpoint captures nothing itself — take the acompte first, then record it here. There is NO update route: once open, neither the quote nor the acompte can ever be revised, so do not open an order on a provisional estimate. `id` is CALLER-SUPPLIED and is the dedup key: on a timeout retry with the SAME id — a 409 CONFLICT then means your first attempt committed, so read it back with `getRepairOrder` rather than minting a new id. 422 when `depositAmountCents` exceeds `quoteAmountCents`, or when `expectedPickupDate` is not in the future. Note `article.serial` is stored EXACTLY as sent — unlike the sale and warranty paths it is neither upper-cased/trimmed nor IMEI-checksummed here, so send an already-canonical value if you want it to match a serial captured elsewhere.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs","href":"/api-reference/repairs/take-an-article-in-for-repair"},{"title":"Get a repair order by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/repairs/{orderId}","href":"/api-reference/repairs/get-a-repair-order-by-id"},{"title":"Record collection of a repaired article","description":"TERMINAL AND IRREVERSIBLE. Records that the customer has taken the article back, flipping a `ready` order to `collected`. Send no body. MONEY TRAP: this records the handover ONLY — it neither collects the outstanding balance nor verifies that anyone did. That balance is `quoteAmountCents - depositAmountCents` (the API exposes no field for it, so compute it), and it must be taken at the till BEFORE you call this, because once the order is `collected` nothing in this API can reopen it, re-quote it or chase the money. Legal ONLY from `ready`; an order still `in_workshop` must be marked ready first. 422 in every other state, a second call on an already-`collected` order included; 404 for an unknown id. NOT IDEMPOTENT — there is no dedup key. It is A SEQUENTIAL replay cannot close the order twice (the status guard rejects it), but that guard is an unsynchronised read-then-write with no row lock (solya-pos#956), so do not fan concurrent calls at one order. If your call times out RE-READ with `getRepairOrder` before retrying: a `collected` status means the first attempt already committed, so do NOT collect the balance a second time.","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs/{orderId}/collect","href":"/api-reference/repairs/record-collection-of-a-repaired-article"},{"title":"Mark a repair order ready for pickup","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs/{orderId}/ready","href":"/api-reference/repairs/mark-a-repair-order-ready-for-pickup"},{"title":"Send a repair order to the workshop","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs/{orderId}/to-workshop","href":"/api-reference/repairs/send-a-repair-order-to-the-workshop"},{"title":"Declare a repair order unrepairable","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/repairs/{orderId}/unrepairable","href":"/api-reference/repairs/declare-a-repair-order-unrepairable"}]}]},{"group":"Assistant","pages":[{"title":"Ask the in-till assistant a question","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/assistant/chat","href":"/api-reference/assistant/ask-the-in-till-assistant-a-question"}]},{"group":"Intégrations \u0026 données","pages":[{"group":"Integrations","pages":[{"title":"List the connectors (intégration, connecteur)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/integrations","href":"/api-reference/integrations/list-the-connectors-intégration-connecteur"},{"title":"Read one connector (connecteur)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/integrations/{key}","href":"/api-reference/integrations/read-one-connector-connecteur"},{"title":"Configure a connector (connecteur, intégration)","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/integrations/{key}","href":"/api-reference/integrations/configure-a-connector-connecteur-intégration"},{"title":"Disable a connector (connecteur)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/integrations/{key}/disable","href":"/api-reference/integrations/disable-a-connector-connecteur"},{"title":"Enable a connector (connecteur)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/integrations/{key}/enable","href":"/api-reference/integrations/enable-a-connector-connecteur"}]},{"group":"Merchandising import","pages":[{"title":"Bulk-import proposed promotions (promotions)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/import/promotions","href":"/api-reference/merchandising-import/bulk-import-proposed-promotions-promotions"},{"title":"Bulk-import proposed replenishment plans (commandes de réapprovisionnement)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/import/purchase-orders","href":"/api-reference/merchandising-import/bulk-import-proposed-replenishment-plans-commandes-de-réapprovisionnement"},{"title":"Bulk-import proposed inter-store transfer plans (transferts inter-magasins)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/import/transfers","href":"/api-reference/merchandising-import/bulk-import-proposed-inter-store-transfer-plans-transferts-inter-magasins"}]},{"group":"Data platform","pages":[{"title":"Export a resource's changed rows (incremental CDC feed)","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/export/{resource}","href":"/api-reference/data-platform/export-a-resources-changed-rows-incremental-cdc-feed"}]}]},{"group":"Système","pages":[{"group":"Auth","pages":[{"title":"Resolve the authenticated actor's identity and effective POS scopes (MCP gateway alias)","deprecated":null,"version":null,"openapi":"/openapi.json get /api/auth/whoami","href":"/api-reference/auth/resolve-the-authenticated-actors-identity-and-effective-pos-scopes-mcp-gateway-alias"},{"title":"Request a single-use manager elevation grant","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/auth/elevate","href":"/api-reference/auth/request-a-single-use-manager-elevation-grant"},{"title":"Set or rotate the calling actor's own elevation PIN","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/auth/elevation/pin","href":"/api-reference/auth/set-or-rotate-the-calling-actors-own-elevation-pin"},{"title":"Resolve the authenticated actor's identity and effective POS scopes","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/auth/whoami","href":"/api-reference/auth/resolve-the-authenticated-actors-identity-and-effective-pos-scopes"},{"title":"Tally the authenticated actor's own day","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/me/day-summary","href":"/api-reference/auth/tally-the-authenticated-actors-own-day"},{"title":"Get the POS permission manifest","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/permissions/manifest","href":"/api-reference/auth/get-the-pos-permission-manifest"}]},{"group":"Team","pages":[{"title":"List team members","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/team","href":"/api-reference/team/list-team-members"},{"title":"Provision a team member","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/team","href":"/api-reference/team/provision-a-team-member"},{"title":"Get a team member by id","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/team/{memberId}","href":"/api-reference/team/get-a-team-member-by-id"},{"title":"Replace a team member's directory record","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/team/{memberId}","href":"/api-reference/team/replace-a-team-members-directory-record"},{"title":"Offboard a team member (disable sign-in)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/team/{memberId}/deactivate","href":"/api-reference/team/offboard-a-team-member-disable-sign-in"},{"title":"Get a team member's effective permissions","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/team/{memberId}/permissions","href":"/api-reference/team/get-a-team-members-effective-permissions"},{"title":"Re-onboard a team member (restore sign-in)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/team/{memberId}/reactivate","href":"/api-reference/team/re-onboard-a-team-member-restore-sign-in"},{"title":"Assign a scoped role to a team member","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/team/{memberId}/roles","href":"/api-reference/team/assign-a-scoped-role-to-a-team-member"},{"title":"Revoke a scoped role from a team member","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/team/{memberId}/roles","href":"/api-reference/team/revoke-a-scoped-role-from-a-team-member"}]},{"group":"Settings","pages":[{"title":"Read the order-routing rules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/routing-rules","href":"/api-reference/settings/read-the-order-routing-rules"},{"title":"Replace the order-routing rules","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/routing-rules","href":"/api-reference/settings/replace-the-order-routing-rules"},{"title":"List the network's business rules","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rules","href":"/api-reference/settings/list-the-networks-business-rules"},{"title":"Create a rule from a catalogue template","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rules","href":"/api-reference/settings/create-a-rule-from-a-catalogue-template"},{"title":"List the network's rulesets","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rules/groups","href":"/api-reference/settings/list-the-networks-rulesets"},{"title":"Create a ruleset","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/rules/groups","href":"/api-reference/settings/create-a-ruleset"},{"title":"Change a ruleset","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/rules/groups/{groupId}","href":"/api-reference/settings/change-a-ruleset"},{"title":"List the rule catalogue","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rules/templates","href":"/api-reference/settings/list-the-rule-catalogue"},{"title":"Get one rule and its per-subject thresholds","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/rules/{ruleId}","href":"/api-reference/settings/get-one-rule-and-its-per-subject-thresholds"},{"title":"Change a rule's threshold, mode, perimeter or switch","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/rules/{ruleId}","href":"/api-reference/settings/change-a-rules-threshold-mode-perimeter-or-switch"},{"title":"Read the network settings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/settings","href":"/api-reference/settings/read-the-network-settings"},{"title":"Replace the network settings","deprecated":null,"version":null,"openapi":"/openapi.json put /v1/settings","href":"/api-reference/settings/replace-the-network-settings"}]},{"group":"Devices","pages":[{"title":"Get the active card-terminal provider","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/payment-terminal/config","href":"/api-reference/devices/get-the-active-card-terminal-provider"},{"title":"Run the card-terminal round-trip self-test","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/payment-terminal/test","href":"/api-reference/devices/run-the-card-terminal-round-trip-self-test"}]},{"group":"Audit","pages":[{"title":"Query the central audit log","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/audit","href":"/api-reference/audit/query-the-central-audit-log"}]}]}]}]}]},"title":"Get a repair order by id - Solya POS Docs","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}