Обзор API
Протокол реализуется мерчантом при подключении к процессинговому центру ТЕКО.
- Запросы и ответы для передачи прикладной информации используют JSON.
- Запрос должен содержать тело с JSON-запросом.
- Не смотря на JSON, протокол является строго типизированным.
- Все ответы приходят в обертке { success: true/false, result: {...} }
Безопасность
Общение происходит только по протоколу HTTPS (не актуально для тестовой среды).
Каждый запрос к API должен содержать поле client и заголовок (HTTP header) Signature. Пример HTTP заголовка: "Signature: VgepHaYJBn9jwAg3N6wzFhi8UeQ="
Для вычисления подписи Signature используется алгоритм HMAC-SHA1.Подписи подлежит:
- В случае POST запроса (тело запроса)
- В случае GET запроса (GET параметры)
echo -n "REQUEST_BODY" | openssl dgst -binary -sha1 -hmac "SECRET_KEY" | openssl base64
Типы данных
Int
Целочисленный тип. ЭквивалентенBigInt
в ScalaFloat
Число с плавающей точкой. ЭквивалентенDouble
String
СтрокаList[type]
Список элементов определенного типа. В JSON представляется массивомEnum
Строка с фиксированным набором значенийJSON
JSON объект со свободной структуройClassName
JSON объект с фиксированной структурой (см. раздел Классы)Map
JSON объект вида { key: value, ... }, где key и value могут быть только строками
Классы
Классы бывают двух типов: простые, включающие в себя только примитивные типы (Int, String, Float и т.д.), и сложные, включающие в себя другие классы помимо примитивных типов
Payer
cls == "mc"
cls == "card"
idStringrequired
Hash карты, полученный от сервиса хэширования ДДК,
либо 'unknown' в случае неизвестных ДДК.payment_systemEnumoptional
Платежная система.
Возможные значения:plastic_card
- в случае, когда процессингу нужно будет вернуть форму для заполнения ДДКvisa
master_card
visa_electron
maestro
extraJSONoptional
Различные дополнительные сведения
cls == "cpa"
{ "cls": "mc", "phone_number": "79993332211" }
Product
{ "url": "https://teko.io", "id": "Teko", "name": "Тариф E-commerce", "redirectUrl": "https://teko.io" }
AmountOptions
{ "title": "Однократно", "amountOptions": [ 10000, 30000, 50000, 100000, 300000, 500000 ], "defaultAmountOption": 10000, "withYourAmountInput": true }
Order
cls == "item_list"
item_listList[item]required
Список покупок.
Подробнее в классе Item
{ "cls": "item_list", "item_list": [ { "id": 121, "name": "Gold", "count": 100500 } ] }
Status
{ "cls": "failed", "code": 1144, "description": "provider is unavailable" }
CatalogItem
idStringrequired
Идентификатор товараnameStringoptional
Название товараcatStringoptional
КатегорияsubcatStringoptional
ПодкатегорияinnerStringoptional
Выражение для заполнения поляdst.id
при платежеminIntoptional
Минимальная сумма платежаmaxIntoptional
Максимальная сумма платежаlogoStringoptional
Логотип (url)commentStringoptional
КомментарийisActiveBooleanoptional
Вкл/выклtoSaveBooleanoptional
historyTagsList[String]optional
CatalogItemField
field_nameStringrequired
Название поляtypeEnumoptional
Может принимать одно из значений:text
,amount
,number
,date
,phone
,enum
,address
captionStringoptional
requiredBooleanoptional
reg_exStringoptional
min_lengthIntoptional
max_lengthIntoptional
placeholderStringoptional
commentStringoptional
conditionStringoptional
visualVisualoptional
JSON из трех полей:size: Int
,offset: Int
,post: Int
toSaveBooleanoptional
itemsList[CatalogEnumValue]optional
CatalogEnumValue - JSON из 2-х полей:name: String
,value: String
Коды ошибок
42
Сервис временно недоступен201
Ошибка на стороне получателя средств300
Отказ клиента в процессе подтверждения платежа301
Не получено подтверждение клиента302
Техническая ошибка. Необходимо провести платёж снова. При повторении ошибки обратитесь техническую поддержку305
Услуга недоступна для данного источника средств306
Нарушен один из лимитов (сумма, количество попыток и т.п.) или у данного клиента существует незавершенный платёж307
Недостаточно денежных средств308
Для данной карты услуга не доступна. Истек срок действия или существуют ограничения со стороны эмитента309
При оплате была указана неверная сумма платежа или неверный номер счета310
Ошибка идентификации источника средств311
Указан неверный номер телефона или параметры товара312
Операция завершена399
Техническая ошибка на стороне источника денежных средств401
Некорректная подпись402
Некорректный запрос601
Некорректные параметры платежа602
Некорректная валюта603
Некорректный метод оплаты-1
Неизвестная ошибка
Протокол инициатора
Предназначен для инициализации и отслеживания статуса платежа в системе Teko
Обзор протокола
- Протокол использует REST архитектуру
- В нем присутствуют 3 метода [
initPayment
,getPaymentStatus
, оповещение об изменении статуса платежа], после реализации они должны отправлять POST-запрос на шлюз Теко и отображать полученный ответ - Во время настройки и отладки протокола используется тестовая среда - playground
- URL для отправки тестовых запросов -
http://pg.teko.io/api/initiators/default/[Имя метода]
- Вместо
[Имя метода]
нужно подставить имя небходимого метода, например:http://pg.teko.io/api/initiators/default/initPayment
- Для передачи информации в запросах и ответах используется формат JSON
- Каждый запрос должен содержать заголовок (HTTP header) "Content-Type" со значением "application/json"
- Не смотря на JSON, протокол является строго типизированным
- Все ответы приходят в обертке
{ success: true/false, result: {...} }
Ваша основная задача сформировать валидный JSON с необходимыми параметрами, подписать его и отправить в виде POST-запроса на нужный URL и с необходимыми заголовками (HTTP headers)
initPayment
Запрос на инициализацию платежа.
Является POST-запросом на шлюз.
В случае, если тип у поля не является примитивным, его структуру можно посмотреть по названию в разделе Классы
clientClientrequired
Идентификатор пользователя APIproductStringrequired
Наименование продукта (проекта)paymentPaymentrequired
Информация о сумме платежа и валютеsrcPayerrequired
Информация об аккаунте плательщика в платежной системеdstAccountrequired if (
order.cls == "item_list" || order.cls == "transfer"
)Информация об аккаунте в проектеorderOrderrequired
Информация о назначении платежаextraJSONoptional
Любой json объект. Будет отправлен инициатору при оповещении о статусе платежаcallbackStringoptional
URL, на который придет оповещение по завершению платежа. Указать, если такое оповещение нужно. Паттерн 'https://*'security_extraJSONoptional
Предназначено для антифрод системыtagStringoptional
По этому полю можно запрашивать список транзакций. Запрещено использование символа |
{ "client": { "id": "company_name", "showcase": "mobile_app" }, "product": "world_of_warcraft", "payment": { "amount": 10000, "currency": 643, "exponent": 2 }, "src": { "cls": "mc", "phone_number": "79163332211" }, "dst": { "id": "Y6UBATOP9000", "extra": { "premium": true, "game_server": "Europe" } }, "order": { "cls": "item_list", "item_list": [ { "id": 121, "name": "Gold", "count": 100500 } ] }, "extra": { "from": "mobile_app", "some_key": "some_value" } }
{ "success": true, "result": { "tx": { "id": "55d8fb900cf23b38021b7c65", "start_t": 1440283536655 } } }
getPaymentStatus
Запрос на получение статуса платежа.
Является POST-запросом на шлюз.
В случае, если тип у поля не является примитивным, его структуру можно посмотреть по названию в разделе Классы
{ "client": { "id": "test_client", "showcase": "showcases" }, "tx_id": "55241f34a7c82fc5f202ca21" }
{ "success": true, "result": { "tx": { "id": "55d8fb900cf23b38021b7c65", "start_t": 1440283536655, "finish_t": 1440283542127 }, "status": { "cls": "success" } } }
Оповещение об изменении статуса платежа
Оповещение приходит, если при инициализации платежа было заполнено поле callback. Для подписи запроса используется тот же ключ, что и при инициализации (initPayment).
Запрос на получение статуса платежа в системе Теко.
В случае, если тип у поля не является примитивным, его структуру можно посмотреть по названию в разделе Классы
{ "client": { "id": "company1", "showcase": "mobile_app" }, "tx": { "id": "55241f34a7c82fc5f202ca21", "start_t": 1428430644807, "finish_t": 1428430644807 }, "partner_tx": { "id": "111122223333444", "start_t": 1428430642331 }, "status": { "cls": "success" } }
{ "success": true, "result": {} }
Протокол мерчанта
Предназначен для проведения платежа с возможность отмены или возврата средств при уже выполненном платеже
Обзор протокола
- Реализуется мерчантом при подключении к процессинговому центру ТЕКО
- Протокол использует REST архитектуру.
- В нем присутствуют 4 метода [
isPaymentPossible
,resumePayment
,cancelPayment
,rollbackPayment
], после реализации они должны, получив сообщение, отправлять соответствующий ответ - Запросы и ответы для передачи прикладной информации используют JSON
- Во время настройки и отладки протокола используется тестовая среда - playground
- Запрос должен содержать тело с JSON-запросом
- Не смотря на JSON, протокол является строго типизированным
- Все ответы приходят в обертке
{ success: true/false, result: {...} }
- Каждый запрос должен содержать заголовок (HTTP header) "Content-Type" со значением "application/json"
Ваша основная задача реализовать web service, который при получении сообщения на определенный URL должен отвечать сообщением в соответствии с протоколом
Взаимодействие начинается с метода isPaymentPossible
, который приходит Мерчанту (Вам), если после проверки на стороне Мерчанта (Вашей стороне) отправляется успешный ответ (true
), то далее Мерчанту (Вам) приходит запрос resumePayment
на исполнение платежа.
В случае успешного ответа (true
) на resumePayment
взаимодействие завершится - платеж успешен.
Если же ответ на resumePayment
является НЕуспешным (false
), то шлюз (сторона Теко) повторит запрос resumePayment
еще 10 раз с паузой в 30сек, если все ответы на него будут НЕуспешными (false
) шлюз (сторона Теко) отправит запрос cancelPayment
Мерчанту (Вам), в случае успешного ответа (true
) взаимодействие завершится, платеж будет прерван, если же ответ от Мерчанта (от Вас) будет НЕуспешным, то шлюз (сторона Теко) повторит запрос cancelPayment
еще 10 раз с паузой 30сек.
Метод rollbackPayment
отправляется Мерчанту (Вам) при необходимости возврата платежа, при успешном ответе (true
) от Мерчанта (Вас) средства будут возвращены изначальным владельцам.
isPaymentPossible
Проверка возможности проведения платежа.
После получения данного запроса Вы должны проверить в своей системе возможность проведения платежа(наличие товара, средств и т.п.) и сформировать ответ в соответствии требованиями протокола.
В случае, если тип у поля не является примитивным, его структуру можно посмотреть по названию в разделе Классы
Запрос почти совпадает с методом initPayment из протокола Инициатора, за исключением того что в данном случае вы принимаете запрос, а не отправляете его, как было в протоколе Инициатора
clientClientrequired
Идентификатор пользователя APIproductStringrequired
Наименование продукта (проекта)paymentPaymentrequired
Информация о сумме платежа и валютеsrc_paymentPaymentoptional
Сумма и валюта, принятые от пользователяrateFloatoptional
Курс покупки.
Приsrc_payment == "100 RUB"
иpayment == "1 EUR"
,rate == 100
src_clsStringrequired
Категория плательщикаsrcPayeroptional
Информация об аккаунте плательщика в платежной системе. Передается, если известен на этом этапеdstAccountrequired if (
order.cls == "item_list" || order.cls == "transfer"
)Информация об аккаунте в проектеorderOrderrequired
Информация о назначении платежаtxTransactionrequired
Созданная транзакция, для которой производится проверкаsecurity_extraJSONoptional
Предназначено для антифрод системы
success == true
result.txTransactionrequired
Идентификатор транзакции процессингаresult.src_paymentPaymentoptional
Сумма и валюта, которые необходимо принять от пользователяresult.rateFloatoptional
Курс покупки.
Приsrc_payment == "100 RUB"
иpayment == "1 EUR"
,rate == 100
result.extraJSONoptional
Дополнительные параметры, которые нужно будет прокинуть в resumePayment
{ "client": { "id": "test_client", "showcase": "showcases" }, "product": "test_client_product", "payment": { "amount": 100, "currency": 643, "exponent": 2 }, "order": { "transaction": { "id": "qwerty", "start_t": 12345, "finish_t": 12345 }, "cls": "transaction" }, "tx": { "id": "59e765510cf26db591dbfb43", "start_t": 1508336977892 }, "src_cls": "tele2_ru", "src": { "phone_number": "79529612574", "operator": "tele2_ru", "cls": "mc" }, "dst": { "id": "login", "extra": { "premium": true, "game_server": "Europe" } } }
{ "success": true, "result": { "tx": { "id": "1661803727", "start_t": 1437134068907 } } }
resumePayment
Используется только после isPaymentPossible для продолжения платежа. Отправляется полноценный запрос со всей информацией о транзакции. Т.е. поля, которые уже были отправлены в isPaymentPossible дублируются (т.е. их содержание идентично тому, что было в isPaymentPossible).
После получения данного запроса Вы должны выполнить платеж (отдать товар, средства) и сформировать ответ в соответствии требованиями протокола.
В случае если тип у поля не является примитивным, его структуру можно посмотреть по названию в разделе Классы
clientClientrequired
Идентификатор пользователя APIproductStringrequired
Наименование продукта (проекта)paymentPaymentrequired
Информация о сумме платежа и валютеsrc_paymentPaymentrequired
Сумма и валюта, принятые от пользователяrateFloatoptional
Курс покупки.
Приsrc_payment == "100 RUB"
иpayment == "1 EUR"
,rate == 100
srcPayeroptional
Информация об аккаунте плательщика в платежной системе. Передается, если известен на этом этапеdstAccountrequired if (
order.cls == "item_list" || order.cls == "transfer"
)Информация об аккаунте в проектеorderOrderrequired
Информация о назначении платежаtxTransactionrequired
Созданная транзакция, для которой производится проверкаpartner_txTransactionrequired
Транзакция из ответа наisPaymentPossible
extraJSONoptional
Если было в ответе на isPaymentPossiblesecurity_extraJSONoptional
Предназначено для антифрод системы
{ "client": { "id": "test_client", "showcase": "showcases" }, "product": "test_client_product", "payment": { "amount": 100, "currency": 643, "exponent": 2 }, "src_payment": { "amount": 100, "currency": 643, "exponent": 2 }, "src": { "phone_number": "79771234567", "operator": "tele2_ru", "cls": "mc" }, "dst": { "id": "login", "extra": { "premium": true, "game_server": "Europe" } }, "order": { "transaction": { "id": "qwerty", "start_t": 12345, "finish_t": 12345 }, "cls": "transaction" }, "tx": { "id": "59e732190cf26db591dbfb34", "start_t": 1508323865724 } }
{ "success": true, "result": { "tx": { "id": "59e732190cf26db591dbfb34", "start_t": 1508323865724, "finish_t": 1508323865724 } } }
cancelPayment
Отмена платежа, для которого ранее производилась проверка с помощью метода isPaymentPossible.
После получения данного запроса Вы должны отменить платеж (не отдавать товар, средства) и сформировать ответ в соответствии требованиями протокола.
В случае если тип у поля не является примитивным, его структуру можно посмотреть по названию в разделе Классы
clientClientrequired
Идентификатор пользователя APIproductStringrequired
Наименование продукта (проекта)paymentPaymentrequired
Информация о сумме платежа и валютеdstAccountrequired if (
order.cls == "item_list" || order.cls == "transfer"
)Информация об аккаунте в проектеorderOrderrequired
Информация о назначении платежаtxTransactionrequired
Созданная транзакция, для которой производится проверкаcodeIntrequired
Код ошибкиdescriptionStringrequired
Описание ошибкиextraJSONoptional
Если было в ответе на isPaymentPossiblepartner_txTransactionrequired
Транзакция из ответа наisPaymentPossible
security_extraJSONoptional
Предназначено для антифрод системы
{ "client": { "id": "test_client", "showcase": "showcases" }, "product": "test_client_product", "payment": { "amount": 19999, "currency": 643, "exponent": 2 }, "dst": { "id": "login", "extra": { "premium": true, "game_server": "Europe" } }, "order": { "transaction": { "id": "qwerty", "start_t": 12345, "finish_t": 12345 }, "cls": "transaction" }, "tx": { "id": "59e765460cf26db591dbfb42", "start_t": 1508336966463 }, "code": 42, "description": "Unknown error", "partner_tx": { "id": "59e765460cf26db591dbfb42", "start_t": 1508336966902 } }
{ "success": true, "result": { "tx": { "id": "59e732190cf26db591dbfb34", "start_t": 1508336975921, "finish_t": 1508336987232 } } }
rollbackPayment
Возврат уже выполненного платежа.
После получения данного запроса Вы должны возвратить платеж (вернуть товар, средства) и сформировать ответ в соответствии требованиями протокола.
В случае если тип у поля не является примитивным, его структуру можно посмотреть по названию в разделе Классы
clientClientrequired
Идентификатор пользователя APIpaymentPaymentrequired
Информация о сумме платежа и валютеtxTransactionrequired
Созданная транзакция, для которой производится проверкаpartner_txTransactionrequired
Транзакция из ответа наisPaymentPossible
commentStringrequired
Комментарий к возвратуextraJSONoptional
Если было в ответе на isPaymentPossiblesecurity_extraJSONoptional
Предназначено для антифрод системы
{ "success": true, "result": { "tx": { "id": "1438730878", "start_t": 1437133818318, "finish_t": 1437141086421 } } }
Описание формата реестра
Общее
- Базовая форма реестра представляется собой файл CSV, разделитель
;
- Период отправки реестра оговаривается с партнером при запуске
- Набор полей в реестре может изменяться в зависимости от требований партнера
- Суммы в реестре передаются в формате
100.12
(100 рублей 12 копеек) - Время передается в формате {
dd/MM/yy HH:mm:ss
}
Transaction id
Идентификатор операции на стороне процессингаPartner transaction id
Идентификатор операции со стороны партнераGood ID
Идентификатор товараStart time
Время старта операцииFinish time
Время завершения операции (дата учета операции)Payment method
Метод оплатыPayer id
Идентификатор плательщика в методе оплатыCurrency
ВалютаAmount
Базовая сумма платежа (база расчетов)Commission
Комиссия с физического лицаPayout
Сумма выплаты
Реккуррентные списания
Обзор протокола
Ключевым понятием в работе протокола рекуррентных списаний является понятие политики списания денежных средств. Под политикой понимается набор атрибутов:
- Стартовое списание
- Периодичность списания (в миллисекундах)
- Количество периодов (от 1 до бесконечности)
- “Пробный” (trial) период – количество периодов, за которые не будут списываться денежные средства
- Сумма списания или набор сумм списания:
- В случае, если сумма одна, то списывается каждый период одна и та же сумма
- В случае если сумм несколько, то система списывает денежные средства циклично, в порядке следования сумм. Пример: если периодов – 10, а сумм указано 3 (1 руб, 2 руб и 3 руб), то за полный цикл пройдет 4 платежа на 1 рубль, 3 платежа на 2 рубля и 3 платежа на 3 рубля.
Статусы подписки:
“Жизненный цикл” подписки состоит из нескольких статусов:
created
- подписка создана, находится в статусе ожидания инициации стартового списания.trial
- находится в пробном статусе. Следущее списание не будет произведено.active
- подписка активна и оплачена. Списания идут в соответствии с назначенной логикой.freezed
- последняя попытка списаний не прошла по какой-то причине: недостаточно средств, не получено подтверждение.to_be_canceled
- подписка, услуги которой продолжают действовать, но по истечении периода, подписка примет статус canceled.canceled
– подписка закончена или отменена
Безопасность
- Общение происходит только по HTTPS
- Каждый запрос к API должен содержать HTTP заголовки
login
иsignature
(login и secret для генерации подписи выдаются в процессе интеграции) - Для вычисления подписи
signature
используется алгоритм HMAC-SHA1 - В случае POST запросов подписывается все тело запроса, в случае GET-запросов - строка с параметрами.
Методы API
Все ответы приходят в обертке { success: true/false, result: {...} }
subscribe
Запрос на подписку
numberStringrequired
Номер телефона клиентаpolicyStringrequired
Наименование зарегистрированной политики списаний средствtagStringoptional
Идентификатор для поиска. Может быть использован в качестве привязки подписки к игровому аккаунту, аккаунту в системе лояльности и т.п.prepaidBooleanrequired
Была ли подписка активирована с помощью предоплаты. В случае значения true, первоначальный платеж взиматься не будет и подписка будет автоматически переведена в статус activeextraJSONoptional
subscriptionState
Получение информации о статусе подписки
idStringrequired
Идентификатор подпискиtNumberrequired
Время создания подпискиstatusStringrequired
Текущий статус подпискиnext_statusStringrequired
Планируемый следующий статус подпискиend_of_current_statusNumberrequired
Время окончания текущего статусаlast_charge_tNumberrequired
Планируемое время следующего списанияnext_charge_tNumberrequired
Планируемое время следующего списанияpolicyStringrequired
Идентификатор политики
PayCafe
Обзор протокола
- Боевое взаимодействие происходит только по протоколу HTTPS.
- Боевые параметры и ключи могут быть получены у менеджера по интеграции.
- Платежная форма может быть интегрирована несколькими способами: перенаправление на форму, встраивание в код веб-страницы, использование JavaScript виджета на веб-странице.
- Метод для перенаправления на платежную форму, сгенерированную с переданными параметрами:
GET https://paycafe.teko.io:3007/api/init-session - JavaScript PayCafe виджет доступен по следующему адресу:
https://paycafe.teko.io/paycafeWidget.js
initSession
Данный метод может быть использован в качестве src
атрибута в <iframe>
элементе веб-страницы или в качестве initSessionUrl
параметра в paycafeWidget.js. В случае успеха происходит перенаправление на платежную форму, иначе – на страницу с ошибкой. Следующие параметры запроса должны быть переданы в URL-encoded query string
:
initiatorClientrequired
Информация о магазине, использующем формуpaymentPaymentrequired
Идентификатор для поиска. Может быть использован в качестве привязки подписки к игровому аккаунту, аккаунту в системе лояльности и т.п.localeEnumrequired
Язык формы. Возможные значения:ru
– русскийen
– английскийtj
- таджикскийproductProductrequired
Информация о выбранном товареsignatureStringrequired
Base64-encoded HMAC-SHA1 подпись запросаorderOrderrequired
Информация о назначении платежаdstAccountoptional
Информация об аккаунте в проектеpaymentMethodsArray[Enum]optional
Список доступных методов оплаты.
Значения:"bank- card"
,"mobile-pay"
, и тд.themeThemeoptional
Параметры цветовой схемыselectAmountAmountOptionsoptional
Настройки выбора суммы платежа
Формирование подписи
- Следующие параметры должны быть использованы при формировании подписи:
locale
,initiator
,payment
,order
,product
,dst
. - Сложные параметры с вложенными объектами должны быть представлены в виде JSON. Пример:
initiator={"id":"test","showcase":"main_showcase"}
- Отсортируйте все параметры в алфавитном порядке и сформируйте строку следующего формата: "KEY1|VALUE1|KEY2|VALUE2"
- Подпись запроса формируется с помощью алгоритма HMAC-SHA1 от строки из пункта выше и секретного ключа. Строка с подписью должна быть Base64-encoded.
Протокол кассового ПО
isPaymentPossible
Проверка возможности проведения платежа.
Запрос совпадает с initPayment протокола инициатора, за исключением:
clientClientrequired
Идентификатор пользователя APIproductString
Наименование продукта (проекта)paymentPayment
Информация о сумме платежа и валютеsrc_paymentPayment
Сумма и валюта принятые от пользователяrateFloat
Курс покупки. При src_payment = 100 RUB и payment = 1 EUR, rate = 100srcPayerrequired
Информация об аккаунте плательщика в платежной системеdstAccountrequired if (
order.cls == "item_list" || order.cls == "transfer"
)Информация об аккаунте в проектеorderOrderrequired
Информация о назначении платежаtxTransactionrequired
Созданная транзакция, для которой производится проверкаsecurity_extraJSONoptional
Предназначено для антифрод системы
success == true
{ "success": true, "result": { "tx": { "id": "1661803727", "start_t": 1437134068907 } } }
resumePayment
Используется только после isPaymentPossible для продолжения платежа. Отправляется полноценный запрос со всей информацией о транзакции. Те поля, которые уже были отправлены в isPaymentPossible дублируются (т.е. их содержание идентично тому, что было в isPaymentPossible)
clientClient
Идентификатор пользователя APIproductString
Наименование продукта (проекта)paymentPayment
Сумма и валюта платежаsrc_paymentPaymentrequired
Сумма и валюта принятые от пользователяdstAccountrequired if (
order.cls == "item_list" || order.cls == "transfer"
)Информация об аккаунте в проектеorderOrder
Информация о назначении платежаtxTransaction
Созданная транзакция, для которой производится проверкаpartner_txTransaction
Транзакция из ответа наisPaymentPossible
rateFloat
Курс покупки. При src_payment = 100 RUB и payment = 1 EUR, rate = 100security_extraJSON
Предназначено для антифрод системы
success == true
result.merchant_txTransaction
Транзакция у мерчанта (системы денежных переводов)result.src_paymentPayment
Cумма и валюта, которые необходимо принять от пользователяresult.rateFloat
Курс покупки payment. При src_payment = 100 RUB и payment = 1 EUR, rate = 100result.dstAccount
Может дополнится информацией по отношению к запросу
{ "success": true, "result": { "tx": { "id": "1661803727", "start_t": 1437134068907, "finish_t": 1437134086421 } } }
cancelPayment
Отмена платежа, для которого ранее производилась проверка
clientClient
Идентификатор пользователя APIproductString
Наименование продукта (проекта)paymentPayment
Сумма и валюта платежаdstAccountrequired if (
order.cls == "item_list" || order.cls == "transfer"
)Информация об аккаунте в проектеorderOrder
Информация о назначении платежаtxTransaction
Созданная транзакция, для которой производится проверкаcodeIntrequired
Код ошибкиdescriptionString
Описание ошибкиextraJSON
Если было в ответе наisPaymentPossible
partner_txTransaction
Транзакция из ответа наisPaymentPossible
security_extraJSON
Предназначено для антифрод системы
{ "success": true, "result": { "tx": { "id": "1438730878", "start_t": 1437133818318, "finish_t": 1437141086421 } } }
calcCommission
Расчет комиссии для платежа без заведения полей
success == true
{ "success": true, "result": { "tx": { "id": "1438730878", "start_t": 1437133818318, "finish_t": 1437141086421 } } }
getCatalog
{ "success": true, "result": { "tx": { "id": "1438730878", "start_t": 1437133818318, "finish_t": 1437141086421 } } }