Normalmente um webhook é uma rota comum da sua api acionada via POST (a maioria que trabalhei é assim), é comum que ela esteja em uma faixa de rotas que não requer autenticação para facilitar que outros sistemas.
Vamos supor que um sistema que você está integrando fez uma mudança de status em um pedido, e no seu sistema você precisa fazer algo em relação a isso. O webhook pode fazer o papel desse "trigger". O sistema que realizou a mudança, faz um POST em uma rota como:
POST: /pedido/12345678/status
{
"status": "faturado"
}
A partir disso, seu sistema faz algo em relação a isso, por exemplo, adicionar em uma fila para processamento.
Dependendo do sistema, é possível que junto a chamada da rota venha também algum identificador do sistema "solicitante", tipo um token.
POST: /pedido/12345678/status?API_TOKEN=53464erw6e54rwsdf2we4we4r
{
"status": "faturado"
}
Isso facilita em descobrir quem é o solicitante com mais facilidade, e se tem autorização para tal. Mas claro, para questões de segurança existem outras questões que precisam ser consideradas.