Кілт алу
Шығуға дейінгі нұсқа. Бұл API белсенді әзірленуде және сыртқы серіктестерге әлі ашылмаған. Мына белгісі бар эндпоинттер мен оқиғалар Жоспарланған танысу үшін жарияланған, әзірге қолжетімді емес. Әзірге ақы алынбайды және сұраныс шегі қойылмаған.
Серіктес API · v1 · Тапсырмалар мен Сәлемдемелер

Әрбір сәлемдемені Atasuai.

Қазақстандағы жеткізу серіктестері үшін бірыңғай API жинағы, тек екі негізгі нысанмен — Тапсырма (алып кету тапсырмасы) және Сәлемдеме (Тапсырма ішіндегі әрбір жүк). Тапсырмаларды қабылдаңыз, есікке жеткізіңіз (қала ішінде / қалалар арасында) және сәлемдемелерді серіктес тасымалдаушыға тапсырыңыз. Өз жүйеңізді кіріктіріңіз немесе мынаны пайдаланыңыз: delivery.atasuai.com панелінен басқарыңыз.

Шығуға дейінгі нұсқа — әлі қызмет көрсетпейді OAuth 2.0 REST · JSON Сынақ ортасы қосылған
Кіріктіру моделі

Барлығы бір жеткізу API-ін пайдаланады; тасымалдаушыға тапсыру қажет болғанда ашылады.

Әрбір серіктес бір істі істейді: алады, тасымалдайды, жеткізеді. Жүкқұжаттар, жапсырмалар және тасымалдаушының бақылау нөмірлері — бәрін Atasuai орталықтан жасайды: қолында тек телефоны бар курьер бүгін бастай алады. Тасымалдаушыға өзі тапсыра алатын серіктестер бұл мүмкіндікті қосымша ретінде қоса алады.

Тапсырмаларды қабылдау, Сәлемдемелерді орындау

Барлық серіктестер

Алып кету тапсырмаларын қабылдау, партияны толық алу, әрбір Сәлемдеменің күйін жаңарту және жеткізу дәлелін жіберу. Scope deliveries:read · deliveries:write

Бақылау мен жапсырмалар (тек оқу)

Барлық серіктестер

Әрбір Сәлемдеменің бақылау нөмірі мен жапсырмасы болады, тек оқуға. Scope tracking:read

Өз бетінше тапсыру → тасымалдаушы

Қосымша мүмкіндік

Штрих-кодтарды брондау, бос жүкқұжаттарды басып шығару және тасымалдаушыға тапсыру тізімдемесін жасау (мысалы, QazPost Форма 103). Scope consolidation:write

Бір Тапсырма, көп Сәлемдеме

Сәлемдеменің екі бағыты

Сатушы бірнеше сәлемдемені бір Тапсырмағажинап, алып кету уақытын таңдап, жариялайды; бүгінде бұл ашық маркетплейс — желідегі әрбір Агент күтудегі Тапсырмаларды көреді, ал кім бірінші accept шақырса — сол алады (эксклюзивті бөлу және 10 минуттық қайта бөлу таймері әзірге Жоспарланған). Алып кету — Тапсырма деңгейінде (курьер партияны бір жолы алады), ал бағыт — Сәлемдеме деңгейінде — бір Тапсырмада төмендегі екі түр де болуы мүмкін, ал алғаннан кейін әрбір жүк өз бағыты бойынша жүреді: destination.

destination: door

Есікке жеткізу (қала ішінде / қалалар арасында)

Atasuai-дің өз жеткізу желісінде жүреді. Алғаннан кейін сәлемдеме тікелей сатып алушының есігіне барады — қала ішінде немесе қалалар арасында (Агенттің қызмет аймағына қарай), үшінші тарап тасымалдаушысы қатыспайды.

  • Сатып алушының есігіне жеткізіледі (сол қалада немесе басқа қалада)
  • Күй толығымен курьердің әрбір жүк бойынша жаңартуларынан келеді
  • Ішкі бақылау нөмірін пайдаланады AD-…, тасымалдаушының нөмірі жұмсалмайды
  • Жеткізу кезінде ақша алу (COD) — сатушының шешімі
AD-4471-02 Ішкі бақылау нөмірі
destination: carrier

Тасымалдаушыға тапсыру

