Kontentga o'tish

3. Birinchi sotuv

BILLZ’da sotuv bosqichma-bosqich yig’iladi: sotuv yaratish → pozitsiyalarni qo’shish → (mijozni bog’lash, chegirmalarni qo’llash) → to’lash.

Окно терминала
curl -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.

Окно терминала
curl -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'limi
Окно терминала
curl -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 }'

Mavjud 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}.

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.