API протокол для работы с SMS-Activate
API - это протокол взаимодействия между вашим ПО и нашим сервером активаций.
API нужен для того, чтобы автоматизировать процесс получение смс сообщений на вашей стороне
Наше API полностью совместимо с сайтами конкурентов
Все запросы должны идти на https://api.sms-activate.org/stubs/handler_api.php
POST или GET запросом.
Во всех запросах должен присутствовать API ключ в виде параметра api_key
Скачать готовую реализацию протокола на php Скачать готовую реализацию протокола на PythonAPI Активаций
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$country * - страна номера смотрите таблицу
* необязательное поле. Если не указано, то по умолчанию будет выдано количество в соответствии с настройкой в левом меню.
$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **):
** доступно для $country = 0, $country = 1, $country = 2
ОТВЕТ:
Ответ сервиса будет в json формате. Пример:
{"vk_0":76,"ok_0":139,"wa_0":90,"vi_0":223,"tg_0":158,"wb_0":106,"go_0":182,"av_0":244,"av_1":211,"fb_0":107}
Где до черточки - название сервиса, после обозначение нужно ли включать переадресацию. 0 - нет. 1 - да.
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service * - сервис смотрите таблицу
* необязательный параметр. Если не указано, то по умолчанию будет выданы топ страны по всем сервисам.
$freePrice * - необязательный параметр. Если true, количество и цена будет передано в соответствии с Free Price
ОТВЕТ:
Ответ сервиса будет в json формате. Пример:
{
0: {
"country: 0,
"count": 43575,
"price": 15.00,
"retail_price": 30.00
}, ...
}
$freePrice = true:
{
0: {
"country: 0,
"count": 43575,
"price": 15.00,
"retail_price": 30.00,
"freePriceMap": {
"15.00": 43242,
"18.00": 333
}
}, ...
}
Запрос баланса с кэшбэк-счетом:
* возвращает баланс с учётом накопленного кэшбэка, если установлена галочка в настройках кэшбэк-счёта 'Тратить кэшбэк на активации'
ПАРАМЕТРЫ:
$api_key - ключ АПИ
ОТВЕТ:
ACCESS_BALANCE:'баланс на счету'
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
ERROR_SQL - ошибка SQL-сервера
* возвращает всех операторов доступных по переданной стране, если страна не передана - вернет всех операторов доступных по каждой стране
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$country - код страны
ОТВЕТ:
Ответ сервиса будет в json формате:
{"status":"success", "countryOperators": {
"Country1Code": ["operator1Name","operator2Name","operator3Name", ...],
"Country2Code": ["operator1Name","operator2Name","operator3Name", ...],
...
}}
Пример:
{"status":"success", "countryOperators": {
"0": ["beeline","megafon","mts", ...],
"1": ["life","mts","kyivstar","utel" ...],
...
}}
* внутри 'countryOperators' - ключом будет код страны
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
ERROR_SQL - ошибка SQL-сервера
OPERATORS_NOT_FOUND - записи не найдены (например передана несуществующая страна)
ПАРАМЕТРЫ:
$api_key - ключ АПИ
ОТВЕТ:
Ответ сервиса будет в json формате:
{"status":"success", "activeActivations": [
{
"activationId" : "635468021",
"serviceCode" : "vk",
"phoneNumber" : "79********1",
"activationCost" : "12.50",
"activationStatus" : "4",
"smsCode" : ["CODE"],
"smsText" : "[Ваш код для регистрации CODE]",
"activationTime" : "2022-06-01 16:59:16",
"discount" : "0.00",
"repeated" : "0",
"countryCode" : "0",
"countryName" : "Russia",
"canGetAnotherSms" : "1",
}]
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
ERROR_SQL - ошибка SQL-сервера
NO_ACTIVATIONS - записи не найдены (нет активных активаций)
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - сервис для заказа смотрите таблицу
$forward * - необходимо ли запросить номер с переадресацией
$maxPrice * - максимальная цена, за которую вы готовы купить номер по Free Price
* необязательный параметр, если он не указан, покупка пройдёт по обычной цене
$phoneException * - исключающие префиксы для номеров России. Указывать через запятую. Формат записи: код страны и от 3 до 6 цифр маски ( например 7918,7900111). По умолчанию берётся значение, заданное в левом меню.
* необязательный параметр, принимает 0 (не выполнять , установлено по умолчанию), 1 (выполнять)
$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **):
$verification * - Если передано true, получить номер с возможностью приема звонка
* необязательное поле
** доступно для $country = 0, $country = 1, $country = 2
$ref - передать реферальный идентификатор. Подробнее
$country - страна номера смотрите таблицу
Получая номер через API Вы подтверждаете согласие с правилами проекта
ВОЗМОЖНЫЕ ОШИБКИ:
WRONG_MAX_PRICE:$min - указанная максимальная цена меньше допустимой
$min - минимальная допустимая цена
BAD_ACTION - некорректное действие
BAD_SERVICE - некорректное наименование сервиса
BAD_KEY - неверный API-ключ
ERROR_SQL - ошибка SQL-сервера
BANNED:'YYYY-m-d H-i-s' - время на которое аккаунт заблокирован
WRONG_EXCEPTION_PHONE - некорректные исключающие префиксы
NO_BALANCE_FORWARD - недостаточно средств для покупки переадресации
Метод работает аналогично методу getNumber, принимает те же параметры, но возвращает дополнительную информацию об активации
ОТВЕТ:
При успешном запросе ответ будет в формате:
{
"activationId": 635468024,
"phoneNumber": "79584******",
"activationCost": "12.50",
"countryCode": "0",
"canGetAnotherSms": "1",
"activationTime": "2022-06-01 17:30:57",
"activationOperator": "mtt"
}
При получении SMS на номер, если у вас включен функционал Webhooks в настройках, мы отправим на указанные вами адреса информацию о SMS POST-запросом
ОТВЕТ:
Формат ответа будет следующим:
{
"activationId": 635468024,
"service": "go",
"text": "Your sms text",
"code": "Your sms code",
"country": 0,
"receivedAt": "2022-06-01 17:30:57",
}
При отправке запроса мы будем ждать от вашего скрипта ответ с HTTP-статусом 200. Если ваш скрипт не ответит, мы будем отправлять запрос в течение 2 часов, но не более 8 раз.
Включить данный функционал Вы можете в настройках профиля
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - сервис для заказа смотрите таблицу
$forward * - необходимо ли запросить номер с переадресацией
* необязательный параметр, символы переадресации указываются через запятую, количество цифр переадресации должно совпадать с количеством передаваемых сервисов в параметре $service Допустимо передавать только 1 сервис с переадресацией, например "0,1,0,0" - корректно, "0,1,1,0" - некорректно. Принимает 0 (не выполнять , установлено по умолчанию), 1 (выполнять)
$operator * - сотовый оператор номера, можно указывать несколько через запятую (доступно только для **):
* необязательное поле. Если не указано, то по умолчанию будет выдано количество в соответствии с настройкой в левом меню.
$ref - передать реферальный идентификатор. Подробнее
$country - страна номера смотрите таблицу
Получая номер через API Вы подтверждаете согласие с правилами проекта
ОТВЕТ:
NO_NUMBERS - нет номеров
NO_BALANCE - закончился баланс
{{'phone':phone,'activation':activation,'service':service},
{'phone':phone,'activation':activation,'service':service}}, где (phone - id операции, activation - номер телефона, service - сервис)
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_ACTION - некорректное действие
BAD_SERVICE - некорректное наименование сервиса
BAD_KEY - неверный API-ключ
ERROR_SQL - ошибка SQL-сервера
BANNED:'YYYY-m-d H-i-s' - время на которое аккаунт заблокирован
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - id активации
$forward * - номер телефона на который нужно выполнить переадресацию
* обязательно, только если при getNumber был передан параметр forward=1.
$status - статус активации
1 сообщить о готовности номера (смс на номер отправлено)
3 запросить еще один код (бесплатно)
6 завершить активацию *
8 сообщить о том, что номер использован и отменить активацию
* если был статус 'код получен' - помечает успешно и завершает, если был 'подготовка' - удаляет и помечает ошибка, если был статус 'ожидает повтора' - переводит активацию в ожидание смс
** Изменить статус активации для которой был выбран метод верификации по звонку, невозможно, если номер уже пришел
Простая логика хронологии работы с апи:
Получить номер используя метод getNumber после этого доступны следующие действия:
8 - Отменить активацию (если номер Вам не подошел)
1 - Сообщить, что SMS отправлена (необязательно)
Для активации со статусом 1:
8 - Отменить активацию
Сразу после получения кода:
3 - Запросить еще одну смс
6 - Подтвердить SMS-код и завершить активацию
Для активации со статусом 3:
6 - Подтвердить SMS-код и завершить активацию
ОТВЕТ:
ACCESS_READY - готовность номера подтверждена
ACCESS_RETRY_GET - ожидание нового смс
ACCESS_ACTIVATION - сервис успешно активирован
ACCESS_CANCEL - активация отменена
ВОЗМОЖНЫЕ ОШИБКИ:
EARLY_CANCEL_DENIED - Нельзя отменить номер в первые 2 минуты
ERROR_SQL - ошибка SQL-сервера
NO_ACTIVATION - id активации не существует
BAD_SERVICE - некорректное наименование сервиса
BAD_STATUS - некорректный статус
BAD_KEY - неверный API-ключ
BAD_ACTION - некорректное действие
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - id активации
ОТВЕТ:
STATUS_WAIT_CODE - ожидание смс
STATUS_WAIT_RETRY:'прошлый, неподошедший код' - ожидание уточнения кода
STATUS_WAIT_RESEND - ожидание повторной отправки смс *
* софт должен нажать повторно выслать смс и выполнить изменение статуса на 6
STATUS_CANCEL - активация отменена
STATUS_OK: 'код активации' - код получен
ВОЗМОЖНЫЕ ОШИБКИ:
NO_ACTIVATION - id активации не существует
ERROR_SQL - ошибка SQL-сервера
BAD_KEY - неверный API-ключ
BAD_ACTION - некорректное действие
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$start - Временная метка в формате Unix Timestamp(необязательно) - с какой даты брать активации
$end - Временная метка в формате Unix Timestamp(необязательно) - по какую дату брать активации
ОТВЕТ:
Формат ответа будет следующим:
[{
"id": 635468024,
"date": "2022-11-12 15:58:39",
"phone": "79918529716",
"sms": "sms":"["Your sms code"]",
"cost": 100 //Если активация не завершена, то cost = 0,
"status": "4",
}]
ВОЗМОЖНЫЕ ОШИБКИ:
ERROR_SQL - ошибка SQL-сервера
BAD_KEY - неверный API-ключ
BAD_ACTION - некорректное действие
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - Наименование сервиса
ОТВЕТ:
Формат ответа будет следующим:
[{
"country": 0,
"share": 50 - // (Покупки выбранного сервиса по стране в процентном отношении к общему количеству покупок у нас на сервисе),
"rate": 50 - // (% успешных активаций среди общего количества по стране)
}]
ВОЗМОЖНЫЕ ОШИБКИ:
ERROR_SQL - ошибка SQL-сервера
BAD_KEY - неверный API-ключ
WRONG_SERVICE - неверный сервис
BAD_ACTION - некорректное действие
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - id активации
ОТВЕТ:
Ответ сервиса будет в json формате. Пример:
{"status":"2","phone":false}
Возможные статусы:
2 новая активация
3 успешно закрыта
4 отменена
5 возвращена
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
INVALID_ACTIVATION_ID - неверный id активации
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - краткое наименование сервиса (необязательно, по умолчанию все сервисы) смотрите таблицу
$country - кодовое наименование страны (необязательно, по умолчанию все страны) смотрите таблицу
ОТВЕТ:
JSON - объект в формате
{"Страна":{"Сервис":{"cost":Стоимость,"count":Количество}}}
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - краткое наименование сервиса (необязательно, по умолчанию все сервисы) смотрите таблицу
ОТВЕТ:
JSON - объект в формате
{"Сервис":{"Страна":{"count":Количество,"price":"Цена"}}}
ПАРАМЕТРЫ:
$api_key - ключ АПИ
ОТВЕТ:
JSON - объект в формате {{'Страна':{'id':0,'rus':"Россия","eng:"Russia","chn":"俄罗斯","visible":1,"retry":1,"rent":1,"multiService":1}},
где (
id : id страны;
rus : наименование страны на русском;
eng : наименование страны на английском;
chn : наименование страны на китайском;
visible : 0 - страна не отображается на сайте, 1 - отображается;
retry : 0 - повторная смс НЕ доступна, 1 - доступна;
rent : 0-страны нет в аренде, 1 - есть в аренде;
multiService : 0-страна НЕ доступна для мультисервиса, 1- доступна.)
Получив первую смс для номеров с переадресацией можно докупить другие смежные сервисы такие как Юла, Яндекс, Авито, Любой другой
Стоимость дополнительного сервиса составляет всего 5р
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - краткое наименование сервиса смотрите таблицу
$id - ID родительской активации
ОТВЕТ:
ADDITIONAL:$id:$phone - Успешно создалась новая активация. Где ID - ID дополнительной активации, phone - номер телефона
ВОЗМОЖНЫЕ ОШИБКИ:
WRONG_ADDITIONAL_SERVICE - Неверный дополнительный сервис (допустимы только сервисы для переадресации)
WRONG_ACTIVATION_ID - Неверный ID родительской активации
WRONG_SECURITY - Ошибка при попытке передать ID активации без переадресации, или же завершенной/не активной активации
REPEAT_ADDITIONAL_SERVICE - Ошибка возникает при попытке заказать купленный сервис еще раз NO_BALANCE - Не хватает средств
ERROR_SQL - Ошибка базы данных, обратитесь в поддержку
Если вы совершили успешную активацию на номере, то вы можете совершить её повторно.
Стоимость дополнительной активации определяется в зависимости от страны и сервиса. Конкретную стоимость можно получить по этому запросу.
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$activationId - ID родительской активации
ОТВЕТ:
ACCESS_NUMBER:$id:$phone - Успешно создалась новая активация. Где $id - ID дополнительной активации, $phone - номер телефона
ВОЗМОЖНЫЕ ОШИБКИ:
RENEW_ACTIVATION_NOT_AVAILABLE - номер недоступен для дополнительной активации
WRONG_ACTIVATION_ID - Неверный ID родительской активации
ERROR_SQL - Ошибка базы данных, обратитесь в поддержку
NEW_ACTIVATION_IMPOSSIBLE - совершить дополнительную активацию невозможно
NO_BALANCE - нет денег на счету
Вы можете узнать доступность номера для совершения дополнительной активации и получить её стоимость
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$activationId - ID родительской активации
ОТВЕТ:
JSON - объект в формате {'status': 'success', 'cost':200,"service":"tw","phone":777777777,"country":14},
ВОЗМОЖНЫЕ ОШИБКИ:
RENEW_ACTIVATION_NOT_AVAILABLE - номер недоступен для дополнительной активации
WRONG_ACTIVATION_ID - Неверный ID родительской активации
Вы можете заказать исходящий звонок с номера который получили для активации.
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$activationId - ID активации
$phone - Номер на который необходимо совершить звонок
ОТВЕТ:
JSON - объект в формате {'status': 'success', 'msg':'Заявка на звонок успешно создана.'},
ВОЗМОЖНЫЕ ОШИБКИ:
CALL_TASK_ALREADY_EXIST - Заявка на звонок уже создана.
WRONG_ACTIVATION_ID - Неверный ID активации
NUMBER_NOT_EXIST - Номер, на который вы пытаетесь совершить звонок, не существует
После заказа исходящего звонка, вы можете проверить статус заявки (заявок). По умолчанию возвращаются заявки за текущий день
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$activationId - ID активации, необязательный параметр, если не передано - вернется список всех заявок
$date - Дата в формате 'ГГГГ-ММ-ДД', не обязательный параметр, если не передано - вернется список за текущий день
ОТВЕТ:
JSON - объект в формате {"958874106":{"date":"2022-07-29 16:03:23","phoneFrom":"79912556393","status":"IN_PROCESS"}},
API АРЕНДЫ
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$time * - время аренды
* необязательный параметр. Если не указано, то по умолчанию будет 4 часа.
$operator * - сотовый оператор номера, можно указывать несколько через запятую
$country * - страна (По умолчанию: Россия)
* необязательный параметр. Если не указано, то по умолчанию будет любой.
ОТВЕТ:
Ответ сервиса будет в json формате. Пример:
{ "countries": { "0": 0 }, "operators": { "0": "aiva", "1": "any", "2": "beeline", ... "16": "yota" }, "services": { "full": { "cost": 42.93, "quant": 20 }, "vk": { "cost": 21.95, "quant": 20 }, "ok": { "cost": 7.68, "quant": 55 }, "ot": { "cost": 5.2, "quant": 42 } } }
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$service - сервис на который необходимо получить номер
$time * - время аренды в часах (По умолчанию: 4 часа). Следующий доступный временной период 12 часов, далее 24 часа. При запросе аренды на сутки и более, необходимо передавать: 24, 48, 72 и т.д.
$operator * - сотовый оператор номера, можно указывать несколько через запятую (По умолчанию: Любой)
$country * - страна (По умолчанию: Россия)
$url * - ссылка для webhook (По умолчанию не учитывается)
* необязательный параметр. Если не указано, то будет использован параметр по умолчанию.
ОТВЕТ:
Ответ сервиса будет в json формате. Пример:
{ "status": "success", "phone": { "id": 1049, "endDate": "2020-01-31T12:01:52", "number": "79959707564" } }
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
Ответ в json формате:
{ "status": "error", "message": "*possible_answer*" }
Возможные ответы в поле "message":
BAD_SERVICE - сервис не указан или название неверно
NO_BALANCE - нет денег на счету
NO_NUMBERS - свободных номеров нет
ACCOUNT_INACTIVE - свободных номеров нет
SQL_ERROR - ошибка sql сервера
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - id аренды, полученный в ответе при заказе номера
ОТВЕТ:
Ответ сервиса будет в json формате. Пример:
{ "status": "success", "quantity": "2", "values": { "0": { "phoneFrom": "79180230628", "text": "5", "service": "ot", "date": "2020-01-30 14:31:58" }, "1": { "phoneFrom": "79180230628", "text": "4", "service": "ot", "date": "2020-01-30 14:04:16" } } }
* успешно только в случае, когда есть смс ( поле 'quantity' > 0).
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
Ответ в json формате:
{ "status": "error", "message": "*possible_answer*" }
Возможные ответы в поле "message":
NO_ID_RENT - не указан id Аренды
INVALID_PHONE - номер арендован не вами (неправильный id аренды)
STATUS_FINISH - аренда оплачена и завершена
STATUS_CANCEL - аренда отменена с возвратом денег
STATUS_WAIT_CODE - ожидание первой смс
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - id аренды, полученный в ответе при заказе номера
$status - код для смены статуса (число)
Статус может быть принимать значения:
ОТВЕТ:
Ответ сервиса будет в json формате:
{ "status": "success" }
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
Ответ в json формате:
{ "status": "error", "message": "*possible_answer*" }
Возможные ответы в поле "message":
NO_ID_RENT - не указан id Аренды
INCORECT_STATUS - отсутствует или неправильно указан статус
CANT_CANCEL - невозможно отменить аренду (более 20 мин.)
INVALID_PHONE - номер арендован не вами (неправильный id аренды)
ALREADY_FINISH - аренда уже завершена
ALREADY_CANCEL - аренда уже отменена
SQL_ERROR - ошибка sql сервера
ПАРАМЕТРЫ:
$api_key - ключ АПИ
ОТВЕТ:
Ответ сервиса будет в json формате:
{ "status": "success", "values": { "0": { "id": "123456", "phone": "79181234567" }, "1": { "id": "123457", "phone": "79181234568" } } }
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
BAD_ACTION - некорректное действие
Ответ в json формате:
{ "status": "error", "message": "*possible_answer*" }
Возможные ответы в поле "message":
NO_NUMBERS - арендованных номеров нет
SQL_ERROR - ошибка sql сервера
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - id аренды
$api_key - время аренды(По умолчанию 4 часа)
* необязательный параметр. Если не указано, то будет использован параметр по умолчанию.
ОТВЕТ:
Ответ сервиса будет в json формате:
{ "status": "success", "phone": { "id": 1049, "endDate": "2020-01-31T12:01:52", "number": "79959707564"} }
При продлении завершённой аренды она будет перезаказана, будет передан новый id
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
BAD_ACTION - некорректное действие
Ответ в json формате:
{ "status": "error", "message": "*possible_answer*", "info": "*details*" }
Возможные ответы в поле "message":
NO_ID_RENT - отсутствует id аренды
INVALID_TIME - неверное время. Доступное количество часов от 4 до 1344
MAX_HOURS_EXCEED - превышено максимальное доступное время
max - максимально доступное время
INVALID_PHONE - неверный id аренды
RENT_DIE - аренду невозможно продлить, так как срок жизни номера истёк
SERVER_ERROR - ошибка сервера
NO_BALANCE - недостаточно средств
* данный метод доступен только для аренды с оператором MTT.
ПАРАМЕТРЫ:
$api_key - ключ АПИ
$id - id аренды
ОТВЕТ:
Ответ сервиса будет в json формате:
{ "status": "success", "price": 6.33 }
ВОЗМОЖНЫЕ ОШИБКИ:
BAD_KEY - неверный API-ключ
BAD_ACTION - некорректное действие
Ответ в json формате:
{ "status": "error", "message": "*possible_answer*" }
Возможные ответы в поле "message":
NO_ID_RENT - отсутствует id аренды
INVALID_PHONE - неверный id аренды
INVALID_TIME - неверно заданное время
RENT_DIE - аренду невозможно продлить, так как срок жизни номера истёк
MAX_HOURS_EXCEED - превышено максимальное доступное время
max - максимально доступное время
SERVER_ERROR - ошибка сервера
API JAVA
Включите библиотеку в maven
<artifactId>SMSActivateApi</artifactId>
<version>1.0</version>
</dependecy>
Пример оформления Вы можете посмотреть по ссылке на MavenRepository
Импортируйте главный класс для взаимодействия с API SMS-Activate.
Для использования библиотеки Вам необходим API ключ, его можно получить на данной странице и по ссылке ниже.
SMS-Activate API-KeyДля получения текущего баланса на вашем аккаунте используйте метод getBalance. Если Вас интересует помимо баланса кэшбэк, то вызовите метод getBalanceAndCashBack.
Метод getBalanceAndCashBack возвращает объект класса SMSActivateGetBalanceAndCashBack.
ПАРАМЕТРЫ:
ОТСУТСТВУЮТ
ВОЗВРАЩАЕМЫЙ ТИП:
BigDecimal
ПАРАМЕТРЫ:
ОТСУТСТВУЮТ
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор страны.
service(String) - Короткое имя сервиса.
forward*(boolean) -Необходимо ли запросить номер с переадресацией.
operatorSet*(Set) - Набор операторов.
phoneException*(Set) - Исключающие префиксы только для России, набор чисел от 3 до 6 (7918,7900111).
* необязательное поле. Если не указано, то по умолчанию будет выдано количество в соответствии с настройкой в левом меню.
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор страны.
operatorSet*(Set) - Набор операторов, которые доступны у сервиса
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор активации.
service(String) - Короткое имя сервиса.
Вместо идентификатора активации можно передать полученный объект класса SMSActivateActivation после использования метода getNumber или одну из активаций после использования getMultiServiceNumber.
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор страны.
serviceMap(Set) - Набор сервисов, для которых приобретается активация.
multiForwardList(List) - Список сервисов с переадресацией
operatorSet(Set) - Набор операторов.
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
ОТСУТСТВУЮТ
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор страны.
service(String) - Короткое имя сервиса.
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор страны.
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор активации.
Вместо идентификатора активации можно передать полученный объект класса SMSActivateActivation после использования метода getNumber или одну из активаций после использования getMultiServiceNumber.
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор активации.
status(SMSActivateClientStatus) - Статус, который нужно установить активации
Вместо идентификатора активации можно передать полученный объект класса SMSActivateActivation после использования метода getNumber или одну из активаций после использования getMultiServiceNumber.
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
ОТСУТСТВУЮТ
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
ОТСУТСТВУЮТ
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор активации.
Вместо идентификатора активации можно передать полученный объект класса SMSActivateActivation после использования метода getNumber или одну из активаций после использования getMultiServiceNumber.
ВОЗВРАЩАЕМЫЙ ТИП:
Алгоритм получения полного текста смс с активации
Получить номер используя метод getNumber после этого доступны следующие действия:
CANCEL - Отменить активацию (если номер Вам не подошел)
MESSAGE_WAS_SENT - Сообщить, что SMS отправлена (Обязательно для получения полного текста sms)
После обязательной установки статуса MESSAGE_WAS_SENT установить переменной получение SMS с помощью метода waitSMS с параметрами активации и времени, которое нужно ждать SMS.
После получения SMS можно получить его с помощью метода getFullSMS и затем вывести полный текст с помощью метода getText()
После этого Вы можете установить активации следующие статусы:
Для активации со статусом MESSAGE_WAS_SENT:
CANCEL - Отменить активацию
Сразу после получения кода:
REQUEST_ONE_MORE_CODE - Запросить еще одну смс
FINISH - Подтвердить SMS-код и завершить активацию
Для активации со статусом REQUEST_ONE_MORE_CODE:
FINISH - Подтвердить SMS-код и завершить активацию
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор страны.
service(String) - Короткое имя сервиса.
hours(Integer)* - Время аренды.
operator(String)* - Имя мобильного оператора.
urlWebhook(String)* - ссылка для webhook (По умолчанию не учитывается)
Что такое webHook?* необязательный параметр. Если не указано, то будет значение по умолчанию
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
countryId(Integer) - Идентификатор страны.
operatorSet(Set) - Набор сотовых операторов
hours(Integer)* - Время аренды.
* необязательный параметр. Если не указано, то будет значение по умолчанию
ВОЗВРАЩАЕМЫЙ ТИП:
ПАРАМЕТРЫ:
rentId(Integer) - Идентификатор арендованного номера.
Вместо rentId можно передать полученный объект класса SMSActivateRentActivation
после использования метода getRentNumber
ВОЗВРАЩАЕМЫЙ ТИП:
<?php
include_once ("smsactivateApi.php");//Включение класса в проект
$sms = new SMSActivate($API_KEY);//Создать экземпляр класса SMSActivate
$freeSlots = $sms->getNumbersStatus(0, 'tele2');//Получить количество доступных номеров для страны Россия и оператора теле2
echo "Номеров Вконтакте: " . $freeSlots['vk']."\n";//Показать для Vk
echo "Номеров Whatsapp: " . $freeSlots['wa']."\n";//Показать для Whatsapp
var_dump($freeSlots); //Отобразить все сервисы с количеством
$array=$activate->getTopCountriesByService(); //Получить массив, элементы которого содержат информацию по каждой стране
$balance = $sms->getBalance();//Получить баланс
echo "На счету " . $balance." руб.\n";//Показать баланс
$balance = $sms->getBalanceAndCashBack();//Получить баланс с кэшбэком
echo "На счету " . $balance." руб.\n";//Показать баланс с кэшбэком
$operators = $sms->getOperators();
//Получить операторов для всех стран
if (in_array('mts', $operators['countryOperators'][0])) {
//проверить доступен ли 'mts' для России
//выполнить действие
}
if (in_array('chinamobile', $operators['countryOperators'][3])) {
//проверить доступен ли 'chinamobile' для Китая
//выполнить действие
}
$activations = $sms->getActiveActivations();
$number = $sms->getNumber('ok',0, 0, 'tele2');//Получить номер Одноклассники без переадресации
echo "Активация № " . $number['id']. "телефон ". $number['number'] \n";//Показать id и номер активации
$result = $sms->getNumber('vk', 0 , 1);
if (!is_array($result)) {
echo 'Ошибка: ' . $result . '\n';//В случае ошибки вернется строка, в случае успеха - массив
} else {
echo 'Id: ' . $result['id'] ."\n";
echo 'Номер: ' . $result['number'] ."\n";
}
$result = $sms->getNumberV2('vk', 0 , 1);
$number = $sms->getMultiServiceNumber('ok,vk,vi,av','0,0,0,1', 0, 'tele2');//Получить номер для сервисов Одноклассники, Вконтакте, Viber без переадресации и Авито с переадресацией
foreach ($number as $value) {
echo "Активация № " . $value['activation']. " для сервиса ". $value['service'] ."\n";
}
echo "Номер " . $value['phone'] ."\n";//Показать id активаций и номер
$status = $sms->setStatus($number['id'], 3);//Изменить статус активации по id (получить ещё 1 код)
$status = $sms->getStatus($number['id']);//Получить статус активации по id
if (is_array($status) {
echo "статус : " . $status['status'];//Может быть STATUS_OK или STATUS_WAIT_RETRY, в противном случае вернется строка с текстом ошибки
echo "код: " . $status['code'];
} else {
echo $status ."\n";
}
$incomingCall = $sms->getIncomingCallStatus($id);//Получить данные активации по звонку
echo $incomingCall['phone'] //Показать входящий номер
$prices = $sms->getPrices(1, 'vk');//Получить актуальную цену на сервис
echo "Цена для Вк(Украина) : " .$prices[1]['vk']['cost']." руб. количество: ". $prices[1]['vk']['count'];//Показать результат
$countries = $sms->getCountries();//Получить список всех стран
$additional = $sms->getAdditionalService('fx', $id);//Получить дополнительную активацию для сервиса PGbonus на основе активации id
echo "Активация №: " . $additional[id] . " Телефон: " . $additional[number];//Показать результат
$sms->createTaskForCall(958874106, 78006007664);//Создать заявку на исходящий вызов по активации №958874106, позвонить на номер 78006007664
$sms->getOutgoingCalls('2022-07-27');//Посмотреть заявки на звонок созданные 27 июля 2022
$getAvailableRentNumbers = $sms->getRentServicesAndCountries('2');//Запросить доступные для аренды страны и сервисы ( на 2 часа для всех операторов )
echo "Полная аренда - Стоимость:" . $getAvailableRentNumbers['services']['full']['cost'] . " Количество :" .$getAvailableRentNumbers['services']['full']['quant'] ." \n"; //Вывести информацию о полной стоимости
foreach( $getAvailableRentNumbers['operators'] as $value) {
echo " Оператор " . $value ."\n"; }//Вывести список операторов
$getRentNumber = $sms->getRentNumber('vk','10','0','yota');//Получить номер для аренды для Вконтакте на 10 часов, оператор 'Yota', страна - Россия
if ($getRentNumber['status'] === 'success'){
echo "Аренда прошла успешно! Ваш номер: " . $getRentNumber['phone']['number']." \nДата окончания аренды : ". $getRentNumber['phone']['endDate']." \nId номера :" .$getRentNumber['phone']['id'] ; }//Вывести информацию об аренде
else
echo "Код ошибки : " . $getRentNumber['message'];
$getRentStatus = $sms->getRentStatus($getRentNumber['phone']['id']);//Получить статус аренды с id от полученного номера
if ($getRentStatus['status'] == 'success'){
foreach( $getRentStatus['values']as $index => $value) {
echo " Сообщение " . $index .": от номера - " . $value['phoneFrom'] . " сервис - " . $value ['service'] . "текст сообщения - " . $value['text'] . "дата - " . $value['date']; } }//вывести список сообщений полученных во время аренды номера
else
echo "Код ошибки : " . $getRentStatus['message'];
$setRentStatus = $sms->setRentStatus($getRentNumber['phone']['id'],1);//Установить статус аренды 'финиш' с id от полученного номера
if ($setRentStatus['status'] == 'success')
echo " Изменение статуса прошло успешно! ";
else
echo "Код ошибки : " . $setRentStatus['message'];
$getRentList = $sms->getRentList();//Получить список арендованных номеров на данный момент
if (getRentList['status'] == 'success')
foreach( $getRentList['values'] as $value) {
echo " ID " . $value["id"] . " Номер " . $value["phone"] ."\n"; }//Вывести список номеров
else
echo "Код ошибки : " . $getRentList['message'];
$result = $sms->continueRentNumber($id);//Продлить аренду активации id на 4 часа (по умолчанию)
if ($result['status'] == 'success') {
echo "Номер: " . $result['phone']['number']"//Вывести номер
echo "id: " . $result['phone']['id']"//Вывести id активации
echo "Аренда действует до: " . $result['phone']['endDate']"//Вывести дату и время окончания аренды
} else {
echo "Код ошибки : " . $result['msg'];
}
$result = $sms->getContinueRentPriceNumber($id, 12);//Получить стоимость продления аренды для активации id на 12 часов
if ($result['status'] == 'success') {
echo " Стоимость продления: " . $result['price'];//Вывести стоимость
} else {
echo "Код ошибки: " . $result['message']; //Вывести код ошибки
}
from smsactivate.api import SMSActivateAPI
# SMSActivateAPI Содержит все основные инструменты для работы с API SMSActivate
sa = SMSActivateAPI(API_KEY)
sa.debug_mode = True
# Используется для отладки. При активном debug_mode все ответы от сервера и класса будут выводиться в консоль
print(sa.version())
# Возвращает текущую версию библиотеки
status = sa.getNumbersStatus(country=0, operator='tele2')
try:
print(status['vk_0']) # 274789
except:
print(status['message']) # Текст ошибки
result = sa.getTopCountriesByService('vk')
try:
print(result[0]['count']) # 2350
except:
print(result['message']) # Текст ошибки
balance = sa.getBalance() # {'balance': '100.00'}
try:
print(balance['balance']) # 100.00
except:
print(balance['message']) # Текст ошибки
balance = sa.getBalanceAndCashBack() # {'balance': '100.00'}
try:
print(balance['balance']) # 100.00
except:
print(balance['message']) # Текст ошибки
operators = sa.getOperators(country=0)
try:
print(operators['countryOperators']['0'])
except:
print(operators['error']) # Статус ошибки
activations = sa.getActiveActivations()
try:
print(activations['activeActivations'])
except:
print(activations['error']) # Статус ошибки
number = sa.getNumber(service='vk', operator='tele2', country=0, verification="true") # {'activation_id': 000000000, 'phone': 79999999999}
try:
print(number['phone']) # 79999999999
except:
print(number['message']) # Текст ошибки
number = sa.getNumberV2(service='vk', country=0)
try:
print(number['phoneNumber']) # 79999999999
except:
print(number['message']) # Текст ошибки
multinumber = sa.getMultiServiceNumber(service='fb,ig', operator='tele2', country=0) # [{'phone': '79999999999', 'activation': 000000000, 'service': 'fb'}, {'phone': '79999999999', 'activation': 000000001, 'service': 'ig'}]
try:
print(multinumber[0]['phone']) # 79999999999
except:
print(multinumber['message']) # Текст ошибки
status = sa.setStatus(id=000000000, status=1) # ACCESS_READY
try:
print(status) # ACCESS_READY
except:
print(status['message']) # Текст ошибки
status = sa.getStatus(id=000000000) # STATUS_WAIT_CODE
try:
print(sa.activationStatus(status)) # {'status': 'STATUS_WAIT_CODE', 'message': 'Ожидание смс'}
except:
print(status['message']) # Текст ошибки
status = sa.getIncomingCallStatus(id=000000000)
try:
print(status['status']) # 2
except:
print(status['message']) # Текст ошибки
prices = sa.getPrices(service='fb', country=0)
try:
print(prices['0']) # {'fb': {'cost': 9, 'count': 27934}}
except:
print(prices['message']) # Текст ошибки
countries = sa.getCountries()
try:
print(countries['0']['eng']) # Russia
except:
print(countries['message']) # Текст ошибки
service = sa.getAdditionalService(id=000000000, service='ig')
try:
print(service['phone']) # 79999999999
except:
print(service['message']) # Текст ошибки
service = sa.getRentServicesAndCountries(time=4, operator='tele2', country=0)
try:
print(service['services']['full']['cost']) # 100.00
except:
print(service['message']) # Текст ошибки
rent = sa.getRentNumber(service='ig', time=4, operator='tele2', country=0)
try:
print(rent['phone']['number']) # 79999999999
except:
print(rent['message']) # Текст ошибки
status = sa.getRentStatus(000000000)
try:
print(status['values']['0']['text']) # SMS
except:
print(status['message']) # Текст ошибки
status = sa.setRentStatus(id=000000000, status=1)
try:
print(status['status']) # success
except:
print(status['message']) # Текст ошибки
rent = sa.getRentList()
try:
print(rent['values']['0']['phone']) # 79999999999
except:
print(rent['message']) # Текст ошибки
rent = sa.continueRentNumber(id=000000000, time=4)
try:
print(rent['phone']['number']) # 79999999999
except:
print(rent['message']) # Текст ошибки
rent = sa.getContinueRentPriceNumber(000000000)
try:
print(status['price']) # 4.00
except:
print(status['message']) # Текст ошибки
import ru.sms_activate.SMSActivateApi;//Включение класса в проект
SMSActivateApi smsActivateApi = new SMSActivate("API_KEY");//Создать экземпляр класса SMSActivate
BigDecimal balance = smsActivateApi.getBalance();//Получить текущий баланс на аккаунте
System.out.println("Balance: "+ balance)//Вывести полученный баланс
SMSActivateGetBalanceAndCashbackResponse smsActivateGetBalanceAndCashbackResponse = smsActivateApi.getBalanceAndCashback();//Получить текущий баланс и кэшбек
System.out.println("Cashback + balance: "+ smsActivateGetBalanceAndCashbackResponse.getBalanceAndCashback());//Вывести сумму баланса и кэшбека
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//Получить активацию для сервиса Вконтакте в России
System.out.println(activation);//Вывести полученную активацию
SMSActivateGetNumbersStatusResponse smsActivateGetNumbersStatusResponse= smsActivateApi.getNumberStatus(0,null);//Получить информацию о доступных сервисах для России
SMSActivateServiceInfo go = smsActivateGetNumbersStatusResponse.getSMSActivateServiceInfoByShortName("go");//Получение информации о номерах для сервиса Google
System.out.println("Short name service: " + go.getShortName();//Получить короткое имя сервиса
System.out.println("count phone numbers: "+ go.getCountPhoneNumber();//Получить количество номеров для сервиса
System.out.println(""Forwarding is available: "+ go.isForward() ? "yes" : "no"//Узнать, есть ли переадресация у сервиса
SMSActivateActivation activation=smsActivateApi.getNumbersStatus(0,"ot",true);//Получение активации
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//Установка статуса MESSAGE_WAS_SENT после отправки смс для номера
SMSActivateActivation childActivation =smsActivateApi.getAdditionalService(activation,"av");//Запрос новой активации для дополнительного сервиса
System.out.println(childActivation);//Вывод информации о дополнительной активации
Set<String>operatorSet= new HashSet<>();
operatorSet.add("mts");//Добавление оператора МТС в набор операторов
Map<String,Boolean>serviceMap= new HashMap<>();
serviceMap.put("av",false);//Добавление сервиса Авито в список сервисов(указывать true, если нужен сервис с переадресацией)
SMSActivateGetMultiServiceNumberResponse multiServiceNumberResponse=smsActivateApi.getMultiServiceNumber(0, serviceMap, operatorSet);//Получение активации для нескольких сервисов
multiServiceNumberResponse.getSMSActivateActivationList().forEach(activation->{
System.out.println("Id: " + activation.getId());
System.out.println("Number: " + activation.getNumber());
System.out.println("Service name: " + activation.getShortName());
}
//Вывод информации о полученных активациях
SMSActivateGetPricesResponse smsActivateGetPricesResponse=smsActivateApi.getPricesByCountryIdAndServiceShortName(0, "vk");//Получение списка цен для России по сервису Вконтакте. Для получения полного списка цен используйте метод getAllPrices();
SMSActivateGetPriceInfo vk=smsActivateGetPricesResponse.getPriceInfo(0, "vk");//Получение информации о сервисе Вконтакте для России
System.out.println(">>> Cost: "+ vk.getCost());//Получить цену для сервиса
System.out.println(">>> count phone numbers: " + vk.getCountPhoneNumbers());//Получить количество номеров для сервиса
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//Получить активацию для сервиса Вконтакте в России
System.out.println(activation);//Вывести полученную активацию
SMSActivateGetStatusResponse getResponse = smsActivateApi.getStatus(activation);//Получение статуса для активации
System.out.println(getResponse.getSMSActivateGetStatus());//Вывод информации о статусе активации
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//Установка статуса MESSAGE_WAS_SENT после получения смс для номера
smsActivateApi.setStatus(activation, SMSActivateClientStatus.FINISH);//Установка статуса FINISH после получения смс для номера
SMSActivateGetCountriesResponse smsActivateGetCountriesResponse =smsActivateApi.getCountries();//Получение списка стран с информацией
SMSActivateCountryInfo countryInfo = smsActivateGetCountriesResponse.get(0)//Получение информации о первой стране в списке
System.out.println("Russian name: "+countryInfo.getRussianName();//Вывести русское название страны
System.out.println("English name: "+countryInfo.getEnglishName();//Вывести русское название страны
System.out.println("Support multi-service: "+ countryInfo.isSupportMultiService() ? "yes" : "no"//Вывести, поддерживает ли страна мульти-сервисы
SMSActivateGetQiwiRequisitesResponse smsActivateGetQiwiRequisitesResponse=smsActivateApi.getQiwiRequisites();//Получение информации о Qiwi
System.out.println("Comment: "+smsActivateGetQiwiRequisitesResponse.getComment()//Вывод комментария к реквизитам
System.out.println("Wallet: "+smsActivateGetQiwiRequisitesResponse.getWallet());//Вывод кошелька
System.out.println("Up to date: "+smsActivateGetQiwiRequisitesResponse.getUpToDate());//Вывод даты пополнения
SMSActivateActivation activation=smsActivateApi.getNumber(0,"vk")//Получить активацию для сервиса Вконтакте в России
smsActivateApi.setStatus(activation, SMSActivateClientStatus.MESSAGE_WAS_SENT);//Установка статуса MESSAGE_WAS_SENT после отправки смс для номера
String code=smsActivateApi.waitSms(activation,2)//Установить получение sms в течение 2 минут
if(code == null) {
smsActivateApi.setStatus(activation, SMSActivateClientStatus.CANCEL);//Установка статуса CANCEL, если sms не пришла
}
else{
SMSActivateGetFullSmsResponse smsActivateGetFullSmsResponse=smsActivateApi.getFullSms(activation)//Получение текста sms
System.out.println("Full SMS: "+smsActivateGetFullSmsResponse.getText());//Вывод текста SMS
}
SMSActivateRentActivation rentActivation= smsActivateApi.getRentNumber(0, "vk", 6);//Получение номера с арендой
System.out.println(">> ID: "+rentActivation.getId());//Вывод ID активации
System.out.println(">> Number: "+rentActivation.getId());//Вывод номера активации
System.out.println(">> End date: "+rentActivation.getId());//Вывод даты окончания активации
SMSActivateGetRentServicesAndCountriesResponse smsActivateGetRentServicesAndCountriesResponse= smsActivateApi.getRentServicesAndCountries(0, null, 4);//Получение информации о сервисах и странах, поддерживающих аренду
smsActivateGetRentServicesAndCountriesResponse.getAllRentServices().forEach((serviceShortName, smsActivateRentService)->{
System.out.println("Service shortname: " + serviceShortName);
System.out.println(" count phone numbers: " + smsActivateRentService.getCountPhoneNumbers());
System.out.println(">> Cost: " + smsActivateRentService.getCost());
}
//Вывод информации о полученных сервисах
SMSActivateRentActivation rentActivation= smsActivateApi.getRentNumber(0, "vk");//Получение номера с арендой
SMSActivateGetRentStatusResponse smsActivateGetRentStatusResponse= smsActivateApi.getRentStatus(rentActivation);//Получение статуса активации
System.out.println(">> Count sms: "+ smsActivateGetRentStatusResponse.getCountSms());//Вывод количество sms на арендованном номере