Бірінші миль — алып кету. Алғаннан кейін сәлемдеме біз кіріктірген үшінші тарап тасымалдаушыларының бірінің бөлімшесіне тапсырылады (carrier_code: qazpost / filp / …) — тасымалдаушының бақылау нөмірі Atasuai-дің орталықтандырылған нөмір пулынан беріледі.

  • Тасымалдаушының бөлімшесіне жеткізіледі; сіз тапсыруға дейінгі күйді хабарлайсыз
  • Тапсырғаннан кейін бақылауды тасымалдаушы жалғастырады
  • Тасымалдаушының бақылау нөмірлері мен жапсырмалары әрбіріне беріледі: carrier_code
  • Тапсыру тізімдемесі (мысалы, QazPost Form 103) автоматты немесе өз бетінше жасалады
Бақылау нөмірі TRK-4471902 Тасымалдаушы береді
Сіз кіріктіретін екі нысан

Тапсырмалар мен Сәлемдемелер

Жеткізу доменінде тек екі негізгі нысан бар. Тапсырма — сатушы жариялап, бір Агентке бөлінген алып кету тапсырмасы; Сәлемдеме — Тапсырма ішіндегі әрбір жүк, әрқайсысының өз бағыты мен күйі бар. Осы екеуін меңгерсеңіз, бүкіл жеткізу кіріктіруін білдіңіз.

Тапсырма · алып кету тапсырмасы
// Published by the seller; any online Agent can claim it (first to accept wins)
{
  "id": "job_4471",
  "batch_no": "PB-4471",
  "status": "pending",
  "accept_deadline": "2026-07-22T09:18:32Z",  // informational only, not enforced yet
  "seller": { "name": "Oscar ЖК" },
  "pickup": {
    "address": "Алматы, Абай 150, оф.3",
    "window": { "from": "14:00", "to": "16:00" },
    "pickup_by": "2026-07-22T16:00:00Z"
  },
  "courier": null,              // optional
  "totals": { "package_count": 6, "total_weight_kg": 6.5 },
  "packages": [ "pkg_88213", "…" ]
}
Сәлемдеме · жүк
// Each item within a Job, with its own destination and status
{
  "id": "pkg_88213",
  "job_id": "job_4471",
  "tracking_number": "AI556489715KZ",
  "destination": "carrier",      // door | carrier
  "carrier_code": "qazpost",     // when carrier
  "status": "pending",
  "recipient": { "name": "Елена", "phone": "+7 7•• •••" },
  "weight_kg": 0.7,
  "cod": null
}
Күйлер машинасы

Күй қалай өзгереді

Алып кету — Тапсырма деңгейінде (партия бір жолы алынады); жеткізу/тапсыру — Сәлемдеме деңгейінде (алғаннан кейін әр жүк бойынша жаңартылады).

Тапсырманың өмірлік циклі
pending ──accept──▶ accepted
   │              │
   │           pickup (whole batch)
   │              ▼
   │         picked_up ──▶ completed
   │
   ├─(auto-reassign on timeout — planned, not enforced)─▶ expired
   └─(seller cancels)────▶ cancelled
Сәлемдеме · destination=door
pendingpicked_upin_transitout_for_deliveryverify // OTP verificationdeliveredfailed / returned
Сәлемдеме · destination=carrier
pendingpicked_uphanded_off  // Form 103 handoff
  ── carrier takes over ──in_transitdeliveredexception
Жеткізуді растау

Бір реттік код (OTP) арқылы растау Жоспарланған

Әрбір есікке жеткізілетін Сәлемдеме (destination=door) жеке-жеке жеткізіліп, расталуға арналған — алушы платформа берген бір реттік кодпен өзі растайды, бұл бөтен адамның алуын болдырмайды. Мысал: AI0123423443KZ . Мына белгісі бар кез келген нәрсе Жоспарланған — эндпоинт, оқиға немесе ереже — әзірге жүзеге асырылмаған және тек жоспар ретінде көрсетілген; бүгін шын мәнінде жұмыс істейтін растау ағыны — out-for-delivery / deliver төмендегі API анықтамасындағы эндпоинттер.

Жеткізуді растау ағыны Жоспарланған
// ① The rider arrives at the door and requests a code for this package
POST …/packages/pkg_88213/delivery-code
   → The platform sends an SMS to the recipient / a push to the buyer's app
   → The code goes only to the recipient and is never returned to the partner

// ② The recipient reads out the code and the rider submits it for verification
POST …/packages/pkg_88213/verify
   { "code": "4821" }
   → 200 { "status": "delivered",
           "delivered_at": "2026-07-22T15:12Z" }
