Async
Жизненный цикл платежа
Все статусы и переходы между ними. Возврат покупателя на return_url и обработка metadata — на отдельной странице.
Все статусы платежа:
| Статус | Что значит |
|---|---|
pending | платёж создан, ждём, что покупатель откроет ссылку и выберет/подтвердит метод |
processing | покупатель начал оплачивать, банковская сессия открыта |
succeeded | банк подтвердил списание. Финальный статус |
failed | банк или покупатель отказали. Финальный статус |
expired | истёк TTL ссылки или банковской сессии. Финальный статус |
cancelled | мерчант или покупатель явно отменили платёж. Финальный статус |
refunded | успешный платёж полностью возвращён. Финальный статус |
Переходы
pending → processing покупатель выбрал метод, открылась банк-сессия pending → expired TTL ссылки истёк, никто не оплатил pending → cancelled мерчант или покупатель отменили processing → succeeded банк подтвердил списание processing → failed банк отклонил processing → expired истёк TTL банковской сессии, банк ничего не вернул succeeded → refunded сумма всех успешных refund'ов покрыла amount
TTL ссылки и TTL банковской сессии — это разные часы.
expires_at относится к нашей платёжной странице (по умолчанию задаётся мерчантом). processing_until относится к банковской сессии и зависит от метода: SBP — 20 минут (требование НСПК), карты — 15 минут, T-Pay и SberPay — 30.Платёж создаётся в pending, проходит через промежуточные состояния и доходит до финального — succeeded, failed, cancelled, expired или refunded. В финальном состоянии платёж больше не меняется (кроме переходов в refunded по успешным возвратам).
После финального статуса покупателя редиректит на return_url с query-параметрами — детали в разделе «Возврат покупателя» страницы API Reference. Произвольные метки на платеже — в разделе «Поле metadata».