> For the complete documentation index, see [llms.txt](https://docs.flowretail.com/api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flowretail.com/api/printer.md).

# Printer

Printer

## List printers

> List printers, optionally for a store (query parameter).\
> &#x20;  &#x20;

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Printer","description":"Printer"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"PrinterListResponse":{"description":"Example response","content":{"application/json":{"schema":{"type":"object","required":["items","paging"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PrinterResponseSchema"}},"paging":{"$ref":"#/components/schemas/Paging"}}}}}}},"schemas":{"PrinterResponseSchema":{"title":"PrinterResponseSchema","allOf":[{"type":"object","required":["printerUid","deviceUids","storeUid","name","description","type","path","settings","availablePrintActions"],"properties":{"printerUid":{"$ref":"#/components/schemas/UID"},"deviceUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"storeUid":{"$ref":"#/components/schemas/OptionalUID"},"name":{"type":"string"},"description":{"type":"string"},"type":{"$ref":"#/components/schemas/PrinterTypeENUM"},"path":{"type":"string"},"settings":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"availablePrintActions":{"type":"array","description":"Which print job types this printer can handle. See [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM).","items":{"$ref":"#/components/schemas/AvailablePrintActionENUM"}}}},{"$ref":"#/components/schemas/CreatedModifiedSchema"}]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"OptionalUID":{"title":"OptionalUID","type":"string","pattern":"^[A-Za-z0-9-_]*"},"PrinterTypeENUM":{"title":"PrinterTypeENUM","type":"string","enum":["LABEL","RECEIPT","GENERAL"]},"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 |"},"AvailablePrintActionENUM":{"description":"Supported print **capabilities** for a printer. Values are intentionally **not** the same strings as\n[`PrinterTypeENUM`](#/components/schemas/PrinterTypeENUM) (hardware class: LABEL / RECEIPT) or\n[`OrderPrintTypeENUM`](#/components/schemas/OrderPrintTypeENUM) (order print request `type`), so clients\ndo not confuse `printer.type` with entries in `availablePrintActions`.\n\n| ENUM | Meaning | Maps to |\n| ---- | ------- | ------- |\n| RECEIPT | Sales receipt print | `OrderPrintTypeENUM` RECEIPT |\n| EXCHANGENOTE | Exchange note print | `OrderPrintTypeENUM` EXCHANGENOTE |\n| GIFTCARD_BARCODE | Gift card barcode print | `OrderPrintTypeENUM` GIFTCARD |\n| PICKUP_LABEL | Pickup label / note print | `OrderPrintTypeENUM` PICKUP |\n| PRODUCT | Product label print | Print-products API |\n| CUSTOMER_MEMBERSHIP_CARD | Customer membership card print | — |\n","minLength":1,"title":"AvailablePrintActionENUM","type":"string","enum":["RECEIPT","EXCHANGENOTE","GIFTCARD_BARCODE","PICKUP_LABEL","PRODUCT","CUSTOMER_MEMBERSHIP_CARD"]},"CreatedModifiedSchema":{"title":"CreatedModifiedSchema","type":"object","required":["createdBy","createdAt","lastModifiedBy","lastModifiedAt"],"properties":{"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"lastModifiedBy":{"type":"string"},"lastModifiedAt":{"type":"string","format":"date-time"}}},"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"},"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"}},"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"},"printerStoreUidQuery":{"name":"storeUid","in":"query","required":false,"schema":{"type":"string"},"description":"Reference to a store"}}},"paths":{"/tenants/{tenantUid}/printers":{"get":{"summary":"List printers","responses":{"200":{"$ref":"#/components/responses/PrinterListResponse"}},"operationId":"get-printers","description":"List printers, optionally for a store (query parameter).\n    ","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"},{"$ref":"#/components/parameters/printerStoreUidQuery"}],"tags":["Printer"]}}}}
```

## Create printer

> Supported protocols in the printer path are \`lpd\`,\`jd\` and \`flowbox\`.  \
> E.g. \`lpd://192.168.1.4/queuename\` or \`jd://192.168.11.2:9100/\` or \`flowbox://flowboxUid/flowboxPeripheralUid\`.\
> \
> Required permissions: PRINTER

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Printer","description":"Printer"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"PrinterResponse":{"description":"Example response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrinterResponseSchema"}}},"headers":{}}},"schemas":{"PrinterResponseSchema":{"title":"PrinterResponseSchema","allOf":[{"type":"object","required":["printerUid","deviceUids","storeUid","name","description","type","path","settings","availablePrintActions"],"properties":{"printerUid":{"$ref":"#/components/schemas/UID"},"deviceUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"storeUid":{"$ref":"#/components/schemas/OptionalUID"},"name":{"type":"string"},"description":{"type":"string"},"type":{"$ref":"#/components/schemas/PrinterTypeENUM"},"path":{"type":"string"},"settings":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"availablePrintActions":{"type":"array","description":"Which print job types this printer can handle. See [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM).","items":{"$ref":"#/components/schemas/AvailablePrintActionENUM"}}}},{"$ref":"#/components/schemas/CreatedModifiedSchema"}]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"OptionalUID":{"title":"OptionalUID","type":"string","pattern":"^[A-Za-z0-9-_]*"},"PrinterTypeENUM":{"title":"PrinterTypeENUM","type":"string","enum":["LABEL","RECEIPT","GENERAL"]},"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 |"},"AvailablePrintActionENUM":{"description":"Supported print **capabilities** for a printer. Values are intentionally **not** the same strings as\n[`PrinterTypeENUM`](#/components/schemas/PrinterTypeENUM) (hardware class: LABEL / RECEIPT) or\n[`OrderPrintTypeENUM`](#/components/schemas/OrderPrintTypeENUM) (order print request `type`), so clients\ndo not confuse `printer.type` with entries in `availablePrintActions`.\n\n| ENUM | Meaning | Maps to |\n| ---- | ------- | ------- |\n| RECEIPT | Sales receipt print | `OrderPrintTypeENUM` RECEIPT |\n| EXCHANGENOTE | Exchange note print | `OrderPrintTypeENUM` EXCHANGENOTE |\n| GIFTCARD_BARCODE | Gift card barcode print | `OrderPrintTypeENUM` GIFTCARD |\n| PICKUP_LABEL | Pickup label / note print | `OrderPrintTypeENUM` PICKUP |\n| PRODUCT | Product label print | Print-products API |\n| CUSTOMER_MEMBERSHIP_CARD | Customer membership card print | — |\n","minLength":1,"title":"AvailablePrintActionENUM","type":"string","enum":["RECEIPT","EXCHANGENOTE","GIFTCARD_BARCODE","PICKUP_LABEL","PRODUCT","CUSTOMER_MEMBERSHIP_CARD"]},"CreatedModifiedSchema":{"title":"CreatedModifiedSchema","type":"object","required":["createdBy","createdAt","lastModifiedBy","lastModifiedAt"],"properties":{"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"lastModifiedBy":{"type":"string"},"lastModifiedAt":{"type":"string","format":"date-time"}}},"PrinterUpdateRequestSchema":{"title":"PrinterUpdateRequestSchema","type":"object","properties":{"storeUid":{"$ref":"#/components/schemas/OptionalNullableUID"},"type":{"$ref":"#/components/schemas/PrinterTypeENUM"},"path":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"settings":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterRequestSchema"}},"availablePrintActions":{"type":"array","description":"Optional on update. Which print job types this printer can handle; effective values are reflected on printer responses (see [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM)). When sent, an empty array means no categorized print types are configured for this printer (if the backend allows that).","items":{"$ref":"#/components/schemas/AvailablePrintActionENUM"}}}},"OptionalNullableUID":{"title":"OptionalUID","type":"string","pattern":"^[A-Za-z0-9-_]*","nullable":true},"GeneralParameterRequestSchema":{"description":"GeneralParameterRequestSchema","title":"GeneralParameterRequestSchema","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}},"requestBodies":{"PrinterCreateRequest":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","required":["type","path"],"properties":{"printerUid":{"$ref":"#/components/schemas/OptionalUID"},"type":{"$ref":"#/components/schemas/PrinterTypeENUM"},"path":{"type":"string"}}},{"$ref":"#/components/schemas/PrinterUpdateRequestSchema"}]}}}}}},"paths":{"/tenants/{tenantUid}/printers":{"post":{"summary":"Create printer","responses":{"201":{"$ref":"#/components/responses/PrinterResponse"}},"operationId":"post-printers","description":"Supported protocols in the printer path are `lpd`,`jd` and `flowbox`.  \nE.g. `lpd://192.168.1.4/queuename` or `jd://192.168.11.2:9100/` or `flowbox://flowboxUid/flowboxPeripheralUid`.\n\nRequired permissions: PRINTER","tags":["Printer"],"requestBody":{"$ref":"#/components/requestBodies/PrinterCreateRequest"}}}}}
```

## Search printers

> Search printers

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Printer","description":"Printer"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"PrinterListResponse":{"description":"Example response","content":{"application/json":{"schema":{"type":"object","required":["items","paging"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/PrinterResponseSchema"}},"paging":{"$ref":"#/components/schemas/Paging"}}}}}}},"schemas":{"PrinterResponseSchema":{"title":"PrinterResponseSchema","allOf":[{"type":"object","required":["printerUid","deviceUids","storeUid","name","description","type","path","settings","availablePrintActions"],"properties":{"printerUid":{"$ref":"#/components/schemas/UID"},"deviceUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"storeUid":{"$ref":"#/components/schemas/OptionalUID"},"name":{"type":"string"},"description":{"type":"string"},"type":{"$ref":"#/components/schemas/PrinterTypeENUM"},"path":{"type":"string"},"settings":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"availablePrintActions":{"type":"array","description":"Which print job types this printer can handle. See [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM).","items":{"$ref":"#/components/schemas/AvailablePrintActionENUM"}}}},{"$ref":"#/components/schemas/CreatedModifiedSchema"}]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"OptionalUID":{"title":"OptionalUID","type":"string","pattern":"^[A-Za-z0-9-_]*"},"PrinterTypeENUM":{"title":"PrinterTypeENUM","type":"string","enum":["LABEL","RECEIPT","GENERAL"]},"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 |"},"AvailablePrintActionENUM":{"description":"Supported print **capabilities** for a printer. Values are intentionally **not** the same strings as\n[`PrinterTypeENUM`](#/components/schemas/PrinterTypeENUM) (hardware class: LABEL / RECEIPT) or\n[`OrderPrintTypeENUM`](#/components/schemas/OrderPrintTypeENUM) (order print request `type`), so clients\ndo not confuse `printer.type` with entries in `availablePrintActions`.\n\n| ENUM | Meaning | Maps to |\n| ---- | ------- | ------- |\n| RECEIPT | Sales receipt print | `OrderPrintTypeENUM` RECEIPT |\n| EXCHANGENOTE | Exchange note print | `OrderPrintTypeENUM` EXCHANGENOTE |\n| GIFTCARD_BARCODE | Gift card barcode print | `OrderPrintTypeENUM` GIFTCARD |\n| PICKUP_LABEL | Pickup label / note print | `OrderPrintTypeENUM` PICKUP |\n| PRODUCT | Product label print | Print-products API |\n| CUSTOMER_MEMBERSHIP_CARD | Customer membership card print | — |\n","minLength":1,"title":"AvailablePrintActionENUM","type":"string","enum":["RECEIPT","EXCHANGENOTE","GIFTCARD_BARCODE","PICKUP_LABEL","PRODUCT","CUSTOMER_MEMBERSHIP_CARD"]},"CreatedModifiedSchema":{"title":"CreatedModifiedSchema","type":"object","required":["createdBy","createdAt","lastModifiedBy","lastModifiedAt"],"properties":{"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"lastModifiedBy":{"type":"string"},"lastModifiedAt":{"type":"string","format":"date-time"}}},"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"},"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"},"PrinterRequestSearchSchema":{"title":"PrinterRequestSearchSchema","type":"object","properties":{"storeUid":{"$ref":"#/components/schemas/OptionalUID"},"printerType":{"$ref":"#/components/schemas/PrinterTypeENUM"},"query":{"type":"string","description":"Partial or full printer name search"}}}},"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"}},"requestBodies":{"PrinterSearchRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrinterRequestSearchSchema"}}}}}},"paths":{"/tenants/{tenantUid}/printers/search":{"post":{"summary":"Search printers","responses":{"200":{"$ref":"#/components/responses/PrinterListResponse"}},"operationId":"post-search-printers","description":"Search printers","parameters":[{"$ref":"#/components/parameters/pageNumberQuery"},{"$ref":"#/components/parameters/pageSizeQuery"},{"$ref":"#/components/parameters/sortByQuery"},{"$ref":"#/components/parameters/sortDirectionQuery"}],"tags":["Printer"],"requestBody":{"$ref":"#/components/requestBodies/PrinterSearchRequest"}}}}}
```

## Get printer

> Get printer details

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Printer","description":"Printer"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"PrinterResponse":{"description":"Example response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrinterResponseSchema"}}},"headers":{}}},"schemas":{"PrinterResponseSchema":{"title":"PrinterResponseSchema","allOf":[{"type":"object","required":["printerUid","deviceUids","storeUid","name","description","type","path","settings","availablePrintActions"],"properties":{"printerUid":{"$ref":"#/components/schemas/UID"},"deviceUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"storeUid":{"$ref":"#/components/schemas/OptionalUID"},"name":{"type":"string"},"description":{"type":"string"},"type":{"$ref":"#/components/schemas/PrinterTypeENUM"},"path":{"type":"string"},"settings":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"availablePrintActions":{"type":"array","description":"Which print job types this printer can handle. See [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM).","items":{"$ref":"#/components/schemas/AvailablePrintActionENUM"}}}},{"$ref":"#/components/schemas/CreatedModifiedSchema"}]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"OptionalUID":{"title":"OptionalUID","type":"string","pattern":"^[A-Za-z0-9-_]*"},"PrinterTypeENUM":{"title":"PrinterTypeENUM","type":"string","enum":["LABEL","RECEIPT","GENERAL"]},"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 |"},"AvailablePrintActionENUM":{"description":"Supported print **capabilities** for a printer. Values are intentionally **not** the same strings as\n[`PrinterTypeENUM`](#/components/schemas/PrinterTypeENUM) (hardware class: LABEL / RECEIPT) or\n[`OrderPrintTypeENUM`](#/components/schemas/OrderPrintTypeENUM) (order print request `type`), so clients\ndo not confuse `printer.type` with entries in `availablePrintActions`.\n\n| ENUM | Meaning | Maps to |\n| ---- | ------- | ------- |\n| RECEIPT | Sales receipt print | `OrderPrintTypeENUM` RECEIPT |\n| EXCHANGENOTE | Exchange note print | `OrderPrintTypeENUM` EXCHANGENOTE |\n| GIFTCARD_BARCODE | Gift card barcode print | `OrderPrintTypeENUM` GIFTCARD |\n| PICKUP_LABEL | Pickup label / note print | `OrderPrintTypeENUM` PICKUP |\n| PRODUCT | Product label print | Print-products API |\n| CUSTOMER_MEMBERSHIP_CARD | Customer membership card print | — |\n","minLength":1,"title":"AvailablePrintActionENUM","type":"string","enum":["RECEIPT","EXCHANGENOTE","GIFTCARD_BARCODE","PICKUP_LABEL","PRODUCT","CUSTOMER_MEMBERSHIP_CARD"]},"CreatedModifiedSchema":{"title":"CreatedModifiedSchema","type":"object","required":["createdBy","createdAt","lastModifiedBy","lastModifiedAt"],"properties":{"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"lastModifiedBy":{"type":"string"},"lastModifiedAt":{"type":"string","format":"date-time"}}}}},"paths":{"/tenants/{tenantUid}/printers/{printerUid}":{"get":{"summary":"Get printer","tags":["Printer"],"responses":{"200":{"$ref":"#/components/responses/PrinterResponse"}},"operationId":"get-printers-printerUid","description":"Get printer details"}}}}
```

## Update printer

> The printer path must be either a \`flowboxPeripheralUid\` or a print path.  \
> Supported protocols: \`lpd\` and  \`jd\`.  \
> E.g. \`lpd://192.168.1.4/queuename\` or \`jd://192.168.11.2:9100/\` or \`flowbox://flowboxPeripheralUid\`.\
> \
> Required permissions: PRINTER

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Printer","description":"Printer"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}},"responses":{"PrinterResponse":{"description":"Example response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrinterResponseSchema"}}},"headers":{}}},"schemas":{"PrinterResponseSchema":{"title":"PrinterResponseSchema","allOf":[{"type":"object","required":["printerUid","deviceUids","storeUid","name","description","type","path","settings","availablePrintActions"],"properties":{"printerUid":{"$ref":"#/components/schemas/UID"},"deviceUids":{"type":"array","items":{"$ref":"#/components/schemas/UID"}},"storeUid":{"$ref":"#/components/schemas/OptionalUID"},"name":{"type":"string"},"description":{"type":"string"},"type":{"$ref":"#/components/schemas/PrinterTypeENUM"},"path":{"type":"string"},"settings":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterResponseSchema"}},"availablePrintActions":{"type":"array","description":"Which print job types this printer can handle. See [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM).","items":{"$ref":"#/components/schemas/AvailablePrintActionENUM"}}}},{"$ref":"#/components/schemas/CreatedModifiedSchema"}]},"UID":{"title":"UID","type":"string","pattern":"^[A-Za-z0-9-_]+"},"OptionalUID":{"title":"OptionalUID","type":"string","pattern":"^[A-Za-z0-9-_]*"},"PrinterTypeENUM":{"title":"PrinterTypeENUM","type":"string","enum":["LABEL","RECEIPT","GENERAL"]},"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 |"},"AvailablePrintActionENUM":{"description":"Supported print **capabilities** for a printer. Values are intentionally **not** the same strings as\n[`PrinterTypeENUM`](#/components/schemas/PrinterTypeENUM) (hardware class: LABEL / RECEIPT) or\n[`OrderPrintTypeENUM`](#/components/schemas/OrderPrintTypeENUM) (order print request `type`), so clients\ndo not confuse `printer.type` with entries in `availablePrintActions`.\n\n| ENUM | Meaning | Maps to |\n| ---- | ------- | ------- |\n| RECEIPT | Sales receipt print | `OrderPrintTypeENUM` RECEIPT |\n| EXCHANGENOTE | Exchange note print | `OrderPrintTypeENUM` EXCHANGENOTE |\n| GIFTCARD_BARCODE | Gift card barcode print | `OrderPrintTypeENUM` GIFTCARD |\n| PICKUP_LABEL | Pickup label / note print | `OrderPrintTypeENUM` PICKUP |\n| PRODUCT | Product label print | Print-products API |\n| CUSTOMER_MEMBERSHIP_CARD | Customer membership card print | — |\n","minLength":1,"title":"AvailablePrintActionENUM","type":"string","enum":["RECEIPT","EXCHANGENOTE","GIFTCARD_BARCODE","PICKUP_LABEL","PRODUCT","CUSTOMER_MEMBERSHIP_CARD"]},"CreatedModifiedSchema":{"title":"CreatedModifiedSchema","type":"object","required":["createdBy","createdAt","lastModifiedBy","lastModifiedAt"],"properties":{"createdBy":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"lastModifiedBy":{"type":"string"},"lastModifiedAt":{"type":"string","format":"date-time"}}},"PrinterUpdateRequestSchema":{"title":"PrinterUpdateRequestSchema","type":"object","properties":{"storeUid":{"$ref":"#/components/schemas/OptionalNullableUID"},"type":{"$ref":"#/components/schemas/PrinterTypeENUM"},"path":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"settings":{"type":"array","items":{"$ref":"#/components/schemas/GeneralParameterRequestSchema"}},"availablePrintActions":{"type":"array","description":"Optional on update. Which print job types this printer can handle; effective values are reflected on printer responses (see [`AvailablePrintActionENUM`](#/components/schemas/AvailablePrintActionENUM)). When sent, an empty array means no categorized print types are configured for this printer (if the backend allows that).","items":{"$ref":"#/components/schemas/AvailablePrintActionENUM"}}}},"OptionalNullableUID":{"title":"OptionalUID","type":"string","pattern":"^[A-Za-z0-9-_]*","nullable":true},"GeneralParameterRequestSchema":{"description":"GeneralParameterRequestSchema","title":"GeneralParameterRequestSchema","type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}},"requestBodies":{"PrinterUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrinterUpdateRequestSchema"}}}}}},"paths":{"/tenants/{tenantUid}/printers/{printerUid}":{"put":{"summary":"Update printer","tags":["Printer"],"responses":{"200":{"$ref":"#/components/responses/PrinterResponse"}},"operationId":"put-printers","description":"The printer path must be either a `flowboxPeripheralUid` or a print path.  \nSupported protocols: `lpd` and  `jd`.  \nE.g. `lpd://192.168.1.4/queuename` or `jd://192.168.11.2:9100/` or `flowbox://flowboxPeripheralUid`.\n\nRequired permissions: PRINTER","requestBody":{"$ref":"#/components/requestBodies/PrinterUpdateRequest"}}}}}
```

## Delete printer

> Delete printer\
> \
> Required permissions: PRINTER

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Printer","description":"Printer"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}}},"paths":{"/tenants/{tenantUid}/printers/{printerUid}":{"delete":{"summary":"Delete printer","tags":["Printer"],"responses":{"204":{"description":"No Content"}},"operationId":"delete-printers","description":"Delete printer\n\nRequired permissions: PRINTER"}}}}
```

Test printer\
\
Required permissions: PRINTER
-----------------------------

> Test printer<br>

```json
{"openapi":"3.0.2","info":{"title":"Flow Retail API version 2","version":"2.0.0"},"tags":[{"name":"Printer","description":"Printer"}],"servers":[{"description":"Flow Retail Production","url":"https://api.flowretail.com/v2"},{"description":"Flow Retail Stage","url":"https://api.stage.flowretail.com/v2"}],"security":[{"accessToken":[]},{"authToken":[]},{"integrationToken":[]}],"components":{"securitySchemes":{"accessToken":{"description":"Access token recevied after user login with a deviceToken","scheme":"bearer","type":"http"},"authToken":{"description":"Token received from the auth service","scheme":"bearer","type":"http"},"integrationToken":{"scheme":"bearer","type":"http"}}},"paths":{"/tenants/{tenantUid}/printers/{printerUid}/test":{"post":{"summary":"Test printer\n\nRequired permissions: PRINTER","tags":["Printer"],"responses":{"201":{"description":"Printer test page Created"},"400":{"description":"Test printer 'Bad Request'"}},"operationId":"post-tenants-tenantUid-printers-printerUid-test","description":"Test printer\n"}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flowretail.com/api/printer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