Бір реттік код ережелері Жоспарланған
  • Код 4–6 таңбалы, жарамдылық мерзімі 5 минут.
  • Бір сәлемдеме үшін кодты қайта жіберу кемінде 60 секунд аралықпен шектелген, барлығы 5 рет қайта жіберуге болады.
  • Сәтті растау дегеніміз — delivered және ол сол жүк бойынша жеткізу дәлелі (POD) болып саналады.
  • Қатарынан 5 рет қате енгізілсе құлыпталады; жаңа код жіберу қажет.
  • Код тек алушыға беріледі, және API оны ашық мәтінде қайтармайды — бұл бөтен адамның алуын және серіктес тарапынан енгізуді болдырмайды.
  • Алушы кодты алмаса, қосалқы растауды қолданыңыз (фото / қолтаңба) /packages/{id}/proof.
  • COD сәлемдемелер: әуелі ақшаны алыңыз, содан кейін кодты растаңыз — бір қадаммен бекітіледі.
  • Тек door; ал carrierболғанда, тапсырудан кейінгі соңғы миль тасымалдаушының жауапкершілігінде.
Кіріктіру ережелері

Ережелер (нормативтік)

Бұлар — қатаң келісімдер. Өз жүйеңізді кіріктіргенде оларды ұстаныңыз; өзіңіз жасағыңыз келмесе, мынаны пайдаланыңыз: delivery.atasuai.com панелін тікелей — мүмкіндіктер бірдей.

  1. Today it's an ашық маркетплейс: every pending Тапсырма барлық Агенттерге көрінеді (GET /jobs?status=pending), ал кім бірінші accept шақырса — сол алады; кешіккендер мынаны алады: 409. accept_deadline қайтарылады, бірақ мәжбүрлі емес; эксклюзивті бөлу, 10 минуттық таймер және автоматты қайта бөлу job.expired — бәрі Жоспарланған.
  2. Тапсырмада 1..N Сәлемдеме; әрқайсысының жеке destination (door / carrier) және жеке күйі бар. Бір Тапсырмада екі бағыт та болуы мүмкін.
  3. Алып кету — Тапсырма деңгейінде (POST /jobs/{id}/pickup партияны толық алады); delivery/handoff is at the Сәлемдеме level, әр жүк бойынша: POST /packages/{id}/out-for-delivery/deliver (сәтсіз әрекеттер мына арқылы өтеді: /delivery-failed, қайтарулар мына арқылы: /return); carrier handoff is POST /jobs/{id}/handoff. Жалпы POST /packages/{id}/status әзірге жүзеге асырылмаған, Жоспарланған.
  4. Жоспарланған Жеткізуді растау: жоба бойынша door сәлемдемелері бір реттік кодпен расталуы керек — /packages/{id}/delivery-code кодты жібереді, /packages/{id}/verify verifies it as delivered; екі эндпоинт те әзірге жүзеге асырылмаған. Бүгінгі баламалы ағын: POST /packages/{id}/out-for-delivery мына сәлемдемелер үшін код береді: door , ал POST /packages/{id}/deliver жеткізуді растау үшін сол кодты талап етеді ( door), фото дәлел мен алушының аты міндетті емес.
  5. Курьер міндетті емес: POST /jobs/{id}/courier міндетті емес — курьер тағайындамай жалғастыруға болады (панельмен үйлесімді).
  6. carrier жүктері үшін тапсыру тізімдемесі қажет: POST /jobs/{id}/handoff оны жасайды (мысалы, QazPost Form 103), and POST /jobs/{id}/form103 rebuilds it; consolidation:write өз бетінше пайдалануға мүмкіндік береді.
  7. Бақылау нөмірлері: door ішкі нөмірді пайдаланады AD-…; carrier орталықтандырылған нөмір пулынан тасымалдаушының бақылау нөмірін береді, әрбіріне: carrier_code.
  8. Ең аз құқық: кілттер тек берілген scope-тарды тасымалдайды және осы tenant деректеріне ғана қол жеткізеді; артық әрекет (мысалы, тапсырыс/қалдыққа тиісу) мынаны қайтарады: 403.
  9. Жазу операциялары мынаны тасымалдауы керек: Idempotency-Key (тақырып қабылданады); дегенмен Жеткізу API әзірге идемпотентті қайталауды өңдемейді, Жоспарланған — қосарланған жіберуді болдырмау үшін оған сенбеңіз. Қателер RFC 7807 форматында problem+json; тізімдер курсорлық беттеуді пайдаланады; сұраныс шегі tenant бойынша.
  10. Кіріктірушілердің екі түрі: сатушылар Тапсырма жасау үшін кіріктіріледі (jobs:write) + бақылауды тексеру (tracking:read); Агенттер қабылдап, орындау үшін кіріктіріледі (deliveries:*, consolidation:write). Агент кілттері уақытша өшірілген (/oauth/token returns 503 агент кілттері үшін); сатушы кілттеріне әсер етпейді.
  11. Орталардың оқшаулануы: open.atasuai.com (production); sandbox.open.atasuai.com Жоспарланған (сертификат әзірге дайын емес, сыртқа қызмет көрсетпейді). Кілт префиксі ортаны білдіреді (atk_test_ / atk_live_).
