Введение



Мы предоставляем возможность внешним разработчикам программными средствами взаимодействовать с процессингом обмена средств. Одним из способов такого взаимодействия является использование API.

С помощью данных функций можно получить доступ к различным ресурсам системы, например, информацию о платежных направлениях в системе, курсах валют, информацию по конкретной заявке в системе, а также регистрация пользователей, создание заявок и т.д.

Взаимодействие осуществляется с помощью POST или GET запросов в кодировке UTF-8 к URL вида:

/api/1/<Имя метода>/

Ответ от сервера приходит в формате json и обязательно содержит поле status, который говорит о наличии или отсутствии ошибок в выполнении запроса:

  • если status = success к ответу на запрос добавляется поле value, где содержится запрашиваемая информация
  • если status = error к ответу на запрос добавляется поле msg, где содержится текстовое описание возникшей ошибки

Основные статусы заказа:

  • preliminary - клиент переводит средства на наши реквизиты
  • new | frozen - проверяем поступление средств
  • Результат:
    • completed - заказ обработан
    • deleted | error - заказ удален, содержит ошибки

Последовательность создания заказа:

  • directions
  • payment-systems
  • exchange-rate-calculate
  • order-props-get
  • order-create
  • order-validate
  • order-pay-info
  • order-confirm

Обязательные параметры:

  • nonce - Порядковый номер запроса, каждый новый запрос должен быть больше чем предыдущий. Максимальное число 4294967295.
  • akey - API-ключ

Обращение к закрытым методам без наличия ключа skey невозможно.






Методы



Валюты

valutes public

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125


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

/api/1/valutes/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305

Платежные системы

payment-systems public

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125


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

/api/1/payment-systems/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305

Поле value содержит список объектов:
PaymentSytem object Объект 514-985-7700

Направления обменов

directions public

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125


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

/api/1/directions/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305
Поле value содержит массив object:
Directions object Объект Direction

Доступные платежные системы

directions-available public

Получить доступные платежные системы для обмен

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
psid int Идентификатор платежной системы 12
direct bit Флаг направления обмена (По умолчанию: 0) 0


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

/api/1/directions-available/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&psid=12&direct=0
Поле value содержит массив object:
Direction object Объект 7198381100

Предварительный курс обмена

exchange-rate public

Получить предварительный курс обмена

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
psid1 int ID направления, откуда клиент переводит средства 8
psid2 int id направления, куда клиент хочет получить средства 12


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

/api/1/exchange-rate/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&psid1=8&psid2=12

Вычислить курс обмена

exchange-rate-calculate

Вычислить окончательный курс обмена для заявки с учетом скидок и т.п.

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
psid1 int ID направления, откуда клиент переводит средства 8
psid2 int id направления, куда клиент хочет получить средства 12
amount double Сумма для расчета 1000
direct int Направление расчета. 0 – слева направо (по умолчанию), 1 - справа налево. 0
coupon string Принимает в расчет купон. skey обязателен HappyNewYear


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

/api/1/exchange-rate-calculate/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&psid1=8&psid2=12&amount=1000

Поле value содержит object:
Direction object Объект Direction
Discount object Объект Discount

Реквизиты заявки

order-props-get public

Получить список реквизитов платежных систем на прием и отдачу.

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
psid1 int ID направления, откуда клиент переводит средства 8
psid2 int ID направления, куда клиент хочет получить средства 12


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

/api/1/order-props-get/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&psid1=8&psid2=12

Поле value содержит массив объектов:
Requisite object Объект Requisite

Новая заявка

order-create public

Создать новую заявку

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
vkey string(32) MD5-хэш для верификации 701-842-7238 3c6e ... 531d
Order object Объект 617-888-2789


