Партнёрская API документация Grizzly SMS

Краткое описание работы протокола

Партнёрский протокол предназначен для предоставления номеров и входящих SMS через API напрямую на сервер Grizzly SMS.

Во всех запросах используется параметр ключ — KEY. Данный ключ выдается сотрудниками поддержки.

Запросы количества GET_SERVICES, номера GET_NUMBER и завершения активации FINISH_ACTIVATION посылаются напрямую с нашего сервера на сервер партнера.

Формат URL — https://GrizzlySMS где Grizzly SMS может быть partner.ru:port/GrizzlySMS.php или partner.ru/GrizzlySMS.php

GET_SERVICES

GET_NUMBER

PUSH_SMS

FINISH_ACTIVATION

Сервер Grizzly SMS посылает запрос на количество номеров по методу GET_SERVICES раз в 10-20 секунд.

Если вы отдаете количество >0, то вы получите запрос на выдачу номера GET_NUMBER

После запроса GET_NUMBER вы должны выдать номер телефона, подходящий по всем критериям, и передавать нам абсолютно все входящие SMS по методу PUSH_SMS. Это необходимо для того, чтобы мы могли провести четкую и объективную фильтрацию и выдать клиенту нужную SMS под нужный сервис.

По окончании всех необходимых работ с номером вы получите статус 3 по методу FINISH_ACTIVATION. Он означает, что номер был успешно куплен и вам было начислено за него вознаграждение.

Требования:

  • формат запроса/ответа JSON
  • кодировка UTF-8
  • обязательно используйте user-agent header в запросах
на сервер Grizzly SMS

 

Типы полей:

  • число int: целое значение в диапазоне
 от -2 147 483 648 до 2 147 483 647
  • число uint: целое беззнаковое значение
 в диапазоне от 0 до 2 147 483 647
  • число long: целое значение в диапазоне
 от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
  • число ulong: целое беззнаковое значение
 в диапазоне от 0 до 9 223 372 036 854 775 807
  • число cur: вещественное значение, содержащее
 до 2 знаков после точки, например 177.77
  • boolean: литерал принимающий значения true или false
  • string: строковое значение неограниченной длины
  • array of string: массив string
1. Метод запроса количества номеров GET_SERVICES

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

POST запрос выполняется с сервера Grizzly SMS на сервер партнера.

! Обратите внимание: Если у вас GSM модем ограничен в количестве одновременно активных модулей, то вы должны отдавать количество, равное количеству активных модулей.

Состав полей ЗАПРОСА
Поле Тип Обязательность Описание
action String
 
GET_SERVICES
key String
 
Ключ протокола
Состав полей ОТВЕТА
Поле Тип Обязател. Описание
status String
 
Статус ответа (см. Таблицы статусов)
countryList Array of CountryList
 
Список стран
 
CountryList
Поле Тип Обязател. Описание
country String
 
Статус ответа (см. Таблицы статусов)
operatorMap* Ассоциативный
массив
 
Ключ - оператор (см. Таблица данных),
Значение - ассоциативный
массив сервисов**

* Вы не должны отправлять пустые массивы данных в operatorMap

** Ассоциативный массив сервисов: ключ — краткое наименование сервиса (см. Таблица данных), значение — количество номеров под сервис (тип-int)

Пример ЗАПРОСА
{
  "action": "GET_SERVICES",
  "key": "qwerty123"
}
Пример ОТВЕТА
{
  "countryList":
    [
      {
        "country": "russia",
        "operatorMap":
          {
            "any":
              {
                "vk": 3,
                "ok": 10
              }
          }
      },
      {
        "country": "ukraine",
        "operatorMap":
          {
            "any":
              {
                "vk": 0,
                "wa": 32
              }
          }
      }
    ],
  "status": "SUCCESS"
}
2. Метод запроса номера GET_NUMBER

Данный запрос передает нам номер телефона, который мы передаем клиенту.

POST запрос выполняется с сервера Grizzly SMS на сервер партнера.

