🇺🇿 UZ: Uzum Bank App

📘

"paymentMethodName": "UzumBankApp"

Payment Method Features

Payment MethodUzumBankApp
CountryUzbekistan
Processing CurrenciesUZS
PaymentsYes
-- Min per transaction amount500 UZS
-- Max per transaction amount999,999,999 UZS
-- AuthenticationNone
DisbursementsNo
RefundsFull, via Support only (no API)
ChargebacksNo

Possible Payment Scenarios:

Our API will provide you with all the necessary information to execute the following scenario:

Steps

  1. The payer initiates the payment
  2. You create an Intent
  3. Our Platform returns a payment link (a link that leads a user to the banking app).
  4. The payer proceeds to the link and confirms the payment
  5. Our Platform processes the payment
  6. Our Platform returns you the final payment status via a callback

Workflow Overview:

High-resolution image is available on the link: (UzumApp-Payments)


[Step 1.3] You need to create a new intent


Request Example

{
  "clientReferenceId": "123456789",
  "payments": [
    {
      "paymentInstrument": {
        "paymentMethodName": "UzumBankApp"
      },
      "submittedAmount": {
        "value": 100,
        "currency": "UZS"
      },
      "authCurrencyCode": "UZS"
    }
  ]
}

Request fields description

FieldRequiredTypeDescriptionExample
clientReferenceIdRequiredStringThe client/merchant intent reference. Aka, Transaction Reference1234
paymentsRequiredArray of objects--

Object "payment" fields description:

FieldRequiredTypeDescriptionExample
paymentInstrumentRequiredObjectThe receiver payment instrumentn/a
submittedAmountRequiredObjectn/a
authCurrencyCodeRequiredStringThe currency the transaction will be processed. Always UZS for this methodUZS

Object "payments[].paymentInstrument" fields description:

FieldRequiredTypeDescriptionExample
paymentMethodNameRequiredStringPayment method nameUzumBankApp

Object "payments[].submittedAmount" fields description:

FieldRequiredTypeDescriptionExample
valueRequiredNumberTransaction amount100.40
currencyRequiredStringThe original currency of the transaction. Can vary, will be converted into auth currency during the processingUSD


[Step 1.6] Return the generated link to the App

AttributeDescriptionExample
serviceIdService Id of you or your client in the processor's system123422111
amountAn amount you provided us but inPayment amount in tiyin (the smallest currency unit)
order_idPayment ID in our system243083314944495600
  • 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


Caseintent.descriptionfinal paymentStatus
Successful payment--CAPTURED
Payment DeclinedDeclinedPaymentDECLINED
FailureLinkCreationErrorERROR

Case "Successful payment"

Steps:

  1. The client creates an intent via POST /processing/api/v1/intents.
  2. A synchronous response is returned with paymentStatus = AUTHORIZATION_REQUESTED.
  3. The client follows the link from payments.additionalData.details.url.
  4. A callback is received with paymentStatus = CAPTURED.

Case "Payment Declined"

Steps:

  1. The client creates an intent viaPOST /processing/api/v1/intents using the intent.description parameter with the value "DeclinedPayment".
  2. A synchronous response is returned with paymentStatus = AUTHORIZATION_REQUESTED.
  3. The client follows the link from payments.additionalData.details.url.
  4. A callback is received with paymentStatus = DECLINED.

Case "Failure"

Steps:

  1. The client creates an intent viaPOST /processing/api/v1/intents using the intent.description parameter with the value "LinkCreationError".
  2. A synchronous response is returned with paymentStatus = ERROR.