Sending an HTTP POST is trivial. What a webhook service actually sells is everything around the failure: a signature the receiver can verify without trusting the transport, retries that back off without synchronising into a thundering herd, an honest split between what is worth retrying and what is already dead, and enough endpoint health tracking that one broken customer does not become everyone's incident.