En webhook är ett sätt för två system att prata med varandra automatiskt. I stället för att din tjänst hela tiden ska fråga "är det klart nu?" vänder man på det: den andra tjänsten skickar själv ett meddelande i samma ögonblick som något händer. Meddelandet är ett vanligt HTTP-anrop till en adress som du har angett i förväg.
Skillnaden mot att fråga själv
Utan webhooks måste ditt system anropa ett API med jämna mellanrum för att se om ett svar har kommit. Det kallas polling och innebär massor av anrop som oftast inte ger något nytt. En webhook skickas bara när det verkligen finns något att berätta, och den kommer direkt. Det är både snabbare och lättare för båda systemen.
Vad den brukar innehålla
Ett webhook-anrop bär med sig en liten mängd data om det som hände, till exempel att en verifiering lyckades och vilket referensnummer den hade. Din server tar emot anropet, läser innehållet och svarar med en statuskod så att avsändaren vet att meddelandet kom fram.
Att det verkligen kommer från rätt avsändare
Eftersom en webhook är ett anrop utifrån till din server behöver du kunna lita på det. Det vanliga är att avsändaren signerar anropet med en hemlig nyckel, eller använder en API-nyckel, så att du kan räkna efter att innehållet inte har ändrats på vägen och att det inte kommer från någon annan. Utan den kontrollen skulle vem som helst kunna skicka ett falskt "godkänd"-meddelande till din server.