Qut Pay Сайт Кабинет Білім базасы Нұсқаулықтар API құжаттамасы ҚАЗРУС
Басты бетБілім базасы → Анықтамалық

Metadata және тапсырыс нөмірі

Жаңартылды: 2026-09-14 · Markdown нұсқасы

Қысқаша

Счёт жасағанда екі өріс сіздің жүйеңіздің деректерін счётқа тіркеп қоюға арналған:

Ережесі бір: екеуіне де құпия дерек жазбаңыз. metadata шифрланбайды және кабинетке кірген кез келген қызметкер оны көре алады.

externalOrderId

Бұл — сіздің дүкеніңіздегі немесе CRM-іңіздегі тапсырыс нөмірі. Kaspi-ге кетпейді, клиент оны көрмейді.

{
  "amount": 12500,
  "description": "Тапсырыс №4471",
  "externalOrderId": "4471"
}

Не үшін керек:

МүмкіндікҚалай жұмыс істейді
Webhook-та қайтуinvoice.externalOrderId өрісінде келеді — қай тапсырысты жабуды бірден білесіз
ІздеуGET /api/v1/invoices?externalOrderId=4471 — сол тапсырыстың счёттарын алады
Кабинетте көрінуСчёттар тізімінде және счёт карточкасында көрінеді
ЭкспортCSV бағанына түседі, бухгалтерияға салыстыруға ыңғайлы

Бір тапсырысқа бірнеше счёт болуы мүмкін (біріншісі өтіп кетті, клиент қайта төледі). Сондықтан externalOrderId — бірегей кілт емес. Қайталанудан қорғау үшін бөлек Idempotency-Key тақырыбы бар: Идемпоттылық.

Не жазу керек: тапсырыс нөмірі, брондау коды, шот-фактура нөмірі. Не жазбау керек: клиенттің телефоны, ЖСН, email — бұлар үшін customer өрісі бар.

metadata

metadata — кез келген JSON объектісі. Біз оның ішіне қарамаймыз, тексермейміз, тек сақтап, кері қайтарамыз.

{
  "amount": 3000,
  "kind": "qr",
  "description": "Су, 19 л",
  "externalOrderId": "4471",
  "metadata": {
    "machineId": "vnd-07",
    "slot": "A3",
    "branch": "almaty-abay",
    "courierId": 22,
    "source": "telegram-bot"
  }
}

Осы объект өзгертілмеген күйінде:

Сондықтан «төленді» хабары келгенде дерекқорға қайта бармай-ақ, қай автоматтың қай ұяшығын ашу керегін бірден білесіз.

Нені жазуға болады

МысалНе үшін
orderLineId, dealIdCRM-дегі ішкі идентификатор
machineId, slot, terminalIdВендинг автоматы, ұяшық, құрылғы нөмірі
courierId, routeIdКурьер мен маршрут — жеткізу сәтінде төлем
branch, pointIdНүкте, филиал — есепті бөлу үшін
source, campaignТрафик көзі, науқан белгісі
tableNo, waiterIdМейрамханадағы үстел мен даяшы
cartHash, attemptІшкі техникалық белгілер

Ұстанымы: мұнда тек өз жүйеңіздің техникалық белгілері жатуы керек.

Нені ешқашан жазбау керек

ЖазбаңызСебебі
Пароль, токен, API кілтКабинетке кірген кез келген қызметкер көреді
Карта нөмірі, CVV, банк реквизиттеріМұндай деректі сақтауға бізде негіз жоқ, ол сізге тәуекел
ЖСН, БИН, құжат нөміріАртық дербес дерек — қажет емес
Клиенттің мекенжайы, диагнозы, өтініш мәтініДербес және құпия дерек
Толық себет мазмұны, ұзын журналmetadata дерекқор емес, өз жүйеңізге идентификатор жазыңыз

Клиенттің аты, телефоны, email керек болса — оларды metadata-ға емес, арнайы customer өрісіне жазыңыз: сонда ғана чек пен хабарлама дұрыс жұмыс істейді. Не сақталатыны туралы: Деректер және құпиялық.

Көлемі

metadata — қысқа объект болуға тиіс: бірнеше ондаған өріс, мәндері қысқа жолдар мен сандар. Ондаған килобайт JSON жіберсеңіз, счёт жасау баяулайды және webhook денесі ауырлайды. Ұзын мәтінді өз дерекқорыңызда сақтап, мұнда тек оның идентификаторын қалдырыңыз.

