Выплаты на мобильных операторов
https://paysys.uz/mobile/api
Данный раздел API находится на стадии разработки и может быть изменен.
Общие принципы
API построено на базе REST API, где названия методов являются суффиксами к базовому URL.
Например, вызов метода info осуществляется POST запросом на URL https://paysys.uz/mobile/api/info
.
Для каждого сервиса установлен лимит на количество запросов в период времени. По умолчанию 100 запросов в минуту.
Если лимит запросов превышен, система вернет ошибку с HTTP кодом 429
и указанием периода времени для возобновления
запросов в заголовке Retry-After
.
Авторизация и безопасность
Для обеспечения безопасности используется криптографический протокол TLS v1, TLS v1.1 или TLS v1.2.
Для того чтобы авторизоваться, платежный инструмент должен отправить HTTP заголовок Auth
.
Структура заголовка Auth
HTTP заголовок: Auth: service_id-hash-timestamp
- hash –
sha1(secret_key + timestamp)
- timestamp - UTC Время подписания запроса в миллисекундах
- service_id – Идентификатор платежного инструмента в системе PaySys. (Выдается при регистрации платежного инструмента)
- secret_key – Ключ платежного инструмента. (Выдается при регистрации платежного инструмента)
Пример HTTP заголовка:
Auth: 05e3bab097f42yu0a62ced0b-7f420a62c22fbe3bab09ed0b57874898-1399114284039
Пример запроса завершенного ошибкой
Пример запроса CURL
curl -X POST --location "https://paysys.self/mobile/api/info" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Auth: 05e3bab097f42yu0a62ced0b-7f420a62c22fbe3bab09ed0b57874898-1399114284039" \
-d "{
\"id\": \"d5081c6b-ec14-464a-83b1-cebbfd1cd0fc\",
\"params\": {
\"phone_number\": \"998110010101\"
}
}"
Ответ содержит:
- code - Код ошибки
- message - Описание ошибки
{
"id": "d5081c6b-ec14-464a-83b1-cebbfd1cd0fc",
"error": {
"code": -32303,
"message": "Неверный формат телефона"
},
"result": null
}
Проверка номера телефона
Название метода: info
Авторизация: требуется
Проверяет номер телефона и возвращает информацию об операторе мобильной связи, а также минимальную и максимальную сумму платежа.
Запрос содержит:
- phone_number - Номер телефона в международном формате
Пример запроса
{
"id": "44db5b15-1fd6-4a6a-a76d-4ee5b0641846",
"params": {
"phone_number": "998933111010"
}
}
Ответ содержит:
- id - Идентификатор мерчанта в системе PaySys
- name - Наименование сотового оператора
- name_uz - Наименование сотового оператора на узбекском языке
- url - Ссылка на сайт мобильного оператора
- logo - Ссылка на изображение логотипа мобильного оператора
- description - Краткое описание/вспомогательная информация для оплаты
- min_amount - Минимальная сумма пополнения, сум
- max_amount - Максимальная сумма пополнения, сум
Пример ответа
{
"id": "44db5b15-1fd6-4a6a-a76d-4ee5b0641846",
"error": null,
"result": {
"id": 100081,
"name": "Ucell",
"name_uz": "",
"url": "https://ucell.uz",
"logo": "https://paysys.uz/application/resources/img/ucell.jpg",
"description": "",
"min_amount": 1000,
"max_amount": 500000000
}
}
В случае некорректных параметров запроса система вернет ошибку.
Проведение платежа
Название метода: pay
Авторизация: требуется
Производит выплату на номер мобильного оператора.
Запрос содержит:
- phone_number - Номер телефона в международном формате
- payment_number - Идентификатор транзакции в платежной системе партнера. Не обязателен. При наличии проверит существование платежа и вернет существующую транзакцию, если платеж уже проведен.
- amount - Сумма платежа, сум
Пример запроса
{
"id": "fd7ecb3c-169b-4e4a-809c-62e18596d0cf",
"params": {
"phone_number": 2296344,
"payment_number": 1005641001,
"amount": 1000
}
}
Ответ содержит:
- transaction_id - Идентификатор транзакции в системе PaySys
- amount - Сумма транзакции в сумах с учетом комиссии
- status - Статус платежа
2
- Платеж завершен1
- В ожидании оплаты3
- Отмена6
- Возврат7
- В ожидании подтверждения списания (захолдировано на карте клиента)0
- Платеж создан-1
- Ошибка - date - Дата создания транзакции в секундах
Пример ответа
{
"id": "d5081c6b-ec14-464a-83b1-cebbfd1cd0fc",
"error": null,
"result": {
"transaction_id": 2355072,
"amount": 1000,
"status": 2,
"date": 1654499113
}
}
В случае некорректных параметров запроса система вернет ошибку.
Проверка статуса платежа
Название метода: status
Авторизация: требуется
Запрос содержит:
- transaction_id - Идентификатор платежа в системе PaySys
Пример запроса
{
"id": "9bcce9cf-c46e-45e8-9ac5-51bf8e9180e2",
"params": {
"transaction_id": 2355072
}
}
Ответ содержит:
- bank_transaction_id - Идентификатор платежа
- amount - Сумма платежа в сумах
- date - Дата создания транзакции в секундах
- status - Статус платежа
2
- Платеж завершен1
- В ожидании оплаты3
- Отмена6
- Возврат7
- В ожидании подтверждения списания (захолдировано на карте клиента)0
- Платеж создан-1
- Ошибка
Пример ответа
{
"id": "9bcce9cf-c46e-45e8-9ac5-51bf8e9180e2",
"error": null,
"result": {
"transaction_id": 2355072,
"amount": 1000,
"status": 2,
"date": 1654499113
}
}
В случае некорректных параметров запроса система вернет ошибку.