İnkişaf etdirici sənədləri

TapTime REST API

Masa rezervasiyalarını və görüşləri oxuyun və yeniləyin, sifarişləri və loyallıq kartlarını oxuyun, ardıcıl hadisə axınını sorğulayın və imzalanmış webhook-lar qəbul edin — öz CRM-inizdən, POS sisteminizdən, məlumat anbarınızdan və ya avtomatlaşdırma platformasından. Bu səhifə tam arayışdır; niyə ondan istifadə etməli olduğunuzu isə konversiya izləmə bələdçisi izah edir.

Əsas URLhttps://api.tapti.me AuthBearer token FormatJSON Niyə istifadə etmək

Hər bir sorğu şirkətin API açarına (paneldə Integrasiyalar → Webhooks & API) Authorization: Bearer tt_live_…. kimi göndərilməlidir. Cavablar və xətalar JSON formatındadır.

Tarixdən bəri təsdiqlənmiş rezervasiyalar dəyişdi
curl "https://api.tapti.me/v1/company/reservations?status=confirmed&updatedSince=2026-09-01T00:00:00Z" \
  -H "Authorization: Bearer tt_live_…"

Təsdiq

Hər bir sorğu şirkətin API açarını daşıyıcı token kimi daşıyır. Paneldən — Integrations → Webhooks & API → REST API açarları — bölməsində birini yaradın; orada açar yalnız bir dəfə göstərilir və yalnız server tərəfində SHA-256 həş kimi saxlanılır; itirilmiş açar ləğv edilir və əvəzlənir, bərpa edilmir. Bir şirkət maksimum 10 aktiv açar saxlaya bilər.

  • Yalnız oxuma açarları bütün GET son nöqtələrini çağıra, həmçinin webhook-lara abunə ola və abunəliyi ləğv edə bilər — abunəlik açarın onsuz da oxuya bilmədiyi heç nəyi göndərmir.
  • Oxuma-yazma açarları həmçinin rezervasiya statusunu POST ilə dəyişə bilər; yalnız oxuma açarı bu marşrutlarda 403 Forbidden alır.
  • Açar bir şirkətə məxsusdur — hər siyahı və sorğu artıq həmin şirkətlə məhdudlaşır, companyId parametri yoxdur.

Sürət məhdudiyyətləri

Hər açar üçün dəqiqədə 50 sorğu, sürüşən pəncərə üzrə, bütün son nöqtələr üçün ümumi. Limiti aşdıqda 429 Too Many Requests qaytarılır; sorğuları sıxlaşdırmaq əvəzinə gözləyib yenidən cəhd edin — və ya webhook-a abunə olub sorğulamanı dayandırın.

Son nöqtələr

GET /v1/company Yalnız oxuma və ya oxuma-yazma

Cari şirkəti əldə edin

Açar hansı şirkətə məxsusdur və özü nə edə bilər.

GET /v1/company/reservations Yalnız oxuma və ya oxuma-yazma

Rezervasiyaları siyahıya alın

Şirkət üçün masa rezervasiyaları, ən erkən başlanğıc vaxtı birinci — və ya updatedSince təyin edildikdə, ən əvvəl yenilənən birinci.

ParametrTypeMənası
status string Vergüllə ayrılmış: gözləyir, təsdiqlənib, oturub, tamamlanıb, gəlməyən, ləğv olunub. ləğv olunub ləğv səbəblərinin hər ikisini əhatə edir.
branchId integer Yalnız bir şöbəyə məhdudlaşdırın.
from ISO 8601 datetime Yalnız bu vaxtdan (UTC, əgər heç bir ofset göstərilməyibsə) və ya daha sonra başlayan rezervasiyalar.
to ISO 8601 datetime Yalnız bu vaxtdan əvvəl başlayan rezervasiyalar.
updatedSince ISO 8601 datetime Yalnız bu vaxtdan bəri dəyişdirilmiş rezervasiyalar; sinxronizasiya üçün sıralamayı updatedAt artan qaydada dəyişdirir.
limit integer Səhifə ölçüsü, 1–100. Standart 50.
page integer 1-ə əsaslanan səhifə nömrəsi. Standart 1.
GET /v1/company/appointments Yalnız oxuma və ya oxuma-yazma

Təyinatları siyahıya alın

