# Architecture & Flow

The App2App integration model enables seamless and secure local communication between a third-party automation application and the Getnet Payment App installed on the same Android terminal.

## Communication mechanism: Android Intents
Data exchange does not require a persistent connection. Instead, it uses Android Intents and Deeplinks to trigger commands and receive responses.

* An Intent is a messaging object used to request an action from another app component.

* Deeplink is a specific URI (e.g., `getnet://payment/v1/payment`) that acts as the "address" for a specific feature within the Getnet App.

## Supported commands

This table summarizes the operations your application can request from the Getnet terminal:

| Operation | Deeplink URI | Description |
| :--- | :--- | :--- |
| **Payment** | `getnet://payment/v1/payment` | Initiates a payment transaction (Card or QR Code). |
| **Pre-authorization** | `getnet://payment/v1/pre-auth` | Temporarily holds funds on a customer's credit card. |
| **Refund** | `getnet://payment/v1/refund` | Reverses a previously approved transaction. |
| **Commerce Data** | `getnet://payment/v1/commerce-data` | Retrieves merchant registration data. |
| **Get Info** | `getnet://payment/v1/get-info` | Retrieves technical terminal data (S/N, OS, version). |
| **Polling** | `getnet://payment/v1/polling` | Verifies if the payment app is ready to handle requests. |
| **Reprint** | `getnet://payment/v1/last-transaction` | Returns or reprints the last receipt. |
| **Reports** | `getnet://payment/v1/reports` | Retrieves transaction history (detailed list or summary of totals). |
| **Shift** | `getnet://payment/v1/shift` | Manages shifts (set up, change, or retrieve shift information). |
| **Cancel Operation** | `getnet://payment/v1/cancel-operation` | Cancels a deeplink operation currently in progress. |
| **Check Status** | `getnet://payment/v1/transaction-check-status` | Searches for the status of a specific previous transaction. |

## The transaction lifecycle

The process follows three main stages, ensuring UI control returns to your app after the operation:

1. **Initiation (Request)**: Your app triggers an Intent with a specific deeplink URI and request parameters passed as extras.

2. **Processing (UI Flow)**: The Getnet Payment App takes control of the UI to interact with the user or process the transaction.

3. **Return (Callback)**: Upon completion, the Getnet Payment App returns response parameters as Intent extras via the `onActivityResult` method.

## Next steps

* [Quick Start](/en/app2app/first-steps-a2a/create-quick-start-guide) - run your first payment through the deeplink.
* [Deeplink parameters reference](/en/app2app/reference-a2a/deeplink-parameters) - every request and response parameter per operation.