Если в массиве exceptionPhoneSet есть список префиксов, например 44742 и 44740, то вы не должны выдать номер, который начинается на один из этих префиксов. Количество цифр не ограничено размером префикса.

Состав полей ЗАПРОСА
Поле Тип Обязател. Описание
action String
 
GET_NUMBER
key String
 
ключ протокола
country String
 
см. Таблицы данных
service String
 
см. Таблицы данных
operator String
 
Ключ протокола
sum Cur
 
Сумма, которую вы получите за
успешно проданный сервис

exceptionPhoneSet

Array of String
 
Список префиксов, которые ЗАПРЕЩЕНО выдавать при запросе номера
Состав полей ОТВЕТА
Поле Тип Обязател. Описание
status String
 
Статус ответа (см. Таблицы статусов)
number Ulong
 
Номер телефона с кодом страны
activationId Ulong
 
ID активации в системе партнера
 
Пример ЗАПРОСА
{
  "action": "GET_NUMBER",
  "key": "qwerty123",
  "country": "russia",
  "operator": "any",
  "service": "tg",
  "sum": 20.00,
}
Пример ЗАПРОСА с префиксами исключения
{
  "action": "GET_NUMBER",
  "key": "qwerty123",
  "country": "russia",
  "operator": "any",
  "service": "vk",
  "sum": 10,
  "exceptionPhoneSet": [
    "7918",
    "79281"
  ]
}
Пример ОТВЕТА
{
  "status": "SUCCESS",
  "number": 79157891133,
  "activationId": 571346
}
Пример ОТВЕТА в случае отсутствия номера
{
  "status": "NO_NUMBERS"
}
3. Метод доставки СМС на сервер Grizzly SMS PUSH_SMS

Данный POST запрос передаётся с сервера партнёра на сервер Grizzly SMS на адрес: https://api.grizzlysms.com/agent/api/sms

Если вы получаете ответ со статусом SUCCESS, то помечайте в вашей базе СМС успешно доставленной и больше не отправляйте СМС. Если вернулся статус, отличный от SUCCESS, то с задержкой 10 секунд повторяйте запрос, пока не получите статус SUCCESS.

Состав полей ЗАПРОСА
Поле Тип Обязател. Описание
action String
 
PUSH_SMS
key String
 
Ключ протокола
smsId Ulong
 
ID смс в системе партнёра
phone Ulong
 
Номер телефона (включая код страны), на который пришло SMS
phoneFrom String
 
Наименование отправителя, который направил SMS (может быть как буквенное, так и цифровой выражение)
Text String
 
Текст SMS
Состав полей ОТВЕТА
Поле Тип Обязател. Описание

status

String
 
Статус ответа (см. Таблицы статусов)
Пример ЗАПРОСА
{
  "action": "PUSH_SMS",
  "key": "qwerty123",
  "smsID": 1
  "phone": 447472190082
  "phoneFrom": "Microsoft",
  "text": "Microsoft access code: 5015"
}
Пример ОТВЕТА
{
  "status": "SUCCESS"
}
4. Метод запроса на завершение активации FINISH_ACTIVATION

Данный запрос мы передаём с сервера Grizzly SMS на сервер партнёра, чтобы завершить активацию.

POST запрос выполняется с сервера Grizzly SMS на сервер партнёра. 

Управление активаций происходит полностью со стороны Grizzly SMS. По независящим от нас причинам мы можем не получить ответ от вас об успешном измении статуса. Поэтому, если Grizzly SMS повторно шлёт запрос завершения активации, вы должны проверить сущестование активации у вас по ID и, если активация у вас существует, прислать статус SUCCESS.

Состав полей ЗАПРОСА
Поле Тип Обязател. Описание
action String
 
FINISH_ACTIVATION
key String
 
Ключ протокола
activationId Ulong
 
ID активации, полученный во втором запросе
status Ulong
 
Статус ответа (см. Таблицы статусов)
Состав полей ОТВЕТА
Поле Тип Обязател. Описание

status

String
 
