🇺🇿 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=10040&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
{
"transactionType": "PAYMENT",
"transactionId": "111122223333444455",
"status": "ACCEPTED"
}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.
Uzum App 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 18 days ago
