# Visa

Bem-vindo à documentação da API de Alerta de Chargeback da Visa.

### Descrição

A API de Alerta de Chargeback da Visa envia notificações para informar transações em risco de se tornarem chargebacks. No caso da Visa, o estorno é realizado automaticamente pela adquirente, não sendo necessária nenhuma ação por parte do cliente. O alerta serve apenas como informação.

***

### Integração do Alerta de Notificação

Para integrar a API de Alerta de Chargeback, você deve criar um endpoint que será capaz de receber as notificações de chargebacks enviadas pela nossa API. Além disso, é possível configurar quais campos serão recebidos no alerta acessando **Configurações -> Empresa** dentro da plataforma.

#### Fluxo do Alerta:

1. **Recebimento do Alerta**: Nossa API enviará uma notificação para o seu endpoint sempre que uma transação estiver em risco de virar chargeback. Os campos recebidos podem ser configurados conforme sua necessidade.
2. **Ação Necessária**: Nenhuma ação é necessária por parte do cliente, pois o estorno é realizado automaticamente pela adquirente.
3. **Envio do Status**: Caso necessário, o cliente pode informar o status para fins de acompanhamento ou registro.

***

#### Configurando o Endpoint para Receber Alertas:

Você deve implementar um endpoint com as seguintes especificações para receber os alertas de chargeback da Visa:

* **Método:** `POST`
* **URL**: \[A URL do seu endpoint deve ser configurada em **Configurações -> Empresa** dentro da plataforma]
* **Headers:**
  * `Content-Type: application/json`
  * `ClientId`: `"ClientId"` disponível em **Configurações -> Empresa** dentro da plataforma
  * `ClientKey`: `"ClientKey"` disponível em **Configurações -> Empresa** dentro da plataforma

#### Exemplo de Corpo da Requisição que você receberá:

Os campos a seguir são exemplos de dados que podem ser recebidos no alerta. A seleção de quais campos você receberá pode ser feita em **Configurações -> Empresa** dentro da plataforma:

```json
{ 
     "Id": "7324713248",
     "DescriptorName": "SITUSPAY",
     "PaymentType": "VISA",
     "Arn": "14375959682088771139583",
     "CardBin": "123456",
     "CardLastFour": "1234",
     "CaseAmount": 20.99,
     "CaseCurrency": "BRL",
     "ReceivedDate": "2023-09-01",
     "Type": "DISPUTE",
     "ReasonCode": "10.4",
     "Mcc": "6300",
     "TransactionDate": "2023-08-23",
     "TransactionAmount": 46.24,
     "TransactionCurrency": "BRL",
     "AuthorizationCode": "948980",
     "InstallmentNumber": "2",
     "Issuer": "BANCO DO BRASIL SA",
     "Country": "BRAZIL",
     "Origin": "national",
     "Caid": "4538974583"
}
```

#### Descrição dos Campos que você receberá:

| Nome                | Tipo                | Descrição                                                                                      | Pode ser vazio? |
| ------------------- | ------------------- | ---------------------------------------------------------------------------------------------- | --------------- |
| Id                  | string              | Identificação única do alerta                                                                  | Não             |
| DescriptorName      | string              | Nome do descritor                                                                              | Não             |
| PaymentType         | string              | Tipo do pagamento (ex: Visa)                                                                   | Sim             |
| Arn                 | string              | Número de referência do adquirente                                                             | Sim             |
| CardBin             | string              | Primeiros 6 dígitos do cartão                                                                  | Não             |
| CardLastFour        | string              | Últimos 4 dígitos do cartão                                                                    | Não             |
| CaseAmount          | number              | Valor do caso                                                                                  | Não             |
| CaseCurrency        | string              | Moeda do caso (ex: BRL, EUR, USD, entre outras)                                                | Não             |
| ReceivedDate        | string (yyyy-MM-dd) | Data do recebimento do alerta                                                                  | Não             |
| Type                | string              | Tipo do caso                                                                                   | Sim             |
| ReasonCode          | string              | Código de razão                                                                                | Não             |
| Mcc                 | string              | Código de categoria do comerciante                                                             | Não             |
| TransactionDate     | string (yyyy-MM-dd) | Data da transação                                                                              | Não             |
| TransactionAmount   | number              | Valor da transação                                                                             | Não             |
| TransactionCurrency | string              | Moeda da transação (ex: BRL, EUR, USD, entre outras)                                           | Não             |
| AuthorizationCode   | string              | Código de autorização                                                                          | Sim             |
| InstallmentNumber   | string              | Número de parcelas                                                                             | Sim             |
| Issuer              | string              | Nome do emissor do cartão                                                                      | Sim             |
| Country             | string              | País do emissor do cartão                                                                      | Sim             |
| Origin              | string              | Usado para identificar se o alerta é nacional ou internacional (ex: national ou international) | Não             |
| Caid                | string              | Identificador interno que a adquirente atribui à empresa                                       | Não             |

> **Nota**: Esses são exemplos de campos que podem ser recebidos. A personalização dos campos é feita em **Configurações -> Empresa** dentro da plataforma.

***

### Envio do Status da Ação Tomada

Embora o estorno seja realizado automaticamente pela adquirente no caso da Visa, você pode informar o status à nossa API para fins de acompanhamento ou registro, caso necessário.

#### Fluxo do Envio do Status:

1. **Envio do Status**: O cliente pode optar por enviar o status à nossa API para fins de acompanhamento ou registro, caso necessário.

***

#### Como enviar o Status da Ação:

* **Método:** `POST`
* **URL:** `https://api.rapidchargeback.com/alerts/update-status/visa`
* **Headers:**
  * `Content-Type: application/json`
  * `ClientId`: `"ClientId"` disponível em **Configurações -> Empresa** dentro da plataforma
  * `ClientKey`: `"ClientKey"` disponível em **Configurações -> Empresa** dentro da plataforma

#### Exemplo de Corpo da Requisição para enviar o Status:

```json
{ 
     "Id": "MFX98K34SKSR34KRJD",
     "Status": "ACCOUNT_SUSPENDED"
}
```

#### Descrição dos Atributos do Status:

| Nome   | Tipo   | Descrição                       |
| ------ | ------ | ------------------------------- |
| Id     | string | Identificação única do alerta   |
| Status | string | Status informando a ação tomada |

#### Status possíveis:

* **ACCOUNT\_SUSPENDED:** Quando a transação foi resolvida.
* **OTHER:** Transação identificada, mas ainda não resolvida.
* **NOTFOUND:** Quando a transação não foi identificada.