Статус ответа (см. Таблицы статусов)
Пример ЗАПРОСА
{
  "action": "FINISH_ACTIVATION",
  "key": "qwerty123",
  "smsId": 100,
  "status": 3
}
Пример ОТВЕТА
{
  "status": "SUCCESS"
}
🆕 5. Отправка записей звонков PUSH_CALL_RECORD

Данный POST запрос передаётся с сервера партнёра на сервер Grizzly SMS на адрес: https://api.grizzlysms.com/agent/api/sms

Если вы получаете ответ со статусом SUCCESS, то помечайте в вашей базе запись успешно доставленной и больше не отправляйте эту запись. Если вернулся статус, отличный от SUCCESS, то с задержкой 10 секунд повторяйте запрос, пока не получите статус SUCCESS.

Content-Type: multipart/form-data
Состав полей ЗАПРОСА
Поле Тип Обязател. Описание
action String
 
PUSH_CALL_RECORD
key String
 
Ключ протокола
callId Ulong
 
ID звонка в системе партнёра
phone Ulong
 
Номер телефона (включая код страны), где был разговор
phoneFrom String
 
Номер входящего звонка
file Binary Обязательно, если нет text Формат файла wav, amr, mp3, ogg
text String Обязательно, если нет file Распознаный текст
Состав полей ОТВЕТА
Поле Тип Обязател. Описание

status

String
 
Статус ответа (см. Таблицы статусов)
Пример ЗАПРОСА
{
  "action": "PUSH_CALL_RECORD",
  "key": "qwerty123",
  "recordID": 1
  "phone": 447472190082
  "phoneFrom": "Microsoft",
  "text": "Microsoft access code: 5015"
}
Пример ОТВЕТА
{
  "status": "SUCCESS"
}
🆕 6. Отправка входящего номера PUSH_CALL

Данный POST запрос передаётся с сервера партнёра на сервер Grizzly SMS на адрес: https://api.grizzlysms.com/agent/api/sms

Если вы получаете ответ со статусом SUCCESS, то помечайте в вашей базе запись успешно доставленной и больше не отправляйте эту запись. Если вернулся статус, отличный от SUCCESS, то с задержкой 10 секунд повторяйте запрос, пока не получите статус SUCCESS.

Состав полей ЗАПРОСА
Поле Тип Обязател. Описание
action String
 
PUSH_CALL
key String
 
Ключ протокола
callId Ulong
 
ID звонка в системе партнёра
phone Ulong
 
Номер телефона (включая код страны)
phoneFrom String
 
Номер входящего звонка
Состав полей ОТВЕТА
Поле Тип Обязател. Описание

status

String
 
Статус ответа (см. Таблицы статусов)
Пример ЗАПРОСА
{
  "action": "PUSH_CALL",
  "key": "qwerty123",
  "callID": 1
  "phone": 447472190082,
  "phoneFrom": "447472190099"
}
Пример ОТВЕТА
{
  "status": "SUCCESS"
}
Тестирование протокола

ОДНОВРЕМЕННАЯ ВЫДАЧА НОМЕРА. Вы должны обрабатывать одновременные запросы должным образом и не выдавать номера повторно. Например, если вы отдаёте 100 номеров Telegram Англия, то если Grizzly SMS делает одновременно 1000 запросов на данный продукт, то сервер партнёра должен выдать 100 уникальных номеров. Если номер выдан несколько раз, то тест провален. 

КОРРЕКТНОЕ ЗАВЕРШЕНОЕ АКТИВАЦИИ. Изменение статуса активации происходит сугубо на стороне Grizzly SMS. Вы не должны самостоятельно завершать активацию.

ПРОВЕРКА ВЫДАЧИ СМС. Как только вы получили SMS, её необходимо сразу же направить на сервер Grizzly SMS. Если вам был отправлен статус SUCCESS, то вы не должны больше направлять эту СМС. Если же вы получаете иной статус, то вам следует повторять запрос раз в 10-20 секунд. Если СМС будет выдано повторно после получения статуса SUCCESS, тест провелен. 

ПРОВЕРКА ТИПОВ ПОЛЕЙ. Тщательно проверяйте типы полей, которые были указаны в данной документации. Если данное условие было нарушено, то тестирование провалено.

 

