GoHost Public API · v1

Kết nối hệ thống của bạn với PMS GoHost qua API

Đọc phòng trống và giá theo thời gian thực, tạo và quản lý đặt phòng, nhận thông báo ngay khi booking thay đổi. Dành cho website đặt phòng riêng, chatbot, chuỗi khách sạn và đối tác công nghệ.

  • REST · JSON
  • Một key cho cả chuỗi
  • Webhook ký HMAC
Tìm loại phòng còn trống
GET /properties/{tenant_id}/room_types/search?checkin_date=2026-12-24&checkout_date=2026-12-26
// Phản hồi mẫu (rút gọn)
{
  "data": [{
    "room_types": {
      "title": "Deluxe Hướng Biển",
      "quantity": 3,
      "rate_plans": [{
        "title": "Gồm bữa sáng",
        "currency": "VND",
        "estimated_total_price": 3400000
      }]
    }
  }]
}
200 OK X-RateLimit-Remaining: 59
Ai dùng GoHost API

Một nguồn dữ liệu phòng và booking cho mọi kênh bạn tự xây

Website đặt phòng riêng

Hiện phòng trống, giá theo ngày và nhận đặt phòng trực tiếp trên website của bạn, không qua OTA.

Chatbot, lễ tân AI

Trả lời khách còn phòng không, báo giá và giữ phòng ngay trong cuộc trò chuyện.

Chuỗi khách sạn, căn hộ

Đồng bộ booking về hệ thống nội bộ, CRM hoặc kế toán của chuỗi bằng một API key duy nhất.

Đối tác công nghệ, agency

Xây ứng dụng, cổng bán phòng hoặc tích hợp cho khách hàng đang vận hành bằng GoHost.

API hỗ trợ những gì

6 nhóm API bao trọn luồng bán phòng

Mỗi API key gắn với các quyền cụ thể. Bạn chỉ mở đúng phần đối tác cần dùng.

Cơ sở lưu trú

  • Danh sách mọi cơ sở trong chuỗi
  • Tìm cơ sở còn phòng theo ngày ở
properties:read
  • GET /properties
  • GET /properties/search

Loại phòng, giá và tồn phòng

  • Loại phòng kèm giá theo khoảng ngày
  • Chỉ loại còn trống, có chi tiết giá và gói giá
properties:read
  • GET /room_types
  • GET /room_types/search

Đặt phòng

  • Tạo, xác nhận, cập nhật, huỷ booking
  • Ghi nhận thanh toán
  • Check-in online kèm thông tin khách
bookings:read bookings:write
  • POST /bookings
  • POST /bookings/{id}/confirm
  • POST /bookings/{id}/payments

Thao tác từng phòng

  • Trả một phòng trong booking nhiều phòng
  • Huỷ riêng một phòng
  • Đổi giá một phòng
bookings:write
  • POST /bookings/{id}/rooms/{room}/checkout
  • POST /bookings/{id}/rooms/{room}/rate

Danh mục tham chiếu

  • Nguồn đặt, phương thức thanh toán, dịch vụ đi kèm
  • Quốc gia, tỉnh/thành, phường/xã Việt Nam
properties:read
  • GET /payment-methods
  • GET /reference/cities

Webhook

  • Nhận sự kiện: tạo, cập nhật, xác nhận, huỷ, check-in, check-out
  • Gửi thử, xem lịch sử gửi, đổi khoá ký
webhooks:read webhooks:write
  • POST /webhooks
  • POST /webhooks/{code}/ping
Bắt đầu

Từ lúc liên hệ tới booking đầu tiên qua API

  1. Liên hệ GoHost

    Đội ngũ GoHost tạo API key cho tổ chức của bạn. Secret chỉ hiện một lần khi tạo.

  2. Chọn quyền

    Bật đúng phạm vi cần dùng: đọc phòng, đọc hoặc ghi booking, webhook.

  3. Gọi API

    Gửi header Authorization: Bearer key:secret và đọc dữ liệu từ các cơ sở trong chuỗi.

  4. Nhận webhook

    Đăng ký URL HTTPS để biết ngay khi booking được tạo, đổi hoặc huỷ.

