vb.net – Receber Webhook – Stack Overflow em Português

Tenho um sistema em VB.NET onde preciso receber webhook do sistema financeiro que gera cobranças e recebe pagamentos. Toda integração de API já está funcionando com esse serviço, preciso apenas receber o webhook a cada alteração de status de transações para fazer os procedimentos no meu banco de dados e assim não ter que ficar consultando cada transação de x em x tempo.

A documentação deles diz:
“Webhook Transacional
Esse webhook é acionado e envia uma notificação via POST a cada alteração do status de uma transação. Ele é aplicado para todas as formas de pagamento e compreende todo o ciclo de vida de uma transação.”

Nunca desenvolvi o recebimento de webhooks e ao pesquisar sobre, fiquei com algumas dúvidas.

Na integração com a API de pagamentos, ao criar uma nova cobrança por exemplo, envio um POST para a API.
Ao consultar uma cobrança, envio um GET.
Tudo isso utilizando WebRequest.

Para o Webhook, é possível fazer da mesma forma, e ao invés de enviar, receber os POST em uma página com o WebRequest?

Esse é um exemplo de estrutura de código que utilizo para enviar um POST:

' ENVIO DA REQUISIÇÃO E OBTENÇÃO DO RETORNO
Public Sub SendRequest(uri As Uri, jsonDataBytes As Byte(), contentType As String, method As String, requisicao As String)

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12

    Dim request As WebRequest

    request = WebRequest.Create(uri)
    request.ContentLength = jsonDataBytes.Length
    request.ContentType = contentType
    request.Method = method
    request.Headers.Add("X-API-KEY", buscaChaveAPIProducao())
    'request.Headers.Add("X-API-KEY", buscaChaveAPITeste())

    Using requestStream = request.GetRequestStream

        requestStream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
        requestStream.Close()

        Try

            Using responseStream = request.GetResponse.GetResponseStream
                Using reader As New StreamReader(responseStream)

                    Dim objResponse As Object = reader.ReadToEnd()

                End Using
            End Using

        Catch ex As WebException
        End Try

    End Using

End Sub