Payment Confirmation by Token
A token is a digital equivalent of bank card data that is used to ensure the security of payments and transactions. Instead of transmitting and storing real card data (number, expiration date, CVV), a unique token is used, which is a random set of characters.
Method pay
- URL:
https://secure.octo.uz/pay/{octo_payment_UUID}
- Method:
POST
- Content-type:
application/json
Request example
json
{
"card_token": "TOKEN",
"method": "uzcard",
"email": "client@mail.com"
}
Request parameters
Parameter | Type | Required | Description |
---|---|---|---|
card_token | string | Yes | The customer's card token used for the transaction. |
method | string | Yes | Payment method. Acceptable values: bank_card , uzcard , humo . |
string | Yes | User's email address. Required if the user_data block was provided earlier. |
Successful response example
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"
},
"language": "uz",
"tariffId": 2,
"fee": null,
"refundedSum": 0.00,
"bankCode": "RB",
"cardInputType": "merchant_site",
"tag": "ticket",
"test": false
}
}
Successful response parameters
Parameter | Type | Required | Description |
---|---|---|---|
error | int | Yes | Error code: 0 means no errors. |
errMessage | string | No | Error message, empty if there is no error. |
data | object | Yes | An object containing transaction details. |
data.id | int | Yes | Unique transaction ID. |
data.uuid | string | Yes | Unique UUID for transaction identification. |
data.processorKey | string | No | Processing ID, if applicable. |
data.merchantId | int | Yes | Merchant ID associated with the transaction. |
data.merchant | object | No | Merchant information. |
data.merchantTransId | string | Yes | Unique transaction ID from the merchant. |
data.initialSum | decimal | Yes | Initial transaction amount. |
data.totalSum | decimal | Yes | Total transaction amount, including fees. |
data.splittedSum | decimal | Yes | Amount split among multiple recipients (if applicable). |
data.currency | string | Yes | Transaction currency. |
data.convertSum | decimal | No | Converted amount (if applicable). |
data.convertRate | decimal | No | Conversion rate (if applicable). |
data.convertCurrency | string | No | Converted currency (if applicable). |
data.selectedMethod | string | No | Selected payment method. |
data.createTime | int | Yes | Transaction creation time (UNIX timestamp). |
data.expireTime | int | Yes | Transaction expiration time (UNIX timestamp). |
data.peyedTime | int | No | Payment time of the transaction, if paid. |
data.expiredHoldTime | int | No | Expiration time of funds retention. |
data.merCreateTime | int | Yes | Transaction creation time on the merchant’s side. |
data.description | string | Yes | Description of the transaction. |
data.autoCapture | bool | Yes | Indicates whether the payment will be automatically captured. |
data.withoutSite | bool | Yes | Indicates whether the operation is performed without a website. |
data.isTest | bool | Yes | Indicates whether the transaction is a test transaction. |
data.refundLocked | bool | Yes | Indicates whether refunds are locked. |
data.returnUrl | string | Yes | URL for redirection after payment. |
data.redirectUrl | string | Yes | URL for redirecting to the payment page. |
data.details | object | No | Additional transaction details (e.g., cardInfo ). |
data.details.cardInfo | object | No | Information about the card used for payment. |
data.details.transType | string | Yes | Type of transaction (e.g., SMS ). |
data.hold | object | No | Data regarding funds retention (if applicable). |
data.payMethods | array | Yes | List of available payment methods. |
data.status | string | Yes | Transaction status. |
data.user | object | No | User information. |
data.user.email | string | No | User’s email address. |
data.user.phone | string | No | User’s phone number. |
data.user.user_id | string | Yes | Unique user ID (provided in prepare_payment ). |
data.language | string | Yes | Interface language. Acceptable values: uz , ru , en . |
data.tariffId | int | Yes | Tariff ID. |
data.riskLevel | int | Yes | Transaction risk level. |
data.bankCode | string | Yes | Bank code. |
data.cardInputType | string | Yes | Card data entry type (merchant_site / octo_page ). |
data.tag | string | No | Tag associated with the transaction (e.g., ticket ). |
Unsuccessful response example
json
{
"error": 2,
"errMessage": "Wrong secret",
"data": null
}
Unsuccessful response parameters
Parameter | Type | Required | Description |
---|---|---|---|
error | int | Yes | Error code. |
errMessage | string | Yes | Error message. |
data | object | No | Main transaction data, can be null if no additional data. |