Для того чтобы автоматически выставить счет за определенный товар на определенную сумму можно использовать механизм создания ссылок-счетов с использованием API Onpay. А можно просто вручную сделать ссылку через интерфейс Кабинета продавца https://secure.onpay.ru/payment_links - для этого не потребуется никаких специальных знаний.

Параметры

Для получения ссылки (счета) необходимо отправить запрос (GET или POST) на адрес https://secure.onpay.ru/pay/make_payment_link со следующими параметрами:
pay_amount - сумма счета
pay_for - назначение платежа
one_way - форма оплаты одним способом (тикер валюты) (не обязательно)
ticker - тикер валюты оплаты
user_login - адрес платежной формы (обычно тот же, что и логин пользователя)
user_email - адрес электронной почты плательщика (не обязательно)
price_final - комиссию платежной системы взымать с продавца (true или false)
pay_type - конвертировать все платежи в выбранную валюту (1 - да, 2 - нет)
notify_by_api - проверять возможность оплаты через API мерчанта (Если «1» - при оплате мерчант получит запрос через указанный им в зеленом кабинете URL API IN. Если на запрос не будет ответа или ответ будет негативным, оплата не пройдет)
md5 - строка, полученная вычислением MD5 от конкатенации pay_amount, pay_for, ticker, user_login, price_final, pay_type, notify_by_api, api_in_key, разделенных двоеточием (:)
Все параметры, содержащие символы не относящиеся к ASCII должны быть переданы в кодировке utf8.
В случае успеха статус ответа будет 200 и в теле ответа будет сгенерированная ссылка.
В случае неудачи статус ответа будет 400 и в теле ответа будет объяснение причины.
Причины могут быть следующие: неправильный MD5 или ошибки при сохранении счета (зависит от валидации).

Форматы параметров

pay_amount: число, разделитель - точка, будет округлено до 2 знаков после разделителя
pay_for: строка
user_email: строка
ticker: строка, 3-символьное обозначение валюты оплаты(в верхнем регистре)
user_login: строка, логин магазина в системе Onpay)
one_way: строка, 3-символьное обозначение валюты для оплаты одним способом
price_final: булевское значение, значения '1', 'true', 'TRUE', 't', 'T' будут интерпретированы как «да», любые другие - как «нет» (в том числе, к примеру 'True' дает false)
pay_type: 1 или 2, любое другое значение вызовет ошибку
notify_by_api: строка, '1' или '0'
md5 - строка
Все параметры, содержащие символы не относящиеся к ASCII должны быть переданы в кодировке utf8.

Пример GET запроса

https://secure.onpay.ru/pay/make_payment_link?pay_amount=100&pay_for=Order%20342&user_email=user@pochta.ru&ticker=RUR&user_login=onpay&price_final=true&md5=cf653b4c4a7861b2224bd31eb3e3f291&pay_type=1&notify_by_api=true \\

Пример POST запроса

POST https://secure.onpay.ru/pay/make_payment_link {
"price_final"=>"true",
"user_login"=>"onpay",
"notify_by_api"=>"true",
"pay_type"=>"1",
"pay_amount"=>"100",
"ticker"=>"RUR",
"md5"=>"cf653b4c4a7861b2224bd31eb3e3f291",
"pay_for"=>"Order 342",
"user_email"=>"user@pochta.ru"
}