# Technical requirements

The fulfillmenttools applications have several technical requirements.&#x20;

Additional configurations are necessary when using [Zebra](https://docs.fulfillmenttools.com/documentation/apps/technical-requirements/zebra-hardware-scanner-configuration) or [Honeywell](https://docs.fulfillmenttools.com/documentation/apps/technical-requirements/honeywell-hardware-scanner-configuration) hardware scanners or a [Zebra printer](https://docs.fulfillmenttools.com/documentation/apps/technical-requirements/zebra-printer).

{% hint style="info" %}
For questions about network setup, permissions, or requirements, contact us using [our support portal](https://ocfulfillment.atlassian.net/servicedesk/customer/portal/1/group/13/create/47).
{% endhint %}

## Application-specific requirements

### Android apps (Operations, Inventory, and Returns)

* Android smartphone or Mobile Data Entry (MDE) scanning device.
* Minimum software version: Android version 8 (API Level 26).
* Maximum software version: Android version 14 (API Level 34), which requires application version 1.22.0 or higher.
* The application is developed and tested on Google Pixel devices (4a or newer).
* A range of MDE devices, such as Honeywell (for example, EDA-52) and Zebra (for example, TC 21 and TC 26), is supported. A list of recommended devices or approval for specific devices is available upon request.
* MDE devices may require additional software to be installed and activated so the hardware scanner is accessible by the application.
* Devices not managed by a Mobile Device Management (MDM) tool must be able to access [Google Play](https://play.google.com/store/apps) for application downloads and updates.
* Alternatively, APK download is possible via the REST API when using a custom MDM solution. In this case, the application is downloaded through a channel provided by fulfillmenttools instead of from Google Play.
* Required application [permissions](https://play.google.com/store/apps/details?id=com.ocfulfillment.fulfillmentapp) must be granted on the device.
* Ports and URLs for Google Firebase Cloud Messaging (FCM) must be accessible to support push notifications. Refer to [FCM ports and your firewall](https://firebase.google.com/docs/cloud-messaging/concept-options#messaging-ports-and-your-firewall) for details. (Operations app only)
* The current version of [Google Play Services](https://developers.google.com/android/guides/overview) must be installed. This is usually present when a Google account is configured on the device.
* Ports and URLs for Google Play Services must be accessible. See the [appendix](#appendix).
* A stable internet connection or sufficient WiFi signal is required in the entire area where the application is used (for example, 50 Mb/s or Long-Term Evolution (LTE)). The required bandwidth depends on the number of active devices.

### Operations app (web)

* The latest version of a modern web browser, such as Google Chrome.
* Stable internet connection (50 Mb/s).
* Honeywell devices may need a separate license for the hardware scanner to be usable.

### Backoffice

* It's recommended to use one of the two most recent versions of a modern web browser, such as Google Chrome.
* Recommended minimum screen resolution: 1024x768.
* Stable internet connection (50 Mb/s).

### Returns App (iOS)

* Apple iOS device with a camera.
* Minimum software: iOS Version 14.1, which requires application version 1.2.1 or higher.
* The application is developed and tested on iPhone SE (iOS version 14.1 or newer).
* Devices must be able to access the [Apple App Store](https://apps.apple.com/us/app/fulfillmenttools-returns/id6477875850) for application downloads and updates.
* Required application [permissions](https://apps.apple.com/us/app/fulfillmenttools-returns/id6477875850) must be granted on the device.
* A stable internet connection or sufficient WiFi signal is required in the entire area where the application is used (for example, 50 Mb/s or Long-Term Evolution (LTE)). The required bandwidth depends on the number of active devices.

## Android-specific requirements

The Android mobile application utilizes Google Play Services and so requires access to the following services:

* Firebase Analytics requires access to:
  * `app-measurement.com/a`
* Firebase App Distribution requires access to:
  * `firebaseappdistribution.googleapis.com`
  * `appdistribution-uploads.crashlytics.com`
* Firebase Authentication requires access to:
  * `www.googleapis.com`
  * `firebaseauth.googleapis.com`
  * `identitytoolkit.googleapis.com`
  * `securetoken.googleapis.com`
* Firebase Crashlytics requires access to:
  * `*.crashlytics.com`
  * `*.fabric.io`
  * `crashlyticsreports-pa.googleapis.com`
  * `firebasecrashlyticssymbols.googleapis.com`
* Firebase Performance requires access to:
  * `play.googleapis.com`
  * `www.googleapis.com`
* Play Services and Firebase Installations require access to:
  * `device-provisioning.googleapis.com`
  * `firebaseinstallations.googleapis.com`

## Hosts and ports

To use the applications, the following hosts and protocols must be accessible from the network. Dedicated URLs are used for each tenant.

* [Google Identity Toolkit](https://cloud.google.com/identity-platform/docs/use-rest-api?hl=en) service:
  * `https://identitytoolkit.googleapis.com/`
  * `https://securetoken.googleapis.com/`
* [Sentry.IO](https://sentry.io/) service:
  * `https://*.ingest.sentry.io/api/`
* Operations app (web):
  * `https://pick-<tenant>-prd.web.app/`
* Backoffice:
  * `https://ocff-<tenant>-prd.web.app/`
* REST API:
  * `https://ocff-<tenant>-prd.api.fulfillmenttools.com/`
* GraphQL API:
  * `https://ocff-<tenant>-prd.graphql.fulfillmenttools.com/`
  * `wss://ocff-<tenant>-prd.graphql.fulfillmenttools.com/`
* Download API:
  * `https://ocff-<tenant>-prd.download.fulfillmenttools.com/`
* Public configuration files:
  * `https://storage.googleapis.com/ocff-<tenant>-prd-config-public/`

## Supported barcodes for camera scanning

The following barcodes are supported when scanning using the camera on an Android device:

* `EAN-8 Composite Symbologie`
* `EAN-13 Composite Symbologie`
* `QR Code`
* `Data Matrix`
* `Code-128`
* `UPC-A`
* `UPC-E`
* `Interleaved 2 of 5`
