На примере сервиса оплаты.
У тебя есть интернет магазин, в котором продаются плющевые медведи.
Пользователь добавил пару медведей в корзину, и магазин показывает ему кнопку "оплатить" от платежной системы.
Для этого сервер делает запрос у внешнему API типа "у нас тут намечается сделка на 149.99, сгенерируйте нам кнопочку "оплатить через mastercard"".
Кнопочка отображается в браузере у клиента. Он на нее нажимает, и переходит на страничку платежной системы (или в попап). До этого все обходилось без коллбеков - ты запросил код кнопки, они его отдали тебе, пользователь увидел кнопочку, нажал и... он же ушел с твоего сайта, и ты не знаешь что он там на сайт платежной системы делает.
А после факта оплаты твоему сайту неплохо бы получить подтверждение, о том, что пользователь действительно оплатил. Или у него денег не хватило, или интернет отрубился, или заснул в процессе покупки, whatever...
Вот для таких случаев ты и указываешь callbackUrl. Адрес на твоем сайте, куда платежная система (или какой-то другой внешний API) можеет прислать своё уведомление. Что оплата прошла успешно, или что все пропало, отменяем.