1. Default module
Rahmat: Интеграция приложений (new)
  • Default module
    • Назначение документа
    • Описание
    • Пользовательский сценарий (User Journey)
    • Техническая архитектура
    • Методы
    • Требования к Партнеру
    • Опросник
  1. Default module

Методы

API-взаимодействие#

#
Для полноценной интеграции должны быть реализованы следующие методы:
МетодНаправлениеНазначение
Status APIRahmat → ПартнерЗапрос текущего статуса транзакции
Refund APIRahmat → ПартнерОформление возврата
ReconciliationRahmat → ПартнерЕжедневная сверка транзакций
Fiscal LinkRahmat → ПартнерПередача данных фискального чека
CallbackRahmat → ПартнерПередача статуса платежа

КОЛЛБЕК#

#
Направление вызова: Partner App Backend -> Rahmat.
После успешного списания (холдирования) средств система Партнера должны отправить на URL Rahmat POST-запрос с передачей следующих полей:
ПолеОписаниеОбязательность
amountСумма списания в тийинахДа
rahmat_trans_idID транзакции Rahmat (переданный в deeplink)Да
partner_trans_idУникальный ID платежа в системе ПартнераДа
payment_timeДата и время платежа в формате YYYY-dd-mm H:i:sДа
rrnRefNumber списания в процессинговой системеДа
phoneТелефон плательщикаДа
panМаска карты / счёта плательщикаДа
pinflПИНФЛ плательщикаНет
nameФИО плательщикаНет
Пример отправляемого запроса:
POST https://mesh.multicard.uz/payment/callback/payment-app/:app_name
• app_name – наименование приложения Партнера
{
    "amount": 15000000,
    "rahmat_trans_id": "123",
    "partner_trans_id": "3480454786",
    "payment_time": "2024-02-01 21:44:11",
    "rrn": "022073419992",
    "phone": "998901234567",
    "pan": "860031******7001",
    "pinfl": "41102922370010",
    "name": "BOTIROV ALISHER ALIMOVICH"
}
Пример успешного ответа:
{
    "success": true,
    "data": {
    	"fiscal_url": "https://ofd.soliq.uz/epi?t=EP000000000001&r=1234&c=1234&s=1234"
    }
}
Пример неуспешного ответа (поле error.details должно быть отображено плательщику на странице оплаты):
{
    "success": false,
    "error": {
        "code": "ERROR_EXPIRED",
        "details": "Инвойс истек, запросите новый"
    }
}
Если при отправке callback-запроса в ответе success: false, то необходимо отменить списание.
Если при отправке запроса произошел таймаут или вернулся http status 500, то необходимо повторить попытку через 1 минуту. В случае 5 неуспешных попыток отправки необходимо заморозить транзакцию до выяснения.

ОТПРАВКА ФИСКАЛЬНОЙ ССЫЛКИ#

#
Направление вызова: Partner App Backend -> Rahmat
В ответе на callback-запрос не всегда может вернуться фискальная ссылка. В таких случаях система Rahmat доотправляет ссылку обычно в течение не более 6 часов. У системы Партнера должен быть метод для получения фискальной ссылки. В качестве partner_trans_id используется ID платежа в системе Партнера.
Пример:
POST {эндпоинт партнера}/fiscal
{
    "partner_trans_id": "3480454786",
    "fiscal_url": "https://ofd.soliq.uz/epi?t=EP000000000001&r=1234&c=1234&s=1234"
}
В случае успешного приема возвратить http-status 200. При ошибке – статус 4xx, в теле вернуть детали ошибки.

ВОЗВРАТ УСПЕШНОГО ПЛАТЕЖА#

#
Направление вызова: Rahmat -> Partner App Backend
Система Партнера должна предоставить метод для возврата ранее завершенной транзакции. В качестве partner_trans_id используется ID платежа в системе Партнера.
Пример:
POST {эндпоинт партнера}/refund
{
    "partner_trans_id": "3480454786"
}
В случае успешного приема возвратить http-status 200. При ошибке – статус 4xx, в теле вернуть детали ошибки. В случае повторного обращение по уже отмененной транзакции – вернуть успешный ответ.

ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ПЛАТЕЖЕ#

#
Направление вызова: Rahmat -> Partner App Backend.
Система партнера должна предоставить метод для получения информации о транзакции по ID транзакции в системе Rahmat.
ПолеОписаниеОбязательность
amountСумма списания в тийинахДа
rahmat_trans_idID транзакции Rahmat (переданный в deeplink)Да
partner_trans_idУникальный ID платежа в системе ПартнераДа
payment_timeДата и время платежа в формате YYYY-dd-mm H:i:sДа
rrnRefNumber списания в процессинговой системеДа
phoneТелефон плательщикаДа
panМаска карты / счёта плательщикаДа
pinflПИНФЛ плательщикаНет
nameФИО плательщикаНет
statusСтатус транзакцииДа

Справочник статусов#