Ví dụ

Vài dòng code cho việc hay gặp nhất

Dữ liệu dưới đây là mẫu minh hoạ. Đầy đủ tham số và mã lỗi có trong tài liệu API.

curl "https://platform.gohost.vn/pms/api/public/v1/properties/{tenant_id}/room_types/search?checkin_date=2026-12-24&checkout_date=2026-12-26" \
  -H "Authorization: Bearer <api_key>:<api_secret>" \
  -H "Accept: application/json"
const res = await fetch(
  `https://platform.gohost.vn/pms/api/public/v1/properties/${tenantId}/room_types/search?checkin_date=2026-12-24&checkout_date=2026-12-26`,
  { headers: { Authorization: `Bearer ${apiKey}:${apiSecret}` } }
);
const { data } = await res.json();
$res = Http::withToken("{$apiKey}:{$apiSecret}")
    ->get("https://platform.gohost.vn/pms/api/public/v1/properties/{$tenantId}/room_types/search", [
        'checkin_date'  => '2026-12-24',
        'checkout_date' => '2026-12-26',
    ]);

$roomTypes = $res->json('data');
Phản hồi mẫu 200 OK
{
  "data": [
    {
      "room_types": {
        "id": "…",
        "title": "Deluxe Hướng Biển",
        "quantity": 3,
        "rate_plans": [
          {
            "id": "…",
            "title": "Gồm bữa sáng",
            "currency": "VND",
            "has_breakfast": true,
            "days_breakdown": [
              { "day": "2026-12-24", "price": 1700000 },
              { "day": "2026-12-25", "price": 1700000 }
            ],
            "estimated_total_price": 3400000
          }
        ]
      }
    }
  ]
}
curl -X POST "https://platform.gohost.vn/pms/api/public/v1/properties/{tenant_id}/bookings" \
  -H "Authorization: Bearer <api_key>:<api_secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "checkin_date": "2026-12-24",
    "checkout_date": "2026-12-26",
    "source_name": "website",
    "customer": { "name": "Khách Mẫu" },
    "booking_rooms": [{ "room_type_id": "…", "rate_plan_id": "…" }]
  }'
const res = await fetch(`https://platform.gohost.vn/pms/api/public/v1/properties/${tenantId}/bookings`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${apiKey}:${apiSecret}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    checkin_date: "2026-12-24",
    checkout_date: "2026-12-26",
    source_name: "website", // lấy từ GET /booking-sources
    customer: { name: "Khách Mẫu" },
    booking_rooms: [{ room_type_id: "…", rate_plan_id: "…" }],
  }),
});
$res = Http::withToken("{$apiKey}:{$apiSecret}")
    ->post("https://platform.gohost.vn/pms/api/public/v1/properties/{$tenantId}/bookings", [
        'checkin_date'  => '2026-12-24',
        'checkout_date' => '2026-12-26',
        'source_name'   => 'website', // lấy từ GET /booking-sources
        'customer'      => ['name' => 'Khách Mẫu'],
        'booking_rooms' => [['room_type_id' => '…', 'rate_plan_id' => '…']],
    ]);
Lưu ý Tự huỷ sau 16 phút
Booking tạo qua API được ghi là đặt trực tiếp.
Booking chưa có thanh toán sẽ tự huỷ sau 16 phút:
ghi nhận thanh toán bằng POST /bookings/{id}/payments
hoặc xác nhận bằng POST /bookings/{id}/confirm.
# GoHost gửi tới URL HTTPS của bạn:
POST https://your-app.example/webhooks/gohost
X-Gohost-Event: booking.created
X-Gohost-Event-Id: evt_…
X-Gohost-Timestamp: 1767225600
X-Gohost-Signature: t=1767225600,v1=…
import crypto from "node:crypto";

