Proconsool, Ээээ... Я сразу не понял проблемы :)
Недавно делал приём платежей для одного сайта через ЮКассу. Там я так и сделал - передавал в url. Затем уже проверял статус.
Хочу спросить, а чем вас агрегаторы не устраивают? Комиссия высокая?
Недавно делал систему приёма пожертвований для одной НКО, ещё свежи воспоминания :)
Всё зависит от того, надо ли в вызывающем коде реагировать на ошибки. Бывает так, что не важно почему данные не получены - ошибка ли какая-то или просто данные не найдены.
По вопросу не очень понятно в каком объеме нужно контролировать процесс поиска извне. Возможно, есть смысл задействовать события? В классе Search создаёте нужные события, по мере надобности их вызываете. А модель на них подписывается и, соответственно, получает уведомления. Например, вызываем событие FileVerifed для каждого проверенного файла - модель у себя агрегирует статистику и выводи пользователю.
Недавно делал приём платежей для одного сайта через ЮКассу. Там я так и сделал - передавал в url. Затем уже проверял статус.