# WebHooks & Notificações

Webhooks (também conhecidos como HTTP Callbacks) são uma forma de se registrar para receber informações úteis em uma URL específica de sua escolha.&#x20;

Quando ocorre uma alteração no estado de um recurso dentro das plataformas da IOPAY (por exemplo, uma transação é aprovada com sucesso), um evento é gerado por essa ocorrência e imediatamente enviamos uma request do tipo POST para as URL cadastrada na sua conta digital. \
\
Estes disparos automáticos são para informar a criação ou alteração de uma transação de pagamento processada com IOPAY. <br>

**Para utilizar a notificação de eventos você precisa:**\
\
&#x20;\- Implementar o seu sistema de recebimento de notificações\
&#x20;\- Cadastrar as URLs desse sistema na IOPAY, através da sua conta digital IO.\
&#x20;\- Quando ocorrer uma ação ou atualização de status nas transações enviadas para a IO, as notificações serão disparadas de acordo com os webhooks cadastrados

### Parâmetros recebidos por WebHook

| Parâmetro     | Exemplo                          | Descrição                                                                                                      |
| ------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| id            | 75f9451f3bcd49ab9710bfa7026e4a62 | ID da transação que esta sendo informada                                                                       |
| reference\_id | 321                              | ID da sua aplicação (o mesmo reference\_id enviado na integração, que reflete o id do pedido na sua aplicação) |

### Exemplo de Request da IOPAY para a sua Aplicação &#x20;

#### application/json

POST

```json
{
    "id":"75f9451f3bcd49ab9710bfa7026e4a62",
    "type":"transaction.succeeded",
    "status":"succeeded",
    "reference_id":"414"
}
```

### &#x20;Como usar a atualização por eventos e WebHooks da IO

O evento é disparado à partir da estrutura da IO para o sua aplicação, fornecendo os três parâmetros acima.\
\
Você deverá receber esse evento e realizar uma chamada para obtenção da atualização da transação. Ou seja, a IO avisa a sua aplicação, através do WebHook que houve alteração para determinada transação (id) e sua aplicação deve acessar a endpoint específica para obter detalhes de uma transação (com o id recebido), para então checar a mudança de status ocorrida.

Para obter detalhes de uma transação pelo id da mesma, utilize a endpoint "[Recupera uma transação](https://docs-api.iopay.dev/#a32c0609-aebc-441a-be3c-55fdada77efa)"

{% embed url="<https://docs-api.iopay.dev/#a32c0609-aebc-441a-be3c-55fdada77efa>" %}

## Erros no disparo de eventos

O evento é disparado e caso encontre falha na execução do request ou falha no status code da sua aplicação (status code diferente de 200), o webbook fará mais 3 tentativas, com intervalo de tempo entre elas.

## URL Custom

Para determinar para qual URL a IOPAY deve direcionar os eventos, acesse a Conta Digital e navegue no menu principal até a opção:

*Configurações > Transações Online*&#x20;

Desça até a porcão destacada na imagem abaixo abaixo:

![](https://3158858405-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MVqdGyCj0dzYpV82tZ_%2F-McPQf8cxJpot_6o4cqw%2F-McQrbrt63nWhwRc9AY_%2Fprint_online_3.jpg?alt=media\&token=decb0ee8-db6c-44aa-bb82-bd4779f80089)

Basta Informar a URL da aplicação para qual a IOPAY fará disparos de notificação no campo **"URL de notificação (HTTPS)"** e clicar no botão Salvar Alterações.

{% hint style="success" %}
**Exemplo**\
\&#xNAN;*<https://minhaloja.com.br/loja/ReceivePaymentStatusChange>*
{% endhint %}

{% hint style="warning" %}
Apenas URL´s com protocolo seguro HTTPS são permitidas
{% endhint %}
