CABot API
Для того, чтобы использовать API, вам понадобятся User login и API key, которые пользователь любого кабота может получить в разделе "Настройки — API".
Обращения к API выполняются методом POST на адреса вида https://cabot.pro/?show=api&act=[method] в формате application/json либо x-www-form-urlencoded.
Ответы возвращаются в формате JSON.
Подпись запросов
Каждый запрос к API должен содержать поле login (User login) и поле с подписью запроса sign, которое формируется по следующей схеме: значения всех параметров запроса (кроме поля sign) упорядочиваются по названию, объединяются в строку через символ ":", в конец добавляется ключ API key, и от полученной строки берется хэш SHA256.
Пример формирования подписи (на PHP, JS, Python):
// PHP: function get_api_signature($request, $api_key) { ksort($request); $elements = []; foreach($request as $k => $v) { $v = trim($v); if ($v !== "" && $k != "sign") { $elements[] = $v; } } $sign = implode(":", $elements) . ":" . $api_key; return hash("sha256", $sign); }
Методы
Баланс пользователя (balans)
URL: https://cabot.pro/?show=api&act=balans
Параметры запроса:
login: | [String] | // ваш User login |
sign: | [String] | // подпись запроса |
Результат:
{ balans: [ { coin: [String] // название монеты balans: [Float] // баланс монеты }, ... ] }
Названия и курсы всех доступных монет (allcoins)
URL: https://cabot.pro/?show=api&act=allcoins
Параметры запроса:
login: | [String] | // ваш User login |
sign: | [String] | // подпись запроса |
Результат:
{ coins: [ { name: [String] // название монеты rate: [Float] // курс монеты в TON }, ... ] }
Курс монеты на бирже (coin)
URL: https://cabot.pro/?show=api&act=coin
Параметры запроса:
login: | [String] | // ваш User login |
coin_name: | [String] | // название монеты |
sign: | [String] | // подпись запроса |
Результат:
{ coin: { name: [String] // название монеты rate: [Float] // курс монеты в TON } }
Перевод пользователю (transfer)
URL: https://cabot.pro/?show=api&act=transfer
Параметры запроса:
login: | [String] | // ваш User login |
user2_id: | [BigInt] | // ID пользователя в Telegram |
coin_name: | [String] | // название монеты |
amount: | [Float] | // сумма для перевода |
cabot: | [String] | // логин кабота, от которого получателю поступит уведомление о переведе. // Если не указать, то оно придет от последнего кабота, на которого подписан. |
sign: | [String] | // подпись запроса |
Результат:
{ transfer: { name: [Int] // ID перевода status: [Int] // статус перевода (0 - не завершен, 1 - завершен) } }
Получение оплаты, выставление счета (getpayment)
URL: https://cabot.pro/?show=api&act=getpayment
Параметры запроса:
login: | [String] | // ваш User login |
amount: | [Float] | // сумма платежа |
coin_name: | [String] | // название монеты платежа |
order_id: | [String] | // идентификатор заказа в вашей системе |
product_name: | [String] | // название платежа (наименование товара, услуги и т.п.) |
success_url: | [String] | // адрес, на который пользователь будет направлен после успешной оплаты. |
failed_url: | [String] | // адрес, на который пользователь будет направлен после неудачной оплаты. |
notification_url: | [String] | // адрес, на который наша система направит подтверждение об успешном завершении оплаты (Payment Notification) |
sign: | [String] | // подпись запроса |
Результат:
{ payment_link: { url: [String] // Адрес страницы, на которую надо направить пользователя для совершения оплаты } }
Пример создания платежа (на PHP, JS, Python):
// PHP: $api_user_login = 'u126xxxxxx'; $api_key = 'XXXXXXXXXXD405598E995EA3905684XXXXXXXXXX'; // формируем запрос $api_url = 'https://cabot.pro/?show=api&act=getpayment'; $request = [ 'login' => $api_user_login, 'coin_name' => 'TonDoge', 'amount' => 100, 'order_id' => 1000, 'product_name' => 'SuperTop NFT', 'success_url' => 'https://mysite.com/payment-success', 'failed_url' => 'https://mysite.com/payment-failed', 'notification_url' => 'https://mysite.com/payment-notification' ]; // добавляем подпись запроса $sign = get_api_signature($request, $api_key); $request['sign'] = $sign; // отправка запроса $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $api_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); $result = curl_exec($ch); curl_close($ch); // перенаправление на страницу оплаты $data = json_decode($result, true); header('Location: ' . $data['payment_link']['url']);
Payment Notification - уведомление об успешном завершении платежа
Уведомление методом POST в формате JSON направляется на адрес notification_url, указанный при создании платежа
Параметры:
order_id: | [String] | // идентификатор заказа в вашей системе |
amount: | [Float] | // сумма платежа |
coin_name: | [String] | // название монеты платежа |
status: | [Int] | // статус платежа (0 - не завершен, 1 - завершен) |
sign: | [String] | // подпись запроса |
Проверка статуса платежа
URL: https://cabot.pro/?show=api&act=checkpayment
Параметры запроса:
login: | [String] | // ваш User login |
order_id: | [String] | // идентификатор заказа в вашей системе |
sign: | [String] | // подпись запроса |
Результат:
{ order_id: [Int] // идентификатор заказа в вашей системе amount: [Float] // сумма платежа coin_name: [String] // название монеты платежа status: [Int] // статус платежа (0 - не завершен, 1 - завершен) }
Ошибки
Если запрос не может быть выполнен, то возвращается ответ в формате:
{ error: { error_code: [Int] // код ошибки error_msg: [String] // описание ошибки } }
Ограничения
Не чаще 10 запросов в минуту