How do I read data from EventSub callbacks?

Yeah that is the correct way to read “incoming body data” in PHP

As Webhooks/Eventsub/PayPay IPN/other kinds of webhooks, they send a POST request but they don’t send POST data, so you have to read php://input

Related post on the subject

https://lornajane.net/posts/2017/handling-incoming-webhooks-in-php
https://lornajane.net/posts/2008/accessing-incoming-put-data-from-php

If you were building an API you’d have the same “fun” with PUT requests via cURL