Skip to main content

Payment for merchants from the client's card

API URL

https://paysys.uz/gateway

Attention!

Necessary PCI DSS sertification of vendor's service.

List of merchant's categories

Method's name: pam.categories
Authorization: requires

It allows to get a list of merchant's categories of PaySys.

Request example
{
"method": "pam.categories",
"id": "a29c1966-b230-48a6-87c9-aa7b605fb0a7"
}

Response contains:

  • categories - List of merchant's categories
    • id - ID category in the PaySys
    • key - Parameter name to pass to the next method
    • value - Parameter definition to pass to the next method
    • title - Category name
    • logo - URL link to the logo category
    • order_no - Category sort key
  • request_method - Next method's name for the merchant's list request
  • mx_id - Request tracker
Response example
{
"id": "a29c1966-b230-48a6-87c9-aa7b605fb0a7",
"error": null,
"result": {
"categories": [
{
"id": 1,
"key": "category_id",
"value": 1,
"title": "Mobile operators",
"logo": "https://paysys.uz/application/resources/img/category_1.png",
"order_no": 1000
},
{
"id": 2,
"key": "category_id",
"value": 2,
"title": "Internet services",
"logo": "https://paysys.uz/application/resources/img/category_2.png",
"order_no": 990
},
{
"id": 6,
"key": "category_id",
"value": 6,
"title": "Public utilities",
"logo": "https://paysys.uz/application/resources/img/category_6.png",
"order_no": 988
},
{
"id": 22,
"key": "category_id",
"value": 22,
"title": "Budget payments",
"logo": "https://paysys.uz/application/resources/img/category_22.png",
"order_no": 986
},
{
"id": 16,
"key": "category_id",
"value": 16,
"title": "Financial services",
"logo": "https://paysys.uz/application/resources/img/category_16.png",
"order_no": 984
},
{
"id": 3,
"key": "category_id",
"value": 3,
"title": "Telephony",
"logo": "https://paysys.uz/application/resources/img/category_3.png",
"order_no": 980
},
{
"id": 4,
"key": "category_id",
"value": 4,
"title": "Cancellation of credits",
"logo": "https://paysys.uz/application/resources/img/category_4.png",
"order_no": 970
},
{
"id": 7,
"key": "category_id",
"value": 7,
"title": "TV and online broadcasting",
"logo": "https://paysys.uz/application/resources/img/category_7.png",
"order_no": 960
},
{
"id": 10,
"key": "category_id",
"value": 10,
"title": "Charity",
"logo": "https://paysys.uz/application/resources/img/category_10.png",
"order_no": 950
},
{
"id": 12,
"key": "category_id",
"value": 12,
"title": "Internet markets",
"logo": "https://paysys.uz/application/resources/img/category_12.png",
"order_no": 945
},
{
"id": 5,
"key": "category_id",
"value": 5,
"title": "Hosting providers",
"logo": "https://paysys.uz/application/resources/img/category_5.png",
"order_no": 940
},
{
"id": 14,
"key": "category_id",
"value": 14,
"title": "Online services",
"logo": "https://paysys.uz/application/resources/img/category_14.png",
"order_no": 940
},
{
"id": 8,
"key": "category_id",
"value": 8,
"title": "Air and railway road tickets",
"logo": "https://paysys.uz/application/resources/img/category_8.png",
"order_no": 930
},
{
"id": 9,
"key": "category_id",
"value": 9,
"title": "Video observation",
"logo": "https://paysys.uz/application/resources/img/category_9.png",
"order_no": 920
},
{
"id": 11,
"key": "category_id",
"value": 11,
"title": "Announcement and advertisement",
"logo": "https://paysys.uz/application/resources/img/category_11.png",
"order_no": 900
},
{
"id": 13,
"key": "category_id",
"value": 13,
"title": "Games and social media",
"logo": "https://paysys.uz/application/resources/img/category_13.png",
"order_no": 880
},
{
"id": 15,
"key": "category_id",
"value": 15,
"title": "Insurance",
"logo": "https://paysys.uz/application/resources/img/category_15.png",
"order_no": 860
},
{
"id": 17,
"key": "category_id",
"value": 17,
"title": "Touristic services",
"logo": "https://paysys.uz/application/resources/img/category_17.png",
"order_no": 840
},
{
"id": 18,
"key": "category_id",
"value": 18,
"title": "Ad services",
"logo": "https://paysys.uz/application/resources/img/category_18.png",
"order_no": 830
},
{
"id": 19,
"key": "category_id",
"value": 19,
"title": "Teaching",
"logo": "https://paysys.uz/application/resources/img/category_19.png",
"order_no": 820
},
{
"id": 25,
"key": "category_id",
"value": 25,
"title": "Cosmetics and medicines",
"logo": "https://paysys.uz/application/resources/img/category_25.jpg",
"order_no": 800
},
{
"id": 26,
"key": "category_id",
"value": 26,
"title": "Medicine",
"logo": "https://paysys.uz/application/resources/img/category_26.jpg",
"order_no": 800
},
{
"id": 20,
"key": "category_id",
"value": 20,
"title": "Others",
"logo": "https://paysys.uz/application/resources/img/category_20.png",
"order_no": 700
},
{
"id": 21,
"key": "category_id",
"value": 21,
"title": "Taxi",
"logo": "https://paysys.uz/application/resources/img/category_21.png",
"order_no": 255
},
{
"id": 23,
"key": "category_id",
"value": 23,
"title": "Building and repairs",
"logo": "https://paysys.uz/application/resources/img/category_23.jpg",
"order_no": 23
}
],
"request_method": "pam.category_vendors"
},
"mx_id": "4248c73fb3e22c8dd67d4cbcba898199"
}

