Report the customer base by RFM segment (segment client)
Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer ‘who should I target’ or ‘how healthy is the base’; use listCustomers when you just need the directory. Buckets: champions (recent, frequent, high value), loyal, at_risk (was good, has gone quiet), new (never purchased) and lost. The optional segment / tier / postalCodePrefix / optIn / min-maxMonetaryCents / min-maxFrequency / min-maxRecencyDays facets are the saved-segment predicate — the same criteria a campaign’s custom list is built from — combined as AND. They narrow the returned rows ONLY: baseTotal and counts always describe the whole base, so a bucket keeps its true size. Mind the two totals: total counts the rows the PREDICATE matched across all pages (pair it with page/pageSize, default 20, max 100, and stop at pageCount), while baseTotal is the size of the base itself. monetaryCents is integer cents; recencyDays is null for a customer who never bought, and the recency facets never match those customers (target them with segment=new). Feed the same facets to createCampaign to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request pageSize=1 and read total (the match count) together with referenceDate (the instant it was computed). Each row carries the customer’s raw email/phone, so these are contact details: narrow with the facets rather than walking every page.
GET
/
v1
/
customers
/
segments
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.
Restrict the returned rows to customers whose postal code starts with this prefix (75 targets all of Paris). Customers with no postal code on file never match.
Restrict the returned rows to customers whose last purchase is at least this many days old (the lapsed / win-back facet). Customers who never purchased never match.
{"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/customers/report-the-customer-base-by-rfm-segment-segment-client","slug":"/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client","pageMetadata":{"title":"Report the customer base by RFM segment (segment client)","description":"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer 'who should I target' or 'how healthy is the base'; use `listCustomers` when you just need the directory. Buckets: `champions` (recent, frequent, high value), `loyal`, `at_risk` (was good, has gone quiet), `new` (never purchased) and `lost`. The optional `segment` / `tier` / `postalCodePrefix` / `optIn` / `min`-`maxMonetaryCents` / `min`-`maxFrequency` / `min`-`maxRecencyDays` facets are the saved-segment predicate — the same criteria a campaign's custom list is built from — combined as AND. They narrow the returned rows ONLY: `baseTotal` and `counts` always describe the whole base, so a bucket keeps its true size. Mind the two totals: `total` counts the rows the PREDICATE matched across all pages (pair it with `page`/`pageSize`, default 20, max 100, and stop at `pageCount`), while `baseTotal` is the size of the base itself. `monetaryCents` is integer cents; `recencyDays` is null for a customer who never bought, and the recency facets never match those customers (target them with `segment=new`). Feed the same facets to `createCampaign` to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request `pageSize=1` and read `total` (the match count) together with `referenceDate` (the instant it was computed). Each row carries the customer's raw `email`/`phone`, so these are contact details: narrow with the facets rather than walking every page.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/segments","href":"/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client","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: [\"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer ‘who should I target’ or ‘how healthy is the base’; use \", _jsx(_components.code, {\n children: \"listCustomers\"\n }), \" when you just need the directory. Buckets: \", _jsx(_components.code, {\n children: \"champions\"\n }), \" (recent, frequent, high value), \", _jsx(_components.code, {\n children: \"loyal\"\n }), \", \", _jsx(_components.code, {\n children: \"at_risk\"\n }), \" (was good, has gone quiet), \", _jsx(_components.code, {\n children: \"new\"\n }), \" (never purchased) and \", _jsx(_components.code, {\n children: \"lost\"\n }), \". The optional \", _jsx(_components.code, {\n children: \"segment\"\n }), \" / \", _jsx(_components.code, {\n children: \"tier\"\n }), \" / \", _jsx(_components.code, {\n children: \"postalCodePrefix\"\n }), \" / \", _jsx(_components.code, {\n children: \"optIn\"\n }), \" / \", _jsx(_components.code, {\n children: \"min\"\n }), \"-\", _jsx(_components.code, {\n children: \"maxMonetaryCents\"\n }), \" / \", _jsx(_components.code, {\n children: \"min\"\n }), \"-\", _jsx(_components.code, {\n children: \"maxFrequency\"\n }), \" / \", _jsx(_components.code, {\n children: \"min\"\n }), \"-\", _jsx(_components.code, {\n children: \"maxRecencyDays\"\n }), \" facets are the saved-segment predicate — the same criteria a campaign’s custom list is built from — combined as AND. They narrow the returned rows ONLY: \", _jsx(_components.code, {\n children: \"baseTotal\"\n }), \" and \", _jsx(_components.code, {\n children: \"counts\"\n }), \" always describe the whole base, so a bucket keeps its true size. Mind the two totals: \", _jsx(_components.code, {\n children: \"total\"\n }), \" counts the rows the PREDICATE matched across all pages (pair it with \", _jsx(_components.code, {\n children: \"page\"\n }), \"/\", _jsx(_components.code, {\n children: \"pageSize\"\n }), \", default 20, max 100, and stop at \", _jsx(_components.code, {\n children: \"pageCount\"\n }), \"), while \", _jsx(_components.code, {\n children: \"baseTotal\"\n }), \" is the size of the base itself. \", _jsx(_components.code, {\n children: \"monetaryCents\"\n }), \" is integer cents; \", _jsx(_components.code, {\n children: \"recencyDays\"\n }), \" is null for a customer who never bought, and the recency facets never match those customers (target them with \", _jsx(_components.code, {\n children: \"segment=new\"\n }), \"). Feed the same facets to \", _jsx(_components.code, {\n children: \"createCampaign\"\n }), \" to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request \", _jsx(_components.code, {\n children: \"pageSize=1\"\n }), \" and read \", _jsx(_components.code, {\n children: \"total\"\n }), \" (the match count) together with \", _jsx(_components.code, {\n children: \"referenceDate\"\n }), \" (the instant it was computed). Each row carries the customer’s raw \", _jsx(_components.code, {\n children: \"email\"\n }), \"/\", _jsx(_components.code, {\n children: \"phone\"\n }), \", so these are contact details: narrow with the facets rather than walking every page.\"]\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":"Report the customer base by RFM segment (segment client)","description":"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer 'who should I target' or 'how healthy is the base'; use `listCustomers` when you just need the directory. Buckets: `champions` (recent, frequent, high value), `loyal`, `at_risk` (was good, has gone quiet), `new` (never purchased) and `lost`. The optional `segment` / `tier` / `postalCodePrefix` / `optIn` / `min`-`maxMonetaryCents` / `min`-`maxFrequency` / `min`-`maxRecencyDays` facets are the saved-segment predicate — the same criteria a campaign's custom list is built from — combined as AND. They narrow the returned rows ONLY: `baseTotal` and `counts` always describe the whole base, so a bucket keeps its true size. Mind the two totals: `total` counts the rows the PREDICATE matched across all pages (pair it with `page`/`pageSize`, default 20, max 100, and stop at `pageCount`), while `baseTotal` is the size of the base itself. `monetaryCents` is integer cents; `recencyDays` is null for a customer who never bought, and the recency facets never match those customers (target them with `segment=new`). Feed the same facets to `createCampaign` to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request `pageSize=1` and read `total` (the match count) together with `referenceDate` (the instant it was computed). Each row carries the customer's raw `email`/`phone`, so these are contact details: narrow with the facets rather than walking every page.","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/customers/segments","href":"/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"getCustomerSegmentation","summary":"Report the customer base by RFM segment (segment client)","tags":["Customers"],"description":"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer 'who should I target' or 'how healthy is the base'; use `listCustomers` when you just need the directory. Buckets: `champions` (recent, frequent, high value), `loyal`, `at_risk` (was good, has gone quiet), `new` (never purchased) and `lost`. The optional `segment` / `tier` / `postalCodePrefix` / `optIn` / `min`-`maxMonetaryCents` / `min`-`maxFrequency` / `min`-`maxRecencyDays` facets are the saved-segment predicate — the same criteria a campaign's custom list is built from — combined as AND. They narrow the returned rows ONLY: `baseTotal` and `counts` always describe the whole base, so a bucket keeps its true size. Mind the two totals: `total` counts the rows the PREDICATE matched across all pages (pair it with `page`/`pageSize`, default 20, max 100, and stop at `pageCount`), while `baseTotal` is the size of the base itself. `monetaryCents` is integer cents; `recencyDays` is null for a customer who never bought, and the recency facets never match those customers (target them with `segment=new`). Feed the same facets to `createCampaign` to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request `pageSize=1` and read `total` (the match count) together with `referenceDate` (the instant it was computed). Each row carries the customer's raw `email`/`phone`, so these are contact details: narrow with the facets rather than walking every page.","parameters":["333a24f4-a3ac-4e4d-8a26-38e9cdae944d","36481ac7-b591-41f7-976a-f86bc2c97273","042910b8-1336-40c9-adbe-0cab13eb2e11","6545cf97-dae7-48fb-bd9e-7fadd43b8486","68d07574-7e48-4d13-ab40-5051cddbc806","3345d1e1-6f23-4bc9-8684-65076466e9c3","3f33c6ff-2f63-4ac2-aa78-afafae1a4911","a8118410-579e-4d92-a79a-0fa3c9146044","224210bb-fa83-4a01-a933-f17b9d2141ff","c885d041-7c09-4246-a4f9-c3eee3faf6de","e5aa4e05-c5b4-42e7-b2d9-b93c27e886a3","b8c8717c-56a7-4d32-bc03-d6d061ff796c"],"security":["22bf18e5-7140-4367-992a-417ecbf4732e"],"x-agent-tier":"supported","x-required-permissions":["pos.customers.view"],"responses":{"200":"3527fae7-2021-4b47-8276-da50563185bf","400":"bb67d80b-cde9-4255-9b70-23e5829b25e6","401":"468111c0-626f-4123-b837-c9b8439970ee","403":"6f472f34-a055-4786-94e9-fabf19b547ba","500":"8d58cbe3-36ad-4be1-99ef-95fe4931d84e"},"method":"get","type":"path","servers":["e916e6f6-9ac8-4670-9030-c73027795f70"],"path":"/v1/customers/segments","baseUrlOptions":["/"],"title":"Report the customer base by RFM segment (segment client)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"333a24f4-a3ac-4e4d-8a26-38e9cdae944d":{"schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991,"isRequired":false,"description":"1-based page index to return. Defaults to 1.","uniqueKey":"","typeLabel":"integer"},"in":"query","name":"page","required":false,"description":"1-based page index to return. Defaults to 1."},"36481ac7-b591-41f7-976a-f86bc2c97273":{"schema":{"default":20,"type":"integer","minimum":1,"maximum":100,"isRequired":false,"description":"Rows per page, 1..100. Defaults to 20.","uniqueKey":"","typeLabel":"integer"},"in":"query","name":"pageSize","required":false,"description":"Rows per page, 1..100. Defaults to 20."},"042910b8-1336-40c9-adbe-0cab13eb2e11":{"schema":{"type":"string","enum":["champions","loyal","at_risk","new","lost"],"isRequired":false,"description":"Restrict the returned rows to one RFM bucket (segment client), e.g. `champions`.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"in":"query","name":"segment","required":false,"description":"Restrict the returned rows to one RFM bucket (segment client), e.g. `champions`."},"6545cf97-dae7-48fb-bd9e-7fadd43b8486":{"schema":{"type":"string","minLength":1,"isRequired":false,"description":"Restrict the returned rows to one loyalty-tier label, e.g. `Or`.","uniqueKey":"","typeLabel":"string"},"in":"query","name":"tier","required":false,"description":"Restrict the returned rows to one loyalty-tier label, e.g. `Or`."},"68d07574-7e48-4d13-ab40-5051cddbc806":{"schema":{"type":"string","minLength":1,"isRequired":false,"description":"Restrict the returned rows to customers whose postal code starts with this prefix (`75` targets all of Paris). Customers with no postal code on file never match.","uniqueKey":"","typeLabel":"string"},"in":"query","name":"postalCodePrefix","required":false,"description":"Restrict the returned rows to customers whose postal code starts with this prefix (`75` targets all of Paris). Customers with no postal code on file never match."},"3345d1e1-6f23-4bc9-8684-65076466e9c3":{"schema":{"type":"string","enum":["true","false"],"isRequired":false,"description":"Restrict the returned rows to customers with this marketing opt-in state.","uniqueKey":"","typeLabel":"enum\u003cstring>"},"in":"query","name":"optIn","required":false,"description":"Restrict the returned rows to customers with this marketing opt-in state."},"3f33c6ff-2f63-4ac2-aa78-afafae1a4911":{"schema":{"type":"string","pattern":"^\\d+$","isRequired":false,"description":"Restrict the returned rows to customers at or above this lifetime spend, in cents.","uniqueKey":"","typeLabel":"string"},"in":"query","name":"minMonetaryCents","required":false,"description":"Restrict the returned rows to customers at or above this lifetime spend, in cents."},"a8118410-579e-4d92-a79a-0fa3c9146044":{"schema":{"type":"string","pattern":"^\\d+$","isRequired":false,"description":"Restrict the returned rows to customers at or below this lifetime spend, in cents.","uniqueKey":"","typeLabel":"string"},"in":"query","name":"maxMonetaryCents","required":false,"description":"Restrict the returned rows to customers at or below this lifetime spend, in cents."},"224210bb-fa83-4a01-a933-f17b9d2141ff":{"schema":{"type":"string","pattern":"^\\d+$","isRequired":false,"description":"Restrict the returned rows to customers with at least this many finalized purchases.","uniqueKey":"","typeLabel":"string"},"in":"query","name":"minFrequency","required":false,"description":"Restrict the returned rows to customers with at least this many finalized purchases."},"c885d041-7c09-4246-a4f9-c3eee3faf6de":{"schema":{"type":"string","pattern":"^\\d+$","isRequired":false,"description":"Restrict the returned rows to customers with at most this many finalized purchases.","uniqueKey":"","typeLabel":"string"},"in":"query","name":"maxFrequency","required":false,"description":"Restrict the returned rows to customers with at most this many finalized purchases."},"e5aa4e05-c5b4-42e7-b2d9-b93c27e886a3":{"schema":{"type":"string","pattern":"^\\d+$","isRequired":false,"description":"Restrict the returned rows to customers whose last purchase is at least this many days old (the lapsed / win-back facet). Customers who never purchased never match.","uniqueKey":"","typeLabel":"string"},"in":"query","name":"minRecencyDays","required":false,"description":"Restrict the returned rows to customers whose last purchase is at least this many days old (the lapsed / win-back facet). Customers who never purchased never match."},"b8c8717c-56a7-4d32-bc03-d6d061ff796c":{"schema":{"type":"string","pattern":"^\\d+$","isRequired":false,"description":"Restrict the returned rows to customers who purchased within this many days (the recently-active facet). Customers who never purchased never match.","uniqueKey":"","typeLabel":"string"},"in":"query","name":"maxRecencyDays","required":false,"description":"Restrict the returned rows to customers who purchased within this many days (the recently-active facet). Customers who never purchased never match."}},"responses":{"3527fae7-2021-4b47-8276-da50563185bf":{"description":"Whole-base per-segment counts plus one page of the (optionally filtered) rows.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"customerId":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].customerId","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].name","typeLabel":"string"},"email":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].email.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].email.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].email","typeLabel":"string | null"},"phone":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].phone.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].phone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].phone","typeLabel":"string | null"},"tier":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].tier","typeLabel":"string"},"postalCode":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].postalCode.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].postalCode.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].postalCode","typeLabel":"string | null"},"optIn":{"type":"boolean","isRequired":true,"uniqueKey":"\\items.items.[INDEX].optIn","typeLabel":"boolean"},"metrics":{"type":"object","properties":{"recencyDays":{"oneOf":[{"type":"number","isRequired":true,"uniqueKey":"\\items.items.[INDEX].metrics.recencyDays.oneOf.0","typeLabel":"number"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].metrics.recencyDays.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].metrics.recencyDays","typeLabel":"number | null"},"frequency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].metrics.frequency","typeLabel":"integer"},"monetaryCents":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].metrics.monetaryCents","typeLabel":"integer"}},"required":["recencyDays","frequency","monetaryCents"],"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].metrics","typeLabel":"object"},"scores":{"type":"object","properties":{"recency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].scores.recency","typeLabel":"integer"},"frequency":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].scores.frequency","typeLabel":"integer"},"monetary":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].scores.monetary","typeLabel":"integer"}},"required":["recency","frequency","monetary"],"additionalProperties":false,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].scores","typeLabel":"object"},"segment":{"type":"string","enum":["champions","loyal","at_risk","new","lost"],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].segment","typeLabel":"enum\u003cstring>"}},"required":["customerId","name","email","phone","tier","postalCode","optIn","metrics","scores","segment"],"additionalProperties":false,"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"description":"The rows on this page, in the query's sort order.","isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"total":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total rows matching the filter across ALL pages, not just this one.","isRequired":true,"uniqueKey":"total","typeLabel":"integer"},"page":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991,"description":"The 1-based page number served.","isRequired":true,"uniqueKey":"page","typeLabel":"integer"},"pageSize":{"type":"integer","minimum":0,"exclusiveMinimum":true,"maximum":9007199254740991,"description":"Rows requested per page.","isRequired":true,"uniqueKey":"pageSize","typeLabel":"integer"},"pageCount":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Total number of pages; stop walking when `page` reaches it.","isRequired":true,"uniqueKey":"pageCount","typeLabel":"integer"},"referenceDate":{"type":"string","isRequired":true,"uniqueKey":"referenceDate","typeLabel":"string"},"baseTotal":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"baseTotal","typeLabel":"integer"},"counts":{"type":"object","properties":{"champions":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"counts.champions","typeLabel":"integer"},"loyal":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"counts.loyal","typeLabel":"integer"},"at_risk":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"counts.at_risk","typeLabel":"integer"},"new":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"counts.new","typeLabel":"integer"},"lost":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"isRequired":true,"uniqueKey":"counts.lost","typeLabel":"integer"}},"required":["champions","loyal","at_risk","new","lost"],"additionalProperties":false,"isRequired":true,"uniqueKey":"counts","typeLabel":"object"}},"required":["items","total","page","pageSize","pageCount","referenceDate","baseTotal","counts"],"additionalProperties":false,"description":"Whole-base per-segment counts plus one page of the (optionally filtered) rows.","example":{"referenceDate":"2026-07-28T09:00:00.000Z","baseTotal":15,"counts":{"champions":2,"loyal":3,"at_risk":1,"new":8,"lost":1},"items":[{"customerId":"cust-1","name":"Camille Renard","email":"camille.renard@example.com","phone":null,"tier":"Or","postalCode":"75011","optIn":true,"metrics":{"recencyDays":14,"frequency":17,"monetaryCents":84250},"scores":{"recency":5,"frequency":5,"monetary":5},"segment":"champions"}],"total":2,"page":1,"pageSize":20,"pageCount":1},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"referenceDate":"2026-07-28T09:00:00.000Z","baseTotal":15,"counts":{"champions":2,"loyal":3,"at_risk":1,"new":8,"lost":1},"items":[{"customerId":"cust-1","name":"Camille Renard","email":"camille.renard@example.com","phone":null,"tier":"Or","postalCode":"75011","optIn":true,"metrics":{"recencyDays":14,"frequency":17,"monetaryCents":84250},"scores":{"recency":5,"frequency":5,"monetary":5},"segment":"champions"}],"total":2,"page":1,"pageSize":20,"pageCount":1}}},"exampleType":"generated"}},"exampleType":"generated"},"bb67d80b-cde9-4255-9b70-23e5829b25e6":{"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"},"468111c0-626f-4123-b837-c9b8439970ee":{"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"},"6f472f34-a055-4786-94e9-fabf19b547ba":{"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"},"8d58cbe3-36ad-4be1-99ef-95fe4931d84e":{"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":{"22bf18e5-7140-4367-992a-417ecbf4732e":{"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":"Report the customer base by RFM segment (segment client) - Solya POS Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client","matchLevel":0},"fr":{"href":"/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client","matchLevel":0}}},"lastModified":"2026-08-12T05:56:33.660Z","originalFileLocation":"api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client.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=\"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer \u0026#x27;who should I target\u0026#x27; or \u0026#x27;how healthy is the base\u0026#x27;; use listCustomers when you just need the directory. Buckets: champions (recent, frequent, high value), loyal, at_risk (was good, has gone quiet), new (never purchased) and lost. The optional segment / tier / postalCodePrefix / optIn / min-maxMonetaryCents / min-maxFrequency / min-maxRecencyDays facets are the saved-segment predicate — the same criteria a campaign\u0026#x27;s custom list is built from — combined as AND. They narrow the returned rows ONLY: baseTotal and counts always describe the whole base, so a bucket keeps its true size. Mind the two totals: total counts the rows the PREDICATE matched across all pages (pair it with page/pageSize, default 20, max 100, and stop at pageCount), while baseTotal is the size of the base itself. monetaryCents is integer cents; recencyDays is null for a customer who never bought, and the recency facets never match those customers (target them with segment=new). Feed the same facets to createCampaign to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request pageSize=1 and read total (the match count) together with referenceDate (the instant it was computed). Each row carries the customer\u0026#x27;s raw email/phone, so these are contact details: narrow with the facets rather than walking every page.\">\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=\"Report the customer base by RFM segment (segment client) - Solya POS Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer \u0026#x27;who should I target\u0026#x27; or \u0026#x27;how healthy is the base\u0026#x27;; use listCustomers when you just need the directory. Buckets: champions (recent, frequent, high value), loyal, at_risk (was good, has gone quiet), new (never purchased) and lost. The optional segment / tier / postalCodePrefix / optIn / min-maxMonetaryCents / min-maxFrequency / min-maxRecencyDays facets are the saved-segment predicate — the same criteria a campaign\u0026#x27;s custom list is built from — combined as AND. They narrow the returned rows ONLY: baseTotal and counts always describe the whole base, so a bucket keeps its true size. Mind the two totals: total counts the rows the PREDICATE matched across all pages (pair it with page/pageSize, default 20, max 100, and stop at pageCount), while baseTotal is the size of the base itself. monetaryCents is integer cents; recencyDays is null for a customer who never bought, and the recency facets never match those customers (target them with segment=new). Feed the same facets to createCampaign to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request pageSize=1 and read total (the match count) together with referenceDate (the instant it was computed). Each row carries the customer\u0026#x27;s raw email/phone, so these are contact details: narrow with the facets rather than walking every page.\">\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/customers/report-the-customer-base-by-rfm-segment-segment-client\">\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=Customers\u0026amp;title=Report+the+customer+base+by+RFM+segment+%28segment+client%29\u0026amp;description=Computes+an+RFM+%28Recency+%2F+Frequency+%2F+Monetary%29+segmentation+over+the+whole+customer+base+and+returns+the+per-bucket+population+plus+ONE+PAGE+of+the+individual\u0026amp;theme=d38e9e894d2efabe74a4c74f\u0026amp;signature=1f5b85fefc3fe735d244e274070b9228bf289dbf46bba28dbdf780c5d14611da\">\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=\"Report the customer base by RFM segment (segment client) - Solya POS Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer \u0026#x27;who should I target\u0026#x27; or \u0026#x27;how healthy is the base\u0026#x27;; use listCustomers when you just need the directory. Buckets: champions (recent, frequent, high value), loyal, at_risk (was good, has gone quiet), new (never purchased) and lost. The optional segment / tier / postalCodePrefix / optIn / min-maxMonetaryCents / min-maxFrequency / min-maxRecencyDays facets are the saved-segment predicate — the same criteria a campaign\u0026#x27;s custom list is built from — combined as AND. They narrow the returned rows ONLY: baseTotal and counts always describe the whole base, so a bucket keeps its true size. Mind the two totals: total counts the rows the PREDICATE matched across all pages (pair it with page/pageSize, default 20, max 100, and stop at pageCount), while baseTotal is the size of the base itself. monetaryCents is integer cents; recencyDays is null for a customer who never bought, and the recency facets never match those customers (target them with segment=new). Feed the same facets to createCampaign to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request pageSize=1 and read total (the match count) together with referenceDate (the instant it was computed). Each row carries the customer\u0026#x27;s raw email/phone, so these are contact details: narrow with the facets rather than walking every page.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://solya-pos.mintlify.app/_mintlify/api/og/v2?division=Customers\u0026amp;title=Report+the+customer+base+by+RFM+segment+%28segment+client%29\u0026amp;description=Computes+an+RFM+%28Recency+%2F+Frequency+%2F+Monetary%29+segmentation+over+the+whole+customer+base+and+returns+the+per-bucket+population+plus+ONE+PAGE+of+the+individual\u0026amp;theme=d38e9e894d2efabe74a4c74f\u0026amp;signature=1f5b85fefc3fe735d244e274070b9228bf289dbf46bba28dbdf780c5d14611da\">\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/customers/report-the-customer-base-by-rfm-segment-segment-client\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client.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/customers/report-the-customer-base-by-rfm-segment-segment-client#webpage\",\"url\":\"https://docs-pos.solya.app/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client\",\"name\":\"Report the customer base by RFM segment (segment client)\",\"description\":\"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer 'who should I target' or 'how healthy is the base'; use listCustomers when you just need the directory. Buckets: champions (recent, frequent, high value), loyal, at_risk (was good, has gone quiet), new (never purchased) and lost. The optional segment / tier / postalCodePrefix / optIn / min-maxMonetaryCents / min-maxFrequency / min-maxRecencyDays facets are the saved-segment predicate — the same criteria a campaign's custom list is built from — combined as AND. They narrow the returned rows ONLY: baseTotal and counts always describe the whole base, so a bucket keeps its true size. Mind the two totals: total counts the rows the PREDICATE matched across all pages (pair it with page/pageSize, default 20, max 100, and stop at pageCount), while baseTotal is the size of the base itself. monetaryCents is integer cents; recencyDays is null for a customer who never bought, and the recency facets never match those customers (target them with segment=new). Feed the same facets to createCampaign to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request pageSize=1 and read total (the match count) together with referenceDate (the instant it was computed). Each row carries the customer's raw email/phone, so these are contact details: narrow with the facets rather than walking every page.\",\"dateModified\":\"2026-08-12T05:56:33.660Z\",\"isPartOf\":{\"@id\":\"https://docs-pos.solya.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs-pos.solya.app/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs-pos.solya.app/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Clients \u0026 fidélité\",\"item\":\"https://docs-pos.solya.app/api-reference/customers/list-customers\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Customers\",\"item\":\"https://docs-pos.solya.app/api-reference/customers/list-customers\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Report the customer base by RFM segment (segment client)\",\"item\":\"https://docs-pos.solya.app/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs-pos.solya.app/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client#apireference\",\"headline\":\"Report the customer base by RFM segment (segment client)\",\"name\":\"Report the customer base by RFM segment (segment client)\",\"description\":\"Computes an RFM (Recency / Frequency / Monetary) segmentation over the whole customer base and returns the per-bucket population plus ONE PAGE of the individual customer rows. Reach for this to answer 'who should I target' or 'how healthy is the base'; use listCustomers when you just need the directory. Buckets: champions (recent, frequent, high value), loyal, at_risk (was good, has gone quiet), new (never purchased) and lost. The optional segment / tier / postalCodePrefix / optIn / min-maxMonetaryCents / min-maxFrequency / min-maxRecencyDays facets are the saved-segment predicate — the same criteria a campaign's custom list is built from — combined as AND. They narrow the returned rows ONLY: baseTotal and counts always describe the whole base, so a bucket keeps its true size. Mind the two totals: total counts the rows the PREDICATE matched across all pages (pair it with page/pageSize, default 20, max 100, and stop at pageCount), while baseTotal is the size of the base itself. monetaryCents is integer cents; recencyDays is null for a customer who never bought, and the recency facets never match those customers (target them with segment=new). Feed the same facets to createCampaign to target this audience — but note the campaign re-evaluates them at send, so this response is the audience NOW, not the audience the send will resolve. To size a predicate WITHOUT pulling contact details, request pageSize=1 and read total (the match count) together with referenceDate (the instant it was computed). Each row carries the customer's raw email/phone, so these are contact details: narrow with the facets rather than walking every page.\",\"url\":\"https://docs-pos.solya.app/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client\",\"mainEntityOfPage\":{\"@id\":\"https://docs-pos.solya.app/api-reference/customers/report-the-customer-base-by-rfm-segment-segment-client#webpage\"},\"dateModified\":\"2026-08-12T05:56:33.660Z\",\"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","description":"Registers a new customer from a name plus optional contact details and the GDPR marketing `optIn` flag. Do NOT send an id — it is minted server-side (`cust-\u003cuuid>`) and any `id` you send is discarded, so you can never collide with an existing record. The new customer starts on the floor loyalty tier with zero points, spend and orders; read the returned `id` to address it afterwards.","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","description":"Returns one customer's full record (identity, contact, loyalty tier/points, lifetime spend and the marketing `optIn` flag). Use it to confirm who you are about to act on before any write. 404s when no customer carries the 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","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","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","description":"Registers a new customer from a name plus optional contact details and the GDPR marketing `optIn` flag. Do NOT send an id — it is minted server-side (`cust-\u003cuuid>`) and any `id` you send is discarded, so you can never collide with an existing record. The new customer starts on the floor loyalty tier with zero points, spend and orders; read the returned `id` to address it afterwards.","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","description":"Returns one customer's full record (identity, contact, loyalty tier/points, lifetime spend and the marketing `optIn` flag). Use it to confirm who you are about to act on before any write. 404s when no customer carries the 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","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","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":"Report the customer base by RFM segment (segment client) - 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"]}