🇺🇿 UZ: Uzum Bank App
"paymentMethodName": "UzumBankApp"
Payment Method Features
| Payment Method | UzumBankApp |
|---|---|
| Country | Uzbekistan |
| Processing Currencies | UZS |
| Payments | Yes |
| -- Min per transaction amount | 500 UZS |
| -- Max per transaction amount | 999,999,999 UZS |
| -- Authentication | None |
| Disbursements | No |
| Refunds | Full, via Support only (no API) |
| Chargebacks | No |
Possible Payment Scenarios:
Our API will provide you with all the necessary information to execute the following scenario:
Steps |
|---|
|
Workflow Overview:
High-resolution image is available on the link: (UzumApp-Payments)
[Step 1.3] You need to create a new intent
- Use the following API method to create an intent:Â
POST /processing/api/v1/intents. - When creating the intent, complete the
Paymentobject.
Request Example
{
"clientReferenceId": "123456789",
"payments": [
{
"paymentInstrument": {
"paymentMethodName": "UzumBankApp"
},
"submittedAmount": {
"value": 100,
"currency": "UZS"
},
"authCurrencyCode": "UZS"
}
]
}Request fields description
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| clientReferenceId | Required | String | The client/merchant intent reference. Aka, Transaction Reference | 1234 |
| payments | Required | Array of objects | -- |
Object "payment" fields description:
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| paymentInstrument | Required | Object | The receiver payment instrument | n/a |
| submittedAmount | Required | Object | n/a | |
| authCurrencyCode | Required | String | The currency the transaction will be processed. Always UZS for this method | UZS |
Object "payments[].paymentInstrument" fields description:
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| paymentMethodName | Required | String | Payment method name | UzumBankApp |
Object "payments[].submittedAmount" fields description:
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| value | Required | Number | Transaction amount | 100.40 |
| currency | Required | String | The original currency of the transaction. Can vary, will be converted into auth currency during the processing | USD |
[Step 1.6] Return the generated link to the App
- In the response for the Intent creation you will receive the link in the specific format
- Link format: https://www.uzumbank.uz/open-service?serviceId=123422111&amount=100000&order_id=243083314944495600
| Attribute | Description | Example |
|---|---|---|
| serviceId | Service Id of you or your client in the processor's system | 123422111 |
| amount | An amount you provided us but in | Payment amount in tiyin (the smallest currency unit) |
| order_id | Payment ID in our system | 243083314944495600 |
- You need to provide this link to the payer in any convenient way
[Step 3.5] Payer Confirmed the payment in the App: You will receive the latest Payment Authorisation Status
- You will receive the transaction status via the webhook
- More about payment webhooks on the separate page
Webhook Example
{
"status": "AUTHORIZED",
"errorCode": "CODE_PT0000",
"errorMessage": "string"
}Test Data
Our system allows emulating different test cases in the sandbox environment.
To simulate specific scenarios and receive different results, use the intent.description parameter.
SBP Payment Test flow
High-resolution image is available on the link: UzumBankApp_TestFlow.jpg
| Case | intent.description | final paymentStatus |
|---|---|---|
| Successful payment | -- | CAPTURED |
| Payment Declined | DeclinedPayment | DECLINED |
| Failure | LinkCreationError | ERROR |
Case "Successful payment"
Steps:
- The client creates an intent viaÂ
POST /processing/api/v1/intents. - A synchronous response is returned with
paymentStatus = AUTHORIZATION_REQUESTED. - The client follows the link from
payments.additionalData.details.url. - A callback is received with
paymentStatus = CAPTURED.
Case "Payment Declined"
Steps:
- The client creates an intent via
POST /processing/api/v1/intentsusing theintent.descriptionparameter with the value"DeclinedPayment". - A synchronous response is returned with
paymentStatus = AUTHORIZATION_REQUESTED. - The client follows the link from
payments.additionalData.details.url. - A callback is received with
paymentStatus = DECLINED.
Case "Failure"
Steps:
- The client creates an intent via
POST /processing/api/v1/intentsusing theintent.descriptionparameter with the value"LinkCreationError". - A synchronous response is returned with
paymentStatus = ERROR.
Updated 4 days ago
