> 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 %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.4p.finance/webhook/entendendo-o-fluxo-das-notificacoes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