In case of the incorrect request parameters, system will return an error.


Merchant's list for category

Method's name: pam.category_vendors
Authorization: requires

It allows to get the merchant's list for categories.

Request contains:

  • categories
    • category_id - Category ID, received in the methodpam.categories
Request example
{
"method": "pam.category_vendors",
"params": {
"categories": {
"category_id": 16
}
},
"id": "83b8a299-68ac-4e8f-a47a-a9a6e921b64a"
}

Response contains:

  • vendors - Merchant's list
    • id - Merchant's ID in the PaySys
    • key - Parameter name to pass to the next method
    • value - Parameter value to pass to the next method
    • name - Merchant parameter
    • short_name - Brief name of merchant
    • url - URL link to the merchant's site
    • logo - URL link to the meerchant's logo
    • description - Merchant's description
    • category_id - Merchant's category ID in the PaySys
  • request_method - Next method's name for the merchant's payment request format
  • mx_id - Request tracker
Response example
{
"id": "83b8a299-68ac-4e8f-a47a-a9a6e921b64a",
"error": null,
"result": {
"vendors": [
{
"id": 101596,
"key": "vendor_id",
"value": 101596,
"name": "QIWI wallet",
"short_name": "QIWI wallet",
"url": "https://qiwi.com",
"logo": "https://paysys.uz/application/resources/img/logo/99_l.png",
"description": "",
"category_id": 16
}
],
"request_method": "pam.vendor_form"
},
"mx_id": "4a494d6ddcba7184f011b23518e9486b"
}

In case of the incorrrect request parameters, system will return an error.


Merchant's payment format

Method's name: pam.vendor_form
Authorization: requires

It allows to get the merchant's payment form. Each merchant has its own form of payment and its own verification rules of correction of user input.

Request contains:

  • vendors
    • vendor_id - Merchant's ID in the method pam.category_vendors
Request example
{
"method": "pam.vendor_form",
"params": {
"vendors": {
"vendor_id": 101596
}
},
"id": "53eaa7f6-b227-4bb7-8ee9-959334d667b3"
}

