# SMS (HTTP-JSON) version 1.1

https://routee.sayqal.uz/

Sayqal Solutions

### Краткое описание

Взаимодействие с HTTP SMS интерфейсом OOO "Sayqal Solutions" осуществляется по протоколу HTTP в теле формат JSON.

### Запрос на отправку SMS

#### /TransmitSMS post

post

Отправить запрос на отправку SMS сообщения. POST запрос на https://routee.sayqal.uz/sms/TransmitSMS

#### post /TransmitSMS

Отправить запрос на отправку SMS сообщения. POST запрос на https://routee.sayqal.uz/sms/TransmitSMS

Secured by Access TOKEN - Transmit

### Body

Media type: application/json

Type: object

Properties

- utime: required(integer)

  Текущий (системный) UNIX timeStamp.
  Используется только в генерации TOKEN-а.

  Example:

      1571275506

- username: required(string)

  User Name партнера

- service: required(object)

  Информация о сервисе

  - service: required(integer)

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

  - numbera: (string)

    Номер услуги (1515, 6670 итд)

  - nickname: (string)

    Ник (Альфа номер) отправителя

  - mclass: (integer)

    Accepts values between 0 and 3, for Message Class 0 to 3, A value of 0 sends the message directly to display, 1 sends to mobile, 2 to SIM and 3 to SIM toolkit

- message: required(object)

  SMS сообщения

  - smsid: required(string)

    Уникальный идентификатор для каждого СМС в системе партнера

  - phone: required(string - pattern: 998YYХХХХХХХ)

    Номер абонента получателя (в международном формате 998981250765). Абоненты РУз

  - text: required(string)

    Текст СМС сообщения. Длина до 918 символов когда все символы в латинице и до 402 символов когда в тексте присуствует хотя бы один символ не в латинице. Длинный текст разбиваеться по частям:

    - по 153 символов если длина текста больше 160 символов и если все символы в латинице
    - по 67 символов если длина текста больше 70 символов и если текст на русском (в UNICODE-е)

    счет выставляется на каждый часть отдельно

  - validityTime: (string - default: sysdate + 24 часа - pattern: yyyy-mm-dd hh24:mi:ss)

    Срок жизни

    Example:

        2019-10-17 12:01:00

Example:

    {
        "utime":1571347689,
        "username":"test",
        "service":{
            "service":1
        },
        "message":{
            "smsid":101,
            "phone":"998981250765",
            "text":"test text"
        }
    }

## HTTP status code 200

### Body

Media type: application/json

Type: object

Properties

- transactionid: required(integer)

  Уникальный идентификатор для каждого СМС в системе Sayqal Solutions

- smsid: required(string)

  Уникальный идентификатор для каждого СМС в системе партнера, переданный в запросе

Example:

    {
        "transactionid":"6988790",
        "smsid":"101"
    }

## HTTP status code 400

При ошибке

### Body

Media type: application/json

Type: object

Properties

- errorCode: required(integer)

  Статус (код ошибки) транзакции

- errorMsg: required(string)

  Сообщение об ошибке

Example:

    {
        "errorCode":107,
        "errMsg":"System error! Invalid parameters value."
    }

## HTTP status code 403

При ошибке в TOKEN

# Secured by Access TOKEN - Transmit

### Headers

- X-Access-Token: required(string)

      X-Access-Token: c7ee559506c1c07694bec475a6d508e7

  ТОКЕН - создаеться следующему способу (Пример в PHP):

      function generateTransmitAccessToken($userName, $secretKey, $utime)
      {
        $Access = "TransmitSMS {$userName} {$secretKey} {$utime}";
        return md5($Access);
      }

## HTTP status code 403

Bad access token.

### Запрос для получение статуса (состояния) SMS

#### /StatusSMS post

post

Отправить запрос для получение статуса (информацию о последном состоянии SMS сообщения) SMS. POST запрос на https://routee.sayqal.uz/sms/StatusSMS

#### post /StatusSMS

Отправить запрос для получение статуса (информацию о последном состоянии SMS сообщения) SMS. POST запрос на https://routee.sayqal.uz/sms/StatusSMS

Secured by Access TOKEN - Status

### Body

Media type: application/json

Type: object

Properties

- utime: required(integer)

  Текущий (системный) UNIX timeStamp.
  Используется только в генерации TOKEN-а.

  Example:

      1571275506

- username: required(string)

  User Name партнера

- transactionid: required(integer)

  Уникальный идентификатор в системе Sayqal Solutions (из ответа TransmitSMS)

- smsid: required(string)

  Уникальный идентификатор в системе партнера

Example:

    {
        "utime":1571373906,
        "username":"test",
        "transactionid":6988790,
        "smsid":101
    }

## HTTP status code 200

Статус (состояния) SMS сообщения

### Body

Media type: application/json

Type: object

Properties