Webhook-та қалай қайтады

{
  "event": "invoice.paid",
  "invoice": {
    "id": "inv_01J8…",
    "externalOrderId": "4471",
    "status": "paid",
    "amount": 3000,
    "metadata": { "machineId": "vnd-07", "slot": "A3" },
    "receiptUrl": "https://…"
  },
  "sentAt": "2026-09-14T09:12:04.000Z"
}

Өңдеу мысалы:

if (event === 'invoice.paid') {
  const { externalOrderId, metadata } = invoice;
  await markOrderPaid(externalOrderId);          // тапсырысты жабу
  if (metadata?.machineId) openSlot(metadata.machineId, metadata.slot);
}

Webhook бір оқиғаны екі рет жеткізуі мүмкін, сондықтан өңдеу идемпотентті болсын — (invoice.id, status) жұбы бойынша тексеріңіз.

Жазылым бойынша шыққан счёттарда metadata ішінде subscriptionId және run өрістері автоматты пайда болады. Өз өрістеріңізді сол атаулармен атамаңыз.

Қайсысын таңдау керек

СұрақЖауап
Кабинеттен іздегім келедіexternalOrderId
CSV экспортта көрінуі керекexternalOrderId
Клиент көрсін деймінЕшқайсысы емес — description жазыңыз
Webhook-та қайтса жетедіmetadata
Бірнеше мән керекmetadata

Жиі қойылатын сұрақтар

metadata бойынша іздеуге бола ма? Жоқ. Іздеу externalOrderId бойынша жүреді. Іздеу керек мәнді сол өріске шығарыңыз.

metadata-ны кейін өзгертуге бола ма? Жоқ, ол счёт жасалған сәтте бекітіледі. Жаңа дерек пайда болса, оны өз жүйеңізде сақтаңыз.

Клиент metadata-ны көре ме? Жоқ. Төлем бетінде де, Kaspi қосымшасында да, чекте де көрінбейді. Клиент тек description мәтінін, соманы және сатушыны көреді.

externalOrderId бірегей болуы міндетті ме? Жоқ. Бір тапсырысқа бірнеше счёт болуы қалыпты жағдай. Қосарланудан қорғау Idempotency-Key арқылы жасалады.

metadata-ға массив немесе кірістірілген объект салуға бола ма? Иә, кез келген жарамды JSON. Бірақ өңдеуді жеңілдету үшін бір деңгейлі, қысқа объект ұстаған дұрыс.

Байланысты мақалалар

Счёт жасау: барлық өрістерPOST /api/v1/invoices эндпоинтінің толық анықтамасы — әр өрістің типі мен шектеуі, жауаптағы барлық өріс, curl мен Node мысалдары, qr мен phone айырмашылығы және жиі кездесетін қателер.Идемпоттылық: қайталаудан қорғануIdempotency-Key тақырыбы қалай жұмыс істейді, кілтті қалай құру керек, externalOrderId-дің рөлі неде, webhook өңдеуде және қайтаруда қайталанудан қалай сақтану керек.Webhook баптауКабинетте webhook адресін қосу, оқиғаларды таңдау, құпияны сақтау, тақырыптар мен дене пішімі, 11 рет қайталау кестесі, журналды оқу, адресті сынау және қайта бағыттау ережесі.Деректер және құпиялық — не сақталады, кім көредіQut Pay счёт, клиент және кассир деректерінің қайсысын сақтайды және қайсысын мүлдем сақтамайды, оларды кім көреді, қанша уақыт тұрады. Счёт сипаттамасы мен metadata-ға нені жазбау керек.CSV экспорт және есеп: счёттарды тізім етіп алуСчёттарды кабинеттен және API арқылы шығару, сүзгілер мен бағандардың мағынасы, UTF-8 кодтауы, Excel-дегі иероглиф және Kaspi Pay есебімен салыстыру — сандар неге дәл сәйкес келмеуі мүмкін.

Сұрағыңыз қалды ма? WhatsApp +77788813333 · kazprose@gmail.com
Кабинеттен де жазуға болады: Қолдау.

Qut Pay — тәуелсіз сервис, «Kaspi Bank» АҚ-мен аффилирленбеген. Kaspi және Kaspi Pay — құқық иесінің тауар белгілері.