Глубокая интеграция по API¶
Поставщики услуг, которым необходимо внедрение оплаты прямо на сайте, имеют возможность интеграции с системой PAYMO посредством API.
Интеграция посредством API также позволяет привязать к пользователю в системе поставщика карту для того, чтобы при повторной оплате пользователь снова не вводил реквизиты карты.
Механизм авторизации для вызова методов API указан в разделе Авторизация в API.
В запросах ко всем методам имеется поле lang, в котором необходимо передать язык ответного сообщения.
Во всех ответах передается объект result
с полями code
– код и description
– описание результата запроса.
Далее в документации поля lang
и result
будут опущены для упрощения описания методов.
Метод merchant/pay/create
¶
Метод создает транзакцию для оплаты.
Адрес:
POST https://api.paymo.uz/merchant/pay/create
Входящее сообщение:
№ |
Поле |
Описание |
amount |
Сумма инвойса в тийинах |
|
account |
Идентификатор инвойса |
|
store_id |
ID поставщика (магазина) |
|
terminal_id |
ID терминала, на который необходимо списать средства (если терминал у поставщика один, то необязательно) |
|
details |
Детали платежа в JSON формате (необязательно) |
Пример:
{
"amount": 50000,
"account": "998901234567",
"store_id": "5412",
"lang": "ru"
}
Ответ:
{
"transaction_id": 1245123,
"result": {
"code": "OK",
"message": "Нет ошибок"
}
}
Метод merchant/pay/pre-confirm
¶
Метод подготавливает транзакцию к оплате (высылает временный пароль по СМС).
Адрес:
POST https://api.paymo.uz/merchant/pay/pre-confirm
Входящее сообщение:
# |
Поле |
Описание |
1 |
card_token |
Токен карты (необязательное, если указаны card_number и expiry) |
2 |
card_number |
Номер карты (необязательное, если указан card_token) |
3 |
expiry |
Дата истечения карты в формате YYmm (необязательное, если указан card_id) |
4 |
store_id |
ID поставщика (магазина) |
5 |
transaction_id |
ID транзакции |
Ответное сообщение:
# |
Поле |
Описание |
1 |
Метод merchant/pay/confirm
¶
Метод подтверждает оплату, производит списание средств с карты и зачисление на терминал.
Адрес:
POST https://api.paymo.uz/merchant/pay/confirm
Входящее сообщение:
# |
Поле |
Описание |
1 |
transaction_id |
ID транзакции |
2 |
otp |
Одноразовый код, высланный в SMS |
4 |
store_id |
ID поставщика (магазина) |
Ответное сообщение:
# |
Поле |
Описание |
1 |
store_transaction |
объект с информацией о транзакции |
2 |
–id |
ID транзакции |
3 |
–store |
объект с информации о поставщике (магазине) |
4 |
– –id |
ID поставщика (магазина) |
5 |
– –name |
Название поставщика (магазина) |
6 |
– –logo |
Логотип поставщика (магазина) |
7 |
– –desc |
Описание поставщика (магазина) |
8 |
–card_id |
Токен карты плательщика |
9 |
–account |
Идентификатор инвойса |
10 |
–commission_type |
Форма комиссии с плательщика (1 – процент, 2 – фиксированная) |
11 |
–commission_value |
Размер комиссии |
12 |
–amount |
Сумма инвойса |
13 |
–total |
Сумма к оплате |
14 |
–success_trans_id |
ID завершенной платежной транзакции в системе PAYMO |
15 |
–terminal_id |
ID терминала |
16 |
–prepay_time |
Время создания драфта транзакции |
17 |
–confirm_time |
Время завершения транзакции |
18 |
–status_code |
Код состояния транзакции |
19 |
–status_message |
Сообщение состояния транзакции |
Метод merchant/pay/confirm-with-ofd
¶
Метод подтверждает оплату, производит списание средств с карты и зачисление на терминал, и в ответе содержит дополнительное поле «ofd_url», со ссылкой на фискальный чек.
Адрес:
POST https://api.paymo.uz/merchant/pay/confirm-with-ofd
Входящее сообщение:
# |
Поле |
Описание |
1 |
transaction_id |
ID транзакции |
2 |
otp |
Одноразовый код, высланный в SMS |
4 |
store_id |
ID поставщика (магазина) |
Ответное сообщение:
# |
Поле |
Описание |
1 |
store_transaction |
объект с информацией о транзакции |
2 |
–id |
ID транзакции |
3 |
–store |
объект с информации о поставщике (магазине) |
4 |
– –id |
ID поставщика (магазина) |
5 |
– –name |
Название поставщика (магазина) |
6 |
– –logo |
Логотип поставщика (магазина) |
7 |
– –desc |
Описание поставщика (магазина) |
8 |
–card_id |
Токен карты плательщика |
9 |
–account |
Идентификатор инвойса |
10 |
–commission_type |
Форма комиссии с плательщика (1 – процент, 2 – фиксированная) |
11 |
–commission_value |
Размер комиссии |
12 |
–amount |
Сумма инвойса |
13 |
–total |
Сумма к оплате |
14 |
–success_trans_id |
ID завершенной платежной транзакции в системе PAYMO |
15 |
–terminal_id |
ID терминала |
16 |
–prepay_time |
Время создания драфта транзакции |
17 |
–confirm_time |
Время завершения транзакции |
18 |
–status_code |
Код состояния транзакции |
19 |
–status_message |
Сообщение состояния транзакции |
20 |
–ofd_url |
Ссылка на фискальный чек, в некоторых случаях может быть null |
Метод merchant/pay/otp-resend
¶
Отправляет повторно временный пароль по СМС.
Адрес:
POST https://api.paymo.uz/merchant/pay/otp-resend
Входящее сообщение:
# |
Поле |
Описание |
1 |
transaction_id |
ID транзакции |
Ответное сообщение:
# |
Поле |
Описание |
1 |
transaction_id |
ID транзакции |
Метод merchant/pay/reverse
¶
Осуществляет возврат оплаченных средств по транзакции.
Адрес:
POST https://api.paymo.uz/merchant/pay/reverse
Входящее сообщение:
# |
Поле |
Описание |
1 |
transaction_id |
ID транзакции |
2 |
reason |
Причина возврата (текст) |
3 |
hold_amount |
Удерживаемая сумма (при наличии) |
Ответное сообщение:
# |
Поле |
Описание |
1 |
transaction_id |
ID транзакции |
Метод merchant/pay/get
¶
Метод возвращает информацию о транзакции.
Данный метод также используется, если после запроса merchant/pay/confirm
клиент не получил в теле ответа
объект result (случился обрыв связи в сети, или сервис не ответил в рамках заданного клиентом срока (time out),
или получили ошибку от шины) необходимо проверить статус транзакции через данный метод.
Адрес:
POST https://api.paymo.uz/merchant/pay/get
Входящее сообщение:
№ |
Поле |
Описание |
store_id |
ID поставщика (магазина) |
|
transaction_id |
ID драфта транзакции |
Ответное сообщение:
# |
Поле |
Описание |
1 |
store_transaction |
объект с информацией о транзакции |
2 |
–id |
ID транзакции |
3 |
–store |
объект с информации о поставщике (магазине) |
4 |
– –id |
ID поставщика (магазина) |
5 |
– –name |
Название поставщика (магазина) |
6 |
– –logo |
Логотип поставщика (магазина) |
7 |
– –desc |
Описание поставщика (магазина) |
8 |
–card_id |
Токен карты плательщика |
9 |
–account |
Идентификатор инвойса |
10 |
–commission_type |
Форма комиссии с плательщика (1 – процент, 2 – фиксированная) |
11 |
–commission_value |
Размер комиссии |
12 |
–amount |
Сумма инвойса |
13 |
–total |
Сумма к оплате |
14 |
–success_trans_id |
ID завершенной платежной транзакции в системе PAYMO |
15 |
–terminal_id |
ID терминала |
16 |
–prepay_time |
Время создания драфта транзакции |
17 |
–confirm_time |
Время завершения транзакции |
18 |
–status_code |
Код состояния транзакции (0 успешно) |
19 |
–status_message |
Сообщение состояния транзакции |
Если транзакция получила финальный статус, то в result.code вернётся STPIMS-ERR-092 (Транзакция закрыта), а успешность можно проверить в поле store_transaction.status_code.
Пример:
{
"transaction_id": 36018122,
"store_id": 181,
"lang": "ru"
}
Ответ:
{
"result": {
"code": "STPIMS-ERR-092",
"description": "Транзакция закрыта"
},
"store_transaction": {
"status_code": "0",
"status_message": "Success",
"success_trans_id": 3276969,
"trans_id": 36018122,
"confirmed": true,
"account": "51856772",
"amount": 4116700,
"terminal_id": "91404154",
"prepay_time": 1631508665000,
"confirm_time": 1631508666000
}
}