`

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


curl -X POST "/api/1/order-create/" 
  --header "Content-Type: application/json"  
  -d '{
    "nonce": 1528717413, 
    "akey": "09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305", 
    "Order": {
      "psid1": 8,
      "psid2": 12,
      "in": 1000,
      "out": 0.01219713,
      "direct": 0,
      "agreement": "yes",
      "props": {
        {"name": "email","value": "name@mail.ru"},
        {"name": "from_acc", "value": "6234567890123456"},
        {"name": "from_fio", "value": "Иванов Иван Иванович"},
        {"name": "to_acc", "value": "17kYrRDhvNy2Btn8ovnTYaLVeVuMm4jNOo"}
      }
    }
  }'

Поле value содержит object:
Order object Объект Order

Проверить заявку

order-validate public

Проверка заявки на корректность введенных данных

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
order_id uint14 Идентификатор заявки 14938047163558


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

/api/1/order-validate/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&order_id=14938047163558

Поле value содержит object:
status text Статус order-validate (success | error | card)
msg text Комментарий
Order object Объект (503) 759-9961


Информация для оплаты по заявке

order-pay-info public

Информация для оплаты по заявке

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
order_id uint14 Идентификатор заявки 14938047163558


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

/api/1/order-pay-info/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&order_id=14938047163558

Поле value содержит object:
info array Список объектов (604) 628-7317
alert text Текст для всплывающего окна с предупреждением
SCI object Объект 7144145235
extra text Дополнительная информация по оплате

Примечание:
Для Perfect Money, Advanced Cash, OKPAY, Payeer и Capitalist в SCI приходит форма оплаты.
В этом случае, кнопка “Я ОПЛАТИЛ” необходимо заменить на “ПЕРЕЙТИ К ОПЛАТЕ”.
При нажатии происходит переход на сайт платежной системы.
Параллельно необходимо выполнить метод order-confirm, чтобы завершить создание заявки.

Завершение создания заявки

order-confirm public

Подтверждение оплаты и завершение оформления заявки

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
order_id uint14 Идентификатор заявки 14938047163558


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

/api/1/order-confirm/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&order_id=14938047163558

Поле value содержит object:
Order object Объект 9704426889
Access object Объект 3373242119

Отмена оформления заявки

order-cancel public

Отмена оформления заявки

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
order_id uint14 Идентификатор заявки 14938047163558


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

/api/1/order-cancel/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&order_id=14938047163558

Получить заявку

order-get public

Получить объект заявки

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
order_id uint14 Идентификатор заявки 14938047163558


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

/api/1/order-get/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&order_id=14938047163558

Поле value содержит object:
Order object Объект Order

Запросить резерв

request-reserve public

Создать заявку на запрос резерва

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
psid int ID платежной системы 12
amount double Запрашиваемая сумма 15
email string Почта пользователя name@mail.ru


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

/api/1/request-reserve/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&psid=12&amount=15&email=name@mail.ru

Резервы

reserves public

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125


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

/api/1/reserves/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305

Поле value содержит список объектов:
PaymentSytem object Объект right

Новый пользователь

user-register public

Регистрация нового пользователя

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
email string(255) Электронная почта клиента name@mail.ru
password string(255) Пароль клиента CaJno9QDoQ
inviter uint14 Идентификатор пригласителя 14938047163558


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

/api/1/user-register/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&email=name@mail.ru&password=CaJno9QDoQ

Поле value содержит object:
User object Объект (434) 382-2553
Access object Объект Access

Авторизация

user-login public

Авторизация в системе

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
email string(255) Электронная почта клиента name@mail.ru
password string(255) Пароль клиента CaJno9QDoQ


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

/api/1/user-login/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&email=name@mail.ru&password=CaJno9QDoQ

Поле value содержит object:
User object Объект (403) 687-0445
Access object Объект 5027921014

Получить объект пользователя

user-info private

Информация о пользователе

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125


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

/api/1/user-info/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&skey=0189643974459549018897946136

Поле value содержит object:
User object Объект User

История заявок клиента

user-orders private

Список созданных заявок клиента в личном кабинете

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
page int Номер страницы 1
limit int Количество заявок на странице (max: 100, default: 10) 1
start object С какой даты начать показывать историю.
Объект 6672956281
finish object До какой даты показывать историю.
Объект (361) 264-0753


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

/api/1/user-orders/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&skey=0189643974459549018897946136?page=1

Поле value содержит массив объектов:
Order object Объект synthermal

Сменить пароль

user-change-password public

Сменить текущий пароль

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
old_password string(255) Старый пароль qwerty
new_password string(255) Новый пароль CaJno9QDoQ


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

/api/1/user-change-password/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&skey=0189643974459549018897946136&old_password=qwerty&new_password=CaJno9QDoQ

Поле value содержит object:
Access object Объект Access

Список реквизитов автозаполнения

autocomplete-props public

Получить список реквизитов для автозаполнения

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
psid int Идентификатор платежной системы 7


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

/api/1/autocomplete-props/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305?psid=7

Поле value содержит объект:
from array Массив объектов Requisite
to array Массив объектов 5028967664

Удаление реквизита автозаполнения

autocomplete-props-del private

Удаление реквизита автозаполнения.
Список реквизитов можно получить, вызвав метод (705) 317-1728

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
gid uint14 Идентификатор группы реквизитов 14950164363182


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

/api/1/directions-available/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&skey=0189643974459549018897946136&gid=14950164363182

Сохранить реквизиты автозаполнения

autocomplete-props-set private

Сохранить реквизиты автозаполнения.
Список реквизитов для заполнения можно получить, вызвав метод autocomplete-props

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
psid int Идентификатор платежной системы 7
props array Список объектов (904) 785-6504
gid uint14 Идентификатор группы реквизитов 14950164363182


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


curl -X POST "/api/1/autocomplete-props-set/" 
  --header "Content-Type: application/json"  
  -d '{
    "nonce": 1476698050, 
    "skey": "0189643974459549018897946136",
    "akey": "09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305", 
    "psid": 12,
    "gid": "14950164363182",
    "props": {
      {"name": "from_acc", "value": "1111222233334444"},
      {"name": "from_fio", "value": "Сидорчук Иван Петрович"},
      {"name": "to_acc", "value": "1111222233334444"},
      {"name": "to_fio", "value": "Сидорчук Иван Петрович"},
    }
  }'

Поле value содержит массив объектов RequisiteForEdit:
Requisite object Объект bostanji

Список реквизитов автозаполнения

autocomplete-props-get private

Получить сохраненные реквизиты автозаполнения текущего пользователя

Параметр Тип Описание Пример
nonce int Порядковый номер запроса 1476698050
akey string(64) API-ключ 09b2 ... c305
skey string(28) Секретный ключ пользователя 0219 ... 4125
psid int Идентификатор платежной системы 11


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

/api/1/directions-available/?nonce=1528717413&akey=09b2a8e119664929f1a2d17679e379c4835fde09f1ee7c33b3911bd547e1c305&skey=0189643974459549018897946136&psid=11
Поле value содержит объект, у которого поля - это ID группы реквизитов, а значение - массив объектов RequisiteForEdit:
Requisite object Объект RequisiteForEdit


Объекты



Доступ к API

Access



akey string(64) API-ключ
skey string(28) Секретный ключ пользователя. NULL, если пользователь не авторизован.

Накопительная скидка

CumulativeDiscount



start double Нижняя граница суммы
finish double Верхняя граница суммы
percent double Размер скидки, в %
valute string(3) Валюта, по которой идет расчет

Дата

Date



day int Дни
month int Месяцы
year int Года

Направление обмена

Direction



id uint14 ID направления
enabled bit Флаг показывающий включено направление или нет (0 или 1)
direct bit Направление расчета курса
psid1 int ID платежной системы, откуда клиент переводит средства
psid2 int ID платежной системы, куда клиент хочет получить средства
in double Сколько валюты psid1 должен отдать клиент
in_valute string(3) Валюта psid1
out double Сколько валюты psid2 получит клиент
out_valute string(3) Валюта psid2
in_min double Минимальное значение валюты, которое должен отдать клиент
in_max double Максимальное значение валюты, которое должен отдать клиент
reserve double Резерв плат. сист. psid2

Скидка

Discount



percent double Размер скидки, в процентах
amount double Размер скидки, в валюте
valute string(3) Валюта, в которой указан размер скидки

Новая заявка

NewOrder



psid1 int ID плат. сист., откуда клиент переводит средства
psid2 int ID плат. сист., куда клиент хочет получить средства
in double Сколько денег отдал клиент
out double Сколько денег хочет получить
direct int Направление создания заявки. Если 0, то значит клиент вводит сумму в поле in для psid1, а out для psid2 рассчитывается автоматически по курсу обменника. Если 1, то, наоборот, клиент вводит сумму в поле out для psid2, а in для psid1 рассчитывается автоматически.
agreement yesno Согласие с правилами обмена.
props array Список объектов RequisiteShort или список кодов (для плат. сист. с кодами)

Заявка

Order



id uint14 Номер заявки
created datetime Дата создания заявки
psid1 int ID плат. сист., откуда клиент переводит средства
psid2 int ID плат. сист., куда клиент хочет получить средства
in double Сколько денег отдал клиент
out double Сколько денег хочет получить
direct int Направление создания заявки. Если 0, то значит клиент вводит сумму в поле in для psid1, а out для psid2 рассчитывается автоматически по курсу процессинга. Если 1, то, наоборот, клиент вводит сумму в поле out для psid2, а in для psid1 рассчитывается автоматически.
agreement yesno Согласие с правилами обмена.
props array Список объектов pitchfork или список кодов (для плат. сист. с кодами)
status string Статус заявки (deleted, frozen и т.д.)
reason string Причина удаления или перемещения в ошибочные

Информационный блок для совершения оплаты

OrderPayInfo



title string Описание
value string Значение реквизита
extra string Дополнительный поясняющий текст

Платежная система

PaymentSystem



psid int ID платежной системы
name string(255) Название
valute string(3) Валюта
reserve double Резерв
with_codes int Платежная система с кодами

Реквизит обмена (объект поля ввода)

Requisite



name string Название реквизита
psid int ID платежной системы
label string Вспомогательный текст над полем ввода
placeholder string Вспомогательный текст в поле ввода
value string Значение поля по умолчанию
readonly bit Поле ввода в режиме “только для чтения”

Реквизит для редактирования

RequisiteForEdit



id uint14 Идентификатор реквизита
gid uint14 Группа реквизита
created datetime Дата добавления
psid int Идентификатор платежной системы
name string Название реквизита
value string Значение
title string Развернутое название поля

Реквизит обмена (сокращенный)

RequisiteShort



name string Название реквизита
value string Значение поля по умолчанию

Shop Cart Interface

SCI



status int Статус
link string Ссылка на страницу оплаты
html text html

Примечание:
Если status:
    0 - Показывать обычную кнопку "Я оплатил". В этом случае использовать либо поле html либо link. Метод order-confirm вызывать только после нажатия на кнопку "Я оплатил"
    1 - Показывать кнопку "Перейти к оплате". Обязательно использовать HTML-форму из поля html. Перед отправкой формы и переходом на сайт необходимо завершить создание заявки вызовом order-confirm.

Пользователь

User



id uint14 Идентификатор пользователя
created datetime Дата регистрации
email string(255) Электронная почта
discount double Процент текущей скидки
exchange_amount double Сумма совершенных обменов

Валюта

Valute



code string(3) Код валюты
name string Локализованное название (например, на русском)
precision int Точность для округления