Heads up, our devs are blazing ahead—docs are catching up, so some features might not be fully documented yet.

Device

Device

Get device information

get
/device

Fetch device info for current device given in token

Authorizations
Responses
200

Example response

application/json
get
/device
GET /v2/device HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Example response

{
  "availablePaymentMethods": [
    {
      "allowRefund": true,
      "allowSale": true,
      "allowCashback": true,
      "allowAmount": true,
      "name": "text",
      "parameters": [
        {
          "name": "text",
          "description": "text",
          "required": true,
          "key": "text",
          "keyType": "TEXT",
          "regex": "text"
        }
      ],
      "paymentCode": "CASH",
      "storePaymentMethodUid": "text",
      "requirements": {
        "requireCustomer": true,
        "requireCustomerMobile": true,
        "requireCustomerEmail": true,
        "requireCustomerContact": true,
        "requireExclusiveUse": true
      },
      "settlementCode": "text",
      "visibility": "FEATURED",
      "position": 1,
      "description": "text"
    }
  ],
  "zeroAmountPaymentMethod": {
    "allowRefund": true,
    "allowSale": true,
    "allowCashback": true,
    "allowAmount": true,
    "name": "text",
    "parameters": [
      {
        "name": "text",
        "description": "text",
        "required": true,
        "key": "text",
        "keyType": "TEXT",
        "regex": "text"
      }
    ],
    "paymentCode": "CASH",
    "storePaymentMethodUid": "text",
    "requirements": {
      "requireCustomer": true,
      "requireCustomerMobile": true,
      "requireCustomerEmail": true,
      "requireCustomerContact": true,
      "requireExclusiveUse": true
    },
    "settlementCode": "text",
    "visibility": "FEATURED",
    "position": 1,
    "description": "text"
  },
  "availableReasons": {
    "discount": [
      {
        "code": "text",
        "description": "text"
      }
    ],
    "return": [
      {
        "code": "text",
        "description": "text"
      }
    ]
  },
  "deviceIdentifier": "text",
  "deviceUid": "text",
  "storeInfo": {
    "address": "text",
    "city": "text",
    "countryCode": "text",
    "createdAt": "2025-10-29T02:58:05.758Z",
    "defaultWarehouseUid": "text",
    "defaultReturnWarehouseUid": "text",
    "defaultDeliveryWarehouseUid": "text",
    "email": "text",
    "externalId": "text",
    "isActive": true,
    "lastModifiedAt": "2025-10-29T02:58:05.758Z",
    "latitude": 1,
    "longitude": 1,
    "name": "text",
    "postalCode": "text",
    "phone": "text",
    "purchaseNumberSeriesUid": "text",
    "internalPurchaseNumberSeriesUid": "text",
    "rmaOrderNumberSeriesUid": "text",
    "customerLedgerNumberSeriesUid": "text",
    "quicksaleCategoryUid": "text",
    "receiptMessage": "text",
    "emailReceiptMessage": "text",
    "exchangenoteMessage": "text",
    "exchangenoteValidDays": 1,
    "salesPriceUid": "text",
    "settings": [
      {
        "key": "VIPPS_MSN",
        "value": "text"
      }
    ],
    "storeUid": "text",
    "vatNumber": "text",
    "voucherNumberSeriesUid": "text",
    "serviceNumberSeriesUid": "text",
    "hasWorkShop": false,
    "organizationUid": "text",
    "availableExtensions": [
      {
        "extensionCode": "FLOWGIFTCARD",
        "name": "text"
      }
    ],
    "openingHours": {
      "monday": "text",
      "tuesday": "text",
      "wednesday": "text",
      "thursday": "text",
      "friday": "text",
      "saturday": "text",
      "sunday": "text",
      "note": "text"
    },
    "bankInfo": {
      "accountNumber": "text",
      "bankName": "text",
      "iban": "text",
      "swift": "text"
    },
    "websiteUrl": "text"
  },
  "tenantInfo": {
    "countryCode": "text",
    "createdAt": "2025-10-29T02:58:05.758Z",
    "lastModifiedAt": "2025-10-29T02:58:05.758Z",
    "name": "text",
    "pricelistUid": "text",
    "tenantUid": "text",
    "vatNumber": "text",
    "settings": {
      "allowExternalCashDrawer": false,
      "autoLogout": 1,
      "autoPrintReceipt": true,
      "numericSkuCounter": 1,
      "printCardPaymentDetails": false,
      "sendInvoicesExternally": true
    },
    "appSettings": {
      "showOutOfStockWarning": true
    },
    "extensions": [
      {
        "extensionCode": "FLOWGIFTCARD",
        "name": "text",
        "active": true
      }
    ],
    "assets": {
      "logo": {
        "url": "text",
        "assetUid": "text"
      },
      "splash": {
        "url": "text",
        "assetUid": "text"
      }
    },
    "timezone": "text",
    "languageCode": "text",
    "currency": {
      "code": "text",
      "name": "text",
      "symbol": "text",
      "symbolPosition": "text",
      "decimalSeparator": "text",
      "thousandSeparator": "text",
      "cashRounding": 1
    }
  },
  "tillInfo": {
    "barcodePrinter": "text",
    "cashDrawer": "text",
    "createdAt": "2025-10-29T02:58:05.758Z",
    "deviceIdentifier": "text",
    "lastModifiedAt": "2025-10-29T02:58:05.758Z",
    "lastOrderUid": "text",
    "lastOrderNumber": "text",
    "name": "text",
    "paymentTerminal": "NONE",
    "receiptPrinter": "text",
    "regularPrinter": "text",
    "settings": [
      {
        "key": "STRIPE_TERMINAL_ID",
        "value": "text"
      }
    ],
    "tillUid": "text",
    "tillNumber": 1,
    "appSettings": {
      "saleStopAtDelivery": true,
      "autoLogout": 1,
      "touchMode": "UNAVAILABLE"
    }
  },
  "currencyDenominations": [
    {
      "currencyCode": "text",
      "denomination": 1,
      "material": "COIN"
    }
  ],
  "name": "text",
  "settings": [
    {
      "key": "text",
      "value": "text",
      "type": "STRING",
      "allowedValues": [
        "text"
      ],
      "validationRegex": "text",
      "name": "text",
      "required": true
    }
  ],
  "printers": [
    {
      "printerUid": "text",
      "name": "text",
      "type": "LABEL"
    }
  ]
}
Deprecated