Görüşlər modulunda rezervasiyalarla eyni forma və filtrlər.

ParametrTypeMənası
status string Vergüllə ayrılmış: gözləyir, təsdiqlənib, tamamlanıb, iştirak etməyib, ləğv olunub.
branchId integer Yalnız bir şöbəyə məhdudlaşdırın.
from ISO 8601 datetime Yalnız bu vaxtdan və ya daha sonra başlayan rezervasiyalar.
to ISO 8601 datetime Yalnız bu vaxtdan əvvəl başlayan rezervasiyalar.
updatedSince ISO 8601 datetime Yalnız bu vaxtdan bəri dəyişdirilmiş rezervasiyalar; updatedAt üzrə artan sıralama.
limit integer Səhifə ölçüsü, 1–100. Standart 50.
page integer 1-ə əsaslanan səhifə nömrəsi. Standart 1.
GET /v1/company/reservations/{id} Yalnız oxuma və ya oxuma-yazma

Rezervasiyanı əldə edin

Bir şərt var: webhooks-lar onu eyni formada, atributu ilə birlikdə ötürür. ID açarın şirkətinə aid olmadıqda 404 qaytarılır.

GET /v1/company/appointments/{id} Yalnız oxuma və ya oxuma-yazma

Görüşü əldə edin

Bir təyinat, rezervasiya axtarışı ilə eyni forma və qaydalar.

POST /v1/company/reservations/{id}/status Yalnız oxuma-yazma

Rezervasiyanın statusunu dəyişdirin

Təsdiqlə, yerləşdir, tamamla, gəlməməyi qeyd et, ləğv et və ya yenidən aç — lövhədə dəyişdirməklə eyni webhookları və konversiyaları işə salır. JSON bədəni: {"status": "..."}.

ParametrTypeMənası
status string, required Aşağıdakılardan biri: gözləyən, təsdiqlənmiş, oturmuş, tamamlanmış, gəlməmiş, ləğv edilmiş (canceled və canceled_by_venue də qəbul edilir).
POST /v1/company/appointments/{id}/status Yalnız oxuma-yazma

Görüşün statusunu dəyişdirin

Eyni rezervasiya son nöqtəsi kimi, oturmuş vəziyyət olmadan.

ParametrTypeMənası
status string, required Aşağıdakılardan biri: gözləyən, təsdiqlənmiş, tamamlanmış, gəlməmiş, ləğv edilmiş (canceled və canceled_by_venue də qəbul edilir).
GET /v1/company/events Yalnız oxuma və ya oxuma-yazma

Hadisə lentini sorğu edin

Bütün rezervasiya, sifariş və loyallıq hadisələri, ən köhnəsi birinci — webhook-ların da götürüldüyü eyni axın. Yalnız yeniləri almaq üçün gördüyünüz son kursoru after kimi, yalnız bəzi növləri almaq üçün isə type ötürün.

ParametrTypeMənası
after integer cursor Emal etdiyiniz son hadisənin kursoru. Əvvəldən başlamaq üçün ötürməyin.
type string Vergüllə ayrılmış hadisə növləri və ya ailələri: booking.confirmed,order.placed, yaxud order, loyalty.*. Bütün hadisələr üçün ötürməyin.
limit integer Səhifə ölçüsü, 1–100. Standart 50.
GET /v1/company/orders Yalnız oxuma və ya oxuma-yazma

Sifarişləri siyahıya alın

Qonaqların masa, özü ilə aparma və çatdırılma sifarişləri və kassada vurulan hər satış, ən köhnəsi birinci — paidSince təyin edildikdə isə ödənilmə ardıcıllığı ilə. Qabaqcadan ödənişi hələ gözləyən sifariş daxil edilmir.

ParametrTypeMənası
status string Vergüllə ayrılmış: open, paid.
source string customer (qonaq verib) və ya staff (əməkdaş vurub).
fulfilment string Vergüllə ayrılmış: dine_in, takeaway, delivery.
branchId integer Yalnız bir filialla məhdudlaşdırın.
from ISO 8601 datetime Yalnız bu vaxtdan və ya daha sonra yaradılmış sifarişlər.
to ISO 8601 datetime Yalnız bu vaxtdan əvvəl yaradılmış sifarişlər.
paidSince ISO 8601 datetime Yalnız bu vaxtdan bəri ödənilmiş sifarişlər; satışları sinxronlaşdırmaq üçün paidAt üzrə artan qaydada sıralayır.
limit integer Səhifə ölçüsü, 1–100. Standart 50.
page integer 1-ə əsaslanan səhifə nömrəsi. Standart 1.
GET /v1/company/orders/{id} Yalnız oxuma və ya oxuma-yazma