// header = X-Gohost-Signature, dạng "t=<unix>,v1=<hex>"
function verify(rawBody, header, secret) {
  const m = /t=(\d+),v1=([a-f0-9]+)/.exec(header || "");
  if (!m || Math.abs(Date.now() / 1000 - Number(m[1])) > 300) return false;
  const expected = crypto.createHmac("sha256", secret)
    .update(`${m[1]}.${rawBody}`).digest("hex");
  return expected.length === m[2].length &&
    crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(m[2]));
}
// X-Gohost-Signature có dạng "t=<unix>,v1=<hex>", ký trên "<t>.<raw body>"
preg_match('/t=(\d+),v1=([a-f0-9]+)/', (string) $request->header('X-Gohost-Signature'), $m);

if (! $m || abs(time() - (int) $m[1]) > 300
    || ! hash_equals(hash_hmac('sha256', $m[1].'.'.$request->getContent(), $secret), $m[2])) {
    abort(401);
}
// Dùng X-Gohost-Event-Id để bỏ qua sự kiện trùng
Sự kiện hỗ trợ 6 sự kiện
booking.created     booking.updated
booking.confirmed   booking.cancelled
booking.checked_in  booking.checked_out
Bảo mật và giới hạn

Dữ liệu khách sạn của bạn chỉ đi tới đúng nơi bạn cho phép

Khoá theo tổ chức

Một key đọc được mọi cơ sở trong chuỗi của bạn, không truy cập được cơ sở của tổ chức khác.

Phân quyền theo phạm vi

6 phạm vi quyền. Key mới mặc định chỉ được đọc thông tin cơ sở và loại phòng.

60yêu cầu / phút

Mức mặc định cho mỗi key, điều chỉnh được theo nhu cầu. Vượt mức nhận mã 429 kèm Retry-After.

Secret không lưu dạng rõ

GoHost chỉ lưu bản băm của secret. Mất secret thì GoHost cấp lại secret mới.

Webhook có chữ ký

Mỗi sự kiện ký HMAC-SHA256 kèm thời điểm gửi trong header X-Gohost-Signature, chỉ gửi tới URL HTTPS.

8lần thử lại

Webhook gửi lỗi được thử lại tự động, giãn dần từ 5 giây tới 24 giờ.

Đồng bộ kênh bán

Booking qua API cập nhật tồn phòng trên mọi OTA

Đặt phòng tạo qua API được ghi là đặt trực tiếp. GoHost tính lại phòng trống và đẩy ra Booking.com, Agoda, Airbnb… qua Channel Manager, nên bạn không lo bán trùng phòng.

  • GoHost dùng chính API này cho website đặt phòng và lễ tân AI của mình.
  • Loại phòng còn trống và booking đọc trực tiếp, không qua bộ nhớ đệm.
Hệ thống của bạn website, chatbot
PMS GoHost tồn phòng, booking
OTA qua Channel Manager

Câu hỏi thường gặp về GoHost API

Public API là gói mở rộng trả phí. Liên hệ đội ngũ GoHost qua Zalo để nhận báo giá theo quy mô chuỗi của bạn.

API key do GoHost tạo cho tổ chức của bạn. Nhắn đội ngũ GoHost qua Zalo, chúng tôi cấp key kèm phạm vi quyền phù hợp.

Được. Key gắn với tổ chức của bạn và đọc được mọi cơ sở trong chuỗi; mỗi lần gọi bạn chỉ rõ cơ sở cần thao tác.

Chưa. Phiên bản hiện tại tập trung vào cơ sở lưu trú, phòng, giá, đặt phòng và webhook. Hãy cho chúng tôi biết nhu cầu của bạn.

Danh sách endpoint, tham số, mã lỗi và ví dụ có tại platform.gohost.vn/docs/api.

Sẵn sàng tích hợp

Mở tài liệu API hoặc trao đổi với đội ngũ GoHost

Chúng tôi hỗ trợ bạn chọn phạm vi quyền, cấp API key và kiểm tra luồng đặt phòng đầu tiên.

Tư vấn miễn phí