Покупатель выбирает в он-лайн магазине Мерчанта(merchant_login) товар, магазин подсчитывает сумму Заказа (price) в предпочитаемой Мерчантом валюте(ticker) и посылает запрос посредством платежной ссылки (См. также: Спецификация на платежные ссылки) к серверу http://secure.onpay.ru, на котором расположен сервис Onpay. При этом Мерчант сообщает сервису Onpay за что взимается оплата (pay_for), указывает дополнительные примечания (note), язык формы (ln). Система возвращает серверу Клиента html код формы оплаты, который используется на странице его сайта.
Покупатель выбирает в форме вид платежной системы и приступает к платежу, нажав на кнопку «Продолжить». При этом система Onpay сохраняет информацию о платеже в своей базе данных.
В этот момент, если для Мерчанта включены уведомления по API, произойдет запрос типа «CHECK» к Мерчанту. Делается это для того, чтобы проверить - примет ли Мерчант предстоящий платеж. В запросе будут параметры запросов, позволяющие сделать такой вывод. Если Мерчант ответит что платеж принят не будет, или не ответит, или произойдет какая-нибудь ошибка - платеж будет остановлен.
Если API уведомления для Мерчанта не включены или все прошло хорошо, то в зависимости от типа платежной системы, покупатель либо получит инструкции о порядке проведения платежа, либо перейдет на страницу осуществления оплаты.
После завершения операции в зависимости от ее исхода Покупатель перенаправляется на страницу исполненного платежа (в случае если он осуществил оплату) (url_success), либо на страницу неисполненного (если он отказался от оплаты) (url_fail).
Асинхронно с этим платежная система проводит платеж и по завершении (когда деньги фактически оказываются в Onpay) уведомляет по API Мерчанта (если уведомления включены в «Зеленом» кабинете). Если что-то идет не так, то в течение 72 часов система Onpay будет пытаться уведомить Мерчанта, а потом сдастся. Если уведомления по какой-то причине не было, Мерчант может проставить статус оплаты вручную в Кабинете Продавца.