Mijozlar xaridlar summasi
const url = 'https://api-admin.billz.ai/v1/customer/bulk?Billz-Response-Channel=HTTP';const options = { method: 'PATCH', headers: { 'platform-id': '7d4a4c38-dd84-4902-b744-0488b80a4c01', 'Billz-Response-Channel': 'HTTP', Authorization: 'Bearer <token>', 'Content-Type': 'application/json' }, body: '{"customers":[{"customer_id":"0c4bacfa-5a20-4ee0-befb-e2c27da19d0c","purchase_amount":2100000},{"customer_id":"2be17079-dead-45a2-9b27-c7a7ceaf1476","purchase_amount":650000}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url 'https://api-admin.billz.ai/v1/customer/bulk?Billz-Response-Channel=HTTP' \ --header 'Authorization: Bearer <token>' \ --header 'Billz-Response-Channel: HTTP' \ --header 'Content-Type: application/json' \ --header 'platform-id: 7d4a4c38-dd84-4902-b744-0488b80a4c01' \ --data '{ "customers": [ { "customer_id": "0c4bacfa-5a20-4ee0-befb-e2c27da19d0c", "purchase_amount": 2100000 }, { "customer_id": "2be17079-dead-45a2-9b27-c7a7ceaf1476", "purchase_amount": 650000 } ] }'Asinxron metod. Natijani HTTP orqali sinxron olish uchun Billz-Response-Channel: HTTP sarlavhasini yuboring — aks holda javob 200 {"message": "<correlation_id>"} bo’ladi. Maksimal kutish vaqti — 600 soniya, so’ngra error.code = TIMEOUT bilan 408.
Mijozlarning yakuniy xaridlar summasini o’rnatadi: yangi qiymat joriy qiymatga qo’shilmaydi, balki uni almashtiradi. Bitta so’rovda — 1000 tagacha mijoz, so’rov tanasi — 1 MB dan oshmasligi kerak.
Hammasi yoki hech narsa: agar kamida bitta mijoz kompaniyada topilmasa, hech kim yangilanmaydi, 404 javobida esa topilmaganlar ro’yxati keladi.
Nol va manfiy summalarga ruxsat beriladi. O’chirilgan va arxivdagi mijozlar ham yangilanadi.
Xato kodlari: 408 — asinxron javobni kutish taym-auti; 401, 403, 429, 500 — barcha metodlar uchun umumiy. Tana formatlari va semantikasi: Javob kodlari va xatolar.
Authorizations
“Authorizations” bo'limiParameters
“Parameters” bo'limiHeader Parameters
“Header Parameters” bo'limiPlatforma identifikatori. Integratsiyalar uchun statik qiymat ishlatiladi.
HTTP — hodisani qayta ishlash natijasini kutib, uni HTTP javobida qaytarish. Sarlavhasiz metod faqat e’lon qilingan hodisaning correlation_id sini qaytaradi.
Query Parameters
“Query Parameters” bo'limiBillz-Response-Channel sarlavhasi bilan bir xil — o’z sarlavhasini yubora olmaydigan mijozlar uchun. Ikkalasi ham uzatilsa, sarlavha amal qiladi.
Request Bodyrequired
“Request Bodyrequired” bo'limiobject
Mijozlar va ularning yangi xaridlar summalari; mijoz takrorlanmasligi kerak
object
Mijoz IDsi
Yakuniy xaridlar summasi; joriy summani almashtiradi
Example
{ "customers": [ { "customer_id": "0c4bacfa-5a20-4ee0-befb-e2c27da19d0c", "purchase_amount": 2100000 }, { "customer_id": "2be17079-dead-45a2-9b27-c7a7ceaf1476", "purchase_amount": 650000 } ]}Responses
“Responses” bo'limiMuvaffaqiyat. Billz-Response-Channel: HTTP sarlavhasi bilan — asinxron javob konverti, usiz — {"message": "<correlation_id>"}.
object
Mijoz sessiyasi identifikatori
Yakuniy HTTP kodi, 200
So’rov identifikatori
Javob hodisasining turi, masalan <event_type>.success
object
Nechta mijoz yangilandi
Billz-Response-Channel sarlavhasisiz asinxron metod javobi — hodisa e’lon qilindi.
object
E’lon qilingan hodisaning correlation_id si
Example
{ "session_id": "7c2a0f3e-3c52-4a4a-9d0e-5d3a8f1b2c11", "status_code": 200, "topic": "v1.user_service.customer.bulk_patch.success", "data": { "updated": 2 }}So’rov qabul qilinmadi, hech kim yangilanmadi. Tanada noma’lum maydon bilan, noto’g’ri JSON bilan yoki 1 MB dan katta tana bilan — darhol 400, konvertsiz. Boshqa sabablar konvertda keladi, kod — data.error_code da:
1007—customersro’yxati bo’sh;1008— 1000 tadan ortiq mijoz;1009—customer_idUUID emas;1010— mijoz so’rovda takrorlangan;1011— mijoz uchunpurchase_amountyuborilmagan.
Tekshiruv birinchi xatoda to’xtaydi; 1009–1011 uchun data.data da — shu mijozning customer_id si satr ko’rinishida.
Xato tanasi. API da xato tanasining bir nechta formati mavjud; barcha formatlar va kodlar «Javob kodlari va xatolar» bo’limida tavsiflangan.
Asinxron javob konverti. Billz-Response-Channel: HTTP sarlavhasi uzatilganda qaytariladi. So’rovning yakuniy HTTP kodi status_code maydonidan olinadi.
object
Mijoz sessiyasi identifikatori
Hodisani qayta ishlash holati (u yakuniy HTTP javob kodi hamdir)
object
Xato kodi, xato bo’lmasa bo’sh satr
Xato matni, xato bo’lmasa — bo’sh satr
So’rov identifikatori, e’lon qilingan hodisa ID si bilan mos keladi
Javob hodisasining turi, masalan <event_type>.success
Operatsiya natijasi, agar metod uni qaytarsa
object
Examplegenerated
{ "code": 1, "message": "example", "error": { "code": "example", "message": "example" }, "data": {}}Kamida bitta mijoz kompaniyada topilmadi, hech kim yangilanmadi. data.error_code = 1012, data.data da — missing_customer_ids (100 tadan ko’p emas) va missing_total — jami nechtasi topilmagani.
Xato tanasi. API da xato tanasining bir nechta formati mavjud; barcha formatlar va kodlar «Javob kodlari va xatolar» bo’limida tavsiflangan.
Asinxron javob konverti. Billz-Response-Channel: HTTP sarlavhasi uzatilganda qaytariladi. So’rovning yakuniy HTTP kodi status_code maydonidan olinadi.
object
Mijoz sessiyasi identifikatori
Hodisani qayta ishlash holati (u yakuniy HTTP javob kodi hamdir)
object
Xato kodi, xato bo’lmasa bo’sh satr
Xato matni, xato bo’lmasa — bo’sh satr
So’rov identifikatori, e’lon qilingan hodisa ID si bilan mos keladi
Javob hodisasining turi, masalan <event_type>.success
Operatsiya natijasi, agar metod uni qaytarsa
object
Example
{ "session_id": "7c2a0f3e-3c52-4a4a-9d0e-5d3a8f1b2c11", "status_code": 404, "topic": "v1.user_service.customer.bulk_patch.failed", "data": { "error_code": 1012, "message": "customers not found, nothing was updated", "data": { "missing_customer_ids": [ "2be17079-dead-45a2-9b27-c7a7ceaf1476" ], "missing_total": 1 } }}