inPAY CardSystem API Documentation
v1.0.0 · Stable Yordam
Developer Documentation

inPAY CardSystem
API Documentation

UZCARD va HUMO kartalaridan to'g'ridan-to'g'ri to'lov qabul qilish uchun professional API integratsiyasi — 3 bosqichli jarayon

UZCARD (8600 xxxx xxxx xxxx)  ·  HUMO (9860 xxxx xxxx xxxx)
Base URL
inpay.uz/api/v1/
Format
application/json
Session
5 daqiqa
Min summa
1 000 so'm

Autentifikatsiya

Har bir so'rovda kerakli ma'lumotlar

Barcha so'rovlarda merchant_id va token majburiy. Bu ma'lumotlarni faqat server-side kodda saqlang.

merchant_id
Sizning merchant identifikatori
token
Maxfiy API token (server-side only)
PHP · config
define('INPAY_MERCHANT_ID',    '1353');
define('INPAY_MERCHANT_TOKEN', '6a7bf375b302cfcda6692e6f60402cb3');
define('INPAY_BASE_URL',        'https://inpay.uz/api/v1/');

API Endpointlar

3 bosqichli to'lov jarayoni

1
Transaction Yaratish
POST/api/v1/create/

To'lovni boshlash uchun birinchi qadamda transaction yaratiladi. Muvaffaqiyatli bo'lsa cardsystem_order_id qaytariladi.

Request Body
JSON
{
  "merchant_id":    "1353",
  "token":          "6a7bf375b302cfcda6692e6f60402cb3",
  "amount":         50000,
  "description":    "Mahsulot uchun to'lov",
  "payment_method": "cardsystem",
  "callback_url":   "https://yoursite.com/callback.php",
  "order_id":       "ORDER_123456"
}
Parametrlar
ParametrTipMajburiyTavsif
merchant_idstring✓ HaMerchant identifikatori
tokenstring✓ HaAPI token
amountfloat✓ HaTo'lov summasi (so'm)
descriptionstring— IxtiyoriyTo'lov tavsifi
payment_methodstring✓ HaHar doim "cardsystem"
callback_urlstring— IxtiyoriyTo'lov natijasi yuboriladi
order_idstring✓ HaNoyob buyurtma identifikatori
Response
Success 200
{
  "success": true,
  "message": "Transaction yaratildi",
  "cardsystem_order_id": "TRX_1738584451_5678",
  "amount": 50000,
  "status": "pending"
}
Error
{
  "success": false,
  "message": "Merchant topilmadi"
}
2
Karta Yuborish va SMS Olish
POST/api/v1/cardsystem/create/

1-qadamdan olingan cardsystem_order_id va karta ma'lumotlarini yuborish. SMS kod mijoz telefoniga yuboriladi.

JSON · Request
{
  "cardsystem_order_id": "TRX_1738584451_5678",
  "card_number":        "8600123456789012",
  "exp_month":          "12",
  "exp_year":           "27"
}
Response (Success)
{
  "success": true,
  "message": "SMS kod yuborildi",
  "data": {
    "cardsystem_order_id": "TRX_1738584451_5678",
    "hash_token":         "a1b2c3d4e5f6...",
    "amount":             50000,
    "phone":              "+998901234567",
    "next_step":          "/api/v1/cardsystem/verify"
  }
}
3
SMS Kodni Tasdiqlash
POST/api/v1/cardsystem/verify/

Mijoz kiritgan OTP kodni yuborib to'lovni yakunlash.

JSON · Request
{
  "hash_token": "a1b2c3d4e5f6...",
  "otp_code":   "123456"
}
JSON · Response
{
  "success": true,
  "message": "To'lov muvaffaqiyatli",
  "data": {
    "cardsystem_order_id": "TRX_1738584451_5678",
    "amount":             50000,
    "status":             "success",
    "paid_at":            "2025-02-03 14:30:45"
  }
}

To'lov Jarayoni

3 bosqichli integratsiya sxemasi

