обычно путь следующий
1. эндпоинт создания запроса на оплату, по нему ты понимаешь кто из твоих клиентов инициировал оплату и на какую сумму, клиент стучит к тебе на сервер с этим запросом
2. ты запрашиваешь создание новой операции оплаты у процессора, он возвращает линк редиректа на форму ввода денег и идентификатор транзакции.
3. отдаешь этот урл клиенту, переводишь его туда, идентификатор транзакции пишешь себе в базу, накидываешь статус новый или как тебе будет удобнее.
4. клиент оплачивает суммы, далее в зависимости от настроек системы клиент редирекетится на ту страницу, которая указана у тебя, для отображения что хорошо или неудачно прошла его операция.
5. любое изменение по статусам оплаты процессор шлет на твои коллбеки, ты получаешь их и обрабатываешь по своей бизнес логике, у тебя есть идентификатор транзакции, который ты себе записал и статус новый, далее ты переводишь его в статус успешного или не успешного состояния.
ЗЫ: у процессоров бывает статус отсроченного списания денежных средств у клиента, что-то из серии паймент пендинг, это означает, что деньги на его счете заблокированы на запрошенную сумму, но сам перевод будет осуществлен позднее, это банковские приколы. Соответственно такую логику тоже стоит учитывать.
Надеюсь эти общие слова про оплаты полностью ложатся на кейс яндекс-кассы, удачи.