> For the complete documentation index, see [llms.txt](https://developer.tokeninc.com/token-developer-portal-1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.tokeninc.com/token-developer-portal-1/payment-service/new-device-integrations/t1-pro.md).

# T1 PRO

This page contains the required fields for integration with the T1 PRO device.

### Manifest.xml Configurations

```html
<manifest ... >
    ...
    <application ... >
        ...
        <meta-data android:name="app_name" android:value="BNK_ID_COMPANYNAME" /> 
        <meta-data android:name="app_model_type" android:value="T1PRO" /> // For T1 Pro devices
        <meta-data android:name="app_version" android:value="51000110" /> // Change Android  Version major/minor/build into integer. We kindly request this change. Version no must start with 510. Example: 51000110.
     </application>
...
```

### Device Info <a href="#device-info" id="device-info"></a>

**void getFiscalId(DeviceInfoResponseHandler deviceInfoResponseHandler)**

The `getFiscalId` function retrieves the fiscal ID from the service.

```kotlin
deviceInfo.getFiscalId(object: DeviceInfoResponseHandler {
    override fun onSuccess(result: String) {
        Log.i("Fiscal ID", result)

    }
    override fun onFail(errMessage: String) {
        Log.i("Error Message", errMessage)
    }
});
```

**Note:** The Fiscal ID will be in the format **AY**.....

### Important Considerations <a href="#important-considerations" id="important-considerations"></a>

#### Device Name <a href="#device-name" id="device-name"></a>

Device name will be "**T1PRO**".

When the device model information is obtained using the `Build.MODEL` field, it returns the value **`T1PRO`** for the corresponding device.

### UI Components V2&#x20;

{% file src="/files/qJEuTtaD2Ec8ZSB2HA8q" %}

**NOTE:** `uicomponents_v2.aar` will be used only on **T1Pro** devices for now.&#x20;

If your projects share the same codebase, `uicomponents_v2.aar` should be used only for **T1Pro** devices. This can be implemented using product flavors.

#### Required Changes for UI Components V2 Migration

**1-) Set Theme**

**NOTE:** You need to set the theme in the `onCreate()` method of all your Activities. Please note that `ThemeManager` is not available in `uicomponents_v1`&#x20;

{% tabs %}
{% tab title="Java" %}

```java
ThemeManager.INSTANCE.applyDeviceTheme(getTheme());
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
ThemeManager.applyDeviceTheme(this.theme) 
```

{% endtab %}
{% endtabs %}

**2-) EditTextInputType.Date**

To use the date input feature, you need to update the RecyclerView version in your `build.gradle` file. A version of `1.2.1` or later is sufficient.

```kts
implementation("androidx.recyclerview:recyclerview:1.2.1")
```

<div align="left"><figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FPIVCugfCEbyYtMqyjM8q%2FScreenshot%202026-07-22%20at%2016.27.29.png?alt=media&amp;token=1702f8cb-cbb7-4139-a1bf-6ab01601dace" alt="" width="170"><figcaption><p>EditTextInputType.Date</p></figcaption></figure></div>

#### UI Components V2 Screens

#### ListMenuFragment           &#x20;

<div align="left"><figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2F57Mm0GHIrx6oYnvOFLgv%2FScreenshot%202026-07-22%20at%2016.06.03.png?alt=media&amp;token=2fdbed16-6c1e-4cc7-bf92-0c8ba9aa34d2" alt="" width="173"><figcaption><p> List Menu Fragment</p></figcaption></figure> <figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FsYut2G8ACMkU6VHkAsYt%2FScreenshot%202026-07-22%20at%2016.08.19.png?alt=media&amp;token=4aec6366-d5e3-4027-908f-e42c218f624d" alt="" width="173"><figcaption><p> ListMenuFragment <br>Sublist</p></figcaption></figure></div>

#### InputListFragment

<div align="left"><figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FP8F4KFZ52Wd5UCoxgXho%2FScreenshot%202026-07-22%20at%2016.19.21.png?alt=media&amp;token=53d96c66-3193-43a3-ab93-e132b69db4ed" alt="" width="173"><figcaption><p>InputListFragment</p></figcaption></figure></div>

#### Confirmation Dialog

Dialog types: ***Confirmed***, ***Warning***, ***Error***, ***Info***, ***Declined***, ***Connecting***, ***Downloading***, ***Uploading***, ***Processing***, ***Progress***, ***None***

