> For the complete documentation index, see [llms.txt](https://docs.4p.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.4p.finance/webhook/entendendo-o-fluxo-das-notificacoes.md).

# Entendendo o fluxo das notificações

Esta página tem como objetivo apresentar as notificações ( webhook ). Este recurso está disponível na API de sua conta **4P Finance** e permite visualizar os POSTs que a **4P Finance** dispara para a URL de retorno definida pelo integrador. Este POST contém apenas uma informação: um token de notificação.

Outras informações sobre o processo de definição da URL de notificação e a mecânica envolvendo a consulta de detalhes de uma notificação podem ser observadas na página [<mark style="color:blue;">Obtendo dados de notificações.</mark>](/webhook/obtendo-dados-de-notificacoes.md)

## Conhecendo o fluxo de notificações

Assim que é enviado com *Sucesso (200)* para sua URL de retorno, não significa, por si só, que o fluxo ocorreu completamente. Quando você receber o POST, precisará consultar as informações dessa notificação.

{% hint style="danger" %}
Atenção! O POST que a **4P Finance** envia para a sua URL de retorno **não contém os dados da transação, mas apenas o token de notificação.** Todas as informações sobre a referida transação serão retornadas assim que você consumir o endpoint `GET /notification/:token.`
{% endhint %}

O processo de notificação funciona como uma "via de mão dupla", ou seja, será realizada uma requisição POST para a sua URL de retorno após confirmado o pagamento do PIX, em seguida, o seu sistema, em posse do token de notificação, envia uma requisição de consumo ao endpoint GET `/pix/notification/:token`, em que `:token` é o token de notificação contido no POST enviado.

O fluxo é determinado pela seguinte ordem:

1. A 4P Finance enviará uma requisição HTTP POST para a URL de callback (webhook) informada no momento da criação da transação.

Essa notificação é disparada automaticamente após:

#### On-ramp:

1. Após a confirmação do pagamento; e
2. Após a confirmação do envio das criptomoedas na blockchain.

#### Off-ramp:

1. Após a confirmação do recebimento das criptomoedas.

O POST conterá apenas um token de notificação, permitindo que seu sistema valide e processe o status final da operação de forma segura e automatizada.

Assim que você receber a requisição POST, realize uma requisição `GET` para a rota `/notification/:token`, em que `:token` será o token de notificação que enviamos para você.

> <mark style="color:blue;">Ao realizar novas requisições</mark> <mark style="color:blue;"></mark><mark style="color:blue;">`GET`</mark> <mark style="color:blue;"></mark><mark style="color:blue;">para</mark> <mark style="color:blue;"></mark><mark style="color:blue;">`/notification/:token`</mark><mark style="color:blue;">, você receberá atualizações sobre a transação sempre que houver mudanças, como por exemplo no status:</mark> <mark style="color:blue;"></mark><mark style="color:blue;">`pending`</mark><mark style="color:blue;">,</mark> <mark style="color:blue;"></mark><mark style="color:blue;">`processing`</mark><mark style="color:blue;">,</mark> <mark style="color:blue;"></mark><mark style="color:blue;">`success`</mark> <mark style="color:blue;"></mark><mark style="color:blue;">ou</mark> <mark style="color:blue;"></mark><mark style="color:blue;">`error`</mark><mark style="color:blue;">.</mark>

{% hint style="warning" %}
**Importante!** Se o seu sistema consulta o token enviado, consideramos que a notificação foi realizada com sucesso. Caso não consulte, tentaremos novamente por até 05 dias.

Ou seja, se houver uma requisição ao endpoint `GET /notification/:token,` entenderemos que você recebeu o POST com o token de notificação e que o consultou, recebendo como resposta todos os dados informativos sobre a confirmação da transação.
{% endhint %}

## Segurança

Para garantir a segurança da comunicação entre os servidores, é obrigatório que a sua URL de callback (webhook) utilize o protocolo HTTPS.

**As notificações são enviadas a partir dos seguintes IPs de saída:**

44.196.63.157

Recomendamos que você configure sua infraestrutura para aceitar requisições apenas desse IP (allowlist), garantindo que somente nossos servidores possam acessar o seu endpoint.

Recomendamos fortemente que o seu sistema:

* Gere um token único por transação no seu backend;
* Inclua esse token como parâmetro na URL de notificação (notification\_url) no momento da criação da transação;
* Utilize esse token para validar a autenticidade das notificações recebidas via POST;
* Valide que a requisição foi originada do IP informado.

Dessa forma, ao receber uma notificação da 4P Finance, seu sistema poderá:

* Confirmar que a requisição foi originada de nossos servidores;
* Validar o token recebido e garantir que a requisição corresponde exatamente à transação esperada.

**Exemplo de URL webhook (notification\_url):**

{% hint style="info" %}
`https://webhook.minhaempresa.com.br/pix/?custom_id=12345&seu-token=eae1fe563265167f8d88aec8cd4a7609`
{% endhint %}
