# Transaction EMV

The **Transaction EMV API** allows you to process card-present transactions using EMV-enabled terminals through a semi-integrated model.

In this model, your point of sale (POS) or application initiates the transaction, and the payment terminal securely handles card interaction, including chip, swipe, or contactless input.

Use this API to:

* Process sale transactions
* Authorize payments
* Process forced sale transactions
* Issue refunds
* Create token-only transactions

{% hint style="warning" %}
**Note:** Only **POST** method is supported through these endpoints. To search or run follow-on transactions that do not require card data, use the Transactions API endpoints in conjunction with this one.
{% endhint %}

### Usage flow

1. **Transaction Initiation**: Your POS system initiates a transaction through the API
2. **Terminal Communication**: The EMV Cloud contacts and wakes up the payment terminal
3. **Card Data Collection**: The terminal prompts for and securely collects card data
4. **Processing**: The transaction is processed and results are returned

The following diagram illustrates recommended best practices for transaction resiliency:

<figure><img src="/files/wtsMdzdgxgcbb2MumUfG" alt=""><figcaption></figcaption></figure>

### Additional information

The system is designed to protect the transaction at all costs, prioritizing both speed and success. If you request a token or expect a token in the transaction response, that data might be omitted. The only response fields guaranteed in the wrapper object are:

* **`payloadType`**
* **`status`**
* **`result-code`**

If the **`payloadType`** is **transaction**, the only guaranteed response fields are:

* **`ID`**
* **`result-code`**
* **`authorization-code`**
* **`display-message`**

Any of the other fields we will attempt to return to you (for example, **`cardType`** and **`expDate`**) may not always be available. Common causes include:

* You used a token as a card, and the card type lookup took too long
* An encrypted reader was used, and the expiration date wasn't readily available

All of these fields become eventually consistent and available within a few seconds when you perform a `GET` operation on the transaction.

{% hint style="warning" %}
**Note:** Note that `GET` operations don't run on the transactional system. If you perform a `GET` operation immediately after receiving a transaction response, the data might not be available right away. Data replication typically takes 200 milliseconds to 1 second to complete, after which all fields become available.
{% endhint %}

* [Transaction Signature](/api-reference/api/payments/terminal-card-present/transaction-signature.md)
* [Transaction EMV Batches](/api-reference/api/payments/terminal-card-present/transaction-emv-batches.md)


---

# Agent Instructions: 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:

```
GET https://docs.xplorpay.com/api-reference/api/payments/terminal-card-present/transaction-emv.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
