Skip to content

Tashqi tizimlar (ICAN) ​

ICAN kredit tizimi va hamkor tizimlari Wasyt ga to‘g‘ridan-to‘g‘ri, server → server, foydalanuvchi tokeni o‘rniga maxfiy kalit bilan murojaat qiladi.

Sarlavhalar ​

SarlavhaKim yuboradiQiymati
External-System-Secret-KeyhammasiTashqi tizim kaliti. Noto‘g‘ri yoki bo‘sh bo‘lsa, istalgan metod 404 qaytaradi
Company-Ican-UuidICANKompaniyaning ICAN dagi UUID si
Company-Wasyt-UuidICAN, hamkorKompaniyaning Wasyt dagi UUID si (wasyt_uuid)
Company-Partner-Uuidhamkor (/external/partner/*)Kompaniyaning hamkordagi UUID si
Accepthammasiapplication/json
Accept-Languagehammasiru, uz yoki oz — nomlar va xatolar tili
  • Kompaniya sarlavhasi so‘rov kimning nomidan ketayotganini belgilaydi: tizim shu kompaniya direktori sifatida ishlaydi va uning filiallarini ko‘radi. Avval Company-Ican-Uuid (hamkorda — Company-Partner-Uuid), keyin Company-Wasyt-Uuid tekshiriladi.
  • Kompaniya o‘chirilganlari bilan birga qidiriladi. Kredit metodlari (trade-sale, trade-sale-transaction, seller-cart, external-credit-payment) o‘chirilgan kompaniya yoki filial uchun ham to‘liq ishlaydi.

Kalit faqat serverda

Kalit brauzer yoki mobil ilovaga tushmasligi kerak: u bilan istalgan kompaniya nomidan ish ko‘rish mumkin.

Kredit shartnomasi bosqichma-bosqich ​

  1. Ma’lumotnomalar. GET /external/credit/records/{type} cashbox, stock va product bilan (filter[stock_id], filter[name_or_barcode]) — sotuv uchun kassa, ombor va tovarlar ID lari.
  2. Hisob-kitob. POST /external/credit/trade-sale/products-total-price qatorlarni tekshiradi va hech narsani saqlamaydi: products_total_price va har bir qatorning minimal narxi products[].effective_min_price ni qaytaradi.
  3. Sotuv. POST /external/credit/trade-sale/create company_wasyt_uuid, har bir qator narxi, source_data (shartnoma nusxasi) va sold_amount bilan. Tovar ombordan chiqariladi, sotuv in_progress holatida yaratiladi; uning id si keyingi barcha bosqichlarda kerak.
  4. To‘lovlar. Mijozning har bir to‘lovi — POST /external/credit/trade-sale-transaction/create sale_id, credit_transaction_id va credit_status bilan. To‘lovlar sold_amount ni qoplaganda sotuv completed bo‘ladi. Javobdagi id ni wasyt_payment_id sifatida saqlang.
  5. Pulni qaytarish. POST /external/credit/trade-sale-transaction/refund-information payment_id bilan to‘lov kassasi, paid_amount va kassaning to‘lov turlari bo‘yicha nolga teng bo‘lmagan qoldiqlarini qaytaradi. Qaytarishning o‘zini kredit tizimi o‘zida o‘tkazadi.
  6. Bekor qilish. POST /external/credit/trade-sale/cancel invoice_id bilan in_progress holatidagi sotuvni bekor qiladi: tovar omborga qaytadi, to‘langan summa sotuv kassasidan yechiladi.

Bitta to‘lov — bir marta

credit_transaction_id kompaniya doirasida yagona. Xuddi shu to‘lov qayta yuborilsa, 422 qaytadi va ikkinchi marta o‘tkazilmaydi, shuning uchun tarmoq xatosidan keyin so‘rovni xavfsiz takrorlash mumkin.

ICAN to‘lov turlari ​

Kredit tizimining to‘lov turlarini o‘zgartirmasdan yuborish mumkin — Wasyt ularni o‘z turlariga o‘giradi:

ICAN turiWasyt turi
cashcash
bank, terminal, mib, blacklistbank
auto_payment, auto_payment_my_uzcard, auto_payment_uniaccess, auto_payment_prizmabank
card, card_client, card_click, card_payme, card_uzumcard
discount, systemsystem — to‘lovga hisoblanadi, kassa o‘zgarmaydi

trade-sale-transaction/create da auto_payment* avtoyechimlari kompaniyaning asosiy kassasiga (agar bo‘lsa), qolganlari — cashbox_id kassasiga, u bo‘lmasa — sotuv kassasiga tushadi. Kredit sotuvlarida debt (qarzga) taqiqlangan, external-credit-payment esa faqat cash, card va bank ni qabul qiladi.

Wasyt da sotuvi yo‘q shartnomalar ​

Ombor ulanishidan oldin tuzilgan shartnomalarning Wasyt da sotuvi yo‘q. Ularning to‘lovlarini POST /external/credit/external-credit-payment/create o‘tkazadi: shartnoma so‘rovning o‘zida tavsiflanadi (credit_id, credit_number, mijoz), pul kassaga tushadi, lekin sotuv tushumiga kirmaydi. Qaytarish — xuddi shu metod type = outcome va qaytariladigan to‘lovning payment_id si bilan; qaytarish oynasi ma’lumotlarini o‘sha refund-information beradi.

Sotuvchi tanlovlari ​

  1. GET /external/credit/records/seller — filter[creator_id] filtri uchun sotuvchilar.
  2. GET /external/credit/seller-cart — tanlovlar; sotiladiganlari: filter[status][]=picking&filter[status][]=sent va filter[stock_id].
  3. GET /external/credit/seller-cart/{model}/cheque — tanlov chek sifatida, joriy narxlar va qoldiqlar bilan.
  4. trade-sale/create seller_cart_id bilan: tanlov completed holatini oladi, sotuv (va sozlangan bo‘lsa, bonus) uning sotuvchisiga yoziladi.

Sinxronlash ​

ICAN o‘z kompaniyalari va manzil ma’lumotnomalarini /external/sync/* ga yuboradi: company, region, region-district, region-mfy. Yozuv ican_uuid bo‘yicha aniqlanadi: yangisi yaratiladi, mavjudi yangilanadi, shuning uchun bir xil so‘rovni qayta yuborish mumkin.

Hamkorlar ​

  1. GET /external/partner/records/{type} region, region_district, region_mfy bilan — wasyt_uuid li manzil ma’lumotnomalari; faqat kalit kerak.
  2. POST /external/partner/company hamkor kompaniyasini yaratadi (tuman — district_wasyt_uuid) va uning wasyt_uuid sini qaytaradi. Shu wasyt_uuid bilan qayta so‘rov kompaniyani yangilaydi.
  3. So‘ng kompaniya ma’lumotlari records/{type} orqali Company-Wasyt-Uuid (yoki Company-Partner-Uuid) sarlavhasi bilan o‘qiladi: filiallar, kassalar, omborlar, qoldiqlar, tovarlar.

POST /external/partner/find-by-url kalitsiz ishlaydi: sayt manzili bo‘yicha hamkorni va uning bezagini qaytaradi.