Проведение транзакции банковской картой
После инициации платежа через сайт Партнёра методом 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"
}Параметры запроса
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| pan | string | Да | Номер карты клиента, который используется для проведения транзакции. |
| exp | string | Да | Срок действия карты в формате ГГММ (год/месяц). |
| method | string | Да | Метод оплаты. Допустимые значения: bank_card, uzcard, humo. |
| cvc2 | string | Да | CVC2 код карты. |
| cardHolderName | string | Да | Имя держателя карты (как указано на карте). |
| string | Да | Электронная почта пользователя. (Обязательно, если передаётся весь блок 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
}
}Параметры успешного ответа
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| error | int | Да | Код ошибки: 0 означает отсутствие ошибок. |
| errMessage | string | Нет | Сообщение об ошибке, пустое если ошибки нет. |
| data | object | Да | Объект с деталями транзакции. |
| data.id | int | Да | Уникальный идентификатор транзакции. |
| data.uuid | string | Да | Уникальный UUID для идентификации транзакции. |
| data.processorKey | string | Нет | Идентификатор процессинга, если применимо. |
| data.merchantId | int | Да | Идентификатор торговца, связанный с транзакцией. |
| data.merchant | object | Нет | Информация о торговце. |
| data.merchantTransId | string | Да | Уникальный ID транзакции от торговца. |
| data.initialSum | decimal | Да | Изначальная сумма транзакции. |
| data.totalSum | decimal | Да | Общая сумма транзакции, включая комиссии. |
| data.splittedSum | decimal | Да | Сумма, разделенная на несколько получателей (если применимо). |
| data.currency | string | Да | Валюта транзакции. |
| data.convertSum | decimal | Нет | Сумма в конвертированной валюте (если применимо). |
| data.convertRate | decimal | Нет | Курс конвертации (если применимо). |
| data.convertCurrency | string | Нет | Конвертируемая валюта (если применимо). |
| data.selectedMethod | string | Нет | Выбранный метод оплаты. |
| data.createTime | int | Да | Время создания транзакции (UNIX timestamp). |
| data.expireTime | int | Да | Время истечения транзакции (UNIX timestamp). |
| data.peyedTime | int | Нет | Время оплаты транзакции, если оплачена. |
| data.expiredHoldTime | int | Нет | Время истечения удержания средств. |
| data.merCreateTime | int | Да | Время создания транзакции на стороне торговца. |
| data.description | string | Да | Описание транзакции. |
| data.autoCapture | bool | Да | Указывает, будет ли оплата автоматически захвачена. |
| data.withoutSite | bool | Да | Указывает, происходит ли операция без веб-сайта. |
| data.isTest | bool | Да | Указывает, является ли транзакция тестовой. |
| data.refundLocked | bool | Да | Указывает, заблокирован ли возврат средств. |
| data.returnUrl | string | Да | URL возврата после оплаты. |
| data.redirectUrl | string | Да | URL для перенаправления на страницу оплаты. |
| data.details | object | Нет | Дополнительные детали о транзакции (например, cardInfo). |
| data.details.cardInfo | object | Нет | Информация о карте, используемой для оплаты. |
| data.details.transType | string | Да | Тип транзакции (например, SMS). |
| data.hold | object | Нет | Данные об удержании средств (если применимо). |
| data.payMethods | array | Да | Список доступных методов оплаты. |
| data.status | string | Да | Статус транзакции. |
| data.user | object | Нет | Информация о пользователе. |
| data.user.email | string | Нет | Email пользователя. |
| data.user.phone | string | Нет | Телефон пользователя. |
| data.user.user_id | string | Да | Уникальный идентификатор пользователя (переданный в prepare_payment). |
| data.language | string | Да | Язык интерфейса. Допустимые значения: uz, ru, en. |
| data.tariffId | int | Да | Идентификатор тарифа. |
| data.riskLevel | int | Да | Уровень риска транзакции. |
| data.bankCode | string | Да | Код банка. |
| data.cardInputType | string | Да | Тип ввода данных карты (merchant_site / octo_page). |
| data.tag | string | Нет | Тег, связанный с транзакцией (например, ticket). |
Пример неуспешного ответа
json
{
"error": 2,
"errMessage": "Wrong secret",
"data": null
}Параметры неуспешного ответа
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| error | int | Да | Код ошибки. |
| errMessage | string | Да | Сообщение об ошибке. |
| data | object | Нет | Основные данные транзакции (может быть null). |