# Extensions

Extensions

## List extensions for a tenant

> List extensions for a tenant\
> \
> Required permissions: EXTENSION

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]},{"accessToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"}},"parameters":{"pageNumberQuery":{"description":"Reference to a specific page in a result set.","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},"pageSizeQuery":{"description":"The number of items per page in a result set.","in":"query","name":"pageSize","required":false,"schema":{"type":"integer"}},"sortByQuery":{"description":"Defines which field the resource list is sorted by.","in":"query","name":"sortBy","required":false,"schema":{"type":"string"}},"sortDirectionQuery":{"description":"Reference to a sort direction","explode":false,"in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/SortDirectionENUM"},"style":"form"}},"schemas":{"SortDirectionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| ASC | Sort in ascending order|\n| DESC | Sort in descending order|\n","enum":["ASC","DESC"],"title":"SortDirectionENUM","type":"string"},"TenantExtensionResponseSchema":{"title":"TenantExtensionResponseSchema","type":"object","description":"TenantExtensionResponseSchema","required":["tenantExtensionUid","name","active","extensionCode","hasStoreExtensionSettings","tenantParameters","statusMessages","availableTenantParameters","availableStoreParameters"],"properties":{"tenantExtensionUid":{"$ref":"#/components/schemas/UID"},"name":{"type":"string"},"active":{"type":"boolean"},"extensionCode":{"$ref":"#/components/schemas/ExtensionCodeENUM"},"hasStoreExtensionSettings":{"type":"boolean","description":"Indicate if the extension needs to be activated and configured pr store"},"tenantParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"statusMessages":{"type":"array","items":{"type":"string"}},"availableTenantParameters":{"type":"array","deprecated":true,"items":{"$ref":"#/components/schemas/AvailableExtensionParameterSchema"}},"availableStoreParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"ExtensionCodeENUM":{"enum":["FLOWGIFTCARD","PAYEX_GIFTCARD","ADYEN_POS","PAYEX_POS","VIPPS","EXTERNAL_CUSTOMER_SEARCH","STORE_CREDIT","SMS","STRIPE","NETS","VERIFONE","SERVICE_WORKSHOP","TWO_INVOICE","OMNIUM","DILLER","ARTS","CAMPAIGN","B2B","PEOPLE_COUNTER_KUNDETELLING","COMPENSATION","SWISH","DINTERO","KID","EHF","MYPOWER","BRITANNIA","SOFTPAY","CENTRAL_WAREHOUSE","PROFRAKT","LOYALTY_POINTS","SUBSCRIPTION","POWER_DIRECT","POSTER"],"title":"ExtensionCodeENUM","type":"string"},"GeneralParameterResponseSchema":{"title":"GeneralParameterResponseSchema","type":"object","required":["key","value","type","allowedValues","validationRegex","name","required"],"properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"$ref":"#/components/schemas/GeneralParameterTypeENUM"},"allowedValues":{"type":"array","items":{"type":"string"}},"validationRegex":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"}}},"GeneralParameterTypeENUM":{"title":"GeneralSettingTypeENUM","type":"string","enum":["STRING","PASSWORD","INTEGER","DECIMAL","BOOL","ENUM"],"description":"| Type | Description |\n|--|--|\n|BOOL | Booleans will be the string `true` or `false` |\n|DECIMAL | Descimal numbers can only have two decimals and is represented as an integer multiplied by 100. Example: 1.2 is will be 120 and 5 will be 500 |\n|ENUM| The enum value should be one of the values listed in `allowedValues` |\n|PASSWORD | Treated the same way as STRING, but indicates to clients that this field should be hidden or masked. Used for tokens and passwords |"},"AvailableExtensionParameterSchema":{"title":"AvailableExtensionParameterSchema","type":"object","required":["key","type","required"],"properties":{"key":{"type":"string"},"type":{"$ref":"#/components/schemas/ExtensionParameterDataTypeENUM"},"required":{"type":"boolean"}}},"ExtensionParameterDataTypeENUM":{"type":"string","title":"ExtensionParameterDataTypeENUM","enum":["STRING","INTEGER","DECIMAL","BOOLEAN","JSON_STRING_ARRAY"],"description":"JSON_STRING_ARRAY must represent a valid json string array."},"Paging":{"description":"totalCount The total number of items in the result set.\n\npageSize The number of items per page.\n\npageNumber The current page in the result set.","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["totalCount","pageSize","pageNumber"],"title":"Paging","type":"object"}},"responses":{"TenantExtensionListResponse":{"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/TenantExtensionResponseSchema"}},"paging":{"$ref":"#/components/schemas/Paging"}},"required":["items","paging"]}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/extensions":{"get":{"description":"List extensions for a tenant\n\nRequired permissions: EXTENSION","operationId":"get-tenants-extensions","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"}],"responses":{"200":{"$ref":"#/components/responses/TenantExtensionListResponse"}},"summary":"List extensions for a tenant","tags":["Extensions"]}}}}
```

## Get tenant extension details

> Get details for a tenant extension.

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]},{"accessToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"}},"responses":{"TenantExtensionResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantExtensionResponseSchema"}}},"description":"Example response"}},"schemas":{"TenantExtensionResponseSchema":{"title":"TenantExtensionResponseSchema","type":"object","description":"TenantExtensionResponseSchema","required":["tenantExtensionUid","name","active","extensionCode","hasStoreExtensionSettings","tenantParameters","statusMessages","availableTenantParameters","availableStoreParameters"],"properties":{"tenantExtensionUid":{"$ref":"#/components/schemas/UID"},"name":{"type":"string"},"active":{"type":"boolean"},"extensionCode":{"$ref":"#/components/schemas/ExtensionCodeENUM"},"hasStoreExtensionSettings":{"type":"boolean","description":"Indicate if the extension needs to be activated and configured pr store"},"tenantParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"statusMessages":{"type":"array","items":{"type":"string"}},"availableTenantParameters":{"type":"array","deprecated":true,"items":{"$ref":"#/components/schemas/AvailableExtensionParameterSchema"}},"availableStoreParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"ExtensionCodeENUM":{"enum":["FLOWGIFTCARD","PAYEX_GIFTCARD","ADYEN_POS","PAYEX_POS","VIPPS","EXTERNAL_CUSTOMER_SEARCH","STORE_CREDIT","SMS","STRIPE","NETS","VERIFONE","SERVICE_WORKSHOP","TWO_INVOICE","OMNIUM","DILLER","ARTS","CAMPAIGN","B2B","PEOPLE_COUNTER_KUNDETELLING","COMPENSATION","SWISH","DINTERO","KID","EHF","MYPOWER","BRITANNIA","SOFTPAY","CENTRAL_WAREHOUSE","PROFRAKT","LOYALTY_POINTS","SUBSCRIPTION","POWER_DIRECT","POSTER"],"title":"ExtensionCodeENUM","type":"string"},"GeneralParameterResponseSchema":{"title":"GeneralParameterResponseSchema","type":"object","required":["key","value","type","allowedValues","validationRegex","name","required"],"properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"$ref":"#/components/schemas/GeneralParameterTypeENUM"},"allowedValues":{"type":"array","items":{"type":"string"}},"validationRegex":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"}}},"GeneralParameterTypeENUM":{"title":"GeneralSettingTypeENUM","type":"string","enum":["STRING","PASSWORD","INTEGER","DECIMAL","BOOL","ENUM"],"description":"| Type | Description |\n|--|--|\n|BOOL | Booleans will be the string `true` or `false` |\n|DECIMAL | Descimal numbers can only have two decimals and is represented as an integer multiplied by 100. Example: 1.2 is will be 120 and 5 will be 500 |\n|ENUM| The enum value should be one of the values listed in `allowedValues` |\n|PASSWORD | Treated the same way as STRING, but indicates to clients that this field should be hidden or masked. Used for tokens and passwords |"},"AvailableExtensionParameterSchema":{"title":"AvailableExtensionParameterSchema","type":"object","required":["key","type","required"],"properties":{"key":{"type":"string"},"type":{"$ref":"#/components/schemas/ExtensionParameterDataTypeENUM"},"required":{"type":"boolean"}}},"ExtensionParameterDataTypeENUM":{"type":"string","title":"ExtensionParameterDataTypeENUM","enum":["STRING","INTEGER","DECIMAL","BOOLEAN","JSON_STRING_ARRAY"],"description":"JSON_STRING_ARRAY must represent a valid json string array."}}},"paths":{"/tenants/{tenantUid}/extensions/{tenantExtensionUid}":{"get":{"description":"Get details for a tenant extension.","operationId":"get-tenants-extension-details","responses":{"200":{"$ref":"#/components/responses/TenantExtensionResponse"}},"summary":"Get tenant extension details","tags":["Extensions"]}}}}
```

## Update tenant extension details

> Update details for a tenant extension.\
> \
> Required permissions: EXTENSION

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"}},"requestBodies":{"TenantExtensionUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantExtensionUpdateRequestSchema"}}}}},"schemas":{"TenantExtensionUpdateRequestSchema":{"title":"TenantExtensionUpdateRequestSchema","type":"object","properties":{"name":{"type":"string"},"active":{"type":"boolean"},"tenantParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterRequestSchema"}}},"required":["active"]},"GeneralParameterRequestSchema":{"description":"GeneralParameterRequestSchema","title":"GeneralParameterRequestSchema","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]},"TenantExtensionResponseSchema":{"title":"TenantExtensionResponseSchema","type":"object","description":"TenantExtensionResponseSchema","required":["tenantExtensionUid","name","active","extensionCode","hasStoreExtensionSettings","tenantParameters","statusMessages","availableTenantParameters","availableStoreParameters"],"properties":{"tenantExtensionUid":{"$ref":"#/components/schemas/UID"},"name":{"type":"string"},"active":{"type":"boolean"},"extensionCode":{"$ref":"#/components/schemas/ExtensionCodeENUM"},"hasStoreExtensionSettings":{"type":"boolean","description":"Indicate if the extension needs to be activated and configured pr store"},"tenantParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"statusMessages":{"type":"array","items":{"type":"string"}},"availableTenantParameters":{"type":"array","deprecated":true,"items":{"$ref":"#/components/schemas/AvailableExtensionParameterSchema"}},"availableStoreParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"ExtensionCodeENUM":{"enum":["FLOWGIFTCARD","PAYEX_GIFTCARD","ADYEN_POS","PAYEX_POS","VIPPS","EXTERNAL_CUSTOMER_SEARCH","STORE_CREDIT","SMS","STRIPE","NETS","VERIFONE","SERVICE_WORKSHOP","TWO_INVOICE","OMNIUM","DILLER","ARTS","CAMPAIGN","B2B","PEOPLE_COUNTER_KUNDETELLING","COMPENSATION","SWISH","DINTERO","KID","EHF","MYPOWER","BRITANNIA","SOFTPAY","CENTRAL_WAREHOUSE","PROFRAKT","LOYALTY_POINTS","SUBSCRIPTION","POWER_DIRECT","POSTER"],"title":"ExtensionCodeENUM","type":"string"},"GeneralParameterResponseSchema":{"title":"GeneralParameterResponseSchema","type":"object","required":["key","value","type","allowedValues","validationRegex","name","required"],"properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"$ref":"#/components/schemas/GeneralParameterTypeENUM"},"allowedValues":{"type":"array","items":{"type":"string"}},"validationRegex":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"}}},"GeneralParameterTypeENUM":{"title":"GeneralSettingTypeENUM","type":"string","enum":["STRING","PASSWORD","INTEGER","DECIMAL","BOOL","ENUM"],"description":"| Type | Description |\n|--|--|\n|BOOL | Booleans will be the string `true` or `false` |\n|DECIMAL | Descimal numbers can only have two decimals and is represented as an integer multiplied by 100. Example: 1.2 is will be 120 and 5 will be 500 |\n|ENUM| The enum value should be one of the values listed in `allowedValues` |\n|PASSWORD | Treated the same way as STRING, but indicates to clients that this field should be hidden or masked. Used for tokens and passwords |"},"AvailableExtensionParameterSchema":{"title":"AvailableExtensionParameterSchema","type":"object","required":["key","type","required"],"properties":{"key":{"type":"string"},"type":{"$ref":"#/components/schemas/ExtensionParameterDataTypeENUM"},"required":{"type":"boolean"}}},"ExtensionParameterDataTypeENUM":{"type":"string","title":"ExtensionParameterDataTypeENUM","enum":["STRING","INTEGER","DECIMAL","BOOLEAN","JSON_STRING_ARRAY"],"description":"JSON_STRING_ARRAY must represent a valid json string array."}},"responses":{"TenantExtensionResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantExtensionResponseSchema"}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/extensions/{tenantExtensionUid}":{"put":{"description":"Update details for a tenant extension.\n\nRequired permissions: EXTENSION","operationId":"put-tenants-extensions-details","requestBody":{"$ref":"#/components/requestBodies/TenantExtensionUpdateRequest"},"responses":{"200":{"$ref":"#/components/responses/TenantExtensionResponse"}},"summary":"Update tenant extension details","tags":["Extensions"]}}}}
```

## Delete a tenant extension

> Deletes a tenant extension.\
> \
> Required permissions: EXTENSION

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"}}},"paths":{"/tenants/{tenantUid}/extensions/{tenantExtensionUid}":{"delete":{"description":"Deletes a tenant extension.\n\nRequired permissions: EXTENSION","operationId":"delete-tenants-extention","responses":{"204":{"description":"No Content"}},"summary":"Delete a tenant extension","tags":["Extensions"]}}}}
```

## List store extensions for a tenant extension

> List store extensions for a tenant extension\
> \
> Required permissions: EXTENSION

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]},{"accessToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"}},"parameters":{"pageNumberQuery":{"description":"Reference to a specific page in a result set.","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},"pageSizeQuery":{"description":"The number of items per page in a result set.","in":"query","name":"pageSize","required":false,"schema":{"type":"integer"}},"sortByQuery":{"description":"Defines which field the resource list is sorted by.","in":"query","name":"sortBy","required":false,"schema":{"type":"string"}},"sortDirectionQuery":{"description":"Reference to a sort direction","explode":false,"in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/SortDirectionENUM"},"style":"form"},"tenantExtensionActiveQuery":{"description":"filter on active status for a store extension.","in":"query","name":"tenantExtensionActiveQuery","required":false,"schema":{"type":"boolean"}},"tenantExtensionStoreNameQuery":{"description":"filter on store name for a store extension","in":"query","name":"tenantExtensionStoreNameQuery","required":false,"schema":{"type":"string"}}},"schemas":{"SortDirectionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| ASC | Sort in ascending order|\n| DESC | Sort in descending order|\n","enum":["ASC","DESC"],"title":"SortDirectionENUM","type":"string"},"StoreExtensionStoreResponseSchema":{"description":"StoreExtensionStoreResponseSchema","type":"object","title":"StoreExtensionStoreResponseSchema","properties":{"storeExtensionUid":{"$ref":"#/components/schemas/UID"},"active":{"type":"boolean"},"storeUid":{"$ref":"#/components/schemas/UID"},"storeName":{"type":"string"}},"required":["storeExtensionUid","active","storeUid","storeName"]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"Paging":{"description":"totalCount The total number of items in the result set.\n\npageSize The number of items per page.\n\npageNumber The current page in the result set.","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["totalCount","pageSize","pageNumber"],"title":"Paging","type":"object"}},"responses":{"TenantExtensionStoreListResponse":{"content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/StoreExtensionStoreResponseSchema"}},"paging":{"$ref":"#/components/schemas/Paging"}},"required":["items","paging"]}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/extensions/{tenantExtensionUid}/stores":{"get":{"description":"List store extensions for a tenant extension\n\nRequired permissions: EXTENSION","operationId":"get-tenant-extension-stores","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"},{"$ref":"#/components/parameters/tenantExtensionActiveQuery"},{"$ref":"#/components/parameters/tenantExtensionStoreNameQuery"}],"responses":{"200":{"$ref":"#/components/responses/TenantExtensionStoreListResponse"}},"summary":"List store extensions for a tenant extension","tags":["Extensions"]}}}}
```

## List extensions for a store

> List extensions for a store\
> \
> Required permissions: EXTENSION&#x20;

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]},{"accessToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"}},"parameters":{"pageNumberQuery":{"description":"Reference to a specific page in a result set.","in":"query","name":"pageNumber","required":false,"schema":{"type":"integer"}},"pageSizeQuery":{"description":"The number of items per page in a result set.","in":"query","name":"pageSize","required":false,"schema":{"type":"integer"}},"sortByQuery":{"description":"Defines which field the resource list is sorted by.","in":"query","name":"sortBy","required":false,"schema":{"type":"string"}},"sortDirectionQuery":{"description":"Reference to a sort direction","explode":false,"in":"query","name":"sortDirection","schema":{"$ref":"#/components/schemas/SortDirectionENUM"},"style":"form"}},"schemas":{"SortDirectionENUM":{"description":"|ENUM      | Description |\n| ---------------- | ------------ |\n| ASC | Sort in ascending order|\n| DESC | Sort in descending order|\n","enum":["ASC","DESC"],"title":"SortDirectionENUM","type":"string"},"StoreExtensionResponseSchema":{"description":"StoreExtensionResponseSchema","title":"StoreExtensionResponseSchema","type":"object","required":["storeExtensionUid","active","storeParameters","tenantExtension","statusMessages"],"properties":{"storeExtensionUid":{"$ref":"#/components/schemas/UID"},"active":{"type":"boolean"},"storeParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"tenantExtension":{"$ref":"#/components/schemas/StoreExtensionTenantExtensionResponseSchema"},"statusMessages":{"type":"array","items":{"type":"string"}}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"GeneralParameterResponseSchema":{"title":"GeneralParameterResponseSchema","type":"object","required":["key","value","type","allowedValues","validationRegex","name","required"],"properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"$ref":"#/components/schemas/GeneralParameterTypeENUM"},"allowedValues":{"type":"array","items":{"type":"string"}},"validationRegex":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"}}},"GeneralParameterTypeENUM":{"title":"GeneralSettingTypeENUM","type":"string","enum":["STRING","PASSWORD","INTEGER","DECIMAL","BOOL","ENUM"],"description":"| Type | Description |\n|--|--|\n|BOOL | Booleans will be the string `true` or `false` |\n|DECIMAL | Descimal numbers can only have two decimals and is represented as an integer multiplied by 100. Example: 1.2 is will be 120 and 5 will be 500 |\n|ENUM| The enum value should be one of the values listed in `allowedValues` |\n|PASSWORD | Treated the same way as STRING, but indicates to clients that this field should be hidden or masked. Used for tokens and passwords |"},"StoreExtensionTenantExtensionResponseSchema":{"description":"StoreExtensionTenantExtensionResponseSchema","type":"object","title":"StoreExtensionTenantExtensionResponseSchema","properties":{"extensionCode":{"$ref":"#/components/schemas/ExtensionCodeENUM"},"active":{"type":"boolean"},"tenantExtensionUid":{"$ref":"#/components/schemas/UID"},"name":{"type":"string"}},"required":["extensionCode","active","tenantExtensionUid","name"]},"ExtensionCodeENUM":{"enum":["FLOWGIFTCARD","PAYEX_GIFTCARD","ADYEN_POS","PAYEX_POS","VIPPS","EXTERNAL_CUSTOMER_SEARCH","STORE_CREDIT","SMS","STRIPE","NETS","VERIFONE","SERVICE_WORKSHOP","TWO_INVOICE","OMNIUM","DILLER","ARTS","CAMPAIGN","B2B","PEOPLE_COUNTER_KUNDETELLING","COMPENSATION","SWISH","DINTERO","KID","EHF","MYPOWER","BRITANNIA","SOFTPAY","CENTRAL_WAREHOUSE","PROFRAKT","LOYALTY_POINTS","SUBSCRIPTION","POWER_DIRECT","POSTER"],"title":"ExtensionCodeENUM","type":"string"},"Paging":{"description":"totalCount The total number of items in the result set.\n\npageSize The number of items per page.\n\npageNumber The current page in the result set.","properties":{"pageNumber":{"type":"integer"},"pageSize":{"type":"integer"},"totalCount":{"type":"integer"}},"required":["totalCount","pageSize","pageNumber"],"title":"Paging","type":"object"}},"responses":{"StoreExtensionListResponse":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StoreExtensionResponseSchema"},"type":"array"},"paging":{"$ref":"#/components/schemas/Paging"}},"required":["items","paging"],"type":"object"}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/stores/{storeUid}/extensions":{"get":{"description":"List extensions for a store\n\nRequired permissions: EXTENSION ","operationId":"get-stores-extensions","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"}],"responses":{"200":{"$ref":"#/components/responses/StoreExtensionListResponse"}},"summary":"List extensions for a store","tags":["Extensions"]}}}}
```

## Add a new extension to a store

> Add a new extension to a store\
> \
> Required permissions: EXTENSION&#x20;

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"}},"requestBodies":{"StoreExtensionCreateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreExtensionCreateRequestSchema"}}}}},"schemas":{"StoreExtensionCreateRequestSchema":{"title":"StoreExtensionCreateRequestSchema","type":"object","properties":{"active":{"type":"boolean","description":"Activate/Deactivate the extension on the store"},"storeParameters":{"type":"array","description":"A list of store parameters. \nThe valid keys can be found in storeParameterKeys on the tenantExtension.\nIf there are no storeParameterKeys you need to supply an empty list.","items":{"$ref":"#/components/schemas/GeneralParameterRequestSchema"}},"tenantExtensionUid":{"$ref":"#/components/schemas/UID"},"storeExtensionUid":{"$ref":"#/components/schemas/UID"}},"required":["active","storeParameters","tenantExtensionUid"]},"GeneralParameterRequestSchema":{"description":"GeneralParameterRequestSchema","title":"GeneralParameterRequestSchema","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"StoreExtensionResponseSchema":{"description":"StoreExtensionResponseSchema","title":"StoreExtensionResponseSchema","type":"object","required":["storeExtensionUid","active","storeParameters","tenantExtension","statusMessages"],"properties":{"storeExtensionUid":{"$ref":"#/components/schemas/UID"},"active":{"type":"boolean"},"storeParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"tenantExtension":{"$ref":"#/components/schemas/StoreExtensionTenantExtensionResponseSchema"},"statusMessages":{"type":"array","items":{"type":"string"}}}},"GeneralParameterResponseSchema":{"title":"GeneralParameterResponseSchema","type":"object","required":["key","value","type","allowedValues","validationRegex","name","required"],"properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"$ref":"#/components/schemas/GeneralParameterTypeENUM"},"allowedValues":{"type":"array","items":{"type":"string"}},"validationRegex":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"}}},"GeneralParameterTypeENUM":{"title":"GeneralSettingTypeENUM","type":"string","enum":["STRING","PASSWORD","INTEGER","DECIMAL","BOOL","ENUM"],"description":"| Type | Description |\n|--|--|\n|BOOL | Booleans will be the string `true` or `false` |\n|DECIMAL | Descimal numbers can only have two decimals and is represented as an integer multiplied by 100. Example: 1.2 is will be 120 and 5 will be 500 |\n|ENUM| The enum value should be one of the values listed in `allowedValues` |\n|PASSWORD | Treated the same way as STRING, but indicates to clients that this field should be hidden or masked. Used for tokens and passwords |"},"StoreExtensionTenantExtensionResponseSchema":{"description":"StoreExtensionTenantExtensionResponseSchema","type":"object","title":"StoreExtensionTenantExtensionResponseSchema","properties":{"extensionCode":{"$ref":"#/components/schemas/ExtensionCodeENUM"},"active":{"type":"boolean"},"tenantExtensionUid":{"$ref":"#/components/schemas/UID"},"name":{"type":"string"}},"required":["extensionCode","active","tenantExtensionUid","name"]},"ExtensionCodeENUM":{"enum":["FLOWGIFTCARD","PAYEX_GIFTCARD","ADYEN_POS","PAYEX_POS","VIPPS","EXTERNAL_CUSTOMER_SEARCH","STORE_CREDIT","SMS","STRIPE","NETS","VERIFONE","SERVICE_WORKSHOP","TWO_INVOICE","OMNIUM","DILLER","ARTS","CAMPAIGN","B2B","PEOPLE_COUNTER_KUNDETELLING","COMPENSATION","SWISH","DINTERO","KID","EHF","MYPOWER","BRITANNIA","SOFTPAY","CENTRAL_WAREHOUSE","PROFRAKT","LOYALTY_POINTS","SUBSCRIPTION","POWER_DIRECT","POSTER"],"title":"ExtensionCodeENUM","type":"string"}},"responses":{"StoreExtensionResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreExtensionResponseSchema"}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/stores/{storeUid}/extensions":{"post":{"description":"Add a new extension to a store\n\nRequired permissions: EXTENSION ","operationId":"post-stores-extensions","requestBody":{"$ref":"#/components/requestBodies/StoreExtensionCreateRequest"},"responses":{"201":{"$ref":"#/components/responses/StoreExtensionResponse"}},"summary":"Add a new extension to a store","tags":["Extensions"]}}}}
```

## Get store extension details

> Get details for a store extension.\
> \
> Required permissions: EXTENSION&#x20;

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]},{"accessToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"}},"responses":{"StoreExtensionResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreExtensionResponseSchema"}}},"description":"Example response"}},"schemas":{"StoreExtensionResponseSchema":{"description":"StoreExtensionResponseSchema","title":"StoreExtensionResponseSchema","type":"object","required":["storeExtensionUid","active","storeParameters","tenantExtension","statusMessages"],"properties":{"storeExtensionUid":{"$ref":"#/components/schemas/UID"},"active":{"type":"boolean"},"storeParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"tenantExtension":{"$ref":"#/components/schemas/StoreExtensionTenantExtensionResponseSchema"},"statusMessages":{"type":"array","items":{"type":"string"}}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"GeneralParameterResponseSchema":{"title":"GeneralParameterResponseSchema","type":"object","required":["key","value","type","allowedValues","validationRegex","name","required"],"properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"$ref":"#/components/schemas/GeneralParameterTypeENUM"},"allowedValues":{"type":"array","items":{"type":"string"}},"validationRegex":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"}}},"GeneralParameterTypeENUM":{"title":"GeneralSettingTypeENUM","type":"string","enum":["STRING","PASSWORD","INTEGER","DECIMAL","BOOL","ENUM"],"description":"| Type | Description |\n|--|--|\n|BOOL | Booleans will be the string `true` or `false` |\n|DECIMAL | Descimal numbers can only have two decimals and is represented as an integer multiplied by 100. Example: 1.2 is will be 120 and 5 will be 500 |\n|ENUM| The enum value should be one of the values listed in `allowedValues` |\n|PASSWORD | Treated the same way as STRING, but indicates to clients that this field should be hidden or masked. Used for tokens and passwords |"},"StoreExtensionTenantExtensionResponseSchema":{"description":"StoreExtensionTenantExtensionResponseSchema","type":"object","title":"StoreExtensionTenantExtensionResponseSchema","properties":{"extensionCode":{"$ref":"#/components/schemas/ExtensionCodeENUM"},"active":{"type":"boolean"},"tenantExtensionUid":{"$ref":"#/components/schemas/UID"},"name":{"type":"string"}},"required":["extensionCode","active","tenantExtensionUid","name"]},"ExtensionCodeENUM":{"enum":["FLOWGIFTCARD","PAYEX_GIFTCARD","ADYEN_POS","PAYEX_POS","VIPPS","EXTERNAL_CUSTOMER_SEARCH","STORE_CREDIT","SMS","STRIPE","NETS","VERIFONE","SERVICE_WORKSHOP","TWO_INVOICE","OMNIUM","DILLER","ARTS","CAMPAIGN","B2B","PEOPLE_COUNTER_KUNDETELLING","COMPENSATION","SWISH","DINTERO","KID","EHF","MYPOWER","BRITANNIA","SOFTPAY","CENTRAL_WAREHOUSE","PROFRAKT","LOYALTY_POINTS","SUBSCRIPTION","POWER_DIRECT","POSTER"],"title":"ExtensionCodeENUM","type":"string"}}},"paths":{"/tenants/{tenantUid}/stores/{storeUid}/extensions/{storeExtensionUid}":{"get":{"description":"Get details for a store extension.\n\nRequired permissions: EXTENSION ","operationId":"get-stores-extensions-details","responses":{"200":{"$ref":"#/components/responses/StoreExtensionResponse"}},"summary":"Get store extension details","tags":["Extensions"]}}}}
```

## Update store extension details

> Update details for a store extension\
> \
> Required permissions: EXTENSION&#x20;

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"}},"requestBodies":{"StoreExtensionUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreExtensionUpdateRequestSchema"}}}}},"schemas":{"StoreExtensionUpdateRequestSchema":{"title":"StoreExtensionUpdateRequestSchema","type":"object","properties":{"active":{"type":"boolean","description":"Activate/Deactivate the extension on the store"},"storeParameters":{"type":"array","description":"A list of store parameters. \nThe valid keys can be found in storeParameterKeys on the tenantExtension.\nIf there are no storeParameterKeys you need to supply an empty list.","items":{"$ref":"#/components/schemas/GeneralParameterRequestSchema"}}},"required":["active","storeParameters"]},"GeneralParameterRequestSchema":{"description":"GeneralParameterRequestSchema","title":"GeneralParameterRequestSchema","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]},"StoreExtensionResponseSchema":{"description":"StoreExtensionResponseSchema","title":"StoreExtensionResponseSchema","type":"object","required":["storeExtensionUid","active","storeParameters","tenantExtension","statusMessages"],"properties":{"storeExtensionUid":{"$ref":"#/components/schemas/UID"},"active":{"type":"boolean"},"storeParameters":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"tenantExtension":{"$ref":"#/components/schemas/StoreExtensionTenantExtensionResponseSchema"},"statusMessages":{"type":"array","items":{"type":"string"}}}},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"GeneralParameterResponseSchema":{"title":"GeneralParameterResponseSchema","type":"object","required":["key","value","type","allowedValues","validationRegex","name","required"],"properties":{"key":{"type":"string"},"value":{"type":"string"},"type":{"$ref":"#/components/schemas/GeneralParameterTypeENUM"},"allowedValues":{"type":"array","items":{"type":"string"}},"validationRegex":{"type":"string"},"name":{"type":"string"},"required":{"type":"boolean"}}},"GeneralParameterTypeENUM":{"title":"GeneralSettingTypeENUM","type":"string","enum":["STRING","PASSWORD","INTEGER","DECIMAL","BOOL","ENUM"],"description":"| Type | Description |\n|--|--|\n|BOOL | Booleans will be the string `true` or `false` |\n|DECIMAL | Descimal numbers can only have two decimals and is represented as an integer multiplied by 100. Example: 1.2 is will be 120 and 5 will be 500 |\n|ENUM| The enum value should be one of the values listed in `allowedValues` |\n|PASSWORD | Treated the same way as STRING, but indicates to clients that this field should be hidden or masked. Used for tokens and passwords |"},"StoreExtensionTenantExtensionResponseSchema":{"description":"StoreExtensionTenantExtensionResponseSchema","type":"object","title":"StoreExtensionTenantExtensionResponseSchema","properties":{"extensionCode":{"$ref":"#/components/schemas/ExtensionCodeENUM"},"active":{"type":"boolean"},"tenantExtensionUid":{"$ref":"#/components/schemas/UID"},"name":{"type":"string"}},"required":["extensionCode","active","tenantExtensionUid","name"]},"ExtensionCodeENUM":{"enum":["FLOWGIFTCARD","PAYEX_GIFTCARD","ADYEN_POS","PAYEX_POS","VIPPS","EXTERNAL_CUSTOMER_SEARCH","STORE_CREDIT","SMS","STRIPE","NETS","VERIFONE","SERVICE_WORKSHOP","TWO_INVOICE","OMNIUM","DILLER","ARTS","CAMPAIGN","B2B","PEOPLE_COUNTER_KUNDETELLING","COMPENSATION","SWISH","DINTERO","KID","EHF","MYPOWER","BRITANNIA","SOFTPAY","CENTRAL_WAREHOUSE","PROFRAKT","LOYALTY_POINTS","SUBSCRIPTION","POWER_DIRECT","POSTER"],"title":"ExtensionCodeENUM","type":"string"}},"responses":{"StoreExtensionResponse":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreExtensionResponseSchema"}}},"description":"Example response"}}},"paths":{"/tenants/{tenantUid}/stores/{storeUid}/extensions/{storeExtensionUid}":{"put":{"description":"Update details for a store extension\n\nRequired permissions: EXTENSION ","operationId":"put-stores-extensions-details","requestBody":{"$ref":"#/components/requestBodies/StoreExtensionUpdateRequest"},"responses":{"200":{"$ref":"#/components/responses/StoreExtensionResponse"}},"summary":"Update store extension details","tags":["Extensions"]}}}}
```

## Delete a store extension

> Deletes a store extension.\
> \
> Required permissions: EXTENSION&#x20;

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Extensions","description":"Extensions"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"authToken":[]}],"components":{"securitySchemes":{"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"}}},"paths":{"/tenants/{tenantUid}/stores/{storeUid}/extensions/{storeExtensionUid}":{"delete":{"description":"Deletes a store extension.\n\nRequired permissions: EXTENSION ","operationId":"delete-stores-extensions","responses":{"204":{"description":"No Content"}},"summary":"Delete a store extension","tags":["Extensions"]}}}}
```