<div align="left"><figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FCc9x0b20w0zH2lLS4aiS%2FScreenshot%202026-07-22%20at%2016.10.56.png?alt=media&amp;token=124634ac-3924-4833-a40e-e3356042d55f" alt="" width="197"><figcaption><p>Confirmed</p></figcaption></figure> <figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2Fj4hMa7qM8XaM6YNyVerp%2FScreenshot%202026-07-22%20at%2016.11.35.png?alt=media&amp;token=0d15278a-f944-475e-821a-3cf3dc3e589c" alt="" width="197"><figcaption><p>Warning</p></figcaption></figure> <figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FXmREARLyWYG5CSDvHRnC%2FScreenshot%202026-07-22%20at%2016.12.13.png?alt=media&amp;token=b05645ab-45e1-472d-a236-8f910141add2" alt="" width="197"><figcaption><p>Error</p></figcaption></figure> <figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FOVFMYy6GOWfLJsyqZdb1%2FScreenshot%202026-07-22%20at%2016.14.16.png?alt=media&amp;token=861f1197-b383-492a-ace5-c12c8bd50fa0" alt="" width="197"><figcaption><p>Declined</p></figcaption></figure></div>

<div align="left"><figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FgeOU6aUY3E96QykdSXQj%2FScreenshot%202026-07-22%20at%2016.15.13.png?alt=media&amp;token=0ee03c90-fbf9-4872-9ec8-f678b7c620f8" alt="" width="166"><figcaption><p>Connecting</p></figcaption></figure> <figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FHBOUbVJhtOSFUmTDGvZB%2FScreenshot%202026-07-22%20at%2016.17.35.png?alt=media&amp;token=f1d042d7-58c3-4a12-b1ed-31611f7c6e74" alt="" width="166"><figcaption><p>Downloading</p></figcaption></figure></div>

#### InformationDialog

Dialog types: ***Confirmed***, ***Warning***, ***Error***, ***Info***, ***Declined***, ***Connecting***, ***Downloading***, ***Uploading***, ***Processing***, ***Progress***, ***None***

<div align="left"><figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FnJPqEG423hEfN3f3iXGI%2FScreenshot%202026-07-22%20at%2016.21.16.png?alt=media&amp;token=df15adb1-4bdf-4037-b34b-2fb11f3657f3" alt="" width="194"><figcaption><p>Confirmed</p></figcaption></figure> <figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FYXFdZLA83ebGP96asfUa%2FScreenshot%202026-07-22%20at%2016.21.45.png?alt=media&amp;token=fe3fb595-138c-4980-b77e-2a30beebba8b" alt="" width="194"><figcaption><p>Warning</p></figcaption></figure> <figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2F17ElCvQy7qh7MaI3GMzB%2FScreenshot%202026-07-22%20at%2016.23.36.png?alt=media&amp;token=5b012538-f64e-4359-b337-f39d705c6357" alt="" width="194"><figcaption><p>Error</p></figcaption></figure> <figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2Feak6ex98PyqCyb2oDCyo%2FScreenshot%202026-07-22%20at%2016.23.57.png?alt=media&amp;token=7e604596-5e85-41f2-9c23-5575ecc35446" alt="" width="194"><figcaption><p>Declined</p></figcaption></figure></div>

<div align="left"><figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2FPN0uBWPtaRL9UnljkO5J%2FScreenshot%202026-07-22%20at%2016.33.52.png?alt=media&amp;token=c359fcb7-574e-44a3-a958-bf6b44c4f68b" alt="" width="171"><figcaption><p>Progress</p></figcaption></figure></div>

#### QR Screen

```kts
 val qrScreen330 = QrScreen330.newInstance(
     amountStr,
     "",
     getStrings(R.string.waiting_for_qr_code_to_read),
     qrString
  )
```

<div align="left"><figure><img src="https://3604734571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPaz8tFKqEd6volXC5G4B%2Fuploads%2Fhixy2ycwj1O2rv7wGFvC%2FScreenshot%202026-07-22%20at%2016.31.15.png?alt=media&amp;token=ff9fbcd1-14a2-46f6-b526-3b4aafd3c2f1" alt="" width="170"><figcaption><p>QrScreen</p></figcaption></figure></div>

### Printer Service

{% file src="/files/AmPwfeQNGdEDXRoeL1Bq" %}

Our new printer library provides three APIs. Their descriptions and usage examples are provided below.

#### void printBitmap(String name, int verticalMargin)

{% embed url="<https://developer.tokeninc.com/token-developer-portal-1/payment-service/system-and-security-services/printer-service#void-printbitmap-string-name-int-verticalmargin>" %}

#### void printAdditionalLogo(byte\[] bitmapData, int margin)

You can print your monochrome logo as a `bitmapArray` using this API. This is the recommended approach.

```kotlin
styledString.printAdditionalLogo(byteArray,0)
```

#### void printAdditionalLogo(int resID, int margin)

The static logos you place in the **raw** folder will be printed using this method. The logos must be monochrome. This is the recommended approach.

```
styledString.printAdditionalLogo(R.raw.logo,0)
```