- smsid: required(string)

  Уникальный идентификатор для каждого СМС в системе партнера

- status: required(integer)

  Статус (состояние) этого СМС.

  - 0 - DELIVERED (доставлено)
  - 1 - UNDELIVERED (не доставлено)
  - 2 - EXPIRED (срок действия истек)
  - 3 - ENROUTE (в обработке)
  - 4 - ACCEPTED (принят СМС сервером, ожидается отчет о доставке)
  - 5 - UNKNOWN (системная ошибка)
- statusdate: required(string - pattern: yyyy-mm-dd hh24:mi:ss)

  Время изменение статуса СМС

Example:

    {
        "smsid":101,
        "status":0,
        "statusdate":"2019-10-18 09:00:00"
    }

## HTTP status code 400

При ошибке

### Body

Media type: application/json

Type: object

Properties

- errorCode: required(integer)

  Статус (код ошибки) транзакции

- errorMsg: required(string)

  Сообщение об ошибке

Example:

    {
        "errorCode":107,
        "errMsg":"System error! Invalid parameters value."
    }

## HTTP status code 403

При ошибке в TOKEN

# Secured by Access TOKEN - Status

### Headers

- X-Access-Token: required(string)

      X-Access-Token: c7ee559506c1c07694bec475a6d508e7

  ТОКЕН - создаеться следующему способу (Пример в PHP):

      function generateStatusAccessToken($userName, $secretKey, $utime)
      {
        $Access = "StatusSMS {$userName} {$secretKey} {$utime}";
        return md5($Access);
      }

## HTTP status code 403

Bad access token.

### Получение детализацию SMS

#### /DetalSMS post

post

Получение детализацию SMS по номеру абонента. POST запрос на https://routee.sayqal.uz/sms/DetalSMS

#### post /DetalSMS

Получение детализацию SMS по номеру абонента. POST запрос на https://routee.sayqal.uz/sms/DetalSMS

Secured by Access TOKEN - Detal

### Body

Media type: application/json

Type: object

Properties

- utime: required(integer)

  Текущий (системный) UNIX timeStamp.
  Используется только в генерации TOKEN-а.

  Example:

      1571275506

- username: required(string)

  User Name партнера

- phone: required(string - pattern: 998YYХХХХХХХ)

  Номер абонента получателя (в международном формате 998981250765). Абоненты РУз

- datebegin: required(string - pattern: yyyy-mm-dd hh24:mi:ss)

  начало периода

- dateend: required(string - pattern: yyyy-mm-dd hh24:mi:ss)

  конец периода

Example:

    {
        "utime":1571723785,
        "username":"test",
        "phone":"998909970850",
        "datebegin":"2019-10-01 00:00:00",
        "dateend":"2019-10-22 00:00:00"
    }

## HTTP status code 200

Список (массив) SMS за период

### Body

Media type: application/json

Type: object

Properties

- count: required(integer)

  Количество SMS

- messages: required(object)

  Массив SMS сообщений

  - smsid: required(string)

    Уникальный идентификатор для каждого СМС в системе партнера

  - text: required(string)

    Текст SMS сообщения

  - status: required(integer)

    Статус (состояние) этого СМС.

    - 0 - DELIVERED (доставлено)
    - 1 - UNDELIVERED (не доставлено)
    - 2 - EXPIRED (срок действия истек)
    - 3 - ENROUTE (в обработке)
    - 4 - ACCEPTED (принят СМС сервером, ожидается отчет о доставке)
    - 5 - UNKNOWN (системная ошибка)
  - statusdate: required(string - pattern: yyyy-mm-dd hh24:mi:ss)

    Время изменение статуса СМС

Example:

    {
        "count":2,
        "messages":[
            {
                "smsid":"6885620",
                "text":"test message",
                "status":"0",
                "sdate":"2019-10-05 17:39:46"
            },
            {
                "smsid":"6885752",
                "text":"test message 1",
                "status":"0",
                "sdate":"2019-10-21 00:15:19"
            }
        ]
    }

## HTTP status code 400

При ошибке

### Body

Media type: application/json

Type: object

Properties

- errorCode: required(integer)

  Статус (код ошибки) транзакции

- errorMsg: required(string)

  Сообщение об ошибке

Example:

    {
        "errorCode":107,
        "errMsg":"System error! Invalid parameters value."
    }

## HTTP status code 403

При ошибке в TOKEN

# Secured by Access TOKEN - Detal

### Headers

- X-Access-Token: required(string)

      X-Access-Token: c7ee559506c1c07694bec475a6d508e7

  ТОКЕН - создаеться следующему способу (Пример в PHP):

      function generateStatusAccessToken($userName, $secretKey, $utime)
      {
        $Access = "DetalSMS {$userName} {$secretKey} {$utime}";
        return md5($Access);
      }

## HTTP status code 403

Bad access token.