Response contains:

  • vendor_form - Form fields required for merchant payment preparation (describes HTML form elements)
    • label -The display name of the field for the user
    • key - Field name for sending
    • element - HTML field's tag
      input - Text field for input
      select - Selecting options from a list
    • type - Data's type
      int - c Integer
      string - String
      float - Float
    • value - Field's name by default
    • options - Selecting options list for field's type select
      • text -Visible option text for selection
      • value - Option value for selection
      • id - Option value for selection
    • show - Whether to show the element on the form
    • mask - Filling element mask
    • regex - Regular expression to validate user input
    • placeholder - Phrase inside an empty element (hint)
    • size - HTML attribute - maximum input length
    • amount_type - Код валюты для суммы пополнения
    • min_amount - Minimal field value
    • max_amount - Maximum field valu
    • order - Sorting an element inside a form
    • is_required - Mandatory sign of filling
  • request_method - Next method's name(a place for sending the form )
  • mx_id - Request tracker
Response example
{
"id": "53eaa7f6-b227-4bb7-8ee9-959334d667b3",
"error": null,
"result": {
"vendor_form": [
{
"label": "Receiver's phone number",
"key": "account",
"element": "input",
"type": "string",
"value": "",
"show": 1,
"mask": "",
"prefix": "",
"regex": "^\\d{11,}$",
"placeholder": "Specify in format79123456789",
"size": 0,
"order": 10,
"is_required": 1
},
{
"label": "Wallet's currency",
"key": "currency",
"element": "select",
"child_element": null,
"type": "string",
"value": "RUB",
"options": [
{
"text": "RUB",
"value": "RUB",
"id": 1
},
{
"text": "USD",
"value": "USD",
"id": 2
},
{
"text": "EUR",
"value": "EUR",
"id": 3
}
],
"show": 1,
"mask": "",
"prefix": "",
"regex": "^(USD|RUB|EUR)$",
"placeholder": "",
"size": 0,
"order": 20,
"is_required": 1
},
{
"label": "Sum",
"key": "amount",
"element": "input",
"type": "float",
"value": "",
"show": 1,
"mask": "",
"prefix": "",
"regex": "^[0-9]{1,10}(.)[0-9]{1,2}$",
"placeholder": "",
"size": 0,
"amount_type": "uzs",
"min_amount": 10000,
"max_amount": 75000000,
"order": 40,
"is_required": 1
},
{
"key": "vendor_id",
"value": 101596,
"show": 0,
"is_required": 1
}
],
"request_method": "pam.check"
},
"mx_id": "0a9a1012af599ce9fe21006fda9ba823"
}

In case of the incorrect request parameters, system will return an error.


Verification of data for merchant payment

Method's name: pam.check
Authorization: requires

Checks the possibility of payment for the merchant and the correctness of the entered data, the existence of the client/order.

Request contains:

  • vendor_form - Form with a list of fields and their values
Request example
{
"method": "pam.check",
"params": {
"vendor_form": {
"account": "79123456789",
"currency": "USD",
"amount": "12000",
"vendor_id": 101596
}
},
"id": "6d8f5743-a4e8-4074-85de-8250d8f1c426"
}

*Here, the amount field contains the amount in soums, which will be converted to USD and sent to the user's QIWI wallet.

