ყველა მოთხოვნას სჭირდება კომპანიის API გასაღები (პანელში: ინტეგრაციები → Webhooks & API), რომელიც უნდა გაიგზავნოს Authorization: Bearer tt_live_….-ის სახით. პასუხები და შეცდომები JSON ფორმატშია.
curl "https://api.tapti.me/v1/company/reservations?status=confirmed&updatedSince=2026-09-01T00:00:00Z" \
-H "Authorization: Bearer tt_live_…"
ავთენტიფიკაცია
ყველა მოთხოვნა გადასცემს კომპანიის API გასაღებს, როგორც მფლობელის ტოკენს. შექმენით ერთი პანელიდან — ინტეგრაციები → ვებჰუკები და API → REST API გასაღებები — სადაც ის მხოლოდ ერთხელ ჩანს და ინახება მხოლოდ სერვერის მხარეს, როგორც SHA-256 ჰეში; დაკარგული გასაღები გაუქმდება და შეიცვლება და არა აღდგება. კომპანიას შეუძლია ჰქონდეს 10-მდე აქტიური გასაღები.
- მხოლოდ წაკითხვის გასაღებებს შეუძლიათ ყველა GET ენდპოინტის გამოძახება, ასევე ვებჰუკების გამოწერა და გამოწერის გაუქმება — გამოწერა ვერაფერს გამოგიგზავნით ისეთს, რისი წაკითხვაც გასაღებს ისედაც არ შეეძლო.
- წაკითხვა-ჩაწერის გასაღებებს ასევე შეუძლიათ ჯავშნის სტატუსის შეცვლა POST-მოთხოვნით; მხოლოდ წაკითხვის გასაღები ამ მარშრუტებზე 403 Forbidden-ს იღებს.
- გასაღები ერთ კომპანიას ეკუთვნის — ყოველი სია და მოძიება უკვე მასზეა შეზღუდული, companyId პარამეტრი არ არსებობს.
სიჩქარის ლიმიტები
50 მოთხოვნა წუთში თითო გასაღებზე, მოცურავე ფანჯრით, ყველა ენდპოინტისთვის საერთო. გადაჭარბებისას ბრუნდება 429 Too Many Requests; დაელოდეთ და ხელახლა სცადეთ, ნაცვლად უფრო ხშირი გამოკითხვისა — ან გამოიწერეთ ვებჰუკი და გამოკითხვა საერთოდ შეწყვიტეთ.
საბოლოო წერტილები
/v1/company
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
მიიღეთ მიმდინარე კომპანია
კომპანია, რომელსაც გასაღები ეკუთვნის, და რა შეუძლია თავად გასაღებს.
/v1/company/reservations
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
ჯავშნების სია
ჯგუფისთვის მაგიდების დაჯავშნა, უძველესი დაწყების დროის მიხედვით — ან, როდესაც დაყენებულია updatedSince, უძველესი განახლების მიხედვით.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
status |
string | მძიმით გამოყოფილი: განსახილველი, დადასტურებული, დასწრებული, დასრულებული, არმომცხადებელი, გაუქმებული. გაუქმებული აერთიანებს გაუქმების ორივე მიზეზს. |
branchId |
integer | შეზღუდეთ ერთი ფილიალით. |
from |
ISO 8601 datetime | მხოლოდ ამ დროიდან ან მის შემდეგ დაწყებული დაჯავშნები (UTC, თუ სხვა დროითი აფსიდი არ არის მითითებული). |
to |
ISO 8601 datetime | მხოლოდ ამ დროსა და უფრო ადრე დაწყებული ჯავშნები. |
updatedSince |
ISO 8601 datetime | მხოლოდ ამ დროიდან შეცვლილი ჯავშნები; სინქრონიზაციისთვის, სორტირება გადადის updatedAt-ის მზარდზე. |
limit |
integer | გვერდის ზომა, 1–100. ნაგულისხმევი 50. |
page |
integer | გვერდის ნომერი, რომელიც 1-ს ეფუძნება. ნაგულისხმევი 1. |
/v1/company/appointments
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
შეხვედრების სია
ჯავშნების მსგავსი ფორმა და ფილტრები შეხვედრების მოდულისთვის.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
status |
string | მძიმით გამოყოფილი: დასამტკიცებელი, დადასტურებული, დასრულებული, არ_მოსულა, გაუქმებული. |
branchId |
integer | შეზღუდეთ ერთი ფილიალით. |
from |
ISO 8601 datetime | დაჯავშნა შესაძლებელია მხოლოდ ამ დროიდან ან მის შემდეგ. |
to |
ISO 8601 datetime | მხოლოდ ამ დროსა და მის შემდეგ დაწყებული ჯავშნები. |
updatedSince |
ISO 8601 datetime | ამ დროიდან მხოლოდ დაჯავშნები შეიცვალა; დახარისხება updatedAt მზარდად. |
limit |
integer | გვერდის ზომა, 1–100. ნაგულისხმევი 50. |
page |
integer | გვერდის ნომერი, რომელიც 1-ს ეფუძნება. ნაგულისხმევი 1. |
/v1/company/reservations/{id}
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
დაჯავშნეთ
ერთი შენიშვნა, იმავე ფორმატში, როგორც webhooks-ს მოაქვს, თავისი მიკუთვნებით. 404, როდესაც id არ ეკუთვნის გასაღების კომპანიას.
/v1/company/appointments/{id}
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
ჩაეწერეთ ვიზიტზე
ერთი ჩანაწერი, იგივე ფორმა და წესები, რაც დაჯავშნის მოძიებისას.
/v1/company/reservations/{id}/status
მხოლოდ წაკითხვა და ჩაწერა
ჯავშნის სტატუსის შეცვლა
დადასტურება, დასმა, დასრულება, არმოსვლის აღნიშვნა, გაუქმება ან ხელახლა გახსნა — იწვევს იმავე ვებჰუკებს და კონვერსიებს, როგორც დაფაზე შეცვლისას. JSON სხეული: {"status": "..."}.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
status |
string, required | ერთ-ერთი: განხილვის პროცესში, დადასტურებული, დასმული, დასრულებული, არმომცხადებელი, გაუქმებული (მიღებულია ასევე canceled და canceled_by_venue). |
/v1/company/appointments/{id}/status
მხოლოდ წაკითხვა და ჩაწერა
შეხვედრის სტატუსის შეცვლა
იგივე, რაც დაჯავშნის ბოლო წერტილი, დასმული მდგომარეობის გარეშე.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
status |
string, required | ერთ-ერთი: მიმდინარე, დადასტურებული, დასრულებული, არმომცხადებელი, გაუქმებული (ასევე მიიღება გაუქმებული და ობიექტის_მიერ_გაუქმებული). |
/v1/company/events
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
მოვლენების ნაკადის გამოკითხვა
ყოველი ჯავშნის, შეკვეთისა და ლოიალობის მოვლენა, უძველესიდან დაწყებული — იგივე ნაკადი, საიდანაც ვებჰუკები იგზავნება. გადაეცით ბოლო ნანახი კურსორი after-ად, რომ მხოლოდ ახალი მიიღოთ, და type, რომ მხოლოდ გარკვეული სახეობის მოვლენები მიიღოთ.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
after |
integer cursor | ბოლო დამუშავებული მოვლენის კურსორი. გამოტოვეთ, რომ თავიდან დაიწყოთ. |
type |
string | მძიმით გამოყოფილი მოვლენის ტიპები ან ოჯახები: booking.confirmed,order.placed, ან order, loyalty.*. გამოტოვეთ ყველა მოვლენისთვის. |
limit |
integer | გვერდის ზომა, 1–100. ნაგულისხმევი 50. |
/v1/company/orders
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
შეკვეთების სია
სტუმრების მაგიდის, თან წასაღები და მიტანის შეკვეთები და სალაროში გატარებული ყოველი გაყიდვა, უძველესიდან დაწყებული — ან, თუ paidSince მითითებულია, გადახდის რიგით. შეკვეთა, რომელიც ჯერ კიდევ წინასწარ გადახდას ელოდება, სიაში არ შედის.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
status |
string | მძიმით გამოყოფილი: open, paid. |
source |
string | customer (სტუმრის გაკეთებული) ან staff (თანამშრომლის გატარებული). |
fulfilment |
string | მძიმით გამოყოფილი: dine_in, takeaway, delivery. |
branchId |
integer | შეზღუდეთ ერთი ფილიალით. |
from |
ISO 8601 datetime | მხოლოდ ამ დროს ან მის შემდეგ შექმნილი შეკვეთები. |
to |
ISO 8601 datetime | მხოლოდ ამ დრომდე შექმნილი შეკვეთები. |
paidSince |
ISO 8601 datetime | მხოლოდ ამ დროიდან გადახდილი შეკვეთები; ალაგებს paidAt-ის ზრდადობით, გაყიდვების სინქრონიზაციისთვის. |
limit |
integer | გვერდის ზომა, 1–100. ნაგულისხმევი 50. |
page |
integer | გვერდის ნომერი, რომელიც 1-ს ეფუძნება. ნაგულისხმევი 1. |
/v1/company/orders/{id}
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
შეკვეთის მიღება
ერთი შეკვეთა პოზიციებით, ჯამებითა და ატრიბუციით — იმავე ფორმით, როგორითაც მას შეკვეთის ვებჰუკები აგზავნიან.
/v1/company/loyalty/programs
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
ლოიალობის პროგრამების სია
შტამპის ბარათის ყოველი პროგრამა: სახელი, სტატუსი, საჭირო შტამპები, ჯილდო და სად მოქმედებს ის.
/v1/company/loyalty/cards
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
ლოიალობის ბარათების სია
წევრების ბარათები, ლოიალობის ობიექტის ფორმით. წევრს, რომელმაც ბარათი შეავსო, ის completed სტატუსით აქვს და მის გვერდით ახალი აქტიური ბარათი; customer.id წევრის ID-ა.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
programId |
integer | შეზღუდეთ ერთი პროგრამით. |
customerId |
integer | შეზღუდეთ ერთი წევრით. |
status |
string | მძიმით გამოყოფილი: active, completed. |
updatedSince |
ISO 8601 datetime | მხოლოდ ამ დროიდან დაშტამპული ან შევსებული ბარათები; ალაგებს updatedAt-ის ზრდადობით. |
limit |
integer | გვერდის ზომა, 1–100. ნაგულისხმევი 50. |
page |
integer | გვერდის ნომერი, რომელიც 1-ს ეფუძნება. ნაგულისხმევი 1. |
/v1/company/loyalty/rewards
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
ლოიალობის ჯილდოების სია
ბარათის შევსებით მოპოვებული ჯილდოები — კოდით, მოქმედების ვადითა და იმის მითითებით, გამოყენებულია თუ არა.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
programId |
integer | შეზღუდეთ ერთი პროგრამით. |
customerId |
integer | შეზღუდეთ ერთი წევრით. |
status |
string | მძიმით გამოყოფილი: issued, redeemed, expired. |
from |
ISO 8601 datetime | მხოლოდ ამ დროს ან მის შემდეგ გაცემული ჯილდოები. |
to |
ISO 8601 datetime | მხოლოდ ამ დრომდე გაცემული ჯილდოები. |
limit |
integer | გვერდის ზომა, 1–100. ნაგულისხმევი 50. |
page |
integer | გვერდის ნომერი, რომელიც 1-ს ეფუძნება. ნაგულისხმევი 1. |
/v1/company/webhooks
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
ვებჰუკის გამოწერების სია
ამ გასაღებით შექმნილი გამოწერები. პანელში დამატებული ვებჰუკები აქ არ ჩანს.
/v1/company/webhooks
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
ვებჰუკის გამოწერა
იწყებს მოვლენების გაგზავნას URL-ზე — ამას იძახებს ავტომატიზაციის პლატფორმის აპი, როცა მომხმარებელი ტრიგერს რთავს. აბრუნებს გამოწერას და მის ხელმოწერის გასაღებს, ერთხელ. JSON სხეული: {"url": "…", "events": ["order.placed"]}; Zapier-ის {"target_url": "…", "event": "…"} ფორმატიც მიიღება.
| პარამეტრი | Type | მნიშვნელობა |
|---|---|---|
url |
string, required | https მისამართი, რომელზეც გაიგზავნება (target_url-იც მიიღება). |
events |
array of strings, required | მოვლენის ტიპები, ოჯახები, როგორიცაა order.* ან loyalty, ან * ყველაფრისთვის (ერთი მოვლენისთვის event-იც მიიღება). |
description |
string | სახელი, რომელიც პანელში ჩანს. ნაგულისხმევად — პლატფორმა და გასაღების სახელი. |
/v1/company/webhooks/{id}
მხოლოდ წასაკითხად ან წასაკითხად და ჩასაწერად
ვებჰუკის გამოწერის გაუქმება
წყვეტს გაგზავნას ამ გასაღებით შექმნილ გამოწერაზე. აბრუნებს 204-ს. გასაღების გაუქმება მის ყველა გამოწერასაც შლის.
დაჯავშნის ობიექტი
ჯავშანი და ვიზიტი ერთიანდება ერთ საერთო სტრუქტურაში: kind, id, status, source, guestInitiated, startsAt/endsAt/timezone (ფილიალის საკუთარი ზონა), currency, company, branch, guest, attribution, conversionId, createdAt/updatedAt — პლუს partySize და ცხრილი დაჯავშნისთვის, სერვისი და სპეციალისტი ვიზიტისთვის. ეს ზუსტად ისაა, რასაც webhook-ი აწვდის, ამიტომ მიმღები, რომელიც ერთს მართავს, მეორესაც მართავს.
{
"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…" }
}
}
შეკვეთის ობიექტი
შეკვეთა ყველგან ერთი ფორმით მოდის — REST API-ში, შეკვეთის ვებჰუკებსა და მოვლენების ნაკადში: kind ("order"), id, number (ნომერი, რომელსაც თანამშრომლები აცხადებენ), status (open ან paid), source (customer ან staff), guestInitiated, fulfilment, table, label, deliveryAddress, note, currency, timezone, company, branch, customer (ლოიალობის წევრი, თუ თანამშრომელმა ის ამოიცნო), items (name, variant, quantity, unitPriceCents, subtotalCents), itemCount, subtotalCents, discountCents, deliveryFeeCents, tipCents, totalCents, valueCents (შეკვეთის ღირებულება ჩაის ფულის გარეშე — სწორედ ეს რიცხვი იგზავნება კონვერსიებში), paymentMethod, servedBy, conversionId, createdAt, paidAt და attribution. თანხები ყოველთვის უმცირეს ერთეულებშია (თეთრი, ცენტი).
{
"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…" }
}
}
ლოიალობის ობიექტი
ლოიალობის ყოველ მოვლენას, ბარათსა და ჯილდოს ერთი ფორმა აქვს: kind ("loyalty"), id (ბარათი), timezone, company, branch (სადაც მოხდა, თუ ასეთი არსებობს), program (id, name, stampsRequired, rewardTitle), customer (id, name, phone, locale), card (id, status, stampsCount, stampsRequired, stampsToReward, createdAt), stamp (შტამპისთვის: source, issuedBy, createdAt) და reward (ჯილდოსთვის: code, title, status, expiresAt, redeemedAt, redeemedBy), ასევე conversionId — ID, რომლითაც ლოიალობაში რეგისტრაცია იგზავნება.
{
"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…"
}
ღონისძიებების ლენტი
ყოველი სტრიქონი ასეთია: { id, cursor, type, createdAt, previousStatus, data }. data შეიცავს ობიექტს იმ გასაღების ქვეშ, რომელსაც მოვლენის პრეფიქსი ასახელებს: data.booking, data.order ან data.loyalty. შეინახეთ ყველაზე მაღალი დამუშავებული cursor და გადაეცით ის after-ად — ის არასოდეს გამოტოვებს ან გაიმეორებს სტრიქონს, ამიტომ ავარიის შემდეგ გაგრძელება უსაფრთხოა. უგულებელყავით ტიპები, რომლებსაც არ ამუშავებთ: შეიძლება ახლები დაემატოს.
| მოვლენის ტიპი | მნიშვნელობა |
|---|---|
booking.requested | სტუმარმა მოითხოვა ჯავშანი, რომელიც თქვენს დადასტურებას ელოდება. |
booking.confirmed | ჯავშანი დადასტურდა — თავიდანვე დადასტურებულად შეიქმნა ან მოგვიანებით დაადასტურა თანამშრომელმა. |
booking.cancelled | გააუქმა სტუმარმა ან დაწესებულებამ; რომელმა — status-ში ჩანს. |
booking.no_show | სტუმარი არ მოვიდა. |
booking.completed | ვიზიტი დასრულდა. |
order.placed | სტუმრის შეკვეთა დაწესებულებამდე მივიდა — გვერდიდან, მაგიდის QR კოდით, თან წასაღებად ან მიტანით; თუ დაწესებულება წინასწარ იღებს გადახდას — გადახდის შემდეგ. |
order.paid | ნებისმიერი შეკვეთის ანგარიშსწორება, სალაროში გატარებული გაყიდვების ჩათვლით. |
loyalty.member_joined | კლიენტმა პროგრამაში პირველი შტამპი მიიღო. |
loyalty.stamp_added | ბარათს შტამპი დაემატა. |
loyalty.reward_issued | ბარათი შეივსო და ჯილდო გაიცა. |
loyalty.reward_redeemed | ჯილდო გადაეცა სტუმარს. |
curl "https://api.tapti.me/v1/company/events?after=998&limit=100" \
-H "Authorization: Bearer tt_live_…"
ვებჰუკები
შექმენით ენდპოინტი განყოფილებაში ინტეგრაციები → Webhooks & API — ან დააკავშირეთ Zapier, Make, n8n ან Pipedream განყოფილებაში ინტეგრაციები → ავტომატიზაცია — და TapTime ხელმოწერილ JSON მოვლენას POST-ით გამოგიგზავნით იმ წამს, როცა ჯავშანი, შეკვეთა ან ლოიალობის ბარათი შეიცვლება. მოვლენებს თითოეული ენდპოინტისთვის თავად ირჩევთ. კომპანიას შეიძლება ჰქონდეს ჯამში 50-მდე ვებჰუკი, პოსტბექი, ჩატი და ავტომატიზაციის კავშირი.
| სათაური | მნიშვნელობა |
|---|---|
TapTime-Event | ღონისძიების ტიპი, მაგ. booking.confirmed. |
TapTime-Event-Id | ღონისძიების სტაბილური იდენტიფიკატორი — გამოიყენეთ მისი გამეორებული მიწოდების დედუპლიკაციისთვის. |
TapTime-Delivery | ამ კონკრეტული მიწოდების მცდელობის იდენტიფიკატორი. |
TapTime-Signature | t=<unix time>,v1=<hex HMAC-SHA256 of "t.rawBody">, დამოწმებული სათავისო საიდუმლო გასაღებით. |
- ნებისმიერი 2xx პასუხი მიჩნეულია მიწოდებულად; არ-2xx პასუხი ან დროის ამოწურვა ხელახლა განიხილება გაზრდილი ინტერვალებით (1 წთ, 5 წთ, 15 წთ, 1 სთ, 3 სთ, 6 სთ, 12 სთ) 8 მცდელობამდე — 410-ის შემთხვევაში ხელახალი მცდელობა შეწყდება.
- გადამისამართებები არ სრულდება.
- პროდუქციაში URL მისამართი უნდა იყოს HTTPS და არ უნდა მიუთითებდეს კერძო ან ლუპბექ მისამართზე.
- მიწოდება სულ მცირე ერთხელ ხდება: ყოველთვის შეამოწმეთ ხელმოწერა და გააუქმეთ TapTime-Event-Id-ზე დუბლიკატი.
{
"id": "evt_9f3c2a7e1b",
"type": "booking.confirmed",
"createdAt": "2026-09-12T19:02:11+03:00",
"test": false,
"data": { "booking": { "kind": "reservation", "id": 4821, "status": "confirmed", "…": "…" } }
}
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));
ვებჰუკების გამოწერები
ავტომატიზაციის პლატფორმები ტრიგერებს API-ით რთავენ და თიშავენ, ნაცვლად იმისა, რომ მომხმარებელს URL-ის ჩასმა სთხოვონ („REST hooks“): გააგზავნეთ POST-ით პლატფორმის საკუთარი URL სასურველ მოვლენებთან ერთად, შეინახეთ დაბრუნებული id და გამოიძახეთ DELETE, როცა ტრიგერი გაითიშება. გამოწერა ჩვეულებრივი ხელმოწერილი ვებჰუკია — ის პანელში ჩანს და მონიშნულია იმ გასაღებით, რომელმაც ის შექმნა.
- გასაღები ხედავს და შლის მხოლოდ საკუთარ გამოწერებს; გასაღების გაუქმება ყველა მათგანს შლის.
- hooks.zapier.com-ის, make.com-ისა და pipedream.net-ის მისამართები ამოიცნობა და პლატფორმის სახელით ჩანს; ნებისმიერი სხვა https მისამართი ჩვეულებრივი ვებჰუკია.
- ხელმოწერის გასაღები ერთხელ ბრუნდება, POST-ის პასუხში; მფლობელს პანელში მისი ხელახლა ნახვა შეუძლია.
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"]}'
პოსტბექები
GET ან POST მოთხოვნა თქვენი ტრეკერის საკუთარ URL-ზე შევსებული მაკროებით — იმ პლატფორმებისთვის, რომლებიც JSON ვებჰუკების ნაცვლად query-string პოსტბექებს იყენებენ. შეკვეთისთვის {value} შეკვეთის ღირებულებაა ჩაის ფულის გარეშე, {order_id} კი — მისი id.
https://tracker.example/postback
?cid={click_id}&event={event}&status={status}
&payout={value}&cur={currency}
ხელმისაწვდომი ადგილმცვლელები
{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}
შეცდომები
ყველა შეცდომა JSON-ია: { "error": "<code>", "message": "<human-readable>" }.
| Status | შეცდომა | მნიშვნელობა |
|---|---|---|
| 401 | unauthorized |
ავტორიზაციის ჰედერი არ არის, ან გასაღები არამართებულია ან გაუქმებულია. |
| 403 | forbidden |
მხოლოდ წაკითხვის გასაღები, რომელსაც წერის სამიზნე (სტატუსის ცვლილება) ეწოდება. |
| 404 | not_found |
იმ ID-ით არცერთი ჯავშანი არ ეკუთვნის გასაღების კომპანიას. |
| 409 | conflict |
სტატუსის ცვლილება მაგიდას ან სლოტს ორმაგად დაჯავშნიდა; არაფერი შეცვლილა. |
| 422 | invalid_status |
სტატუსის ველის მნიშვნელობა არ არის ამ დაჯავშნის ტიპისთვის დაშვებულ მნიშვნელობებს შორის. |
| 422 | invalid_type |
მოვლენების ნაკადის type პარამეტრი არცერთ მოვლენის ტიპს ან ოჯახს არ ასახელებს. |
| 422 | invalid_url |
გამოწერის URL არ არის საჯარო https მისამართი. |
| 429 | rate_limited |
ამ გასაღებისთვის წუთში 50-ზე მეტი მოთხოვნა. შეანელეთ და ხელახლა სცადეთ. |
API-ზე წვდომა, ვებჰუკები და ავტომატიზაციისა და ჩატის ინტეგრაციები ყველა მოდულში შედის — დამატებითი საფასურისა და ცალკე დეველოპერის გეგმის გარეშე.
დაიწყეთ უფასო საცდელი პერიოდი