> 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/payment-solutions/cyprus-integration.md).

# Cyprus Integration

This page covers the necessary configuration changes required for devices operating in Cyprus mode.

There are changes to the TMS IP address and device mode. Apart from these, there are no other changes.

### Bank App Protocol:

There will be no changes to the workflows for Cyprus devices.

{% content-ref url="/pages/wkkoYfhTR7oCHd9CUvC2" %}
[Bank App Protocol](/token-developer-portal-1/payment-service/payment-services/bank-app-protocol.md)
{% endcontent-ref %}

### **TSM IP Configuration**

For Cyprus devices, the TSM IP addresses must be changed.

During the Setup process, the IP configuration should be adjusted according to the values below.

| 195.87.189.161 | Cyprus TSM IP Test |
| -------------- | ------------------ |
| 195.87.189.163 | Cyprus TSM IP Prod |

### Pos Mode

It is used to obtain information about the device mode.&#x20;

These values are returned as **CY** on Cyprus devices.

**NOTE:** `CY` represents the Cyprus mode. There is no difference in the transaction flow between `CY` and `ECR` modes. The `CY` mode follows the same flow as `ECR`.

```kotlin
public enum PosModeEnum {
    VUK507,
    POS,
    GIB,
    ECR,
    EFT_POS,
    RESERVED_0,
    RESERVED_1,
    RESERVED_2,
    RESERVED_3,
    RESERVED_4,
    CY // CYPRUS added.  
}
```

**Method 1:**

```kotlin
val deviceInfo = DeviceInfo(this)
deviceInfo.getFields(
        { fields ->
            if (fields == null) return
            Log.i("Example 1", "Operation Mode: " + fields.get(0))
            // fields.get(0) == 10 for Cyprus
        },
        DeviceInfo.Field.OPERATION_MODE
)

```

**Method 2:**&#x20;

```kotlin
val deviceInfo = DeviceInfo(this)
deviceInfo.getOperationMode(object : DeviceInfoResponseHandler {
    override fun onSuccess(result: String) {
        Log.i("Operation Mode", result)
         // result == "10" for Cyprus
    }

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