# Arquitetura e fluxo

O modelo de integração App2App permite uma comunicação local fluida e segura entre uma aplicação de automação de terceiros e o Getnet Payment App instalado no mesmo terminal Android.

## Mecanismo de comunicação: Android Intents
A troca de dados não exige uma conexão persistente. Em vez disso, ela usa Android Intents e Deeplinks para disparar comandos e receber respostas.

* Um Intent é um objeto de mensagem usado para solicitar uma ação de outro componente de aplicativo.

* Deeplink é uma URI específica (por exemplo, `getnet://payment/v1/payment`) que funciona como o "endereço" de um recurso específico dentro do Getnet App.

## Comandos suportados

Esta tabela resume as operações que sua aplicação pode solicitar ao terminal Getnet:

| Operação | URI do deeplink | Descrição |
| :--- | :--- | :--- |
| **Pagamento** | `getnet://payment/v1/payment` | Inicia uma transação de pagamento (cartão ou QR Code). |
| **Pré-autorização** | `getnet://payment/v1/pre-auth` | Reserva temporariamente valores no cartão de crédito do cliente. |
| **Reembolso** | `getnet://payment/v1/refund` | Reverte uma transação aprovada anteriormente. |
| **Dados do estabelecimento** | `getnet://payment/v1/commerce-data` | Recupera os dados cadastrais do estabelecimento. |
| **Obter informações** | `getnet://payment/v1/get-info` | Recupera dados técnicos do terminal (S/N, OS, versão). |
| **Polling** | `getnet://payment/v1/polling` | Verifica se o aplicativo de pagamento está pronto para atender requisições. |
| **Reimpressão** | `getnet://payment/v1/last-transaction` | Retorna ou reimprime o último comprovante. |
| **Relatórios** | `getnet://payment/v1/reports` | Recupera o histórico de transações (lista detalhada ou resumo de totais). |
| **Turno** | `getnet://payment/v1/shift` | Gerencia turnos (configurar, trocar ou recuperar informações de turno). |
| **Cancelar operação** | `getnet://payment/v1/cancel-operation` | Cancela uma operação de deeplink em andamento. |
| **Consultar status** | `getnet://payment/v1/transaction-check-status` | Busca o status de uma transação anterior específica. |

## O ciclo de vida da transação

O processo segue três etapas principais e garante que o controle da interface volte para a sua aplicação após a operação:

1. **Início (requisição)**: Sua aplicação dispara um Intent com uma URI de deeplink específica e os parâmetros de requisição enviados como extras.

2. **Processamento (fluxo de interface)**: O Getnet Payment App assume o controle da interface para interagir com o usuário ou processar a transação.

3. **Retorno (callback)**: Ao concluir, o Getnet Payment App devolve os parâmetros de resposta como extras do Intent pelo método `onActivityResult`.

## Próximos passos

* [Início rápido](/pt/app2app/first-steps-a2a/create-quick-start-guide) - execute seu primeiro pagamento pelo deeplink.
* [Referência de parâmetros do deeplink](/pt/app2app/reference-a2a/deeplink-parameters) - todos os parâmetros de requisição e resposta por operação.