Финансовые операции
Данный раздел описывает функции и структуры данных использующиеся при совершении финансовых операций в платежной платформе Velespay.
Запросы осуществляется с помощью GET/POST/PUT/DELETE запросов в кодировке UTF-8 к URL https://api.velespay.com/v1/money/<Название функции>.
Ответ от сервера является JSON объект.
Успешный ответ будет содержать поле result.
Пример:
{ "result": [Массив или Объект] }
Ошибка будет содержать поле error с кодом и сообщением.
Пример:
{ "error": { "code": цифровой код ошибки, "message": текстовое сообщение об ошибке } }
Аутентификация
Все запросы к API должны содержать заголовки для авторизации, параметры передаются в формате JSON и кодировке UTF-8. Каждый запрос вашего сервера к API Velespay должен содержать следующие заголовки и информацию аутентификации:
Заголовки запроса:
Content-Type: application/json; charset=UTF-8 Authorization: Basic Base64(<Ваш Ключ>:<hash всех передаваемых параметров>)
Вы должны создать hash с помощью следующего алгоритма:
- Сгенерировать URL-кодированную строку из всех передаваемых параметров запроса;
- Декодировать URL-кодированную строку;
- Сгенерировать хеш-код на основе <Вашего Пароля>, используя метод HMAC с алгоритмом sha512;
- <Ваш Ключ от API>:<Полученный результат hash> закодировать в формат Base64;
Пример на PHP:
$url = "https://api.velespay.com/v1/money/<Название функции>"; $http_method = "POST";//HTTP метод запроса - GET/POST/PUT/DELETE $user_agent = "Velespay API Client";//Ваш юзер клиент $accessKey = "Ваш Ключ от API"; $secretKey = "Ваш Пароль от API"; $params = array( "lang"=>"en" ); $headers[] = 'Accept: application/json'; $headers[] = 'Content-Type: application/json; charset=UTF-8'; $headers[] = 'Accept-Encoding: UTF-8'; $hash = hash_hmac('sha512', urldecode(http_build_query($params)), $secretKey); $headers[] = 'Authorization: Basic '.base64_encode($accessKey.':'. $hash); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $http_method); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res);
Проверка баланса кошелька
HTTP метод: GET
Функция: Balance
URL: https://api.velespay.com/v1/money/Balance
Доступные необязательные параметры запроса:
lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en currency = Цифровой код валюты по стандарту ISO 4217
Результат выполнения успешного запроса = структура данных Balance.
Выставление счета-фактуры покупателю
Создать счет на оплату для покупателя и автоматически отправить на электронную почту пользователя, от которого вы хотите получить платеж. Пользователь сможет получить информацию о вас, заплатить по выставленному счету, отложить или отклонить оплату.
HTTP метод: GET (Валидация выставления счета-фактуры)
HTTP метод: POST (Выставить счет-фактуру)
Функция: Send_Invoice
URL: https://api.velespay.com/v1/money/Send_Invoice
Параметры запроса:
invoice = номер счета-фактуры, в соответствии с вашей системой ведения учета, максимум 100 символов (обязательный) buyer = покупатель. Телефон: +6531588872, E-mail: [email protected], Wallet: VM123456789, ID Account: 123456789 (обязательный) ВАЖНО!!! Если счет-фактура выставляется клиенту который не зарегистрирован в системе Velespay, указывается E-mail. currency = Цифровой или строковый код валюты по стандарту ISO 4217, Пример: 840 или USD (обязательный) who_fee = кто платит комиссию true - продавец, false - покупатель (по умолчанию) (необязательный) fiscalization = Объект с параметрами фискализации (необязательный) fiscalization.enabled = Печатать фискальные чеки, true - да (по умолчанию), false - нет. fiscalization.cashbox = Идентификатор вашей кассы для отправки чеков, если у вас имеется несколько касс. fiscalization.agent = Признак агента, true - Включает, false - Выключает параметры агента в настройках кассы. Параметры агента должны быть заполнены в настройках кассы. По умолчанию в настройках кассы можно отключить операции агента и при такой операции передать true, тем самым активировать. ВАЖНО!!! Отправка в ККМ / Онлайн-кассу осуществляется после настройки и подключения Услуги «чеки». internal = false - Если счет-фактура выставляется клиенту который не зарегистрирован в системе Velespay, true - клиент зарегистрирован в системе Velespay (необязательный) lifetime = до какого времени возможно оплатить счет, по умолчанию 15 дней. (необязательный) Формат: yyyy-mm-dd'T'HH:MM:ss'Z' Часовой пояс: UTC description = Дополнительная информация которую увидит покупатель (необязательный) payment_method = массив с кодами электронных валют с помощью которых возможно оплатить счет-фактуру (необязательный) поле ps_code по ссылке. Если не указано, то оплатить покупатель сможет любым доступным способом buyer_lang = Код языка ISO 639-1 (На каком языке отправлять сообщения покупателю или отображать страницу оплаты), по умолчанию en (необязательный) lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en (необязательный) send_email = false - без отправки сообщения на почту плательщика, true с отправкой (по умолчанию) (необязательный) product = массив объектов в котором перечисляется Товары/Услуги за которые выставляется счет-фактура (обязательный) product.0.name = Наименование Товара или Услуги (обязательный) product.0.quantity = Количество, по умолчанию 1 (необязательный) product.0.price = Конечная цена за единицу Товара/Услуги, включая НДС и другие сборы (обязательный) ВАЖНО!!! Должен быть положительным числом. product.0.img = Полный URL к небольшой картинке в формате JPG, JPEG, GIF, BMP, PNG (необязательный) product.0.vat = Объект (необязательный) product.0.vat.code = Код ставки НДС (обязательный) none - Без НДС composite - Составная/Комбинированная vat0 - НДС по ставке 0% vat10 - НДС по ставке 10% vat20 - НДС по ставке 20% vat110 - НДС по ставке 10/110 (расчетная ставка) vat120 - НДС по ставке 20/120 (расчетная ставка) vatчисло - иная ставка. Пример: 1) vat18 = 18% 2) vat118 = 18/118 (расчетная ставка) product.0.vat.value = Сумма налога позиции, рассчитывается автоматически (необязательный) ВАЖНО!!! Если указан product.0.vat.code = composite - параметр обязательный product.0.measure = Единица измерения количества предмета расчета, по умолчанию piece (необязательный) piece - поштучно или единицы gram - Грамм kilogram - Килограмм ton - Тонна centimeter - Сантиметр decimeter - Дециметр meter - Метр square_centimeter - Квадратный сантиметр square_decimeter - Квадратный дециметр square_meter - Квадратный метр milliliter - Миллилитр liter - Литр cubic_meter - Кубический метр kilowatt_hour - Киловатт час gigacalorie - Гигакалория day - Сутки (день) hour - Час minute - Минута second - Секунда kilobyte - Килобайт megabyte - Мегабайт gigabyte - Гигабайт terabyte - Терабайт other - иная единица измерения product.0.payment_method = Признак способа расчета, по умолчанию full_payment (необязательный) full_prepayment - Полная предоплата partial_prepayment - Частичная предоплата advance - Аванс full_payment - Полный расчет partial_payment - Частичный расчет и кредит credit - Кредит credit_payment - Оплата кредита product.0.payment_object = Признак предмета расчета, по умолчанию payment (необязательный) commodity - Товар excise - Подакцизный товар job - Работа service - Услуга gambling_bet - Ставка в азартной игре gambling_prize - Выигрыш в азартной игре lottery - Лотерейный билет lottery_prize - Выигрыш в лотерею intellectual_activity - Результаты интеллектуальной деятельности payment - Платеж agent_commission - Агентское вознаграждение property_right - Имущественные права non_operating_gain - Внереализационный доход insurance_premium - Страховой сбор sales_tax - Торговый сбор resort_fee - Курортный сбор composite - Несколько вариантов another - Другое product.0.excise = Сумма акциза, по умолчанию 0 (необязательный) product.0.country = Трехзначный код страны происхождения товара, например: 156 = Китай или 643 = Россия (необязательный) product.0.declaration_number = Номер таможенной декларации. Не более 32 символов (необязательный) product.0.marking_code = Маркировка товара (необязательный) ВАЖНО!!! передаётся в том виде, как она напечатана на упаковке товара. Параметр является обязательным только для тех магазинов, которые продают товары подлежащие обязательной маркировке. Код маркировки расположен на упаковке товара, рядом со штрих-кодом или в виде QR-кода. sci = Объект с данными редиректов и уведомлений для переопределения значений в личном кабинете (необязательный) sci.success = объект содержащий информацию куда перенаправлять плательщика после удачной оплаты (необязательный) sci.success.url = URL для редиректа (необязательный) sci.success.method = Метод передачи параметров - POST или GET (по умолчанию) (необязательный) sci.fail = объект содержащий информацию куда перенаправлять плательщика после неудачной оплаты (необязательный) sci.fail.url = URL для редиректа (необязательный) sci.fail.method = Метод передачи параметров - POST или GET (по умолчанию) (необязательный) sci.ipn = объект содержащий информацию куда отправлять уведомление об удачной оплате (необязательный) sci.ipn.url = URL для уведомления (необязательный) sci.ipn.method = Метод передачи параметров - POST или GET (по умолчанию) (необязательный)
ВАЖНО!!! При использовании Услуги «чеки» (Решение «чеки», Решение «Кассовое», Решение «Облачное») параметры product передаются на фискализацию (в ваш ККМ или онлайн-кассу) в таком виде как они поступили от вас.
Информация передается в ОФД, налоговую, а также отображается в фискальном чеке покупателя.
Будьте внимательны, ответственность за неправильную передачу параметров несете ВЫ.
Результат выполнения успешного запроса = структура данных TxnInfo.
Отмена выставленного счета-фактуры
HTTP метод: DELETE
Функция: Send_Invoice
URL: https://api.velespay.com/v1/money/Send_Invoice/<ID транзакции>
Необязательные параметры запроса:
lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en
Результат выполнения успешного запроса = структура данных TxnInfo.
Внутрисистемный перевод
Отправка или проверка отправки (предварительный просмотр) средств внутри системы Velespay другому пользователю или между своими кошельками.
HTTP метод: GET (Валидация перевода)
HTTP метод: POST (Отправка средств)
Функция: Send_Money
URL: https://api.velespay.com/v1/money/Send_Money
Обязательные параметры запроса:
receiver = получатель. Телефон: +6531588872, E-mail: [email protected], Wallet: VM123456789, ID Account: 123456789 currency = Цифровой код валюты по стандарту ISO 4217 amount = сумма перевода
Необязательные параметры запроса:
who_fee = кто платит комиссию false = отправитель, true = получатель invoice = идентифицирующий номер, в соответствии с вашей системой ведения учета, максимум 100 символов period = если перевод с кодом протекции, период протекции: от 1 до 30 дней, по умолчанию 0 code = если перевод с кодом протекции, код активации перевода, максимум 20 символов description = Примечание к транзакции lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en
Результат выполнения успешного запроса = структура данных TxnInfo.
Активация платежа
Если внутрисистемный перевод был отправлен с кодом протекции
HTTP метод: PUT
Функция: Send_Money
URL: https://api.velespay.com/v1/money/Send_Money/<ID транзакции>
Обязательные параметры запроса:
code = код активации перевода, максимум 20 символов
Необязательные параметры запроса:
lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en
Результат выполнения успешного запроса = структура данных TxnInfo.
Отмена платежа
Если внутрисистемный перевод был отправлен с кодом протекции
HTTP метод: DELETE
Функция: Send_Money
URL: https://api.velespay.com/v1/money/Send_Money/<ID транзакции>
Необязательные параметры запроса:
lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en
Результат выполнения успешного запроса = структура данных TxnInfo.
Внутрисистемный обмен валюты.
HTTP метод: GET (Валидация обмена валюты)
HTTP метод: POST (Обмен валюты)
Функция: Currency_Exchange
URL: https://api.velespay.com/v1/money/Currency_Exchange
Обязательные параметры запроса:
currency_from = Отдаваемая валюта (Цифровой код валюты по стандарту ISO 4217) currency_to = Получаемая валюта (Цифровой код валюты по стандарту ISO 4217) action = Принимает два значение: sell - продажа amount (будет продана сумма в валюте currency_from) buy - покупка amount (будет куплена сумма в валюте currency_to) amount = сумма
Необязательные параметры запроса:
lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en
Результат выполнения успешного запроса GET = структура данных CurrencyExchange.
Результат выполнения успешного запроса POST = структура данных TxnInfo.
Вывод средств
Вывод средств в стороннюю платежную систему, на банковский счет или дебетовую карту.
HTTP метод: POST
Функция: Withdraw
URL: https://api.velespay.com/v1/money/Withdraw
Обязательные параметры запроса:
ps = код электронной валюты. поле ps_code по ссылке https://api.velespay.com/v1/info/Withdraw?visible=true amount = сумма в зависимости от выбранной валюты: payee = объект с данными получателя, зависит от платежной системы/банка и т.д. payee[wallet] = Номер кошелька или номер дебетовой карты (Пример: VM123xxx, U123xxx, P123xxx и т.п.) payee[email] = Если в сторонней ПС доступна отправка средств по E-mail значит используется данное поле payee[phone] = Если в сторонней ПС доступна отправка средств по номеру телефона значит используется данное поле (международный формат, Пример: +6531588872) для вывода в Qiwi используется данное поле payee[account] = Если указан данный параметр, он будет преобразован в payee[wallet] или payee[email] или payee[phone]
Необязательные параметры запроса:
invoice = идентифицирующий номер, в соответствии с вашей системой ведения учета, максимум 100 символов description = Комментарий который увидит сотрудник финансового отдела. Используется в основном для банковских переводов who_fee = true - комиссия с получаемой суммы, false - комиссия с отправляемой суммы send_email = false - без отправки уведомлений, true с отправкой lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en
Параметры вывода с помощью SWIFT/SEPA (на банковский счет):
Получатель: payee['beneficiary_number'] = Номер паспорта, для компаний регистрационный номер payee['beneficiary_name'] = Полное имя на английском, как в паспорте или регистрационных документах компании payee['beneficiary_name_cyr'] = Имя на кириллице, как в паспорте (ФИО) или регистрационных документах компании (если вывод в страны СНГ) payee['beneficiary_inn'] = ИНН/ИИН/БИН payee['beneficiary_kpp'] = КПП для компаний в России payee['beneficiary_country'] = Страна (гражданство) payee['beneficiary_address'] = Улица, дом, квартира (адрес регистрации) payee['beneficiary_city'] = Город (населенный пункт) payee['beneficiary_region'] = Регион (область, край, республика, и т.п.) payee['beneficiary_zip_code'] = Индекс Банковский счет: payee['bank_currency'] = Валюта счета payee['bank_iban'] = IBAN/Номер счета payee['bank_code_type'] = Тип национального банковского кода, по умолчанию 1 (SWIFT), список смотрите в "Информационные данные" -> "Банковские коды" payee['bank_code'] = Код банка или SWIFT код банка payee['bank_name'] = Название банка payee['bank_country'] = Страна банка payee['bank_city'] = Город банка payee['bank_address'] = Адрес филиала payee['bank_bik'] = БИК для Российских банков payee['bank_correspondent_account'] = Корреспондентский счет для Российских банков payee['bank_sort_code'] = Сорт код или Рутинг номер
Параметры отправки денежного перевода с помощью системы CONTACT (наличные):
Получатель: payee['lang'] = Код языка ISO 639-1 (На каком языке отправлять сообщение/уведомление получателю перевода), по умолчанию en payee[email] = E-mail получателя перевода. Будет отправляться уведомление с данными перевода. payee[phone] = Телефон получателя перевода, необязательное payee[contact_trnPickupPoint] = Код точки выплаты, 4 символа. payee[contact_bName] = ФАМИЛИЯ получателя перевода. payee[contact_bLastName] = ИМЯ получателя перевода. payee[contact_bSurName] = Отчество получателя перевода, необязательное Некоторые страны/точки имеют особенности выплаты перевода и требуют дополнительные параметры: payee[contact_bCity] = Город получателя на английском. payee[contact_bAddress] = Полный адрес получателя на английском.
Результат выполнения успешного запроса = структура данных TxnInfo.
Отмена вывода средств
Отменить возможно только если заявка не завершена или не принята в обработку
HTTP метод: DELETE
Функция: Withdraw
URL: https://api.velespay.com/v1/money/Withdraw/<ID транзакции>
Необязательные параметры запроса:
lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en
Результат выполнения успешного запроса = структура данных TxnInfo.
История транзакций
Получение списка операций или поиск определенной операции
HTTP метод: GET
Функция: Transaction_History
URL: https://api.velespay.com/v1/money/Transaction_History
или
URL: https://api.velespay.com/v1/money/Transaction_History/<ID транзакции>
Необязательные параметры запроса:
receiver = получатель. Телефон: +6531588872, E-mail: [email protected], Wallet: VM123456789, ID Account: 123456789 type = значение или массив типа транзакций (цифровой), список смотрите в "Информационные данные" -> "Типы транзакций" status = значение или массив статуса транзакций (цифровой), список смотрите в "Информационные данные" -> "Статусы транзакций" currency = значение или массив валют (Цифровой код валюты по стандарту ISO 4217), список смотрите в "Информационные данные" -> "Валюты" begin = Начальная дата для выборки транзакций (формат yyyy-mm-dd, пример: 2015-01-10, или UTC формат) end = Конечная дата для выборки транзакций (формат yyyy-mm-dd, пример: 2015-01-10, или UTC формат) page_size = Количество возвращенных транзакций на страницу. Максимальное значение - 50. page_number = Страница, по умолчанию 1 view = all (все), in (входящие), out (исходящие) lang = Код языка ISO 639-1 (для вывода ошибок), по умолчанию en
Результат выполнения успешного запроса = структура данных HistoryInfo.