> For the complete documentation index, see [llms.txt](https://docs.xplorpay.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.xplorpay.com/getting-started/getting-started/our-products/payment-processing/mobile-emv-sdk.md).

# Mobile EMV SDK

This page provides an overview of Xplor Pay’s Mobile SDK for iOS and Android. It describes the Mobile EMV SDK that allows accepting EMV chip card payments via Bluetooth using the VP3300 card reader.

### About Mobile EMV SDK

The Mobile EMV SDK enables iOS and Android applications to securely accept EMV chip card payments using the VP3300 mobile card reader. It manages end-to-end EMV transaction flow including card detection, data encryption, and JWT token generation, reducing PCI scope.

The Mobile EMV SDK supports Bluetooth based connectivity and provides layered, P2PE security to simplify EMV card payment acceptance.

### Business challenges addressed

Integrating Mobile EMV SDK card-present payments into mobile apps often requires complex certification, device management, and PCI scope. The Mobile EMV SDK addresses these challenges by:

* Eliminating direct cardholder-data exposure through reader-level encryption and tokenization.
* Reducing PCI compliance requirements and minimizing EMV certification effort.
* Providing a consistent, unified in-app payment experience across iOS and Android.
* Handling secure communication with the VP3300 card reader.

### Key capabilities

Mobile EMV SDK provides the following core capabilities:

* Supports EMV-compliant card transactions using the VP3300 mobile card reader via Bluetooth connectivity.
* Card data is encrypted at the reader and never exposed to the mobile application.
* The Mobile EMV SDK generates an encrypted JWT for secure card-present processing through Xplor Pay’s Mobile Transactions API.

### Use cases

Mobile EMV SDK covers the following scenarios:

* Software partners embedding in-person payments into their mobile applications.
* Mobile apps for retailers and service providers.
* Applications requiring secure card-present transactions.
* Merchants accepting payments on mobile devices paired with a portable card reader.

### Mobile EMV SDK for iOS framework process flow

{% stepper %}
{% step %}

#### **Initialize the Mobile EMV SDK.**

Initialize the Mobile EMV SDK to prepare card reader communication and import the required IDTech frameworks.
{% endstep %}

{% step %}

#### **Connect to the card reader.**

Detect and connect to the VP3300 card reader using Apple’s Bluetooth APIs through the IDTech framework.
{% endstep %}

{% step %}

#### **Process the payment.**

* The customer inserts the EMV card into the reader.
* The SDK secures and encrypts the card data into the JSON Web Token (JWT).
* The JWT is returned to the mobile application through a callback.
* The app submits the JWT to the Mobile Payments API to authorize the transaction.

The iOS framework uses IDTech.xcframework and bundled resources to manage card-reader communication and feedback messages.
{% endstep %}
{% endstepper %}

### Mobile EMV SDK for Android framework process flow

{% stepper %}
{% step %}

#### **Initialize the framework.**

Initialize the Mobile EMV SDK IDTech Android framework components using required .jar files.
{% endstep %}

{% step %}

#### **Connect to the VP3300 card reader.**

Connect to the VP3300 card reader using Bluetooth connectivity.\
The Mobile EMV SDK applies required EMV configurations to the reader and confirms readiness before starting any transaction.
{% endstep %}

{% step %}

#### **Process the payment.**

* The app starts the transaction, prompting the customer to DIP/SWIPE/TAP the card.
* The SDK reads and generates an encrypted JWT containing secured card data.
* The app submits the JWT to the Mobile Payments API using the `/rest/v2/mobile/transactions/sale` endpoint to complete the payment.
  {% endstep %}
  {% endstepper %}

### Technical requirements

To accept payments in your app, you need:

#### **Device & Reader**

* IDTech VP3300 mobile card reader
* Bluetooth connectivity (required)
* EMV and P2PE support

#### &#x20;**iOS Requirements**

* IDTech.xcframework v4.0.158 or later
* IDTech.bundle (including IdtechMessages.bundle)
* CocoaLumberjack.xcframework
* iOS 14.0 or later for manual card entry

{% hint style="warning" %}
Starting with iOS 18.4, Apple displays reminders before support is removed—weekly beginning 90 days before the removal date, and daily during the final three days.
{% endhint %}

#### &#x20;**Android Requirements**

* Android SDK and compatible .jar files from the android idtech-sdk package
* Public key provided by Xplor Pay
* Android 7.0 or later

### Related topics

* To try out the quick onboarding flow, see:
  * [iOS Framework](https://docs.xplorpay.com/quick-starts/ios-framework)
  * [Android Framework](https://docs.xplorpay.com/quick-starts/android-framework)
* To learn how to implement the setup to process payment, see [Mobile EMV](/guides/mobile-emv.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.xplorpay.com/getting-started/getting-started/our-products/payment-processing/mobile-emv-sdk.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