ПРОВЕРКА НАЛИЧИЯ КОДА СТРАНЫ В ТЕЛЕФОНЕ НОМЕРА. Выдача номера телефона должна производиться сугубо в цифровом виде и с кодом страны.

ПРОВЕРКА ВРЕМЕНИ ВЫДАЧИ НОМЕРА. Вы должны выдавать номер с задержкой менее 3 секунд. Если обнаружена задержка более 3 секунд, тестировани провалено.

ПРОВЕРКА КОЛИЧЕСТВА НОМЕРОВ. Если в зваросе на количество номеров вы показываете 1000, а при одновременном запросе номеров вы выдаёте только 100, тестирование провалено. 

ПРОВЕРКА НА ИСКЛЮЧЕНИЯ. Если вы некорректо обрабатываете исключения для выдачи номера, тестирование провалено.

Таблица статусов
Состав полей ЗАПРОСА
Статус Расшифровка
SUCCESS Запрос выполнен успешно
ERROR Ошибка при выполнении запроса. Поле ERROR должно быть заполнено описанием
NO_NUMBERS Нет номеров. Возрващается только на запрос номера
Статус активации
Статус Расшифровка

1

Выдача номера под данные сервис запрещена
3 Активация была успешно продана. Вы получили вознаграждение
4 Активация была отменена*
5 Активация была возвращена. Покупателю были возвращены деньги за активацию. Возможно, данный номер был уже зарегистриован ранее, и на номере стоит двухфакторная аутентификация

*Описание работы с механизмом отмены: Если номер был отменен 5 раз, то данный номер вы не должны нам выдавать снова. Возможно данный номер не подошел клиенту или был уже зарегистрирован под данный сервис.

Успешный ответ на запрос
{
  "status": "SUCCESS",
  //информация
}
Ответ при ошибке
{
  "status": "ERROR",
 "error": "описание ошибки"
}
Таблица данных
Состав полей ЗАПРОСА
Список Ссылка
Список стран Полный список стран с наименованиями и ID находится по ссылке https://7grizzlysms.com/docs
Список операторов На данный момент разбивка по операторам в разработке, поэтому следует передавать значение any. Как только будет реализован данный функционал, мы сообщим вам в чате технической поддержки.
Список сервисов Полный список сервисов с наименованиями и ID находится по ссылке https://7grizzlysms.com/docs
API для изменения цены

Этот API предназначен для автоматизации на вашей стороне работы с ползунками (ценами на сервисы).

API расположен по адресу https://apiagent.7grizzlysms.com.
Для аутентификации в запросах необходимо отправлять Ваш API-ключ в HTTP-заголовке apikey.

Все данные передаются в формате JSON.
В GET запросах необходимо отправлять HTTP-заголовок Accept: application/json, в POST запросе - Accept: application/json и Content-Type: application/json.

Доступные значения параметра country расположены в Списке стран в столбцах ID и Countries, т.е. можно использовать как 0, так и russia.
Доступные значения параметра service расположены в Списке сервисов в столбце ID.

Условия и штрафы

Вывод средств. Вывод заработанных средств осуществляется по заявкам. Партнёр может создать заявку в разделе Вывод средств. За одну операцию доступен вывод заработка на сумму от 100 USDT. Заявки обрабатываются ежедневно с 11:00 до 23:00 (МСК) в течение срока от 20 до 180 минут. В случае, если вам при выводе обещан какой-либо бонус (согласно опубликованным на сайте условиям), пожалуйста, обязательно укажите это в комментарии к заявке.

Компенсации за 2FA. Платформа Grizzly SMS, как посредник, компенсирует расход покупателей за номера Telegram с установленным 2FA и за неверные коды в полном объёме. Информацию по 2FA Grizzly SMS получает в автоматическом режиме от ПО Telegram Expert и TG-GIANT. Важно! Средства за номера с 2FA и неверным кодом (ответ 'wrong code') и на аккаунтах Telegram не начисляются. Информацию о зафиксированном 2FA или wrong_code можно увидеть в Истории активаций.