Register a new device (deprecated)

post
/device

Register a new device for authorization.

You should already have a clientId supplied by Flow, and you will retreive a deviceIdentifier and deviceToken in the response.

Body
clientIdstringRequired
namestring | nullableOptional
systemInformationstring | nullableOptional

Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers

Responses
200

Example response

application/json
post
/device
POST /v2/device HTTP/1.1
Host: api.flowretail.com
Content-Type: application/json
Accept: */*
Content-Length: 60

{
  "clientId": "text",
  "name": "text",
  "systemInformation": "text"
}
200

Example response

{
  "deviceCode": "text",
  "deviceIdentifier": "text",
  "expires_in": 1,
  "interval": 1,
  "verificationUri": "text"
}

Update systemInformation for a device

put
/device

Update system information for a device.

Authorizations
Body
systemInformationstringRequired

Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers

Responses
204

No Content

No content

put
/device
PUT /v2/device HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 28

{
  "systemInformation": "text"
}
204

No Content

No content

Deprecated

Accept Device (deprecated)

post
/device/authorize

Device Authorization Flow - Authorize a device and attach it to a specific store

Authorizations
Body
deviceCodestringRequired
storeUidstringRequiredPattern: ^[A-Za-z0-9-_]+
tenantUidstringRequiredPattern: ^[A-Za-z0-9-_]+
tillUidstringOptionalPattern: ^[A-Za-z0-9-_]+
namestringOptional
Responses
200

OK

No content

post
/device/authorize
POST /v2/device/authorize HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 89

{
  "deviceCode": "text",
  "storeUid": "text",
  "tenantUid": "text",
  "tillUid": "text",
  "name": "text"
}

No content

Link a physical device

post
/device/{deviceCode}/link

Link a physical device to a device registered in Flow.

Path parameters
deviceCodestringRequired

Device code from backoffice

Body
appIdstringRequired

This is a predefined app id that Flow will provide

userCodestringRequired

A user code from the tenant

passwordstringRequired

The password for the user

systemInformationstringOptional

Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers

Responses
200

Example response

application/json
post
/device/{deviceCode}/link
POST /v2/device/{deviceCode}/link HTTP/1.1
Host: api.flowretail.com
Content-Type: application/json
Accept: */*
Content-Length: 79