Sifarişi əldə edin

Sətirləri, cəmləri və atribusiyası ilə bir sifariş — sifariş webhook-larının daşıdığı formada.

GET /v1/company/loyalty/programs Yalnız oxuma və ya oxuma-yazma

Loyallıq proqramlarını siyahıya alın

Bütün möhür kartı proqramları: adı, statusu, lazım olan möhür sayı, mükafat və harada tətbiq olunduğu.

GET /v1/company/loyalty/cards Yalnız oxuma və ya oxuma-yazma

Loyallıq kartlarını siyahıya alın

Üzvlərin kartları, loyallıq obyekti formasında. Kartı dolduran üzvün həmin kartı completed olur və yanında yeni aktiv kart açılır; customer.id üzvdür.

ParametrTypeMənası
programId integer Yalnız bir proqramla məhdudlaşdırın.
customerId integer Yalnız bir üzvlə məhdudlaşdırın.
status string Vergüllə ayrılmış: active, completed.
updatedSince ISO 8601 datetime Yalnız bu vaxtdan bəri möhür vurulmuş və ya tamamlanmış kartlar; updatedAt üzrə artan qaydada sıralayır.
limit integer Səhifə ölçüsü, 1–100. Standart 50.
page integer 1-ə əsaslanan səhifə nömrəsi. Standart 1.
GET /v1/company/loyalty/rewards Yalnız oxuma və ya oxuma-yazma

Loyallıq mükafatlarını siyahıya alın

Kartı tamamlamaqla qazanılan mükafatlar — kodu, bitmə tarixi və istifadə olunub-olunmadığı ilə.

ParametrTypeMənası
programId integer Yalnız bir proqramla məhdudlaşdırın.
customerId integer Yalnız bir üzvlə məhdudlaşdırın.
status string Vergüllə ayrılmış: issued, redeemed, expired.
from ISO 8601 datetime Yalnız bu vaxtdan və ya daha sonra verilmiş mükafatlar.
to ISO 8601 datetime Yalnız bu vaxtdan əvvəl verilmiş mükafatlar.
limit integer Səhifə ölçüsü, 1–100. Standart 50.
page integer 1-ə əsaslanan səhifə nömrəsi. Standart 1.
GET /v1/company/webhooks Yalnız oxuma və ya oxuma-yazma

Webhook abunəliklərini siyahıya alın

Bu açarın yaratdığı abunəliklər. Paneldə əlavə edilmiş webhook-lar burada göstərilmir.

POST /v1/company/webhooks Yalnız oxuma və ya oxuma-yazma

Webhook-a abunə olun

URL-ə hadisə göndərməyə başlayır — istifadəçi tətiyi işə saldıqda avtomatlaşdırma platformasının tətbiqi məhz bunu çağırır. Abunəliyi və onun imza sirrini bir dəfə qaytarır. JSON gövdəsi: {"url": "…", "events": ["order.placed"]}; Zapier-in {"target_url": "…", "event": "…"} formatı da qəbul olunur.

ParametrTypeMənası
url string, required Göndəriləcək https ünvanı (target_url də qəbul olunur).
events array of strings, required Hadisə növləri, order.* və ya loyalty kimi ailələr, yaxud hər şey üçün * (tək hadisə üçün event də qəbul olunur).
description string Paneldə göstərilən ad. Standart olaraq platformanın və açarın adı.
DELETE /v1/company/webhooks/{id} Yalnız oxuma və ya oxuma-yazma

Webhook abunəliyini ləğv edin

Bu açarın yaratdığı abunəliyə göndərməni dayandırır. 204 qaytarır. Açar ləğv edildikdə onun bütün abunəlikləri də silinir.

Rezervasiya obyekti