1
Transaction Yaratish
POST /api/v1/create/ — merchant ma'lumotlari va summa yuboriladi
cardsystem_order_id qaytariladi
2
Karta Ma'lumotlari + SMS
POST /api/v1/cardsystem/create/ — karta raqami va muddati yuboriladi. Mijoz telefoniga SMS.
hash_token qaytariladi
3
SMS Kodni Tasdiqlash
POST /api/v1/cardsystem/verify/ — OTP yuboriladi. To'lov yakunlanadi.
To'lov muvaffaqiyatli
Callback (ixtiyoriy)
Agar callback_url ko'rsatilgan bo'lsa, to'lov natijasi serveringizga POST orqali yuboriladi.

Kod Namunalari

PHP, JavaScript va Python

complete-payment.php
<?php
/** inPAY CardSystem — To'liq To'lov Namunasi */

$merchantId    = '1353';
$merchantToken = '6a7bf375b302cfcda6692e6f60402cb3';
$baseUrl       = 'https://inpay.uz/api/v1/';

function sendRequest($url, $data) {
    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST           => true,
        CURLOPT_POSTFIELDS     => json_encode($data),
        CURLOPT_HTTPHEADER     => [
            'Content-Type: application/json',
            'Accept: application/json',
        ],
        CURLOPT_TIMEOUT => 30,
    ]);
    $res = curl_exec($ch);
    curl_close($ch);
    return json_decode($res, true);
}

// 1️⃣ Transaction yaratish
$r1 = sendRequest($baseUrl . 'create/', [
    'merchant_id'    => $merchantId,
    'token'          => $merchantToken,
    'amount'         => 50000,
    'description'    => "Test to'lov",
    'payment_method' => 'cardsystem',
    'callback_url'   => 'https://yoursite.com/callback.php',
    'order_id'       => 'TEST_' . time(),
]);
if (!$r1['success']) die("❌ " . $r1['message']);
$orderId = $r1['cardsystem_order_id'];

// 2️⃣ Karta + SMS
$r2 = sendRequest($baseUrl . 'cardsystem/create/', [
    'cardsystem_order_id' => $orderId,
    'card_number'         => '8600123456789012',
    'exp_month'           => '12',
    'exp_year'            => '27',
]);
if (!$r2['success']) die("❌ " . $r2['message']);
$hashToken = $r2['data']['hash_token'];

// 3️⃣ SMS tasdiqlash
echo "SMS kodni kiriting: ";
$otp = trim(fgets(STDIN));

$r3 = sendRequest($baseUrl . 'cardsystem/verify/', [
    'hash_token' => $hashToken,
    'otp_code'   => $otp,
]);

echo $r3['success']
    ? "\n✅ TO'LOV MUVAFFAQIYATLI!\n"
    : "\n❌ Xatolik: " . $r3['message'] . "\n";
?>
payment.js
const MERCHANT_ID    = '1353';
const MERCHANT_TOKEN = '6a7bf375b302cfcda6692e6f60402cb3';
const API_URL        = 'https://inpay.uz/api/v1/';

async function apiPost(path, body) {
  const r = await fetch(API_URL + path, {
    method:  'POST',
    headers: { 'Content-Type': 'application/json' },
    body:    JSON.stringify(body),
  });
  return r.json();
}

async function processPayment({ amount, cardNumber, expMonth, expYear, otp }) {
  // 1️⃣ Transaction
  const t = await apiPost('create/', {
    merchant_id:    MERCHANT_ID,
    token:          MERCHANT_TOKEN,
    amount:         amount,
    payment_method: 'cardsystem',
    order_id:       'WEB_' + Date.now(),
  });
  if (!t.success) throw new Error(t.message);

  // 2️⃣ Karta + SMS
  const sms = await apiPost('cardsystem/create/', {
    cardsystem_order_id: t.cardsystem_order_id,
    card_number: cardNumber.replace(/\s/g, ''),
    exp_month: expMonth, exp_year: expYear,
  });
  if (!sms.success) throw new Error(sms.message);

  // 3️⃣ Tasdiqlash
  const v = await apiPost('cardsystem/verify/', {
    hash_token: sms.data.hash_token,
    otp_code:   otp,
  });
  return v;
}

