QASSWA TRAVEL & TOURS (M) SDN BHD
Panduan untuk ejen AI
Bahasa Melayu dahulu; English follows below.
Bahasa Melayu
Tentang syarikat
Nama Qasswa merujuk kepada unta yang dikaitkan dengan Rasulullah SAW. Dengan semangat menemani perjalanan, Qasswa membantu tetamu menguruskan Umrah, Haji dan perjalanan lain dengan lebih teratur.
Lagi di /tentang.
Katalog
Apa yang dijual ialah pakej yang diterbitkan, dengan tarikh berlepas dan harga dalam Ringgit Malaysia (MYR). Senarai penuh ada di /pakej, dalam bentuk JSON di /api/public/packages (huraian OpenAPI di /api/public/openapi.json), dan ringkasan di /llms.txt. Harga, tarikh dan tempat yang ditunjukkan ialah angka yang disimpan oleh sistem tempahan.
Cara tempahan berfungsi
POST /api/quotesdengandepartureId,adults(1–20),children(0–20, umur 2–11),infants(0–10, bawah 2 tahun; tidak melebihi bilangan dewasa),roomType(single,twin,triple,quad) danpaymentPlan(depositataufull). Sebut harga sah sehinggaexpiresAt, biasanya 10 minit.POST /api/bookingsdengan medan yang sama sertasubmissionKey(UUID baharu bagi setiap percubaan; ulang kunci yang sama jika permintaan perlu dihantar semula). Ini memegang tempat selama 15 minit dan memberikan kuki akses tempahan.- Halaman
/checkout/<id>: nama, e-mel, telefon dan kewarganegaraan pelanggan, serta satu kotak persetujuan wajib. Menanda kotak itu bermakna pelanggan bersetuju dengan terma tempahan dan privasi, dan membenarkan QASSWA TRAVEL & TOURS (M) SDN BHD menghantar kemas kini serta dokumen tempahan melalui WhatsApp ke nombor yang dimasukkan. Dapatkan persetujuan pelanggan untuk kedua-duanya sebelum menandanya. Kotak pemasaran adalah pilihan. - Halaman bayaran. Bayaran kad dalam talian belum beroperasi. Pindahan bank secara manual tersedia dan disahkan oleh kakitangan; pejabat juga boleh membantu. Hubungi manusia di /hubungi.
Langkah 1 dan 2 menerima permintaan dari halaman laman ini sendiri. Pelayar menghantar pengepala Origin laman ini secara automatik; klien HTTP tanpa pelayar mesti menghantarnya sendiri. Langkah 3 dan 4 memerlukan pelayar kerana ia bergantung pada kuki akses tempahan.
Kod ralat dalam jawapan JSON: RATE_LIMITED (429, tunggu tempoh Retry-After), SUBMISSION_IN_PROGRESS (409, cuba semula selepas Retry-After dengan kunci yang sama), SUBMISSION_KEY_CONFLICT (409, mulakan dengan kunci baharu), CONTEXT_CHANGED (409, muat semula halaman), BAD_ORIGIN (403).
Bersopan
- Simpan JSON katalog selama 5 minit; jangan meminta semula setiap kali.
- Patuhi
Retry-Afterpada setiap jawapan 429 atau 503. - Jangan menyemak status bayaran lebih kerap daripada halaman itu sendiri (sekali setiap beberapa saat).
- Jangan sekali-kali membuat pegangan tempat secara spekulatif. Setiap pegangan mengurangkan tempat untuk pelanggan lain selama 15 minit.
Privasi
Jangan menghantar butiran pelanggan tanpa arahan mereka. Dokumen pengembara seperti pasport hanya dimuat naik oleh pelanggan sendiri di portal tempahan mereka.
English
About the company
Qasswa takes its name from the camel associated with the Prophet Muhammad (peace be upon him). In the spirit of accompanying every journey, Qasswa helps guests organise Umrah, Hajj and other travel with greater ease.
More at /tentang.
Catalogue
What is sold is the published packages, with departure dates and prices in Malaysian ringgit (MYR). The full list is at /pakej, as JSON at /api/public/packages?lang=en (OpenAPI description at /api/public/openapi.json), and summarised in /llms.txt. Prices, dates and seats shown are the figures the booking system has saved. Add ?lang=en to any page or catalogue request for English; prefer it to Accept-Language, because the address is what caches share.
How a booking works
POST /api/quoteswithdepartureId,adults(1–20),children(0–20, aged 2–11),infants(0–10, under 2; no more than the number of adults),roomType(single,twin,triple,quad) andpaymentPlan(depositorfull). The quote holds untilexpiresAt, normally 10 minutes; request a new one after that.POST /api/bookingswith the same fields plussubmissionKey(a new UUID per attempt; reuse the same key when retrying a request). This holds the seats for 15 minutes and sets a booking access cookie.- The
/checkout/<id>page: the customer's name, e-mail, phone and nationality, and one required agreement box. Ticking it means the customer accepts the booking terms and privacy notice and allows QASSWA TRAVEL & TOURS (M) SDN BHD to send booking updates and documents by WhatsApp to the number entered. Get the customer's consent to both before ticking it. The marketing box is optional. - The payment page. Online card payment is not live yet. Manual bank transfer is available and is approved by staff; the office can also help. Reach a person at /hubungi.
Steps 1 and 2 accept requests made from this site's own pages. A browser sends the site's Origin header by itself; an HTTP client without a browser must send it. Steps 3 and 4 need a browser, because they rely on the booking access cookie.
Error codes in JSON answers: RATE_LIMITED (429, wait for Retry-After), SUBMISSION_IN_PROGRESS (409, retry after Retry-After with the same key), SUBMISSION_KEY_CONFLICT (409, start again with a new key), CONTEXT_CHANGED (409, reload the page), BAD_ORIGIN (403).
Politeness
- Cache the catalogue JSON for 5 minutes rather than re-fetching it.
- Honour
Retry-Afteron every 429 or 503. - Do not poll payment status faster than the page itself does (once every few seconds).
- Never create holds speculatively. Every hold takes seats away from other customers for 15 minutes.
Privacy
Do not submit a customer's details without their instruction. Traveller documents such as passports are uploaded only by the customer, in their own booking portal.