Sifariş və görüş eyni ortaq strukturda təqdim olunur: kind, id, status, source, guestInitiated, startsAt/endsAt/vaxt zonası (filialın öz zonası), valyuta, şirkət, filial, qonaq, atribut, conversionId, createdAt/updatedAt — üstəlik rezervasiya üçün partySize və cədvəl, görüş üçün xidmət və mütəxəssis. Bu, məhz bir webhook-un çatdırdığı məlumatdır, ona görə də birini qəbul edən alıcı hər ikisini qəbul edə bilir.

GET /v1/company/reservations/4821 → data
{
  "data": {
    "kind": "reservation",
    "id": 4821,
    "status": "confirmed",
    "source": "online",
    "guestInitiated": true,
    "startsAt": "2026-09-12T20:00:00+03:00",
    "endsAt": "2026-09-12T21:30:00+03:00",
    "timezone": "Asia/Baku",
    "currency": "AZN",
    "company": { "id": 12, "name": "Cafe Aroma", "slug": "cafe-aroma", "country": "AZ" },
    "branch": { "id": 3, "name": "Nizami st." },
    "partySize": 4,
    "table": { "id": 9, "label": "T3" },
    "guest": { "name": "Maria K.", "phone": "…", "email": "…" },
    "locale": "en",
    "note": null,
    "conversionId": "tt3f9c…",
    "createdAt": "2026-09-10T08:12:04+00:00",
    "updatedAt": "2026-09-12T20:00:03+00:00",
    "attribution": { "channel": "widget", "utmSource": "instagram", "gclid": null, "fbclid": "IwAR2…" }
  }
}

Sifariş obyekti

Sifariş harada rast gəlsəniz — REST API, sifariş webhook-ları, hadisə axını — bir formada gəlir: kind ("order"), id, number (əməkdaşların səsləndirdiyi çek nömrəsi), status (open və ya paid), source (customer və ya staff), guestInitiated, fulfilment, table, label, deliveryAddress, note, currency, timezone, company, branch, customer (əməkdaş müəyyən etdikdə loyallıq üzvü), items (name, variant, quantity, unitPriceCents, subtotalCents), itemCount, subtotalCents, discountCents, deliveryFeeCents, tipCents, totalCents, valueCents (sifarişin çaypulu olmadan dəyəri — konversiyaların bildirdiyi rəqəm), paymentMethod, servedBy, conversionId, createdAt, paidAt və attribution. Məbləğlər həmişə kiçik vahidlərlə (qəpiklə) göstərilir.

GET /v1/company/orders/9170 → data
{
  "data": {
    "kind": "order",
    "id": 9170,
    "number": 42,
    "status": "paid",
    "source": "customer",
    "guestInitiated": true,
    "fulfilment": "takeaway",
    "table": null,
    "label": "Ana",
    "currency": "EUR",
    "branch": { "id": 3, "name": "Vitosha Blvd" },
    "customer": { "id": 311, "name": "Ana", "phone": "…" },
    "items": [
      { "menuItemId": 88, "name": "Flat white", "variant": "Large",
        "quantity": 2, "unitPriceCents": 450, "subtotalCents": 900 }
    ],
    "itemCount": 2,
    "subtotalCents": 900,
    "discountCents": 0,
    "deliveryFeeCents": 0,
    "tipCents": 100,
    "totalCents": 1000,
    "valueCents": 900,
    "paymentMethod": "online",
    "conversionId": "tt81ad…",
    "createdAt": "2026-09-12T12:04:10+03:00",
    "paidAt": "2026-09-12T12:05:02+03:00",
    "attribution": { "channel": "web", "utmSource": "google", "gclid": "Cj0K…" }
  }
}

Loyallıq obyekti

Hər loyallıq hadisəsi, kartı və mükafatı eyni formadadır: kind ("loyalty"), id (kart), timezone, company, branch (hadisənin baş verdiyi filial, əgər varsa), program (id, name, stampsRequired, rewardTitle), customer (id, name, phone, locale), card (id, status, stampsCount, stampsRequired, stampsToReward, createdAt), stamp (möhür üçün: source, issuedBy, createdAt) və reward (mükafat üçün: code, title, status, expiresAt, redeemedAt, redeemedBy), üstəlik conversionId — loyallıq qeydiyyatının bildirildiyi ID.

