Глубокая интеграция по API

https://docs.pays.uz/_images/MerchantInvoiceScheme.svg

Поставщики услуг, которым необходимо внедрение оплаты прямо на сайте, имеют возможность интеграции с системой 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
  }
}