Khởi tạo Subscription Packages

# Subscription Packages API — Định nghĩa & Hướng dẫn cho Đối Tác (v1.0)

Đối tượng: Agency F1 (Parent) tạo & quản lý gói dịch vụ
Trạng thái: Stable
Ngôn ngữ: VI


# 1. Tổng quan

# 1.1 Định nghĩa

Subscription Packages API cho phép Agency F1 (Parent Agency) tạo và quản lý các gói subscription để phân phối cho F10 (Child Agency) sử dụng dịch vụ API và tính năng của hệ thống.

  • F1: chủ sở hữu gói, có quyền tạo mới & cấu hình chi tiết.
  • F10: chỉ có thể sử dụng các gói mà F1 đã cấp quyền.

# 1.2 Lợi ích

  • Chuẩn hóa quản lý: tập trung quản lý các gói dịch vụ API cho F10.
  • Cấu hình linh hoạt: tuỳ chỉnh giá, chu kỳ thanh toán, thời hạn, giới hạn dịch vụ.
  • Phân quyền rõ ràng: chỉ F1 có quyền tạo → đảm bảo kiểm soát hệ thống.
  • Mở rộng dễ dàng: thêm dịch vụ/giới hạn mới mà không phá cấu trúc cũ.

# 2. Tạo yêu cầu tạo Subscription

# 2.1 Endpoint & Method

# 2.2 Headers bắt buộc

Header Mô tả
x-api-account Tài khoản API của Agency F1
x-api-password Mật khẩu API của Agency F1
x-api-token Token API của Agency F1

# 3 Request Body (JSON)

# 3.1. Ví dụ Request

{
  "name": "Premium Flight Package",
  "description": "Gói cao cấp cho các agency chuyên về vé máy bay.",
  "price": 5000000,
  "currency": "VND",
  "billingCycle": "MONTHLY",
  "duration": 12,
  "startsAt": "2025-01-01T00:00:00Z",
  "expiresAt": "2025-12-31T23:59:59Z",
  "hasAmadeusAccess": true,
  "amadeusLimitSearch": 5000,
  "amadeusLimitHold": 500,
  "amadeusLimitIssues": 200,
  "hasVietnamAirlineAccess": true,
  "vnaLimitSearch": 5000,
  "vnaLimitHold": 500,
  "vnaLimitIssues": 200,
  "hasTourAccess": false,
  "features": "[\"Priority Flight Search\", \"Advanced Booking\", \"24/7 Support\"]",
  "terms": "Điều khoản sử dụng gói Premium.",
  "subscribedAgencies": []
}

# 3.2 Bảng mô tả trường (Request Body)

Trường Type Bắt buộc Mô tả
name string Yes Tên gói subscription (duy nhất).
price number Yes Giá gói.
billingCycle string Yes MONTHLY | QUARTERLY | YEARLY | ONE_TIME.
duration number Yes Thời hạn của gói, tính theo billingCycle.
startsAt string Yes Ngày bắt đầu hiệu lực (YYYY-MM-DD).
expiresAt string Yes Ngày hết hạn (YYYY-MM-DD).
has...Access boolean No Bật/tắt quyền truy cập cho một dịch vụ
...Limit... number No Bắt buộc nếu dịch vụ tương ứng được bật; là quota cho từng hành động.
features string No Danh sách tính năng (định dạng JSON string).
subscribedAgencies array Yes Danh sách agency đã đăng ký; khi tạo mới thường là [].

# 4 Response (JSON)

# 4.1 Bảng mô tả trường (Response)

{
  {
  "StatusCode": 201,
  "Message": "Tạo mới subscription package thành công",
  "Data": {
    "Subscription": {
      "id": "939e607c-164f-4931-a5ec-fe7c3e4f525f",
      "name": "Premium Flight Package",
      "price": "5000000.00",
      "billingCycle": "MONTHLY",
      "duration": 12,
      "startsAt": "2025-01-01",
      "expiresAt": "2025-12-31",
      "status": "active",
      "agencyId": "f921faa7-0315-4eb3-a5f3-7a73e83e6f3e",
      "hasAmadeusAccess": true,
      "amadeusLimitSearch": 5000,
      "amadeusLimitHold": 500,
      "amadeusLimitIssues": 200,
      "hasVietnamAirlineAccess": true,
      "vnaLimitSearch": 5000,
      "vnaLimitHold": 500,
      "vnaLimitIssues": 200,
      "hasTourAccess": false,
      "createdAt": "2025-09-22T07:49:39.888Z"
      // ... các trường khác
    }
  },
  "Errors": null,
  "RequestId": "req_1758527379874_3w4v96yxs"
}
}

# 4.2 Bảng mô tả mã phản hồi

HTTP Mô tả
201 Subscription package được tạo thành công
400 Dữ liệu không hợp lệ
401 Không có quyền tạo subscription
403 Chỉ F1 agency mới có quyền tạo subscription
409 Tên subscription đã tồn tại

This site uses cookies to learn which topics interest our readers.