The Finix Card Present SDK enables in-person payment processing with Bluetooth-connected PAX D135 devices. The SDK handles device pairing, transaction processing, refunds, and signature collection.

| Requirement | Value |
|---|---|
| Minimum Android Version | API 26 (Android 8.0) |
| SDK Version | 3.7.0 |
| Supported Device | PAX D135 |
The PAX D135 downloads its encryption keys from PAX servers during first-time configuration. This traffic uses the internet connection of the phone or tablet the D135 is paired with. If that network has a firewall, allow the following PAX hosts for the environment your Device is designated for:
| Environment | Host |
|---|---|
| Sandbox | rkilt.pax.us:33619 |
| Production | rki.pax.us:33519 |
Devices must be designated to either Sandbox or Production and cannot switch between them. Use separate devices when testing across both environments.
Initialize the SDK with your credentials, connect to the device, then start a transaction.
val mpos = MPOSFinix(
context,
MerchantData(
merchantId = "MUxxxxxx",
mid = "",
deviceId = "DVxxxxx",
env = Environment.SB,
userId = "USxxxxxxxxx",
password = ""
)
)
mpos.connect(
deviceName = "PAX_D135_XXXX",
deviceAddress = "XX:XX:XX:XX:XX:XX",
callback = object : MPOSConnectionCallback {
override fun onSuccess() {
mpos.startTransaction(
amount = 1000L,
transactionType = TransactionType.SALE,
transactionCallback = myCallback
)
}
override fun onError(errorMessage: String) { }
override fun onProcessing(currentStepMessage: String) { }
}
)A complete reference implementation is available in the Finix PAX MPOS Demo App.