# Ouvinte webhook 
Ouvinte webhook é o código de programa que permite receber webhooks acionados
em um endereço URL especificado, <a href="/webhooks/overview/#section/Webhook-
listener/Generation-of-signature">gerando uma assinatura</a> e <a
href="/webhooks/overview/#section/Webhook-listener/Sending-responses-to-
webhook">enviando uma resposta</a> para o servidor webhook Xsolla.
<div class="note">
<p><strong>Observação</strong></p>
<p>Você pode usar a <a href="https://developers.xsolla.com/pt/sdk/php/">biblioteca Pay Station PHP SDK</a>, que contém classes prontas para processar webhooks.</p>
</div>
<!-- IMPORTANT! Changing the list of IP addresses should be coordinated with the administrators. Request for Director of Infrastructure and IT approval in the ticket for changing the IP address list. -->
No lado do aplicativo, implemente o recebimento de webhooks dos seguintes
endereços IP:
- `185.30.20.0/24`
- `185.30.21.0/24`
- `185.30.22.0/24`
- `185.30.23.0/24`
- `34.102.38.178`
- `34.94.43.207`
- `35.236.73.234`
- `34.94.69.44`
- `34.102.22.197`

Se você integrou o produto <a href="/doc/login/">Login</a>, adicione também o
processamento de webhooks dos seguintes endereços IP:
- `34.94.0.85`
- `34.94.14.95`
- `34.94.25.33`
- `34.94.115.185`
- `34.94.154.26`
- `34.94.173.132`
- `34.102.48.30`
- `35.235.99.248`
- `35.236.32.131`
- `35.236.35.100`
- `35.236.117.164`

Limitações:
- Não deve haver várias transações bem-sucedidas com o mesmo ID no banco de dados
do aplicativo.
- Se o ouvinte do webhook recebeu um webhook com um ID que já existe no banco de
dados, você precisará retornar o resultado do processamento anterior dessa
transação. Não é recomendável creditar o usuário com uma compra duplicada e
criar registros duplicados no banco de dados.

