Приём платежей на вашем сайте
с использованием банковских карт
и QR кодов Системы Быстрых Платежей
3. Счета
API вызовы раздела «Счета» могут быть использованы для автоматизации выставления счетов, либо для генерации прямых ссылок на оплату для отображения в личном кабинете, отправки в собственных e-mail’ах, в Telegram, Viber, SMS или любым другим способом.
Раздел протокола содержит следующие запросы:
| URI | Назначение | |
|---|---|---|
| 3.1 | /info/invoice/byid/ | Получение данных счёта по его номеру |
| 3.2 | /info/invoice/list/ | Получение истории счетов за период |
| 3.3 | /info/invoice/listcount/ | Получение количества счетов за период |
| 3.4 | /change/invoice/preview/ | Подготовка счёта |
| 3.5 | /change/invoice/send/ | Отправка созданного счёта |
3.1. Запрос получения данных счёта /info/invoice/byid/
Для получения данных счёта необходимо выполнить GET-запрос по URL с GET-параметром id, равным номеру нужного счёта.
| Тип | Формат запроса | ||
| GET | /info/invoice/byid/?id=20140402085214805 | ||
| Параметр | Назначение | ||
| 1. | id | Id счёта, по которому нужно получить данные | |
| Таблица 3.1.1. Параметры запроса | |||
В ответ возвращается объект следующего вида:
| Тип | Формат ответа | ||
| Параметр | Назначение | Допустимые значения | |
| 1. | id | Уникальный номер счёта | Строка из символов 0-9 |
| 2. | status | Статус заказа | Строковые значения created, sent, paid, expired |
| 3. | pay_amount | Сумма счёта | Число, разделитель дробной части – точка |
| 4. | clientid | Идентификатор клиента | Строка, любые буквы и цифры |
| 5. | orderid | Номер заказа | Строка, любые буквы и цифры |
| 6. | service_name | Наименование услуги | Строка, любые буквы и цифры |
| 7. | client_email | E-mail клиента | Строка, корректно записанный e-mail |
| 8. | client_phone | Телефон клиента | Строка, любые буквы и цифры |
| 9. | expiry_datetime | Счёт действует до | Дата в формате YYYY-MM-DD HH:MM:SS |
| 10. | created_datetime | Дата создания счёта | Дата в формате YYYY-MM-DD HH:MM:SS |
| 11. | paid_datetime | Дата создания счёта | Дата в формате YYYY-MM-DD HH:MM:SS |
| Таблица 3.1.1. Параметры ответа на запрос | |||
Пример ответа на запрос:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[ { "id" : "20110115085347329", "clientid" : "Ivanov Ivan Ivanovich", "orderid" : "1337", "service_name" : "Document delivery", "client_email" : "ivanov@ivan.ivanovich.com", "client_phone" : "+79254973590", "created_datetime" : "2011-01-15 08:53:47", "paid_datetime" : "2011-01-16 14:12:00", "expiry_datetime" : "2011-01-19 00:00:00", "pay_amount" : "1205.98", "status" : "paid" } ] |
3.2. История счетов /info/invoice/list/
Данный запрос позволяет получить список счетов за указанный период. Для удобства вывода в таблицу можно указать максимальное число объектов в выборке и пропустить первые сколько-то значений. Также, указав статусы, можно выбрать счета только с определёнными статусами. Счета выводятся в порядке от самого нового к самому старому.
| Тип | Формат запроса | ||
| GET | /info/invoice/list/?status[]=paid&start_date=2014-04-15&end_date=2014-04-25&from=30&limit=10 | ||
| Параметр | Назначение | ||
| 1. | status[] | Выбрать счета только с указанными статусами, может принимать значения sent, paid, expired. | |
| 2. | start_date | Выбрать счета, выставленные после даты в формате YYYY-MM-DD | |
| 3. | end_date | Выбрать счета, выставленные до даты в YYYY-MM-DD | |
| 4. | from | Пропустить N результатов в начале выборки | |
| 5. | limit | Выдавать не более указанного числа результатов | |
| Таблица 3.2.1. Параметры запроса | |||
В ответ возвращается массив объектов формата 3.1.1. Пример ответа:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[ { "id" : "20140415042846859", "status" : "expired", "pay_amount" : "5999.00", "clientid" : "Кристина Бушуева", "orderid" : "3946", "service_name" : "null", "client_email" : "hidden@open.ru", "client_phone" : "null", "expiry_datetime" : "2014-04-19 00:00:00", "created_datetime": "2014-04-15 04:28:46", "paid_datetime" : "null" }, … ] |
Приведённый в примере запрос найдёт только оплаченные счета, выставленные в период от 15 апреля 2014 года до 25 апреля 2014 года, отбросит первые 30 результатов и выведет следующие 10. Если оплаченных счетов в этот период окажется менее 30, запрос вернёт пустой массив.
3.3. История счетов /info/invoice/listcount/
Данный запрос возвращает количество счетов за указанный период. Запрос возвращает данные разбитые по статусам счетов sent, paid, expired. Указав статусы, можно подсчитать счета только с определёнными статусами. Для получения данных необходимо выполнить GET-запрос со следующими параметрами.
| Тип | Формат запроса | ||
| GET | /info/invoice/listcount/?status[]=expired&status[]=sent&status[]=paid&start_date=2014-04-15&end_date=2014-04-25 | ||
| Параметр | Назначение | ||
| 1. | status[] | Подсчитать счета только с указанными статусами, может принимать значения sent, paid, expired. | |
| 2. | start_date | Выбрать счета, выставленные после даты в формате YYYY-MM-DD | |
| 3. | end_date | Выбрать счета, выставленные до даты в YYYY-MM-DD | |
| Таблица 3.3.1. Параметры запроса | |||
В ответ возвращается составной объект следующего вида:
- Массив счетов, сгруппированный по статусам.
- Полный счетчик всех счетов с учетом фильтров.
| Тип | Формат ответа | |
| Параметр | Назначение | |
| 1. | statuses | Массив, сгруппированный по различным статусам, состоящий из элементов [status=>”value”,count=>”value”] |
| 2. | fullcount | Полное количество платежей |
| Таблица 3.3.2 Параметры ответа на запрос | ||
Пример ответа на запрос:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "statuses": [ {"status":"paid","count":"7"}, {"status":"expired","count":"9"}, {"status":"sent","count":"1"} ], "fullcount": [ {"count":"17"} ] } |
3.4. Подготовка счёта /change/invoice/preview/
Этот запрос создаёт по переданным параметрам оплаты счёт и генерирует для отображения в виде предварительного просмотра html-код письма счёта.
| Тип | Формат запроса | |
| POST | /change/invoice/preview/ | |
| Параметр | Назначение | |
| 1. | pay_amount | Сумма заказа к оплате |
| 2. | clientid | Идентификатор клиента |
| 3. | orderid | Номер заказа |
| 4. | service_name | Наименование услуги |
| 5. | client_email | e-mail адрес клиента |
| 6. | client_phone | Телефон клиента |
| 7. | expiry | Срок действия счёта в формате YYYY-MM-DD (не включительно) |
| 8. | token | Токен безопасности. |
В ответ на данный запрос возвращается объект с полями invoice_id, содержащим уникальный номер созданного счёта, invoice_url , полный URL данного счёта, и invoice, где находится HTML-код предпросмотра e-mail сообщения, которое будет выслано клиенту:
|
1 2 3 4 5 |
{ "invoice_id" : "20120229133742255", "invoice_url' : 'https://pay.example.com/bill/20120229133742255", "invoice" : "<HTML><HEAD><META http-equiv=Content-Type ..." } |
Созданному счёту назначается служебный статус created. Счета с этим статусом не возвращаются в запросе истории счетов.
Плательщику можно передать адрес счёта из invoice_url , по любому каналу (почта, сервисы сообщений и т.п.). При переходе по этому адресу плательщик попадёт на страницу оплаты данного счёта для ввода реквизитов карты.
3.5. Отправка счёта клиенту /change/invoice/send/
Данный запрос отправляет клиенту письмо, созданное предыдущим запросом.
| Тип | Формат запроса | |
| POST | /change/invoice/send/ | |
| Параметр | Назначение | |
| 1. | id | Идентификатор созданного счёта, письмо по которому необходимо отправить. |
| 2. | token | Токен безопасности. |
Результатом данного запроса будет объект
|
1 2 3 |
{ "result" : "success" } |
в случае, если отправка произошла успешно, и объект ошибки, если письмо отправить не удалось.
Запросы 3.* и личный кабинет платежной платформы
Ниже приведен скриншот поясняющий применение запросов данного раздела на примере личного кабинета.

Личный кабинет — Раздел счета
и сразу получите доступ в личный кабинет