Create a new subscription package
# 1. Tổng quan
- Action URL:
/subscription/create - Đặc tả chi tiết: Swagger Link (opens new window)
- Mô tả:
- Tính năng này cho phép tạo mới một subscription package cho agency F10.
- Chỉ áp dụng cho tài khoản agency F1.
# 2. Hướng dẫn
- Bước 1: Xây dựng request và gửi POST tới API Action URL.
- Bước 2: Nhận về response từ hệ thống.
# 3. Request
# 3.1 Ví dụ Request
{
"name": "string",
"description": "string",
"avatarUrl": "string",
"coverUrl": "string",
"price": "number",
"currency": "string",
"billingCycle": "string",
"duration": "string",
"startsAt": "string($date-time)",
"expiresAt": "string($date-time)",
"bambooLimitSearch": "number",
"bambooLimitHold": "number",
"bambooLimitIssues": "number",
"vietjetLimitSearch": "number",
"vietjetLimitHold": "number",
"vietjetLimitIssues": "number",
"amadeusLimitSearch": "number",
"amadeusLimitHold": "number",
"amadeusLimitIssues": "number",
"vnaLimitSearch": "number",
"vnaLimitHold": "number",
"vnaLimitIssues": "number",
"sabreLimitSearch": "number",
"sabreLimitHold": "number",
"sabreLimitIssues": "number",
"amadeusRestLimitSearch": "number",
"amadeusRestLimitHold": "number",
"amadeusRestLimitIssues": "number",
"hasAmadeusAccess": "boolean",
"hasAmadeusRestAccess": "boolean",
"hasVietnamAirlineAccess": "boolean",
"hasSabreAccess": "boolean",
"hasBambooAirwaysAccess": "boolean",
"hasVietjetAirAccess": "boolean",
"hasTourAccess": "boolean",
"hasEsimAccess": "boolean",
"hasHotelAccess": "boolean",
"hasAttractionAccess": "boolean",
"tourLimitSearch": "number",
"tourLimitBooking": "number",
"esimLimitSearch": "number",
"esimLimitActivation": "number",
"hotelLimitSearch": "number",
"hotelLimitBooking": "number",
"attractionLimitSearch": "number",
"attractionLimitBooking": "number",
"hasPrioritySupport": "boolean",
"hasAdvancedAnalytics": "boolean",
"hasCustomBranding": "boolean",
"hasMultiUserAccess": "boolean",
"maxUsers": "number",
"features": "string",
"terms": "string",
"notes": "string",
"subscribedAgencies": ["list"]
}
# 3.2 Bảng mô tả Request
| Thuộc tính | Bắt buộc | Kiểu dữ liệu | Mô tả |
|---|---|---|---|
| id | Có | string | ID của subscription |
| name | Có | string | Tên gói subscription |
| description | Không | string | Mô tả gói subscription |
| avatarUrl | Có | string | URL ảnh đại diện gói |
| coverUrl | Có | string | URL ảnh bìa gói |
| price | Có | number | Giá gói subscription |
| currency | Không | string | Đơn vị tiền tệ |
| billingCycle | Có | string (monthly, quarterly, yearly, one_time) | Chu kỳ thanh toán |
| duration | Có | number | Thời hạn gói |
| startsAt | Có | string ($date-time) | Ngày bắt đầu có hiệu lực |
| expiresAt | Có | string ($date-time) | Ngày hết hạn |
| status | Có | string (enum) | Trạng thái gói |
| agencyName | Có | string | Tên agency tạo gói |
| remainingDays | Có | number | Số ngày còn lại |
| isActive | Có | boolean | Có đang hoạt động hay không |
| agencyId | Có | string | ID của agency tạo gói |
| activeSubscribersCount | Có | number | Số lượng agency F10 đang sử dụng |
| activeSubscribers | Có | array<string> | Danh sách agency F10 đang sử dụng |
| createdAt | Có | string ($date-time) | Ngày tạo |
| updatedAt | Có | string ($date-time) | Ngày cập nhật |
| hasAmadeusAccess | Có | boolean | Quyền truy cập Amadeus |
| hasAmadeusRestAccess | Có | boolean | Quyền truy cập Amadeus REST API |
| hasVietnamAirlineAccess | Có | boolean | Quyền truy cập Vietnam Airlines |
| hasSabreAccess | Có | boolean | Quyền truy cập Sabre |
| hasBambooAirwaysAccess | Có | boolean | Quyền truy cập Bamboo Airways |
| hasVietjetAirAccess | Có | boolean | Quyền truy cập Vietjet Air |
| hasTourAccess | Có | boolean | Quyền truy cập Tour |
| hasEsimAccess | Có | boolean | Quyền truy cập ESIM |
| hasHotelAccess | Có | boolean | Quyền truy cập Khách sạn |
| hasAttractionAccess | Có | boolean | Quyền truy cập Vé vui chơi |
| tourLimitSearch | Có | number | Giới hạn tìm kiếm Tour |
| tourLimitBooking | Có | number | Giới hạn đặt Tour |
| esimLimitSearch | Có | number | Giới hạn tìm kiếm ESIM |
| esimLimitActivation | Có | number | Giới hạn kích hoạt ESIM |
| hotelLimitSearch | Có | number | Giới hạn tìm kiếm Khách sạn |
| hotelLimitBooking | Có | number | Giới hạn đặt Khách sạn |
| attractionLimitSearch | Có | number | Giới hạn tìm kiếm Vé vui chơi |
| attractionLimitBooking | Có | number | Giới hạn đặt Vé vui chơi |
| bambooLimitSearch | Có | number | Giới hạn tìm kiếm Bamboo |
| bambooLimitHold | Có | number | Giới hạn giữ chỗ Bamboo |
| bambooLimitIssues | Có | number | Giới hạn xuất vé Bamboo |
| vietjetLimitSearch | Có | number | Giới hạn tìm kiếm Vietjet |
| vietjetLimitHold | Có | number | Giới hạn giữ chỗ Vietjet |
| vietjetLimitIssues | Có | number | Giới hạn xuất vé Vietjet |
| amadeusRestLimitSearch | Có | number | Giới hạn tìm kiếm Amadeus REST API |
| amadeusRestLimitHold | Có | number | Giới hạn giữ chỗ Amadeus REST API |
| amadeusRestLimitIssues | Có | number | Giới hạn xuất vé Amadeus REST API |
| maxUsers | Có | number | Số lượng người dùng tối đa |
| subscribedAgencies | Có | array<object> | Danh sách agency F10 sử dụng gói |
| terms | Có | string | Điều khoản sử dụng |
| notes | Có | string | Ghi chú |
| features | Có | string (JSON string) | Danh sách tính năng, ví dụ: ["Flight Search","Booking","Ticketing"] |
| hasPrioritySupport | Có | boolean | Quyền truy cập Priority Support |
| hasAdvancedAnalytics | Có | boolean | Quyền truy cập Advanced Analytics |
| hasCustomBranding | Có | boolean | Quyền truy cập Custom Branding |
| hasMultiUserAccess | Có | boolean | Quyền truy cập Multi User Access |
# 4. Response
# 4.1 Ví dụ Response
{
"StatusCode": 201,
"Timestamp": "6:47:37 AM",
"Path": "/api/v1/subscriptions/create",
"Message": "Tạo mới subscription package thành công",
"Data": {
"Subscription": {
"id": "06203055-efed-4db7-ba3c-5e236738573a",
"name": "F1 01",
"description": "Gói cơ bản cho các agency du lịch",
"avatarUrl": "https://example.com/avatar.jpg",
"coverUrl": "https://example.com/cover.jpg",
"price": "1000000.00",
"currency": "VND",
"billingCycle": "monthly",
"duration": 12,
"startsAt": "2025-11-01T00:00:00.000Z",
"expiresAt": "2025-12-31T00:00:00.000Z",
"status": "active",
"hasAmadeusRestAccess": true,
"hasAmadeusAccess": true,
"hasVietnamAirlineAccess": true,
"hasSabreAccess": false,
"maxUsers": 1,
"features": "[\"Flight Search\", \"Booking\", \"Ticketing\"]",
"terms": "Điều khoản sử dụng gói Basic",
"notes": "Gói dành cho agency mới",
"createdAt": "2025-10-15T06:47:37.505Z",
"updatedAt": "2025-10-15T06:47:37.505Z"
}
},
"Errors": null,
"RequestId": "req_1760510857498_chrz8ezyf",
"TotalDuration": 18
}
# 4.2 Bảng mô tả Response
| Thuộc tính | Kiểu dữ liệu | Mô tả | Ví dụ |
|---|---|---|---|
| StatusCode | string | Mã trạng thái kết quả tạo sub | 201: tạo thành công400: dữ liệu không hợp lệ401: không có quyền403: chỉ F1 agency được phép409: sub đã tồn tại |
| Timestamp | string | Thời gian tạo sub | "6:47:37 AM" |
| Path | string | Endpoint được gọi | "/api/v1/subscriptions/create" |
| Message | string | Thông điệp phản hồi | "Tạo mới subscription package thành công" |
| Errors | string | Mô tả lỗi (nếu có) | null |
| RequestId | string | Mã định danh request | "req_1760510857498_chrz8ezyf" |
| TotalDuration | string | Thời gian xử lý request | "18" |