The request contains a list of forms for various payment options (see request_method).
pam.pay_by_id [Pay with saved id and card token](#pay with saved id and card token) ( UzCard/HUMO)
pam.prepare_pay_by_id - Preparation of payment with id-card (UzCard/HUMO). The operation requires confirmation by SMS
pam.prepare_pay - Payment preparation using a card number (UzCard/HUMO). The operation requires confirmation by SMS

  • vendor_form - Fields for the merchant to send to the payment preparation method (most often the values ​​from the call to this method)
    • value - Field value
    • show - Whether to show the element on the form
    • is_required - Mandatory sign of filling
  • additional_form - Additional fields to display to the user (you need to send fields with mandatory sign in the next method)
    • label - Field name
    • key - Field name
    • value - Field's value
    • show - Whether to show the element on the form
    • is_required - Mandatory sign of filling
  • pay_form -Fields with payment details
    • key - Field name for sending
    • value - Field's value
    • show - Whether to show the element on the form
    • is_required - Mandatory sign of filling
Response example
{
"id": "6d8f5743-a4e8-4074-85de-8250d8f1c426",
"error": null,
"result": [
{
"vendor_form": [
{
"key": "account",
"value": "79123456789",
"show": 0,
"is_required": 1
},
{
"key": "currency",
"value": "USD",
"show": 0,
"is_required": 1
},
{
"key": "amount",
"value": "12000",
"show": 0,
"is_required": 1
},
{
"key": "vendor_id",
"value": 101596,
"show": 0,
"is_required": 1
}
],
"additional_form": [
{
"label": "Will be received",
"key": "amount_to_wallet",
"value": "1.03 USD",
"show": 1,
"is_required": 0
},
{
"label": "Available amount for replenishment",
"key": "wallet_limits",
"value": "2 000 000 UZS",
"show": 1,
"is_required": 0
}
],
"pay_form": [
{
"key": "card_id",
"value": "",
"show": 0,
"is_required": 1
},
{
"key": "user_phone",
"type": "int",
"value": "",
"show": 0,
"regex": "^(998)[0-9]{9}$",
"is_required": 1
}
],
"available_payment_systems": [],
"request_method": "pam.pay_by_id"
},
{
"vendor_form": [
{
"key": "account",
"value": "79123456789",
"show": 0,
"is_required": 1
},
{
"key": "currency",
"value": "USD",
"show": 0,
"is_required": 1
},
{
"key": "amount",
"value": "12000",
"show": 0,
"is_required": 1
},
{
"key": "vendor_id",
"value": 101596,
"show": 0,
"is_required": 1
}
],
"additional_form": [
{
"label": "Will be received",
"key": "amount_to_wallet",
"value": "1.03 USD",
"show": 1,
"is_required": 0
},
{
"label": "Available amount for replenishment",
"key": "wallet_limits",
"value": "2 000 000 UZS",
"show": 1,
"is_required": 0
}
],
"pay_form": [
{
"key": "card_id",
"value": "",
"show": 0,
"is_required": 1
},
{
"key": "user_phone",
"type": "int",
"value": "",
"show": 0,
"regex": "^(998)[0-9]{9}$",
"is_required": 1
}
],
"available_payment_systems": [],
"request_method": "pam.prepare_pay_by_id"
},
{
"vendor_form": [
{
"key": "account",
"value": "79123456789",
"show": 0,
"is_required": 1
},
{
"key": "currency",
"value": "USD",
"show": 0,
"is_required": 1
},
{
"key": "amount",
"value": "12000",
"show": 0,
"is_required": 1
},
{
"key": "vendor_id",
"value": 101596,
"show": 0,
"is_required": 1
}
],
"additional_form": [
{
"label": "Will be rerceived",
"key": "amount_to_wallet",
"value": "1.03 USD",
"show": 1,
"is_required": 0
},
{
"label": "Available amount for replenishment",
"key": "wallet_limits",
"value": "2 000 000 UZS",
"show": 1,
"is_required": 0
}
],
"pay_form": [
{
"label": "Card number",
"key": "card_number",
"element": "input",
"type": "int",
"value": "",
"show": 1,
"mask": "#### #### #### ####",
"regex": "^(8600|6262|5614|5440|9860)[0-9]{12}$",
"placeholder": "",
"size": 16,
"order": 10,
"is_required": 1
},
{
"label": "Validity",
"key": "card_expire",
"element": "input",
"type": "int",
"value": "",
"show": 1,
"mask": "##/##",
"regex": "^[0-9]{4}$",
"placeholder": "",
"size": 4,
"order": 20,
"is_required": 1
},
{
"label": "Save a card",
"key": "save",
"element": "checkbox",
"type": "int",
"value": "0",
"show": 1,
"regex": "^[0,1]{1}$",
"order": 25,
"is_required": 1
}
],
"available_payment_systems": [],
"request_method": "pam.prepare_pay"
}
],
"mx_id": "5e7ec173aaf9633aaa5c140f45e077d5"
}

In case of the incorrect requests, system will return an error.


Payment using saved id and card token

Method's name: pam.pay_by_id
Authorization: requires
Card token: requires

Merchant's payment without confirmation by the user via SMS.

Request contains:

  • vendor_form - Form with a list of fields and their values
  • additional_form -Form with additional fields (sent if there are additional fields required for sending)
  • pay_form - Fields with payment details
Request example
{
"method": "pam.pay_by_id",
"params": {
"vendor_form": {
"account": "79123456789",
"currency": "USD",
"amount": "12000",
"vendor_id": 101596
},
"additional_form": {},
"pay_form": {
"card_id": "420a62c22fbe3bab09ed0"
}
},
"id": "02ea5ceb-51f0-40b7-a762-a48e0bb1c8fd"
}

*Here, the `amount` field contains the amount in soums that will be converted to `USD` and sent to the user's QIWI wallet.

Response contains:

  • details - Object with the details of the made payment
    • id - Card ID in the PaySys
    • masked_card_number - Card number
    • transaction_id - Transaction ID in the PaySys
    • bank_transaction_id - Transaction number in the PaySys
    • reference_number - Processing center transaction ID
    • merchantId - Service provider ID in the system UZCARD ONLINE/HUMO
    • terminalId - Terminal ID in the system UZCARD ONLINE/HUMO
    • amount - Transaction amount in UZS
    • merchantId - Service provider ID in the system UZCARD ONLINE/HUMO
    • terminalId - Terminal ID in the system UZCARD ONLINE/HUMO
    • date - Transaction creation date in seconds
  • mx_id - Request tracker
Response example
{
"id": "02ea5ceb-51f0-40b7-a762-a48e0bb1c8fd",
"error": null,
"result": {
"details": {
"id": "6A0A002A1289688F2CDA1F1C0686359C16",
"masked_card_number": "860053******9500",
"transaction_id": 4534534,
"bank_transaction_id": 6845346,
"reference_number": 5464563454,
"amount": 12000,
"merchantId": 33005329,
"terminalId": 33005330,
"date": 1653480308
}
}
}

In case of invalid request parameters, the system will return an error.


Preparation of payment using id card

Method's name: pam.prepare_pay_by_id
Authorization: requires

Prepares a transaction for payment. Payment it is necessary to confirm with the code from SMS of the user.

Request contains:

  • vendor_form - Form with a list of fields and their values
  • additional_form - Form with additional fields (sent if there are additional fields required for sending)
  • pay_form - Fields with payment details
Response example
{
"method": "pam.prepare_pay_by_id",
"params": {
"vendor_form": {
"account": "79123456789",
"currency": "USD",
"amount": "12000",
"vendor_id": 101596
},
"additional_form": {},
"pay_form": {
"card_id": "6A0A002A1289688F2CDA1F1C0686359C16"
}
},
"id": "fa4d5b04-c020-4fdf-a43b-d6766ffe9473"
}

*Here, the `amount` field contains the amount in soums that will be converted to `USD` and sent to the user's QIWI wallet.

Response contains:

  • masked_phone_number - Phone number to which the SMS code was sent to confirm the payment
  • time_out - Time out of the verification code in seconds
  • confirm_form - Form for sending confirmation code
  • request_method - Requested method for confirmation the payment
Response example
{
"id": "fa4d5b04-c020-4fdf-a43b-d6766ffe9473",
"error": null,
"result": {
"masked_phone_number": "+99890*****50",
"time_out": 120,
"confirm_form": [
{
"label": "Verification code",
"key": "confirmation_code",
"element": "input",
"type": "int",
"value": "",
"mask": "######",
"regex": "^[0-9]{6}$",
"placeholder": "",
"size": 6,
"order": 10,
"is_required": 1
},
{
"key": "bank_transaction_id",
"value": 6236,
"show": 0,
"is_required": 1
}
],
"request_method": "pam.confirm_pay"
}
}

In case of the incorrect request parameters, system will return [the error](api-concepts#failed-rpc-request-example.


Payment preparation using the card number

Method's name: pam.prepare_pay_by_id
Authorization: required

Prepares a transaction for payment. Payment it is necessary to confirm with the code from SMS of the user.

Request contains:

  • vendor_form - Form with a list of fields and their values
  • additional_form -Form with additional fields (sent if there are additional fields required for sending)
  • pay_form - Fields with payment details
Request example
{
"method": "pam.prepare_pay",
"params": {
"vendor_form": {
"phone_number": "905588782",
"summa": "12000",
"vendor_id": 101596
},
"pay_form": {
"card_number": "8600530410609500",
"card_expire": "0420"
}
},
"id": "d1a29314-07ec-4a88-82b0-d68ad26fba1f"
}

*Here, the `amount` field contains the amount in soums that will be converted to `USD` and sent to the user's QIWI wallet.

Response contains:

  • masked_phone_number - Phone number to which the SMS code was sent to confirm the payment
  • time_out - Time out of the verification code in seconds
  • confirm_form - Form for sending confirmation code
  • request_method - Requested method for confirmation the payment
Response example
{
"id": "d1a29314-07ec-4a88-82b0-d68ad26fba1f",
"error": null,
"result": {
"masked_phone_number": "+99890*****50",
"time_out": 120,
"confirm_form": [
{
"label": "Verification code",
"key": "confirmation_code",
"element": "input",
"type": "int",
"value": "",
"mask": "######",
"regex": "^[0-9]{6}$",
"placeholder": "",
"size": 6,
"order": 10,
"is_required": 1
},
{
"key": "bank_transaction_id",
"value": 6236,
"show": 0,
"is_required": 1
}
],
"request_method": "pam.confirm_pay"
}
}

In case of the incorrect request parameters, system will return an error.


Confirmation of payment by code from SMS

Method's name: pam.confirm_pay
Authorization: requires

Request contains:

  • confirm_form - Payment confirmation form
Request example
{
"method": "pam.confirm_pay",
"params": {
"confirm_form": {
"confirmation_code": "000000",
"bank_transaction_id": 6236
}
},
"id": "4160ec82-c546-4bf5-abab-76307e3b12eb"
}

Response contains:

  • details - Object with the details of the made payment
    • id - Card ID in the PaySys
    • masked_card_number - Card number
    • transaction_id - Transaction ID in the PaySys
    • bank_transaction_id - Transaction number in the PaySys
    • reference_number - Processing center transaction ID
    • merchantId - Service provider ID in the system UZCARD ONLINE/HUMO
    • terminalId - Terminal ID in the system UZCARD ONLINE/HUMO
    • amount -Transaction amount in UZS
    • date - Transaction creation date in seconds
  • mx_id - Request tracker
Response example
{
"id": "02ea5ceb-51f0-40b7-a762-a48e0bb1c8fd",
"error": null,
"result": {
"details": {
"id": "6A0A002A1289688F2CDA1F1C0686359C16",
"masked_card_number": "860053******9500",
"transaction_id": 4534534,
"bank_transaction_id": 6845346,
"reference_number": 5464563454,
"amount": 12000,
"merchantId": 33005329,
"terminalId": 33005330,
"date": 1653480308
}
}
}

In case of the incorrect request parameters, system will return an error.