// Ishlatish:
processPayment({
  amount: 50000, cardNumber: '8600 1234 5678 9012',
  expMonth: '12', expYear: '27', otp: '123456'
}).then(console.log).catch(console.error);
payment.py
import requests, time

MERCHANT_ID    = "1353"
MERCHANT_TOKEN = "6a7bf375b302cfcda6692e6f60402cb3"
API_URL        = "https://inpay.uz/api/v1/"

def api_post(path, data):
    return requests.post(
        API_URL + path, json=data,
        headers={"Content-Type": "application/json"}, timeout=30
    ).json()

# 1️⃣ Transaction yaratish
r1 = api_post("create/", {
    "merchant_id":    MERCHANT_ID,
    "token":          MERCHANT_TOKEN,
    "amount":         50000,
    "description":    "Python test",
    "payment_method": "cardsystem",
    "order_id":       f"PY_{int(time.time())}",
})
assert r1["success"], r1.get("message")
order_id = r1["cardsystem_order_id"]

# 2️⃣ Karta + SMS
r2 = api_post("cardsystem/create/", {
    "cardsystem_order_id": order_id,
    "card_number":         "8600123456789012",
    "exp_month":           "12",
    "exp_year":            "27",
})
assert r2["success"], r2.get("message")
hash_token = r2["data"]["hash_token"]

# 3️⃣ SMS tasdiqlash
otp = input("SMS kodni kiriting: ")
r3  = api_post("cardsystem/verify/", {
    "hash_token": hash_token, "otp_code": otp,
})

print("✅ Muvaffaqiyatli!" if r3.get("success") else f"❌ {r3.get('message')}")

Xatoliklar

HTTP status kodlar va keng tarqalgan xatoliklar

HTTP Status Kodlar
200OK — Muvaffaqiyatli
400Bad Request
401Unauthorized
404Not Found
410Session Expired
500Server Error
Keng Tarqalgan Xatoliklar
Merchant topilmadi
token yoki merchant_id noto'g'ri
Karta muddati tugagan
exp_month / exp_year tekshiring
Session muddati tugagan
5 daqiqadan keyin qayta urinish
OTP noto'g'ri
SMS kodni qayta tekshiring

Xavfsizlik

Majburiy talablar, qoidalar va maxfiylik siyosati

Tavsiya qilinadigan
  • Har doim HTTPS ishlatish
  • Token va credential larni server-side saqlash
  • Request validation va input sanitization
  • Rate limiting va IP cheklov qo'shish
  • Xavfsizlik hodisalarini 24 soat ichida xabar qilish
  • Serverni muntazam patch va yangilash
Qilmaslik kerak
  • Token ni frontendda ochiq ko'rsatish
  • Karta raqami, CVV, PIN saqlash
  • OTP / SMS kodlarni loglash
  • HTTP (shifrsiz) da ishlash
  • Mijoz ma'lumotlarini uchinchi shaxslarga berish
  • 3-D Secure ma'lumotlarini kuzatish
Muhim Qoidalar
Session muddati
5 daqiqa (OTP kiritish uchun)
Minimal summa
1 000 so'm
Order ID
Har bir to'lov uchun noyob bo'lishi shart
Callback tekshirish
To'lov natijasini ikki marta tasdiqlash
To'lov Ma'lumotlari Xavfsizligi va Maxfiyligi

1. Umumiy qoidalar

Kassa egasi (hamkor) inPAY CardSystem API orqali amalga oshiriladigan barcha to'lov operatsiyalarida mijozlarning shaxsiy va to'lovga oid ma'lumotlari maxfiyligini ta'minlashi shart. Ushbu ma'lumotlar faqatgina to'lovni amalga oshirish maqsadida va amaldagi qonunchilik doirasida qayta ishlanishi mumkin.

2. Karta ma'lumotlarini saqlashning taqiqlanishi