Жылдам бастау

Кілт алудан бірінші сұранысқа дейін

Үш қадамда. Машинадан машинаға — пайдаланушы кірмейді, қайта бағыттау жоқ.

1-ҚАДАМ

Кілттеріңізді алыңыз

Серіктес панелінен немесе қосылу кезінде Atasuai арқылы client_id and client_secret алыңыз. Құпия кілт бір рет қана көрсетіледі. Агент (жеткізу серіктесі) кілттері уақытша өшірілген (/oauth/token returns 503 агент кілттері үшін); сатушы кілттері қалыпты жұмыс істейді.

2-ҚАДАМ

Токенге айырбастау

Кілттеріңізді scope-пен шектелген bearer токенге айырбастаңыз, жарамдылығы 15 минут (900 секунд).

# POST /oauth/token
curl -u $ID:$SECRET \
  https://open.atasuai.com/oauth/token \
  -d grant_type=client_credentials \
  -d scope="deliveries:write"
3-ҚАДАМ

Тапсырманы қабылдау

Токеніңізбен API-ге қоңырау жасаңыз. Жазу операцияларына мынау қажет: Idempotency-Key.

# Accept a pending Job (first come, first served — first to accept wins)
curl -X POST \
  …/delivery/v1/jobs/{id}/accept \
  -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
Болжамды негізде құрылған

Негізгі ұғымдар

Барлық нысан бірдей келісімдерді ұстанады — бір эндпоинтті білсеңіз, бәрін білдіңіз.

OAuth 2.0 және scope-тар

Client-credentials токендері tenant пен scope жинағын тасымалдайды. Сіз тек өзіңізге берілгенді көресіз — deliveries:*, tracking:read, and so on.

Идемпотенттік Жоспарланған

Жазу операциялары мынаны тасымалдауы керек: Idempotency-Key — тақырып қабылданады, бірақ Жеткізу API әзірге қайталауды өңдемейді , сондықтан қайта жіберу қосарланған жазба жасай алады; әзірге өз тарапыңызда шектеңіз.

Қолтаңбаланған вебхуктар

Күй өзгерістері алдын ала жіберіледі және HMAC арқылы қолтаңбаланады (sha256={ts}.{body}), қайталаудан қорғанысы бар; қайта жіберу 5s, 30s, 2m, 10m, 30m, 2h, 6h, 12h, 24h, 48h тәртібімен — шамамен 4 күнде 10 әрекет.

Стандартталған қателер

RFC 7807 problem+json, тұрақты error_code and a request_id — бір рет талдап, барлық жерде қолданыңыз.

Сұраныс шегі

Жоспарланған. Шлюз әзірге шектемейді және мына тақырыптарды қайтармайды: Retry-After / X-RateLimit-* . Іске қосу алдында tenant бойынша шектеу қосылады.

Сынақ ортасы Жоспарланған

Толық оқшауланған орта: sandbox.open.atasuai.com is жақында (сертификат әзірге дайын емес, сыртқа қызмет көрсетпейді). Бірдей келісімшарт, сынақ штрих-кодтары, нақты сәлемдеме де, ақша да жоқ.

Сізге жеткізілетін оқиғалар

Вебхук оқиғалары

Бір рет жазылыңыз; сондай-ақ сұрап отыруға болады: GET /delivery/v1/jobs?status=pending ағымдағы күтудегі тізім үшін. Мына белгісі бар оқиғалар Жоспарланған әзірге шын мәнінде жіберілмейді.

Тапсырманың циклі  ·  Atasuai → серіктес

PUSHjob.acceptedАгент тапсырманы қабылдады
PUSHjob.courier_assignedКурьер тағайындалды
PUSHjob.picked_upПартия толық алынды
PUSHjob.completedТапсырма орындалды
PUSHjob.cancelledСатушы бас тартты
PUSHjob.dispatchedСізге жаңа тапсырма бөлінді Жоспарланған
PUSHjob.updatedТапсырма қабылданғанға дейін өзгерді Жоспарланған
PUSHjob.expiredУақтылы қабылданбады, қайта бөлінді Жоспарланған

