Device
Device
Fetch device info for current device given in token
Example response
GET /v2/device HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Example response
{
  "availablePaymentMethods": [
    {
      "allowRefund": true,
      "allowSale": true,
      "allowCashback": true,
      "allowAmount": true,
      "allowPrepayment": 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,
    "allowPrepayment": 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",
        "requiresReference": true,
        "reasonUid": "text"
      }
    ],
    "return": [
      {
        "code": "text",
        "description": "text",
        "requiresReference": true,
        "reasonUid": "text"
      }
    ]
  },
  "deviceIdentifier": "text",
  "deviceUid": "text",
  "storeInfo": {
    "address": "text",
    "city": "text",
    "countryCode": "text",
    "createdAt": "2025-10-30T21:17:38.375Z",
    "defaultWarehouseUid": "text",
    "defaultReturnWarehouseUid": "text",
    "defaultDeliveryWarehouseUid": "text",
    "email": "text",
    "externalId": "text",
    "isActive": true,
    "lastModifiedAt": "2025-10-30T21:17:38.375Z",
    "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",
    "purchasePriceListUid": "text",
    "appSettings": {
      "hidePurchase": true,
      "hideReceivement": true
    },
    "storeUid": "text",
    "vatNumber": "text",
    "voucherNumberSeriesUid": "text",
    "serviceNumberSeriesUid": "text",
    "hasWorkShop": true,
    "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",
    "invoiceFooterText": "text",
    "labelComparisonPricelistUid": "text",
    "addresses": [
      {
        "storeAddressUid": "text",
        "companyName": "text",
        "vatNumber": "text",
        "address": "text",
        "postalCode": "text",
        "city": "text",
        "countryCode": "text",
        "email": "text",
        "phone": "text",
        "type": "PURCHASE_INVOICE_ADDRESS",
        "default": true,
        "createdBy": "text",
        "createdAt": "2025-10-30T21:17:38.375Z",
        "lastModifiedBy": "text",
        "lastModifiedAt": "2025-10-30T21:17:38.375Z"
      }
    ]
  },
  "tenantInfo": {
    "countryCode": "text",
    "createdAt": "2025-10-30T21:17:38.375Z",
    "lastModifiedAt": "2025-10-30T21:17:38.375Z",
    "name": "text",
    "pricelistUid": "text",
    "tenantUid": "text",
    "vatNumber": "text",
    "settings": {
      "allowExternalCashDrawer": false,
      "autoLogout": 1,
      "autoPrintReceipt": true,
      "numericSkuCounter": 1,
      "printCardPaymentDetails": false,
      "sendInvoicesExternally": true,
      "duplicateCheckCustomerPhoneNumber": true,
      "duplicateCheckCustomerVatNumber": true,
      "useOriginalSellerOnCreditLine": true,
      "defaultCustomerGroupUid": "text"
    },
    "appSettings": {
      "showOutOfStockWarning": true,
      "defaultParkedOrderLifespanDays": 1,
      "requirePinCodeForSale": true,
      "requirePinCodeForCredit": true,
      "autoSendWelcomeSms": true,
      "autoSendWelcomeMail": true,
      "defaultCustomerGroupUid": "text"
    },
    "extensions": [
      {
        "extensionCode": "FLOWGIFTCARD",
        "name": "text",
        "active": true,
        "tenantExtensionUid": "text"
      }
    ],
    "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": {
    "cashDrawer": "text",
    "createdAt": "2025-10-30T21:17:38.375Z",
    "deviceIdentifier": "text",
    "lastModifiedAt": "2025-10-30T21:17:38.375Z",
    "lastOrderUid": "text",
    "lastOrderNumber": "text",
    "name": "text",
    "paymentTerminal": "NONE",
    "settings": [
      {
        "key": "STRIPE_TERMINAL_ID",
        "value": "text"
      }
    ],
    "tillUid": "text",
    "tillNumber": 1
  },
  "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"
    }
  ]
}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.
Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers
Example response
POST /v2/device HTTP/1.1
Host: api.flowretail.com
Content-Type: application/json
Accept: */*
Content-Length: 60
{
  "clientId": "text",
  "name": "text",
  "systemInformation": "text"
}Example response
{
  "deviceCode": "text",
  "deviceIdentifier": "text",
  "expires_in": 1,
  "interval": 1,
  "verificationUri": "text"
}Update system information for a device.
Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers
No Content
No content
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"
}No Content
No content
Device Authorization Flow - Authorize a device and attach it to a specific store
^[A-Za-z0-9-_]+^[A-Za-z0-9-_]+^[A-Za-z0-9-_]+OK
No content
Linking failed. Ther error message will have information about what failed.
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 to a device registered in Flow.
Device code from backoffice
This is a predefined app id that Flow will provide
A user code from the tenant
The password for the user
Contains device name, OS, release version of OS, OS build date, like a uname -a response on linux servers
Example response
Linking failed. Ther error message will have information about what failed.
Not found
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"
}Device Authorization Flow - Request a new token
Link successfull.
Example response
Not Found
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 all users that can login to the current device.
Defines which field the resource list is sorted by.
| ENUM | Description | 
|---|---|
| ASC | Sort in ascending order | 
| DESC | Sort in descending order | 
The number of items per page in a result set.
Reference to a specific page in a result set.
Example response
Linking failed. Ther error message will have information about what failed.
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-30T21:17:38.375Z",
      "lastname": "text",
      "tenantUserUid": "text",
      "userCode": "text",
      "languageCode": "text"
    }
  ],
  "paging": {
    "pageNumber": 1,
    "pageSize": 1,
    "totalCount": 1
  }
}Get list of registered devices.
Required permission: TENANT.ADMIN
The settings field will contain all the available settings for this device. The settings list can vary depending on the appcode.
Reference to a tenant.
^[A-Za-z0-9-_]+Reference to a store uid
^[A-Za-z0-9-_]+Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
| ENUM | Description | 
|---|---|
| ASC | Sort in ascending order | 
| DESC | Sort in descending order | 
Example response
GET /v2/tenants/{tenantUid}/devices HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Example response
{
  "items": [
    {
      "createdAt": "2025-10-30T21:17:38.375Z",
      "createdBy": "text",
      "deviceUid": "text",
      "identifier": "text",
      "lastModifiedAt": "2025-10-30T21:17:38.375Z",
      "lastModifiedBy": "text",
      "lastActivityAt": "2025-10-30T21:17:38.375Z",
      "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 for a tenant
Reference to a tenant.
^[A-Za-z0-9-_]+^[A-Za-z0-9-_]*| Enum | Description | 
|---|---|
| CLIENT | Flow Retail Client | 
| ASSISTANT | Flow Retail Assistant | 
| UNKNOWN | No specific app | 
^[A-Za-z0-9-_]*^[A-Za-z0-9-_]*Example response
Bad Request
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-30T21:17:38.375Z",
  "createdBy": "text",
  "deviceUid": "text",
  "identifier": "text",
  "lastModifiedAt": "2025-10-30T21:17:38.375Z",
  "lastModifiedBy": "text",
  "lastActivityAt": "2025-10-30T21:17:38.375Z",
  "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
Required permission: TENANT.ADMIN
Reference to a tenant.
^[A-Za-z0-9-_]+Reference to a specific page in a result set.
The number of items per page in a result set.
Defines which field the resource list is sorted by.
| ENUM | Description | 
|---|---|
| ASC | Sort in ascending order | 
| DESC | Sort in descending order | 
^[A-Za-z0-9-_]*| Enum | Description | 
|---|---|
| CLIENT | Flow Retail Client | 
| ASSISTANT | Flow Retail Assistant | 
| UNKNOWN | No specific app | 
Example response
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"
  ]
}Example response
{
  "items": [
    {
      "createdAt": "2025-10-30T21:17:38.375Z",
      "createdBy": "text",
      "deviceUid": "text",
      "identifier": "text",
      "lastModifiedAt": "2025-10-30T21:17:38.375Z",
      "lastModifiedBy": "text",
      "lastActivityAt": "2025-10-30T21:17:38.375Z",
      "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 details for a device.
Required permission: TENANT.ADMIN
Reference to a tenant.
^[A-Za-z0-9-_]+Reference to a device
^[A-Za-z0-9-_]+Example response
GET /v2/tenants/{tenantUid}/devices/{deviceUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
Example response
{
  "createdAt": "2025-10-30T21:17:38.375Z",
  "createdBy": "text",
  "deviceUid": "text",
  "identifier": "text",
  "lastModifiedAt": "2025-10-30T21:17:38.375Z",
  "lastModifiedBy": "text",
  "lastActivityAt": "2025-10-30T21:17:38.375Z",
  "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 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
Reference to a tenant.
^[A-Za-z0-9-_]+Reference to a device
^[A-Za-z0-9-_]+| Enum | Description | 
|---|---|
| CLIENT | Flow Retail Client | 
| ASSISTANT | Flow Retail Assistant | 
| UNKNOWN | No specific app | 
^[A-Za-z0-9-_]*| 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 | 
^[A-Za-z0-9-_]*Example response
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"
  ]
}Example response
{
  "createdAt": "2025-10-30T21:17:38.375Z",
  "createdBy": "text",
  "deviceUid": "text",
  "identifier": "text",
  "lastModifiedAt": "2025-10-30T21:17:38.375Z",
  "lastModifiedBy": "text",
  "lastActivityAt": "2025-10-30T21:17:38.375Z",
  "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"
    }
  ]
}Deletes a device.
Required permission: TENANT.ADMIN
Reference to a tenant.
^[A-Za-z0-9-_]+Reference to a device
^[A-Za-z0-9-_]+No Content
No content
DELETE /v2/tenants/{tenantUid}/devices/{deviceUid} HTTP/1.1
Host: api.flowretail.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No Content
No content
Last updated