Hamkor quyidagi ma'lumotlarni to'plash, saqlash, loglash yoki uchinchi shaxslarga uzatishga haqli emas: karta raqami (PAN), amal qilish muddati, CVV/CVC kodlari, PIN-kodlar, 3-D Secure / OTP kodlari hamda boshqa autentifikatsiya ma'lumotlari. Ushbu talablar test muhitida ham to'liq amal qiladi.

3. Mijoz roziligisiz ma'lumotlardan foydalanish taqiqlanishi

Mijozlarning shaxsiy yoki to'lovga oid ma'lumotlaridan ularning aniq roziligisiz marketing, reklama, tahliliy yoki boshqa maqsadlarda foydalanish qat'iyan man etiladi.

4. Noqonuniy harakatlar uchun javobgarlik

Mijoz ma'lumotlaridan noqonuniy foydalanish, ruxsatsiz kirish, ma'lumotlarni o'zgartirish, nusxalash yoki yo'q qilish holatlari aniqlangan taqdirda, hamkor O'zbekiston Respublikasi qonunchiligiga muvofiq moddiy, ma'muriy yoki jinoiy javobgarlikka tortilishi mumkin.

5. Shartnomani bekor qilish huquqi

Xavfsizlik talablari buzilgan taqdirda, inPAY tomoni hamkor bilan tuzilgan shartnomani bir tomonlama tartibda ogohlantirishsiz va darhol bekor qilish huquqiga ega.

6. To'lov jarayonini kuzatish va aralashuvning taqiqlanishi

To'lov jarayonida yuboriladigan SMS-kodlar, OTP parollar, tasdiqlash kodlari, 3-D Secure ma'lumotlari yoki boshqa maxfiy axborotni yozib olish, kuzatish, tahlil qilish yoki uchinchi shaxslarga uzatish qat'iyan man etiladi.

7. Texnik xavfsizlik talablari

  • API chaqiruvlari faqat HTTPS orqali amalga oshirilishi shart
  • API tokenlar server tomonda saqlanishi, frontendda oshkor etilmasligi lozim
  • Serverlar muntazam ravishda yangilanib, xavfsizlik patchlari o'rnatilishi shart
  • Bruteforce, bot hujumlari va DDoS hujumlardan himoya mexanizmlari joriy etilishi lozim
  • So'rovlar uchun rate limiting va IP cheklovlar joriy etilishi tavsiya etiladi

8. Audit va loglash

Kassa egasi o'z tizimida faqat texnik operatsion loglarni yuritishi mumkin. Loglarda karta raqami, CVV/CVC, OTP yoki boshqa maxfiy to'lov ma'lumotlari saqlanishi qat'iyan taqiqlanadi.

9. Xavfsizlik hodisalari haqida xabar berish

Agar ma'lumotlar sizib chiqishi, tizimga ruxsatsiz kirish yoki xavfsizlik buzilishi holati aniqlansa, hamkor 24 soat ichida inPAY texnik qo'llab-quvvatlash xizmatini xabardor qilishi shart.

10. Normativ talablarga muvofiqlik

Hamkor O'zbekiston Respublikasi qonunchiligi, xalqaro to'lov tizimlari (UZCARD, HUMO) talablari, shuningdek PCI DSS xavfsizlik standartlariga muvofiq faoliyat yuritishi shart.

Test Ma'lumotlari

Sandbox muhitida sinov uchun

Production muhitida faqat haqiqiy kartalar ishlaydi! Test kartalar real pul yechmaydi.
UZCARD Test
Karta raqami8600 1234 5678 9012
Muddat12 / 27
SMS kodHar qanday 4–6 raqam
HUMO Test
Karta raqami9860 1234 5678 9012
Muddat12 / 27
SMS kodHar qanday 4–6 raqam
Yordam
support@inpay.uz
@merchants_uz
docs.inpay.uz
Versiya
API Version 1.0.0
Yangilanish: 2026-02-03
Qo'llab-quvvatlanadi
UZCARD
HUMO
© 2026 inPAY. Barcha huquqlar himoyalangan.