> For the complete documentation index, see [llms.txt](https://ftcoders.first-tech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ftcoders.first-tech.com/first-tech-ttp-sdk/introduction/specifications-and-capabilities.md).

# Specifications & Capabilities

### Product Features

Below are the key features of the product, covering hardware, software, certifications, and applicable business use cases:

<details>

<summary>Hardware</summary>

* **Supported Devices**: No restrictions, as long as the device has an active NFC chip.
* **Operating Systems**: Android (iOS support available upon request).
* **NFC Requirement**: NFC must be enabled for reading and transmitting payment data. Any smartphone with an active NFC chip can use the product, regardless of the manufacturer.
* **TEE or Secure Element**: The smartphone must have a dedicated processor or a security chip for cryptographic key management. This is required to use Android Keystore and Key Attestation APIs. Any Android device running version 10 or later with Google Play Store access meets these requirements.
* **Chip & Magnetic Stripe Reading**: The SDK does not support chip or magnetic stripe card readers. Only contactless-enabled cards can be used.
* **Network Connectivity**: Requires Wi-Fi or mobile data with at least 3G coverage for terminal activation and transaction processing.

</details>

<details>

<summary>Software</summary>

* **Programming Languages**: The SDK is developed in Java but can be used with hybrid technologies such as React Native, Flutter, or any language that supports native library bridging.
* **Mandatory permissions for the apps builded with SDK**:&#x20;
  * **(NFC)** android.Manifest.permission.NFC
  * **(Vibrate)** android.Manifest.permission.VIBRATE
  * **(Internet)** android.permission.INTERNET
  * **(Network State)** android.permission.ACCESS\_NETWORK\_STATE
  * **(Notification Policy)** android.permission.ACCESS\_NOTIFICATION\_POLICY
* **Minimum Android Version**: Android 10 or later.
* **Android API:** Level 29 or later.
* **Google Play Services Version**: Play Services 11 or later.

</details>

<details>

<summary>Permissions</summary>

Required permissions

```
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.NFC"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

```

</details>

<details>

<summary>Certifications</summary>

**Security & Compliance**: PCI HSM, PCI PIN, PCI DSS, PIN on Glass, Visa Security 1.8.1, MPOC 1.1, ISO 27001.

</details>

<details>

<summary><strong>Usage Restrictions in Production</strong></summary>

The SDK will not function on smartphones that:

* Have **jailbreak/root mode enabled**.
* Have **developer options enabled** (debug mode).
* Have **malicious apps installed**.
* Have **any debugger connected**.
* Have **manual date and time settings** (must be set to automatic).
* Have the app **installed from sources outside Google Play**.

</details>

<details>

<summary>SDK Capabilities</summary>

* **Terminal Creation**: The terminal is automatically created when a transaction request is initiated. A security check is performed to ensure system integrity before terminal creation.
* **Session Creation**: A session is automatically created upon a new transaction request. The terminal runs a full security validation with the central server before processing any transaction.
* **Transaction Processing**: Supports **credit (single and installment payments) and debit** transactions.
* **Prepayment Support**: **Not provided** by the SDK.
* **Instant Refunds (D0)**: **Not provided** by the SDK.
* **Refunds (D+1 or later)**: Can be processed via API or through the acquiring bank.

</details>

<details>

<summary>Use Cases</summary>

* **Mobile POS**: A new application must be developed using the SDK. User control, business logic, CNPJ context switching, additional payment method integrations, UI customization, and other specific functionalities must be implemented by the company using the SDK.
* **Online-to-Offline Transaction Transfers (E-commerce)**: The application must be developed with approval from the participating card networks under the Tap to Everything / Tap to Own Device program. Merchants’ reports must be submitted monthly, and adjustments to ISO 8583 messaging must be made to properly flag transactions that originated online but were processed offline.
* **Prepayment Support**: If embedded within an app, the SDK can capture prepayments. The **prepayment mode must be communicated to the payment gateway**, and the acquiring bank must provide methods for modifying, canceling, or converting prepayments into standard payments.
* **User Identification via Card**: NFC-captured data can be used to create a **fingerprint of the credit card** and link it to a customer database. This enables the SDK to **identify users** beyond just payment collection, facilitating loyalty program integration and improving login flows where traditional authentication is ineffective.
* **Tap to Fill & Digital Wallet Enrollment**: In digital wallet or e-commerce apps, NFC technology can automatically capture the **card number and expiration date**, simplifying the checkout process and eliminating manual entry—similar to scanning a credit card using a camera.

</details>


---

# 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://ftcoders.first-tech.com/first-tech-ttp-sdk/introduction/specifications-and-capabilities.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.
