Skip to content

Проведение транзакции банковской картой

После инициации платежа через сайт Партнёра методом prepare_payment, проведение транзакции необходимо подтвердить методом pay


Существует способ проведения оплаты с помощью токена

Метод pay при помощи карточных данных

  • URL: https://secure.octo.uz/pay/{octo_payment_UUID}
  • Method: POST
  • Content-type: application/json

Пример запроса

json
{
    "pan": "8600313260861293",
    "exp": "2602",
    "method": "uzcard",
    "cvc2": "",
    "cardHolderName": "CardHolder Name",
    "email": "client@mail.com"
}

Параметры запроса

ПараметрТипОбязательностьОписание
panstringДаНомер карты клиента, который используется для проведения транзакции.
expstringДаСрок действия карты в формате ГГММ (год/месяц).
methodstringДаМетод оплаты. Допустимые значения: bank_card, uzcard, humo.
cvc2stringДаCVC2 код карты.
cardHolderNamestringДаИмя держателя карты (как указано на карте).
emailstringДаЭлектронная почта пользователя. (Обязательно, если передаётся весь блок user_data в prepare_payment)

Пример успешного ответа

json
{
    "error": 0,
    "errMessage": "",
    "data": {
        "id": 5520,
        "uuid": "04b7f6dd-4693-4afa-96e9-f42790413de7",
        "processorKey": null,
        "merchantId": 242,
        "merchant": null,
        "merchantTransId": "638421f6-dbc0-4875-8ff9-c6ffe3766087",
        "initialSum": 1000.00,
        "totalSum": 1000.00,
        "splittedSum": 1000.00,
        "currency": "UZS",
        "convertSum": null,
        "convertRate": null,
        "convertCurrency": null,
        "selectedMethod": null,
        "createTime": 1732700367802,
        "expireTime": 1732701267781,
        "peyedTime": null,
        "expiredHoldTime": null,
        "merCreateTime": 15420000,
        "description": "TEST_PAYMENT",
        "autoCapture": true,
        "withoutSite": false,
        "isTest": false,
        "refundLocked": false,
        "returnUrl": "octo.uz",
        "redirectUrl": "https://pay2.octo.uz/uzcard/sms/04b7f6dd-4693-4afa-96e9-f42790413de7",
        "details": {
            "cardInfo": {
                "first6": "860031",
                "last4": "1293",
                "issuerCountryCode": "UZ",
                "cardHolder": "CardHolder Name",
                "saveToken": null
            },
            "transType": "SMS"
        },
        "hold": null,
        "payMethods": [
            {
                "only": null,
                "method": "bank_card"
            },
            {
                "only": null,
                "method": "uzcard"
            },
            {
                "only": null,
                "method": "humo"
            }
        ],
        "status": "created",
        "basket": null,
        "user": {
            "email": "client@mail.com",
            "phone": "998901234567",
            "user_id": "Elbek"
        },
        "airline": null,
        "language": "uz",
        "tariffId": 2,
        "fee": null,
        "transferSum": null,
        "refundedSum": 0.00,
        "provCode": null,
        "optionalData": null,
        "forConsideration": false,
        "riskLevel": -1,
        "auditedAt": null,
        "auditorId": null,
        "bankCode": "RB",
        "merchantCardId": null,
        "processingReference": null,
        "requestProcessingStatus": null,
        "requestProcessingTryCount": 0,
        "currentStep": null,
        "tag": "ticket",
        "tspId": null,
        "cardInputType": "merchant_site",
        "redirectTimeout": null,
        "merchantStatus": null,
        "fiscalDetails": null,
        "showButtonSaveCard": null,
        "test": false
    }
}

Параметры успешного ответа

ПараметрТипОбязательностьОписание
errorintДаКод ошибки: 0 означает отсутствие ошибок.
errMessagestringНетСообщение об ошибке, пустое если ошибки нет.
dataobjectДаОбъект с деталями транзакции.
data.idintДаУникальный идентификатор транзакции.
data.uuidstringДаУникальный UUID для идентификации транзакции.
data.processorKeystringНетИдентификатор процессинга, если применимо.
data.merchantIdintДаИдентификатор торговца, связанный с транзакцией.
data.merchantobjectНетИнформация о торговце.
data.merchantTransIdstringДаУникальный ID транзакции от торговца.
data.initialSumdecimalДаИзначальная сумма транзакции.
data.totalSumdecimalДаОбщая сумма транзакции, включая комиссии.
data.splittedSumdecimalДаСумма, разделенная на несколько получателей (если применимо).
data.currencystringДаВалюта транзакции.
data.convertSumdecimalНетСумма в конвертированной валюте (если применимо).
data.convertRatedecimalНетКурс конвертации (если применимо).
data.convertCurrencystringНетКонвертируемая валюта (если применимо).
data.selectedMethodstringНетВыбранный метод оплаты.
data.createTimeintДаВремя создания транзакции (UNIX timestamp).
data.expireTimeintДаВремя истечения транзакции (UNIX timestamp).
data.peyedTimeintНетВремя оплаты транзакции, если оплачена.
data.expiredHoldTimeintНетВремя истечения удержания средств.
data.merCreateTimeintДаВремя создания транзакции на стороне торговца.
data.descriptionstringДаОписание транзакции.
data.autoCaptureboolДаУказывает, будет ли оплата автоматически захвачена.
data.withoutSiteboolДаУказывает, происходит ли операция без веб-сайта.
data.isTestboolДаУказывает, является ли транзакция тестовой.
data.refundLockedboolДаУказывает, заблокирован ли возврат средств.
data.returnUrlstringДаURL возврата после оплаты.
data.redirectUrlstringДаURL для перенаправления на страницу оплаты.
data.detailsobjectНетДополнительные детали о транзакции (например, cardInfo).
data.details.cardInfoobjectНетИнформация о карте, используемой для оплаты.
data.details.transTypestringДаТип транзакции (например, SMS).
data.holdobjectНетДанные об удержании средств (если применимо).
data.payMethodsarrayДаСписок доступных методов оплаты.
data.statusstringДаСтатус транзакции.
data.userobjectНетИнформация о пользователе.
data.user.emailstringНетEmail пользователя.
data.user.phonestringНетТелефон пользователя.
data.user.user_idstringДаУникальный идентификатор пользователя (переданный в prepare_payment).
data.languagestringДаЯзык интерфейса. Допустимые значения: uz, ru, en.
data.tariffIdintДаИдентификатор тарифа.
data.riskLevelintДаУровень риска транзакции.
data.bankCodestringДаКод банка.
data.cardInputTypestringДаТип ввода данных карты (merchant_site / octo_page).
data.tagstringНетТег, связанный с транзакцией (например, ticket).

Пример неуспешного ответа

json
{
    "error": 2,
    "errMessage": "Wrong secret",
    "data": null
}

Параметры неуспешного ответа

ПараметрТипОбязательностьОписание
errorintДаКод ошибки.
errMessagestringДаСообщение об ошибке.
dataobjectНетОсновные данные транзакции (может быть null).