{
  "appId": "text",
  "userCode": "text",
  "password": "text",
  "systemInformation": "text"
}
{
  "expires": 1,
  "token": "text",
  "refreshToken": "text"
}

Request a new device token

post
/device/token

Device Authorization Flow - Request a new token

Body
one ofOptional
or
Responses
200

Link successfull.

application/json
post
/device/token
POST /v2/device/token HTTP/1.1
Host: api.flowretail.com
Content-Type: application/json
Accept: */*
Content-Length: 38

{
  "appId": "text",
  "refreshToken": "text"
}
{
  "expires": 1,
  "token": "text",
  "token_type": "text"
}

List device users

get
/device/users

List all users that can login to the current device.

Authorizations
Query parameters
sortBystringOptional

Defines which field the resource list is sorted by.

sortDirectionstring · enumOptional
ENUM Description
ASC Sort in ascending order
DESC Sort in descending order
Possible values:
pageSizeintegerOptional

The number of items per page in a result set.

pageNumberintegerOptional

Reference to a specific page in a result set.

Responses
200

Example response

application/json
get
/device/users
GET /v2/device/users HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "items": [
    {
      "accountType": "FULL",
      "displayName": "text",
      "firstname": "text",
      "lastAccessed": "2025-10-29T02:58:05.758Z",
      "lastname": "text",
      "tenantUserUid": "text",
      "userCode": "text",
      "languageCode": "text"
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalCount": 1
  }
}

List registered devices

get
/tenants/{tenantUid}/devices

Get list of registered devices.

Required permission: TENANT.ADMIN

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Query parameters
deviceStoreUidstringOptional

Reference to a store uid

Pattern: ^[A-Za-z0-9-_]+
pageNumberintegerOptional

Reference to a specific page in a result set.

pageSizeintegerOptional

The number of items per page in a result set.

sortBystringOptional

Defines which field the resource list is sorted by.

sortDirectionstring · enumOptional
ENUM Description
ASC Sort in ascending order
DESC Sort in descending order
Possible values:
Responses
200

Example response

application/json
get
/tenants/{tenantUid}/devices
GET /v2/tenants/{tenantUid}/devices HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Example response

{
  "items": [
    {
      "createdAt": "2025-10-29T02:58:05.758Z",
      "createdBy": "text",
      "deviceUid": "text",
      "identifier": "text",
      "lastModifiedAt": "2025-10-29T02:58:05.758Z",
      "lastModifiedBy": "text",
      "lastActivityAt": "2025-10-29T02:58:05.758Z",
      "lastTenantUserUid": "text",
      "name": "text",
      "systemInformation": "text",
      "status": "ACTIVE",
      "store": {
        "name": "text",
        "storeUid": "text",
        "organizationUid": "text"
      },
      "deviceLinkCode": "text",
      "lastOrderUid": "text",
      "till": {
        "tillUid": "text",
        "name": "text",
        "tillNumber": 1
      },
      "appCode": "CLIENT",
      "settings": [
        {
          "key": "text",
          "value": "text",
          "type": "STRING",
          "allowedValues": [
            "text"
          ],
          "validationRegex": "text",
          "name": "text",
          "required": true
        }
      ],
      "printers": [
        {
          "printerUid": "text",
          "name": "text",
          "type": "LABEL"
        }
      ]
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalCount": 1
  }
}

Create a new device

post
/tenants/{tenantUid}/devices

Create a new device for a tenant

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Body
deviceUidstringOptionalPattern: ^[A-Za-z0-9-_]*
namestringRequired
appCodestring · enumRequired
Enum Description
CLIENT Flow Retail Client
ASSISTANT Flow Retail Assistant
UNKNOWN No specific app
Possible values:
storeUidstringOptionalPattern: ^[A-Za-z0-9-_]*
tillUidstringOptionalPattern: ^[A-Za-z0-9-_]*
printerUidsstring[]Optional
Responses
201

Example response

application/json
post
/tenants/{tenantUid}/devices
POST /v2/tenants/{tenantUid}/devices HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 154

{
  "deviceUid": "text",
  "name": "text",
  "appCode": "CLIENT",
  "storeUid": "text",
  "tillUid": "text",
  "settings": [
    {
      "key": "text",
      "value": "text"
    }
  ],
  "printerUids": [
    "text"
  ]
}
{
  "createdAt": "2025-10-29T02:58:05.758Z",
  "createdBy": "text",
  "deviceUid": "text",
  "identifier": "text",
  "lastModifiedAt": "2025-10-29T02:58:05.758Z",
  "lastModifiedBy": "text",
  "lastActivityAt": "2025-10-29T02:58:05.758Z",
  "lastTenantUserUid": "text",
  "name": "text",
  "systemInformation": "text",
  "status": "ACTIVE",
  "store": {
    "name": "text",
    "storeUid": "text",
    "organizationUid": "text"
  },
  "deviceLinkCode": "text",
  "lastOrderUid": "text",
  "till": {
    "tillUid": "text",
    "name": "text",
    "tillNumber": 1
  },
  "appCode": "CLIENT",
  "settings": [
    {
      "key": "text",
      "value": "text",
      "type": "STRING",
      "allowedValues": [
        "text"
      ],
      "validationRegex": "text",
      "name": "text",
      "required": true
    }
  ],
  "printers": [
    {
      "printerUid": "text",
      "name": "text",
      "type": "LABEL"
    }
  ]
}

Search registered devices

post
/tenants/{tenantUid}/devices/search

Search Registered devices

Required permission: TENANT.ADMIN

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
Query parameters
pageNumberintegerOptional

Reference to a specific page in a result set.

pageSizeintegerOptional

The number of items per page in a result set.

sortBystringOptional

Defines which field the resource list is sorted by.

sortDirectionstring · enumOptional
ENUM Description
ASC Sort in ascending order
DESC Sort in descending order
Possible values:
Body
namestringOptional
deviceIdentifierstringOptionalPattern: ^[A-Za-z0-9-_]*
querystringOptional
appCodestring · enumOptional
Enum Description
CLIENT Flow Retail Client
ASSISTANT Flow Retail Assistant
UNKNOWN No specific app
Possible values:
Responses
200

Example response

application/json
post
/tenants/{tenantUid}/devices/search
POST /v2/tenants/{tenantUid}/devices/search HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 97

{
  "name": "text",
  "deviceIdentifier": "text",
  "query": "text",
  "appCode": "CLIENT",
  "statuses": [
    "ACTIVE"
  ]
}
200

Example response

{
  "items": [
    {
      "createdAt": "2025-10-29T02:58:05.758Z",
      "createdBy": "text",
      "deviceUid": "text",
      "identifier": "text",
      "lastModifiedAt": "2025-10-29T02:58:05.758Z",
      "lastModifiedBy": "text",
      "lastActivityAt": "2025-10-29T02:58:05.758Z",
      "lastTenantUserUid": "text",
      "name": "text",
      "systemInformation": "text",
      "status": "ACTIVE",
      "store": {
        "name": "text",
        "storeUid": "text",
        "organizationUid": "text"
      },
      "deviceLinkCode": "text",
      "lastOrderUid": "text",
      "till": {
        "tillUid": "text",
        "name": "text",
        "tillNumber": 1
      },
      "appCode": "CLIENT",
      "settings": [
        {
          "key": "text",
          "value": "text",
          "type": "STRING",
          "allowedValues": [
            "text"
          ],
          "validationRegex": "text",
          "name": "text",
          "required": true
        }
      ],
      "printers": [
        {
          "printerUid": "text",
          "name": "text",
          "type": "LABEL"
        }
      ]
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalCount": 1
  }
}

Get device details

get
/tenants/{tenantUid}/devices/{deviceUid}

Get details for a device.

Required permission: TENANT.ADMIN

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
deviceUidstringRequired

Reference to a device

Pattern: ^[A-Za-z0-9-_]+
Responses
200

Example response

application/json
get
/tenants/{tenantUid}/devices/{deviceUid}
GET /v2/tenants/{tenantUid}/devices/{deviceUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
200

Example response

{
  "createdAt": "2025-10-29T02:58:05.758Z",
  "createdBy": "text",
  "deviceUid": "text",
  "identifier": "text",
  "lastModifiedAt": "2025-10-29T02:58:05.758Z",
  "lastModifiedBy": "text",
  "lastActivityAt": "2025-10-29T02:58:05.758Z",
  "lastTenantUserUid": "text",
  "name": "text",
  "systemInformation": "text",
  "status": "ACTIVE",
  "store": {
    "name": "text",
    "storeUid": "text",
    "organizationUid": "text"
  },
  "deviceLinkCode": "text",
  "lastOrderUid": "text",
  "till": {
    "tillUid": "text",
    "name": "text",
    "tillNumber": 1
  },
  "appCode": "CLIENT",
  "settings": [
    {
      "key": "text",
      "value": "text",
      "type": "STRING",
      "allowedValues": [
        "text"
      ],
      "validationRegex": "text",
      "name": "text",
      "required": true
    }
  ],
  "printers": [
    {
      "printerUid": "text",
      "name": "text",
      "type": "LABEL"
    }
  ]
}

Update device details

put
/tenants/{tenantUid}/devices/{deviceUid}

Update details for a device. Partial updates are allowed.

Required permission: TENANT.ADMIN

Setting the status to "READY_TO_LINK" will unlink it for the current device and create a new deviceLinkCode and a new identifier

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
deviceUidstringRequired

Reference to a device

Pattern: ^[A-Za-z0-9-_]+
Body
namestringOptional
appCodestring · enumOptional
Enum Description
CLIENT Flow Retail Client
ASSISTANT Flow Retail Assistant
UNKNOWN No specific app
Possible values:
storeUidstringOptionalPattern: ^[A-Za-z0-9-_]*
statusstring · enumOptional
Enum Description
READY_TO_LINK The device is ready to a physical device through the link endpoint
ACTIVE The device is linked and active
BLOCKED The device is linked, but blocked for usage
Possible values:
tillUidstringOptionalPattern: ^[A-Za-z0-9-_]*
printerUidsstring[]Optional
Responses
200

Example response

application/json
put
/tenants/{tenantUid}/devices/{deviceUid}
PUT /v2/tenants/{tenantUid}/devices/{deviceUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 153

{
  "name": "text",
  "appCode": "CLIENT",
  "storeUid": "text",
  "status": "ACTIVE",
  "tillUid": "text",
  "settings": [
    {
      "key": "text",
      "value": "text"
    }
  ],
  "printerUids": [
    "text"
  ]
}
200

Example response

{
  "createdAt": "2025-10-29T02:58:05.758Z",
  "createdBy": "text",
  "deviceUid": "text",
  "identifier": "text",
  "lastModifiedAt": "2025-10-29T02:58:05.758Z",
  "lastModifiedBy": "text",
  "lastActivityAt": "2025-10-29T02:58:05.758Z",
  "lastTenantUserUid": "text",
  "name": "text",
  "systemInformation": "text",
  "status": "ACTIVE",
  "store": {
    "name": "text",
    "storeUid": "text",
    "organizationUid": "text"
  },
  "deviceLinkCode": "text",
  "lastOrderUid": "text",
  "till": {
    "tillUid": "text",
    "name": "text",
    "tillNumber": 1
  },
  "appCode": "CLIENT",
  "settings": [
    {
      "key": "text",
      "value": "text",
      "type": "STRING",
      "allowedValues": [
        "text"
      ],
      "validationRegex": "text",
      "name": "text",
      "required": true
    }
  ],
  "printers": [
    {
      "printerUid": "text",
      "name": "text",
      "type": "LABEL"
    }
  ]
}

Delete a device

delete
/tenants/{tenantUid}/devices/{deviceUid}

Deletes a device.

Required permission: TENANT.ADMIN

Authorizations
Path parameters
tenantUidstringRequired

Reference to a tenant.

Pattern: ^[A-Za-z0-9-_]+
deviceUidstringRequired

Reference to a device

Pattern: ^[A-Za-z0-9-_]+
Responses
204

No Content

No content

delete
/tenants/{tenantUid}/devices/{deviceUid}
DELETE /v2/tenants/{tenantUid}/devices/{deviceUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
204

No Content

No content

Was this helpful?