GET /v1/company/loyalty/cards → data[0]
{
  "kind": "loyalty",
  "id": 5120,
  "program": { "id": 4, "name": "Coffee card", "stampsRequired": 8, "rewardTitle": "Free coffee" },
  "customer": { "id": 311, "name": "Ana", "phone": "…", "locale": "bg" },
  "card": { "id": 5120, "status": "active", "stampsCount": 5,
            "stampsRequired": 8, "stampsToReward": 3 },
  "branch": { "id": 3, "name": "Vitosha Blvd" },
  "stamp": { "source": "qr_scan", "issuedBy": "Ivan", "createdAt": "…" },
  "reward": null,
  "conversionId": "tt5c02…"
}

Hadisə axını

Hər sətir { id, cursor, type, createdAt, previousStatus, data } formasındadır. data mövzunu hadisənin prefiksinin adlandırdığı açar altında saxlayır: data.booking, data.order və ya data.loyalty. Emal etdiyiniz ən böyük cursor-u saxlayın və onu after kimi geri ötürün — o heç vaxt sətri ötürüb keçmir və ya təkrarlamır, ona görə də çökmədən sonra davam etmək təhlükəsizdir. Emal etmədiyiniz növlərə məhəl qoymayın: yeniləri əlavə oluna bilər.

Hadisə növüMənası
booking.requestedQonaq sizin təsdiqinizi gözləyən rezervasiya istədi.
booking.confirmedRezervasiya təsdiqləndi — dərhal təsdiqlənmiş kimi yaradıldı və ya sonradan əməkdaş tərəfindən təsdiqləndi.
booking.cancelledQonaq və ya məkan tərəfindən ləğv edildi; hansı olduğunu status göstərir.
booking.no_showQonaq gəlmədi.
booking.completedSəfər başa çatdı.
order.placedQonağın sifarişi məkana çatdı — səhifədən, masanın QR kodundan, özü ilə aparma və ya çatdırılma üçün; məkan ödənişi qabaqcadan alırsa, ödənişdən sonra.
order.paidİstənilən sifariş ödənildi, kassada vurulan satışlar da daxil olmaqla.
loyalty.member_joinedMüştəri proqramda ilk möhürünü aldı.
loyalty.stamp_addedKarta möhür əlavə edildi.
loyalty.reward_issuedKart tamamlandı və mükafatı verildi.
loyalty.reward_redeemedMükafat təhvil verildi.
Hadisə axını ilə sinxron qalın
curl "https://api.tapti.me/v1/company/events?after=998&limit=100" \
  -H "Authorization: Bearer tt_live_…"

Webhook-lar

İnteqrasiyalar → Webhook və API bölməsində endpoint yaradın — və ya İnteqrasiyalar → Avtomatlaşdırma bölməsində Zapier, Make, n8n ya da Pipedream qoşun — ki, rezervasiya, sifariş və ya loyallıq kartı dəyişən anda TapTime imzalanmış JSON hadisəsini POST ilə göndərsin. Hadisələri hər endpoint üçün ayrıca seçirsiniz. Bir şirkətdə cəmi 50-yə qədər webhook, postback, çat və avtomatlaşdırma bağlantısı ola bilər.

BaşlıqMənası
TapTime-EventHadisə növü, məsələn booking.confirmed.
TapTime-Event-IdHadisə üçün sabit identifikator — yenidən cəhd edilən çatdırılmanı təkrarlardan ayırmaq üçün istifadə edin.
TapTime-DeliveryBu konkret çatdırılma cəhdinin ID-si.
TapTime-Signaturet=<unix vaxtı>,v1=<hex HMAC-SHA256 of "t.rawBody">, endpointun öz sirri ilə imzalanmışdır.
  • Hər hansı 2xx cavabı çatdırılmış sayılır; 2xx olmayan cavab və ya vaxt bitməsi geri çəkilmə intervalları (1 dəq, 5 dəq, 15 dəq, 1 saat, 3 saat, 6 saat, 12 saat) ilə 8 cəhdədək yenidən cəhd edilir — 410 xətası yenidən cəhd etməyi dayandırır.
  • Yönləndirmələr izlənilmir.
  • URL istehsalat mühitində HTTPS olmalıdır və şəxsi və ya loopback ünvana yönəlməməlidir.
  • Çatdırılma ən azı bir dəfədir: həmişə imzoyu və TapTime-Event-Id üzrə təkrarları yoxlayın.