#
СтатусОписаниеФинальный
draftСозданная, но ещё не оплаченная транзакцияНет
pendingТранзакция в процессе оплаты либо в неизвестном статусеНет
successОплата успешно выполненаДа
refundТранзакция отменена, средства возвращеныДа
errorОшибка при списании средств с карты / счётаДа
Пример:
POST {эндпоинт партнера}/payment-info
{
    "partner_trans_id": "3480454786"
}
Ответ:
{
    "amount": 15000000,
    "rahmat_trans_id": "123",
    "partner_trans_id": "3480454786",
    "payment_time": "2024-02-01 21:44:11",
    "rrn": "022073419992",
    "phone": "998901234567",
    "pan": "860031******7001",
    "pinfl": "41102922370010",
    "name": "BOTIROV ALISHER ALIMOVICH",
    "status": "success"
}

ПРОВЕРКА ПЛАТЕЖА В RAHMAT#

#
Направление вызова: Partner App Backend -> Rahmat.
POST https://mesh.multicard.uz/payment/external/:app_name
• app_name – наименование приложения Партнера
Входящие поля для поиска (отправлять одно из них)
ПолеОписаниеТип
rahmat_trans_idID платежа в системе Rahmatinteger
partner_trans_idID платежа в системе Партнёраstring
invoice_uuidUUID инвойса (используется при получении данных для оплаты без вебвью)string (uuid)
Пример запроса
{
    "partner_trans_id": "4421344159"
}
Пример ответа
{
    "success": true,
    "data": {
        "id": 588812313,
        "uuid": "7e8f71a9-9d6e-11f0-9a1b-00505680eaf6",
        "status": "success",
        "payment_amount": 11800000, //сумма счета
        "total_amount": 11800000, //полная сумма списания с плательщика
        "payment_time": "2025-09-30 00:57:15",
        "qr_url": "https://ofd.soliq.uz/epi?t=..",
        "ps": "click",
        "ps_id": "4421344159",
        "receipt_url": "https://checkout.multicard.uz/check/7e8f71a9-9d6e-11f..",
        "store": {
            "tin": "123456789", //ИНН или ПИНФЛ мерчанта
            "title": "Sariq bola (Алгоритм)", //Наименование бренда/филиала мерчанта
            "surcharge_fee": "0.5", //процент комиссии, взымаемый дополнительно с плательщика
            "mcc": "6012", //MCC-код мерчанта
            "official_name": "\"MY SUPER COMPANY\" MChJ", //Наименование юр.лица или ИП
            "logo": "https://cdn.multicard.uz/storage/d16/bfba392667c075.."
        }
    }
}
Справочник статусов инвойса Rahmat
СтатусОписаниеФинальный
draftСозданный инвойс, доступен для оплатыНет
progress, billingТранзакция в процессе оплаты либо в неизвестном статусеНет
successОплата успешно выполненаДа
cancelledИнвойс просрочен или отменёнДа
revertТранзакция отменена, средства возвращеныДа
errorОшибка при оплатеДа

СВЕРКА ИТОГОВ#

#
Направление вызова: Rahmat -> Partner App Backend.
Партнер должен предоставить метод для получения списка успешных транзакций за заданный период.
GET {эндпоинт партнера}/report?date_from=2025-01-01 00:00:00&date_to=2025-02-01 00:00:00
Пример ответа:
{
    "stat": {
        "count": 2,
        "amount": 200000
    },
    "list": [
        {
            "rahmat_trans_id": 1111,
            "partner_trans_id": 222222,
            "payment_time": "2025-01-01 15:02:13",
            "amount": 100000
        },
        {
            "rahmat_trans_id": 1112,
            "partner_trans_id": 222223,
            "payment_time": "2025-01-02 17:02:13",
            "amount": 100000
        }
    ]
}

SCANPAY#

#
Направление вызова: Rahmat -> Partner App Backend
Данный метод предназначен для оплаты по QR/Bar-коду, сформированному в приложении партнера. Мерчант (кассир) проводит считывание сформированного в приложении Партнера QR-кода и передает его в систему Rahmat для списания средств.
Код должен состоять из цифр, первые 3 цифры идентифицируют приложение Партнера и должны быть уникальными для данного приложения
Пример запроса:
POST {эндпоинт партнера}/scanpay
{
    "amount": 15000000,
    "rahmat_trans_id": "123",
    "token": "3480454702207341999286",
    "store": {
        "title": "Sariq bola (Алгоритм)", //Наименование бренда/филиала мерчанта
        "tin": "123456789", //ИНН или ПИНФЛ мерчанта
        "official_name": "\"MY SUPER COMPANY\" MChJ", //Наименование юр.лица или ИП
        "logo": "https://cdn.multicard.uz/storage/d16/bfba392667c075.."
    }
}
Ответ должен быть идентичным коллбэк-запросу
Modified at 2026-02-16 09:41:26
Previous
Техническая архитектура
Next
Требования к Партнеру
Built with