Local card payments in Uzbekistan
You can make local card payments in Uzbekistan.
Currency: UZS
Minimum payment amount: 1 UZS
Maximum payment amount: 99, 900, 000 UZS
Available payment systems: Humo, Uzcard
Refunds: full or partial but the refund amount must be greater than the amount in UZS equivalent to 1 USD and must not be greater than the total transaction amount
To make a payment, complete the standard steps.
If you use our widget, pass the mandatory parameters in the session/create method.
Otherwise, you can pass the mandatory parameters either in session/create or in session/start/payment.
Required parameters
Check all the available parameters
| Name | Type | Description |
|---|---|---|
payment_details | object | Payment method |
type | string | Payment method type |
card | object | Card details |
type | string | Card details transmission type |
bank_card | object | Unencrypted card |
number | string | Card number |
expiration_month | string | Month |
expiration_year | string | Year |
amount_details | object | Amount information |
amount | int | Amount |
currency | string | ISO 4217 currency code. Case insensitive |
customer | object | Payer details |
reference | string | Payer's identifier in your system |
payment_options | object | Payment parameters |
recurrent | bool | Whether the payment is to be performed using a saved token |
Request example
curl -X POST \
https://demo.smart-glocal.com/api/v1/session/start/payment \
-H 'content-type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230",
"payment_details": {
"type": "card",
"card": {
"type": "bank_card",
"bank_card": {
"number": "4242424242421850",
"expiration_month": "05",
"expiration_year": "35"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "UZS"
},
"customer": {
"reference": "1234567890"
},
"payment_options": {
"return_url": "return url",
"recurrent": false
}
}'
Recurring payments
Recurring payments are made in a standard way.
When a recurring payment is made, you will get a check_otp webhook. In the webhook, you will see the address at which Smart Glocal will expect an OTP code from you in accept_code.callback_url.
Webhook example
curl -X POST \
https://partner.com \
-H 'content-type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "check_otp",
"session": {
"id": "ps_3230",
"status": "in_progress",
"created_at": "2026-07-08T11:51:12.213675Z",
"updated_at": "2026-07-08T11:51:15.526791Z",
"acquiring_payments": [{
"id": "pm_2501",
"status": "pending",
"created_at": "2026-07-08T11:51:12.626283Z",
"customer": {
"reference": "1234567890"
},
"payment_details": {
"type": "card",
"card": {
"brand": "humo",
"last4": "1850",
"country_iso3": "UZB"
}
},
"amount_details": {
"amount": 10000,
"currency": "UZS"
},
"customer_interaction": {
"type": "redirect",
"redirect": {
"url": "url address",
"base_url": "base url address",
"method": "GET",
"params": {}
}
},
"customer_authorization": {
"suspend_key": "suspend key value",
"accept_code": {
"rest_of_attempts": 3,
"active_to": "2026-07-08T11:52:14+00:00",
"callback_url": "https://smart-glocal.com?foo=bar"
},
"resend_sms": {
"rest_of_attempts": 2,
"allowed_from": "2026-07-08T11:52:14+00:00",
"callback_url": "https://smart-glocal.com?foo=bar"
},
"type": "sms"
},
"payment_options": {
"return_url": "return url",
"recurrent": false
}
}],
"actions": {
"confirm": "2026-07-08T11:51:12.697715Z"
}
}
}'
Reply to the address from accept_code.callback_url as follows:
- an OTP code received from the payer (6 digits)
"suspend_key": "suspend key value"
Response example
'{
"suspend_key": "suspend key value",
"otp": "999999"
}'
You can resend the OTP code up to 3 times in case an unsuccessful response is returned or no
payment_finishedwebhook is received.