A polling job might ask an ERP every 10 minutes for every order updated since its last successful run. It needs no public endpoint, because every connection starts from your side, and a failed run is simply retried at the next interval. That makes it a dependable choice for older systems that offer no webhooks.
The costs are delay and API quota. An event can wait a full interval before anyone sees it, and every check counts against the source system's rate limits whether or not anything changed. Many well-built integrations use webhooks for speed and a scheduled poll to catch anything the webhooks missed.