POST · application/json · booking.confirmed
{
  "id": "evt_9f3c2a7e1b",
  "type": "booking.confirmed",
  "createdAt": "2026-09-12T19:02:11+03:00",
  "test": false,
  "data": { "booking": { "kind": "reservation", "id": 4821, "status": "confirmed", "…": "…" } }
}
İmzanı təsdiqlə (Node.js)
const [t, v1] = req.headers["taptime-signature"]
  .split(",").map(part => part.split("=")[1]);
const expected = crypto
  .createHmac("sha256", process.env.TAPTIME_WEBHOOK_SECRET)
  .update(`${t}.${rawBody}`)
  .digest("hex");
const valid = crypto.timingSafeEqual(
  Buffer.from(expected), Buffer.from(v1));

Webhook abunəlikləri

Avtomatlaşdırma platformaları istifadəçidən URL yapışdırmağı istəmək əvəzinə tətikləri API vasitəsilə yandırıb-söndürür (“REST hooks”): platformanın öz URL-ini istədiyi hadisələrlə POST edin, qaytarılan id-ni saxlayın və tətik söndürüləndə onu DELETE edin. Abunəlik adi imzalanmış webhook-dur — paneldə onu yaradan açarla işarələnmiş şəkildə görünür.

  • Açar yalnız özünün yaratdığı abunəlikləri görür və silir; açar ləğv edildikdə hamısı silinir.
  • hooks.zapier.com, make.com və pipedream.net ünvanları tanınır və platformanın adı ilə göstərilir; istənilən digər https ünvanı adi webhook-dur.
  • İmza sirri bir dəfə, POST cavabında qaytarılır; sahib onu paneldə yenidən görə bilər.
URL-i yeni sifarişlərə abunə edin
curl -X POST "https://api.tapti.me/v1/company/webhooks" \
  -H "Authorization: Bearer tt_live_…" -H "Content-Type: application/json" \
  -d '{"url": "https://hooks.zapier.com/hooks/catch/123/abc/", "events": ["order.placed"]}'

Postback-lər

Makroları doldurulmuş şəkildə trekerinizin öz URL-inə GET və ya POST sorğusu — JSON webhook-lar əvəzinə sorğu sətri (query string) postback-ləri ilə işləyən platformalar üçün. Sifarişdə {value} sifarişin çaypulu olmadan dəyəri, {order_id} isə onun id-sidir.

Yer tutucularla postback URL-i · GET və ya POST
https://tracker.example/postback
  ?cid={click_id}&event={event}&status={status}
  &payout={value}&cur={currency}

Mövcud yer tutucular

  • {event}
  • {event_id}
  • {status}
  • {booking_id}
  • {booking_type}
  • {order_id}
  • {customer_id}
  • {conversion_id}
  • {value}
  • {currency}
  • {party_size}
  • {branch_id}
  • {timestamp}
  • {utm_source}
  • {utm_medium}
  • {utm_campaign}
  • {utm_term}
  • {utm_content}
  • {gclid}
  • {fbclid}
  • {msclkid}
  • {ttclid}
  • {click_id}

Səhvlər

Hər bir səhv JSON-dur: { "error": "<code>", "message": "<human-readable>" }.

StatussəhvMənası
401 unauthorized Authorization başlığı yoxdur, yaxud açar etibarsızdır və ya ləğv edilib.
403 forbidden Yalnız oxunur açar, yazı nöqtəsi adlanır (status dəyişikliyi).
404 not_found Həmin ID-yə aid heç bir rezervasiya şirkətə məxsus deyil.
409 conflict Status dəyişikliyi masanı və ya slotu ikiqat rezervasiya edərdi; heç nə dəyişmədi.
422 invalid_status Status sahəsinin dəyəri bu rezervasiya növü üçün qəbul edilən dəyərlərdən biri deyil.
422 invalid_type Hadisə axınının type parametri heç bir hadisə növünü və ya ailəsini adlandırmır.
422 invalid_url Abunəlik URL-i açıq https ünvanı deyil.
429 rate_limited Bu açar üçün bir dəqiqədə 50-dən çox sorğu. Sürəti azaldın və yenidən cəhd edin.
Açar lazımdır?

API girişi, webhook-lar, avtomatlaşdırma və çat inteqrasiyaları hər modula daxildir — əlavə ödəniş yoxdur, ayrıca tərtibatçı planı yoxdur.

Pulsuz sınaq müddətinə başlayın