# Parâmetros de Intent

Esta página de referência lista todos os parâmetros de entrada ("extras" do Intent) que você pode usar ao se comunicar com o aplicativo Tap on Phone.

Você deve passar esses parâmetros usando o método `putExtra()` ao construir seus objetos `Intent`. Os parâmetros obrigatórios variam dependendo da ação que você está realizando (como inicializar o POS, processar um pagamento ou transmitir uma solicitação).

## Parâmetros de Autenticação e Sessão

Estes parâmetros gerenciam a identidade do usuário, a vinculação do terminal e a autorização de Single Sign-On (SSO). Eles são obrigatórios para quase todas as operações, incluindo inicializações, transações e atestações em segundo plano.

| Nome do Parâmetro | Tipo de Dado | Obrigatório | Descrição |
| :--- | :--- | :--- | :--- |
| `userId` | Int | Sim | O identificador técnico do seu sistema para o usuário/lojista atual. |
| `userToken` | String | Sim | O token de autenticação seguro para o usuário. O backend do Tap on Phone envia este token para o seu endpoint de SSO para autorizar a operação. |
| `merchantId` | Int | Sim | O ID único do Tap to Pay que representa o estabelecimento comercial. Você recebe este identificador durante o processo de onboarding do lojista. |
| `operationMetadata` | String | Condicional | Uma string JSON serializada necessária para a autorização de SSO. **Ela deve conter o seu `ClientID`** (ex: `{"ClientID":"your-client-id"}`). Obrigatória para inicialização, estornos e cancelamentos. |

## Parâmetros de Transação

Você passa esses parâmetros para a `POSActivity` ao iniciar operações financeiras.

| Nome do Parâmetro | Tipo de Dado | Obrigatório | Descrição |
| :--- | :--- | :--- | :--- |
| `transactionType` | String | Sim | Define a operação. Valores aceitos: `PURCHASE`, `REFUND`, `CANCEL`, `PREAUTH`, `WITHDRAW`. |
| `amount` | Long | Sim | O valor total da transação em **centavos** (por exemplo, passe `1200` para \$12.00). *Nota: Para compras, isso deve incluir quaisquer gorjetas.* |
| `tip` | Long | Não | O valor da gorjeta em **centavos**. Isso é estritamente um metadado. O aplicativo **não** adiciona este valor ao `amount` automaticamente. |
| `originalTransaction` | Int | Condicional | O ID de transação do Tap on Phone do pagamento original. **Obrigatório apenas** quando o `transactionType` for `REFUND` ou `CANCEL`. |
| `paymentMode` | String | Não | Especifica o método de pagamento. O padrão é `Card`. Valores aceitos: `Card`, `Link` (se suportado pela configuração do seu lojista). |
| `externalTransactionReference` | String | Não | O ID de referência do seu sistema interno para este pedido. Se fornecido, o aplicativo anexa esta string ao recibo da transação. |
| `acquirerMetadata` | String | Não | Uma string serializada anexada aos dados da transação e encaminhada para o adquirente do pagamento. Você pode usar isso para relatórios avançados ou lógica de prevenção à fraude acordada com o seu gateway. |

## Parâmetros de Interface do Usuário e Comportamento

Você pode usar esses parâmetros para modificar como a tela de pagamento do Tap on Phone se comporta e aparece para o usuário.

| Nome do Parâmetro | Tipo de Dado | Obrigatório | Descrição |
| :--- | :--- | :--- | :--- |
| `locale` | String | Não | Força um idioma específico para a tela de pagamento. Formate como `LANGUAGE`, `LANGUAGE_COUNTRY` ou `LANGUAGE-COUNTRY` (ex: `en_US`, `fr_FR`). O padrão é o inglês se o idioma solicitado não for suportado. |
| `transitionAuto` | Boolean | Não | Se `true`, o aplicativo Tap on Phone faz a transição automática e devolve o controle ao seu aplicativo imediatamente após a conclusão da transação. Se omitido ou `false`, ele mantém seu comportamento padrão de fechamento manual. |

## Parâmetros de Broadcast

Você usa esses parâmetros ao enviar Broadcasts assíncronos do Android (ex: para verificar o status, forçar a atestação ou consultar transações anteriores).

| Nome do Parâmetro | Tipo de Dado | Obrigatório | Descrição |
| :--- | :--- | :--- | :--- |
| `TransactionId` | String | Condicional | O UUID da transação que você deseja verificar. **Obrigatório apenas** ao enviar um `TRANSACTION_STATUS_BROADCAST`. |
| `ResponseAction` | String | Não | Um nome de ação personalizado que você define. O aplicativo Tap on Phone emitirá seu broadcast de resposta usando exatamente esta string em vez de seu nome de ação padrão. |