# Parâmetros de Resposta

Esta página de referência lista todos os parâmetros de saída (extras do intent) retornados pelo aplicativo Tap on Phone.

Ao iniciar um intent usando a API Activity Result do Android, o aplicativo Tap on Phone retorna um código de resultado (`RESULT_OK` ou `RESULT_CANCELED`) junto com um objeto `Intent` contendo esses campos de dados.

## Parâmetros de Sucesso (RESULT_OK)

Quando uma operação é concluída sem um erro fatal do sistema ou cancelamento pelo usuário, o aplicativo Tap on Phone retorna `Activity.RESULT_OK`. Você extrai os seguintes parâmetros dos dados do intent retornado para registrar a transação e gerar recibos.

<Callout type="warning">

`RESULT_OK` indica que o app Tap on Phone processou a solicitação com sucesso. Isso **não** significa que uma transação financeira foi aprovada. Sempre verifique o parâmetro `status` para determinar o resultado financeiro real.

</Callout>

### Status da Transação

| Nome do Parâmetro | Tipo de Dado | Descrição |
| :--- | :--- | :--- |
| `status` | String | O status final definitivo da transação financeira. Os valores são `APPROVED` ou `DECLINED`. |
| `authorized` | Boolean | Um booleano de conveniência derivado do campo `status`. Retorna `true` se aprovada, `false` se negada. |
| `detailedStatus` | String | O status interno detalhado da transação. *Nota: Não use isso para verificar o status final de aprovação, pois pode refletir um estado temporário.* |
| `declineError` | String | O código de erro do sistema se a transação for negada. |
| `declineCause` | String | A descrição legível do motivo da recusa. |

### Identificadores

| Nome do Parâmetro | Tipo de Dado | Descrição |
| :--- | :--- | :--- |
| `receipt` | String | O identificador único principal usado para buscar dados da transação no backend. |
| `transactionId` | Int | O ID interno do Tap on Phone para a transação. Você deve salvar isso se pretender realizar um estorno, cancelamento ou conclusão de pré-autorização posteriormente. |
| `userId` | Int | O identificador técnico do usuário mapeado para a sessão atual. |
| `merchantId` | Int | O identificador único do Tap to Pay para o lojista. |
| `terminalId` | String | O ID da Carteira/Terminal do dispositivo móvel. |
| `uuid` | String | ID único para o processo atual; não use para verificações de status final. |

### Dados Financeiros

| Nome do Parâmetro | Tipo de Dado | Descrição |
| :--- | :--- | :--- |
| `amount` | Long | O valor total da transação em centavos (ex: `1200` para \$12.00). |
| `tip` | Long | O valor da gorjeta em centavos. |
| `currency` | String | O AlphaCode da moeda ISO 4217 (ex: `EUR`, `USD`). |
| `date` | String | A data e hora da transação. |

### Detalhes de Cartão e EMV

| Nome do Parâmetro | Tipo de Dado | Descrição |
| :--- | :--- | :--- |
| `scheme` | String | A rede de pagamento usada (bandeira). Valores possíveis incluem: `Visa`, `Mastercard`, `Amex`, `CB`, `Discover`, `DinnersClub`, `Elo`, `Conecs`, `Pago`, `Bankaxept`. |
| `mode` | String | O modo de pagamento. Os valores são `Contactless` e `Link`. |
| `pan` | String | O Primary Account Number (PAN) mascarado (ex: `************1234`). |
| `aid` | String | O ID da Aplicação EMV selecionada. |
| `applicationLabel` | String | O rótulo legível da aplicação EMV selecionada. |
| `authMode` | String | O modo de autorização EMV. |
| `authCode` | String | O código de autorização EMV gerado pelo emissor. |
| `transactionType` | String | O valor do Tipo de Transação EMV (Tag 9C). (`00` para Compra/Pré-autorização, `20` para Estorno, `22` para Cancelamento). |
| `completionMode` | String | Indica o modo de conclusão da transação. Os valores são `AUTO`, `PREAUTH` ou `PENDING`. |

### Dados do Recibo

| Nome do Parâmetro | Tipo de Dado | Descrição |
| :--- | :--- | :--- |
| `formatedString` | String | Uma string de texto simples pré-formatada contendo o layout completo do recibo, pronta para impressão ou exibição. |
| `receiptUrl` | String | Uma URL única que hospeda o recibo digital para o cliente. |
| `cancellationExpiryDate` | String | A data e hora máximas antes das quais você pode cancelar o recibo. Após esta data, você deve processar um estorno em vez disso. |

### Parâmetros Descontinuados

| Nome do Parâmetro | Tipo de Dado | Descrição |
| :--- | :--- | :--- |
| `latitude` | String | Sempre retorna `null`. Programado para remoção em versões futuras. |
| `longitude` | String | Sempre retorna `null`. Programado para remoção em versões futuras. |

## Parâmetros de Erro (RESULT_CANCELED)

Se o usuário abortar manualmente a transação (ex: pressionando o botão de voltar) ou se o sistema encontrar um erro que impeça a conclusão da transação, o aplicativo Tap on Phone retorna Activity.RESULT_CANCELED.

Se um erro causou o cancelamento, os dados do intent contêm os seguintes campos. Se o intent não contiver esses campos, isso indica um cancelamento manual do usuário.

| Nome do Parâmetro | Tipo de Dado | Descrição |
| :---- | :---- | :---- |
| `errorCode` | String | O código de erro específico de 6 dígitos que detalha a falha (ex: 10-2110). Consulte a página [Result Codes and Errors](/pt/get-tap-on-phone/reference/result-codes-and-errors) para obter uma lista completa. |
| `errorName` | String | O nome técnico do erro (ex: `BackendTimeout`). |
| `errorMessage` | String | Uma mensagem descritiva explicando o erro. |