3. Birinchi sotuv
BILLZ’da sotuv bosqichma-bosqich yig’iladi: sotuv yaratish → pozitsiyalarni qo’shish → (mijozni bog’lash, chegirmalarni qo’llash) → to’lash.
1. Sotuv yaratish
“1. Sotuv yaratish” bo'limicurl -X POST 'https://api-admin.billz.ai/v2/order?Billz-Response-Channel=HTTP' \ -H 'Authorization: Bearer TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "shop_id": "DOKON_ID", "cashbox_id": "KASSA_ID" }'cashbox_id parametrini tushirib qoldirish mumkin.
Metod asinxron: Billz-Response-Channel=HTTP (bu yerda — query-parametr sifatida, bir xil nomdagi
sarlavha orqali ham mumkin) API’ni natijani kutishga va uni konvertda qaytarishga majbur qiladi.
{ "status_code": 200, "id": "38c3920a-ffdd-4233-a823-8af3266f5f4f", "data": { "id": "38c3920a-ffdd-4233-a823-8af3266f5f4f", "order_number": "5632631379", "order_type": "SALE" }, "correlation_id": "3674f28e-7b96-4683-87c3-80892698f421"}Sotuvning UUID’i — bu id maydoni (aynan shu qiymat data.id ichida ham bor), u keyingi barcha
qadamlarda kerak bo’ladi. order_number — BILLZ interfeysida ko’rinadigan qisqa raqam.
Do’kon shop_id, kassa esa cashbox_id maydoni bilan belgilanadi; do’konlar ro’yxatini GET /v1/shop qaytaradi.
2. Mahsulot qo’shish
“2. Mahsulot qo’shish” bo'limicurl -X POST 'https://api-admin.billz.ai/v2/order-product/SOTUV_ID' \ -H 'Authorization: Bearer TOKEN' \ -H 'Content-Type: application/json' \ -H 'Billz-Response-Channel: HTTP' \ -d '{ "product_id": "MAHSULOT_ID", "sold_measurement_value": 1 }'Faqat shu metod savatchani qayta hisoblashni ishga tushiradi, busiz to’lov rad etiladi.
3. Mijozni biriktirish (ixtiyoriy)
“3. Mijozni biriktirish (ixtiyoriy)” bo'limicurl -X PUT 'https://api-admin.billz.ai/v2/order-customer-new/SOTUV_ID' \ -H 'Authorization: Bearer TOKEN' \ -H 'Content-Type: application/json' \ -H 'Billz-Response-Channel: HTTP' \ -d '{ "customer_id": "MIJOZ_ID", "check_auth_code": false }'4. To’lash
“4. To’lash” bo'limiMavjud to’lov usullarini GET /v1/company-payment-type metodi
qaytaradi.
Chekni bir vaqtning o’zida bir nechta to’lov bilan yopish mumkin.
curl -X POST 'https://api-admin.billz.ai/v2/order-payment/SOTUV_ID' \ -H 'Authorization: Bearer TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "payments": [ { "company_payment_type_id": "TOLOV_TURI_ID", "paid_amount": 1000000, "returned_amount": 0 } ], "comment": "onlayn do'kon" }'Javob — {"order_type": "SALE", "should_print_cheque": true}.
Tez-tez uchraydigan xatolar
“Tez-tez uchraydigan xatolar” bo'limi| Alomat | Odatiy sabab |
|---|---|
401 |
access_token muddati tugagan — tokenlar juftligini yangilang |
403 |
marshrut kalit uchun ruxsat etilgan ro’yxatga kiritilmagan — kalit nimalarga qodir |
200 bitta maydonga ega message |
Billz-Response-Channel: HTTP sarlavhasi unutib qoldirilgan |
400, data.error_code = 20084 |
mahsulotlar boshqa metod bilan qo’shilgan — 2-qadamga qarang |
400, kod 20020 |
to’lovlar summasi chekning yakuniy summasiga mos kelmayapti |
400, data.error_code = 20010 |
do’konda ochiq kassa yo’q |
408 roppa-rosa 10 daqiqadan keyin |
natija HTTP kanali orqali yetkazilmadi; sotuv holati alohida so’rov orqali tekshiriladi |
Keyingi qadam: natijani BILLZ’da tekshirish.