Сәлемдеменің циклі  ·  әр жүк / тасымалдаушы кері шақыруы  Жоспарланған

PKGpackage.picked_upАлынды
PKGpackage.handed_offТасымалдаушыға тапсырылды
PKGpackage.in_transitЖолда
PKGpackage.out_for_deliveryСоңғы миль
PKGpackage.deliveredАлушыға жеткізілді
PKGpackage.exceptionКептеліп қалды немесе қайтарылды
# Әрбір жіберілімді тексеріңіз
X-Atasuai-Signature: sha256=<hex>  X-Atasuai-Timestamp: <unix>
HMAC_SHA256(secret, "{timestamp}.{raw_body}")  ·  reject if older than 5 минут  ·  deduplicate by X-Atasuai-Event-Id
API анықтамасы

API анықтамасы

Жолдар домен бойынша бөлінген және нұсқаланған. Мына белгісі бар эндпоинттер Жоспарланған әзірге жүзеге асырылмаған және тек жоспар ретінде көрсетілген. Толық интерактивті анықтаманы құжаттама сайтынан қараңыз.

ӘдісЭндпоинтScope
Тапсырмалар · /delivery/v1
GET/delivery/v1/jobs?status=pending (барлық күтудегі тапсырмалар, бәріне көрінеді)deliveries:read
GET/delivery/v1/jobs/{id} (сәлемдемелерімен)deliveries:read
POST/delivery/v1/jobs/{id}/accept (кім бірінші болса — сол алады; қабылданған болса 409 қайтарады)deliveries:write
POST/delivery/v1/jobs/{id}/declinedeliveries:write
POST/delivery/v1/jobs/{id}/courier (міндетті емес)deliveries:write
POST/delivery/v1/jobs/{id}/pickup (партияны толық алу)deliveries:write
POST/delivery/v1/jobs/{id}/complete (picked_up → completed)deliveries:write
POST/delivery/v1/jobs/{id}/handoff (Форма 103 / тапсыру тізімдемесі)consolidation:write
POST/delivery/v1/jobs/{id}/form103 (QazPost Форма 103-ті қайта жасау)consolidation:write
POST/delivery/v1/jobs (сатушы тапсырма жасайды) Жоспарланғанjobs:write
POST/delivery/v1/jobs/{id}/cancel (сатушы бас тартады) Жоспарланғанjobs:write
Сәлемдемелер · /delivery/v1
GET/delivery/v1/jobs/{id}/packagesdeliveries:read
GET/delivery/v1/packages/{id}deliveries:read
GET/delivery/v1/packages/{id}/delivery (соңғы миль күйі, кодты еш қайтармайды)deliveries:read
POST/delivery/v1/packages/{id}/out-for-delivery (соңғы мильді бастау/қайталау; door үшін код жібереді)deliveries:write
POST/delivery/v1/packages/{id}/deliver (жеткізуді растау; door үшін код қажет, фото/алушы аты міндетті емес)deliveries:write
POST/delivery/v1/packages/{id}/delivery-failed (сәтсіз әрекетті тіркеу, қайталауға болады)deliveries:write
POST/delivery/v1/packages/{id}/return (қайтарылған деп белгілеу)deliveries:write
POST/delivery/v1/packages/{id}/status (әр жүк бойынша күй) Жоспарланғанdeliveries:write
POST/delivery/v1/packages/{id}/delivery-code (бір реттік код жіберу) Жоспарланғанdeliveries:write
POST/delivery/v1/packages/{id}/verify (кодты растап, қол қою) Жоспарланғанdeliveries:write
POST/delivery/v1/packages/{id}/proof (қосалқы растау / COD) Жоспарланғанdeliveries:write
GET/delivery/v1/packages/{id}/label Жоспарланғанtracking:read
GET/delivery/v1/tracking/{tracking_number} Жоспарланғанtracking:read
POST/delivery/v1/packages/{id}/location (қосылмаған) Жоспарланғанdeliveries:write
Вебхук · /delivery/v1
POST/delivery/v1/webhook-subscriptionswebhooks:manage

Шығуға дейінгі нұсқа: өнімдік ортада сынап көріңіз, сынақ ортасы жақында.

API кілттерін серіктес панелінде жасаңыз немесе қосылу кезінде Atasuai менеджері арқылы алыңыз (Агент кілттері уақытша өшірілген; сатушы кілттері қалыпты жұмыс істейді). Өз жүйеңіз жоқ па? Бүкіл автопаркіңізді Atasuai панелінде жүргізіңіз — мүмкіндіктер бірдей, ештеңе жасау қажет емес.