Kontentga o'tish

Mijozlar xaridlar summasi

PATCH
/v1/customer/bulk
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.

platform-id
string
default: 7d4a4c38-dd84-4902-b744-0488b80a4c01

Platforma identifikatori. Integratsiyalar uchun statik qiymat ishlatiladi.

Billz-Response-Channel
string
Allowed values: HTTP

HTTP — hodisani qayta ishlash natijasini kutib, uni HTTP javobida qaytarish. Sarlavhasiz metod faqat e’lon qilingan hodisaning correlation_id sini qaytaradi.

Billz-Response-Channel
string
Allowed values: HTTP

Billz-Response-Channel sarlavhasi bilan bir xil — o’z sarlavhasini yubora olmaydigan mijozlar uchun. Ikkalasi ham uzatilsa, sarlavha amal qiladi.

Media typeapplication/json
object
customers
required

Mijozlar va ularning yangi xaridlar summalari; mijoz takrorlanmasligi kerak

Array<object>
>= 1 items <= 1000 items
object
customer_id
required

Mijoz IDsi

string format: uuid
purchase_amount
required

Yakuniy xaridlar summasi; joriy summani almashtiradi

number format: double
Example
{
"customers": [
{
"customer_id": "0c4bacfa-5a20-4ee0-befb-e2c27da19d0c",
"purchase_amount": 2100000
},
{
"customer_id": "2be17079-dead-45a2-9b27-c7a7ceaf1476",
"purchase_amount": 650000
}
]
}

Muvaffaqiyat. Billz-Response-Channel: HTTP sarlavhasi bilan — asinxron javob konverti, usiz — {"message": "<correlation_id>"}.

Media typeapplication/json
One of:
object
session_id

Mijoz sessiyasi identifikatori

string format: uuid
status_code

Yakuniy HTTP kodi, 200

integer
correlation_id

So’rov identifikatori

string format: uuid
topic

Javob hodisasining turi, masalan <event_type>.success

string
data
object
updated

Nechta mijoz yangilandi

integer
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 — customers ro’yxati bo’sh;
  • 1008 — 1000 tadan ortiq mijoz;
  • 1009 — customer_id UUID emas;
  • 1010 — mijoz so’rovda takrorlangan;
  • 1011 — mijoz uchun purchase_amount yuborilmagan.

Tekshiruv birinchi xatoda to’xtaydi; 1009–1011 uchun data.data da — shu mijozning customer_id si satr ko’rinishida.

Media typeapplication/json
One of:

Xato tanasi. API da xato tanasining bir nechta formati mavjud; barcha formatlar va kodlar «Javob kodlari va xatolar» bo’limida tavsiflangan.

object
code

HTTP kodi yoki ichki raqamli xato kodi

integer
message

Inson o’qiy oladigan xabar

string
error
One of:
string
data

Foydali yuk (xato bo’lganda odatda null)

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.

Media typeapplication/json
One of:

Xato tanasi. API da xato tanasining bir nechta formati mavjud; barcha formatlar va kodlar «Javob kodlari va xatolar» bo’limida tavsiflangan.

object
code

HTTP kodi yoki ichki raqamli xato kodi

integer
message

Inson o’qiy oladigan xabar

string
error
One of:
string
data

Foydali yuk (xato bo’lganda odatda null)

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