Xem mục lục

Public API

Hướng dẫn sử dụng tính năng Kết nối API

 

KiotViet Public API được phát triển để hỗ trợ việc tích hợp và trao đổi dữ liệu giữa KiotViet và các nền tảng website, CRM…

Phạm vi áp dụng: gian hàng sử dụng gói Cao cấp của KiotViet.

KiotViet Public API cung cấp cơ chế đọc và ghi các đối tượng sau:

  • Danh sách chi nhánh 

  • Nhóm hàng: lấy danh sách nhóm hàng hóa với các thông tin về tên nhóm hàng và quan hệ giữa các nhóm hàng

  • Hàng hóa: lấy thông tin sản phẩm, tạo mới, sửa, xóa sản phẩm, thuộc tính của sản phẩm

  • Bảng giá

  • Hóa đơn: lấy danh sách hóa đơn và chi tiết hóa đơn

  • Khách hàng: lấy danh sách khách hàng và các thông tin chi tiết của khách hàng

  • Hạng phòng: lấy về danh sách hạng phòng, chi tiết hạng phòng và số phòng trống của hạng phòng

  • Đặt phòng: tạo đặt phòng mới và lấy về chi tiết của đặt phòng

Lưu ý : Các Params có ? ở trong giá trị là những trường có thể không truyền.

I. Thiết lập kết nối API

- Kiotviet API xác thực dựa trên cơ chế sử dụng client_secret đã được mã hóa. Để kết nối được hệ thống cần phải có thông tin Mã bảo mật.

- Mã API trên KiotViet chỉ hiển thị trên tài khoản có vai trò admin của chủ gian hàng.

- Trên màn hình quản lý, từ menu Thiết lập (1), bạn kích chọn Thiết lập cửa hàng (2).

 

- Bạn chọn Thiết lập kết nối API (3). Trên thông tin thiết lập kết nối bạn thao tác như sau:

  • Kích Tạo mã (4) để tạo ra Mã bảo mật

  • Kích Hoạt động (5)

- Kích Lưu (6).

- Để ngừng hoạt động kết nối API, bạn kích Ngừng hoạt động -> kích Lưu để hoàn tất.

II. Chức năng

Mục này mô tả thông tin chi tiết của từng API. Các thông tin bao gồm:

  • Tên API

  • Mục đích sử dụng của API

  • Cấu trúc của API

  • Chi tiết tham số trong request

  • Nội dung response trả về

1. Authenticate

- Kiotviet API xác thực dựa trên cơ chế sử dụng client_secret đã được mã hóa. Để kết nối được hệ thống cần phải có thông tin Mã bảo mật. Thông tin này được truy cập vào mục Thiết lập cửa hàng bằng tài khoản admin -> chọn Thiết lập kết nối API.

- Trong trường hợp không thể lấy được thông tin trên vui lòng liên hệ với bộ phận CSKH để được hỗ trợ.

- Sau khi có được thông tin Mã bảo mật (client_secret). Có thể sử dụng mã này để truy cập api

- Lưu ý: Toàn bộ các API đều phải có header trong request với thông tin: 

  • "PublicApiKey" : mã bảo mật

  • “Accept” : application/json​

2. Lấy danh sách chi nhánh 

- Mục đích sử dụng: Trả lại danh sách toàn bộ chi nhánh của cửa hàng đã được xác nhận

- Phương thức và URL: GET http://api-integration-hotel.kiotviet.vn/public/branches

- Request: Sử dụng hàm GET với tham số:

“pageSize”: int?, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

“pageIndex”: int, // thứ tự trang lấy dữ liệu

- Response: 

{

  "total": int,

  “pageSize”: int,

  "data": [

{

"id": long, // Id chi nhánh

"name": string,

"address":  string,

"retailer Id": long, // Id cửa hàng

"modifiedDate": datetime,

"createdDate": "datetime,

"isActive": bool,

"contactNumber": string,

"locationName": string,

"wardName": string,

"province": string,

"district": string,

}

  ],

  "timestamp": datetime

}

3. Lấy danh sách nhóm hàng

Mô tả chi tiết cho các liên quan đến thông tin nhóm hàng hóa như sau:

- Mục đích sử dụng: Trả về toàn bộ danh mục hàng hóa (nhóm hàng hóa). Danh sách này được sắp xếp theo thứ tự bảng chữ cái (a-z). Hệ thống chỉ cho phép nhóm hàng hóa có tối đa 3 cấp, và không cho phép xóa nhóm hàng cha nếu đang có chứa nhóm hàng con và không cho phép xóa nhóm hàng con nếu đang được sử dụng. 

- Phương thức và URL: GET https://api-integration-hotel.kiotviet.vn/public/category

- Request: Sử dụng hàm GET với tham số

“pageSize”: int?, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

“pageIndex”: int, // thứ tự trang lấy dữ liệu

“hierachicalData”: boolean?, // nếu HierachicalData=true thì mình sẽ lấy cả nhóm hàng con

- Response: 

“total”: int,

“pageSize”: int,

“pageIndex”: int,

“data”:  [

  {

                “id”: int, // ID nhóm hàng hóa

                "parentId”: int?, // Id của danh mục cha

                "name": string, // Tên nhóm hàng hóa

                “hasChild”: boolean?, // nhóm hàng có con hay không

                “modifiedDate”: datetime? // thời gian cập nhật

                “createdDate”: datetime

                “children”: []

   }],

  "timestamp": datetime

}

4. Lấy danh sách hàng hóa

Mô tả chi tiết cho các liên quan đến thông tin hàng hóa như sau:

- Mục đích sử dụng: Trả về toàn bộ hàng hóa theo cửa hàng đã được xác nhận (authenticated retailer)

- Phương thức và URL: GET http://api-integration-hotel.kiotviet.vn/public/product

- Request: Sử dụng hàm GET với tham số:

“pageSize”: int, // số items trong 1 trang, mặc định 20 items, tối đa 100 items 

“pageIndex”: int, // thứ tự trang lấy dữ liệu

“categoryId”: int, optional //Id nhóm hàng cần filter

"productTypes": int [] ,optional , //loại hàng hóa

 "IsActive": bool? //Hàng đang kinh doanh,

 "Name": string //search hàng hóa theo tên,code

Nếu có "productType", giá trị thuộc : 

  • 2: hàng hóa thường
  • 3: hàng hóa dịch vụ 

- Response: 

 “total”: int, // Tổng số hàng hóa

“pageSize”: int,

“data”: [{

    “id”: long, // ID hàng hóa

    “code”: string, // Code hàng hóa

    "allowsSale": Boolean, // Sản phẩm được bán trực tiếp hay không

   "name": string, // Tên sản phẩm

   "categoryId": long, // Id của nhóm hàng hóa

"categoryName": string, // Tên của nhóm hàng hóa

    “description”: string, // Mô tả sản phẩm

   "productAttributes": [

                   {

                   "id": long, // id của bảng

"attributeId": long, // id của attributeId

"productId": long,  // id của productid

"value": string, // giá trị thuộc tính

"createdDate": "2022-03-15T11:04:27.2770000"

                   }], // danh sách thuộc tính

  “unit”: string, // đơn vị tính của 1 sản phẩm,

   “productImages”: [{“Image”: string, // ảnh sản phẩm}],

                   “basePrice”: decimal?, // giá sản phẩm

  }],

5. Bảng giá

5.1. Lấy danh sách bảng giá

- Mục đích sử dụng: Trả về danh sách bảng giá

- Phương thức và URL: GET http://api-integration-hotel.kiotviet.vn/public/pricebook

- Request: Sử dụng hàm GET với tham số:

“includePriceBookBranch”: Boolean?, optional // Có lấy thông tin danh sách chi nhánh áp dụng bảng giá

“includePriceBookCustomerGroups”: Boolean?, optional // Có lấy thông tin danh sách nhóm KH áp dụng bảng giá

“includePriceBookUsers”: Boolean?, optional // Có lấy thông tin danh sách người dùng áp dụng bảng giá

“pageIndex”: int, // thứ tự trang lấy dữ liệu

“pageSize”: int?, // số items trong 1 trang, mặc định 50 items, tối đa 100 items

- Response: 

 {

“total”: int, tổng

“pageSize”: int, bao nhiêu dòng / 1 trang dữ liệu

“data”: [{

               “id”: long // id bảng giá

               “name”: string // tên bảng giá

               “isActive”: boolean // trạng thái hoạt động hay không

               “isGlobal”: boolean, // áp dụng cho tất cả chi nhánh

               “startDate”: datetime, // ngày bắt đầu áp dụng

               “endDate”: datetime, // ngày hết hạn

                  “forAllCusGroup”: boolean // áp dụng cho tất cả nhóm khách hàng

               “forAllUser”: boolean, // áp dụng cho tất cả user

               “priceBookBranches” ://

                [{

                                              “id”: long, //Id quan hệ bảng giá – chi nhánh

                                              “priceBookId”: long,//ID bảng giá

                                              “branchId”: long, //ID chi nhánh áp dụng

                               }],          

               “priceBookCustomerGroups” ://

               [{

                                              “customerGroupName”: string,

                                              “id”: long, //Id quan hệ bảng giá – nhóm khách hàng

                                              “priceBookId”: long,//ID bảng giá

                                              “customerGroupId”: long,//ID nhóm khách hàng

                               }],          

               “priceBookUsers” :[{

                                              “userName”: string,//Tên người dùng

                                              “id”: long, //Id quan hệ

                                              “priceBookId”: long, //ID bảng giá

                                              “userId”: long,//ID người dùng

                               }],          

   }]

}                                             

5.2. Lấy chi tiết bảng giá

- Mục đích sử dụng: Trả về thông tin chi tiết của bảng giá theo ID

- Phương thức và URL: 

“id”: long // ID của bảng giá

- Response: 

{

“total”: int,

“pageSize”: int, // số items trong 1 trang, mặc định 20 items, tối đa 100 items

“data”: [{

               “id”: long // id bảng giá

               “name”: string // tên bảng giá

               “isActive”: boolean // trạng thái hoạt động hay không

               “isGlobal”: boolean, // có phải là bảng giá chung không

               “startDate”: datetime, // ngày bắt đầu áp dụng

               “endDate”: datetime, // ngày hết hạn

                  “forAllCusGroup”: boolean // áp dụng cho tất cả nhóm khách hàng

               “forAllUser”: boolean, // áp dụng cho tất cả user

               “priceBookBranches” ://

                [{

                                              “id”: long, //Id quan hệ bảng giá – chi nhánh

                                              “priceBookId”: long,//ID bảng giá

                                              “branchId”: long, //ID chi nhánh áp dụng

               }],          

               “priceBookCustomerGroups” ://

               [{

                                              “customerGroupName”: string,

                                              “id”: long, //Id quan hệ bảng giá – nhóm khách hàng

                                              “priceBookId”: long,//ID bảng giá

                                              “customerGroupId”: long,//ID nhóm khách hàng

               }],          

               “priceBookUsers” :[{

                                              “userName”: string,//Tên người dùng

                                              “id”: long, //Id quan hệ

                                              “priceBookId”: long, //ID bảng giá

                                              “userId”: long,//ID người dùng

               }],

                “priceBookDetails” :[{

                                              “id”: long, //Id chi tiết bảng giá

                                              “priceBookId”: long, //ID bảng giá

                                              “productId”: long,//ID sản phẩm

                                                       “price”: decimal,// đơn giá

                                                       “priceBookVersion”: int?,// version bảng giá

                                                        “applyCondition” : {    // điều kiện áp dụng

                                                                            “Priority”: int // thứ tự ưu tiên

                                                                            “DayOfWeeks”: int [] // Ngày của tuần

                                                                            “Dates”: DateTime [] // Danh sách ngày áp dụng

                                                                 }

                                                      “priceSteps”:[{ // bước giá

                                                                               “fromThHour”: int // từ giờ thứ mấy

                                                                               “price”: decimal, // đơn giá

                                                                               “type”: int, // kiểu bước giá

                                                                              }]

               }],          

   }]}

6. Hóa đơn

6.1. Lấy danh sách hóa đơn

Mục đích sử dụng: Trả về danh sách hóa đơn

- Phương thức và URL: GET http://api-integration-hotel.kiotviet.vn/public/invoice

- Request: Sử dụng hàm GET với tham số:

“branchIds”: int[], optional // Lấy theo chi nhánh

“customerIds”: long[], optional // Id khách hàng

“status”: int[], optional // Theo trạng thái hóa đơn

“includePayment”: Boolean, optional // Có lấy thông tin thanh toán

“includeSaleChannel”: Boolean, optional // Có lấy thông tin kênh bán

“lastModifiedFrom”: Datetime, optional // Thời gian cập nhật

“toDate”: Datetime, optional // Thời gian cập nhật cho đến thời điểm toDate

“createdDate”: Datetime, optional // Thời gian tạo

“fromPurchaseDate”: Datetime, optional // Từ ngày giao dịch

“toPurchaseDate”: Datetime, optional // Đến ngày giao dịch

“pageIndex”: int, // thứ tự trang lấy dữ liệu

“pageSize”: int?, // số items trong 1 trang, mặc định 50 items, tối đa 100 items

- Response: 

{

“total”: int, tổng

“pageSize”: int, bao nhiêu dòng / 1 trang dữ liệu

“data”: [{

               “id”: long // id hóa đơn

               “code”: string // Mã hóa đơn

               “purchaseDate”: datetime// Ngày hóa đơn

               “branchId”: int, // Id chi nhánh

               “branchName”: string, // Tên chi nhánh

               “soldById”: long?, // Id thu ngân

               “soldByName”: string, // Tên thu ngân

               “customerId”: long?, // Id khách hàng

               “customerName”: string, // Tên khách hàng

               “customerCode”: string, // Mã khách hàng

               “total”: decimal, // Khách cần trả

               “totalPayment”: decimal, // Khách đã trả

               “status”: int, // Trạng thái hóa đơn

               “statusValue”: string, // Trạng thái hóa đơn bằng chữ

               “createdDate”: datetime, // Ngày tạo

               “modifiedDate”: datetime, // Ngày cập nhật

               “payments” :[{

                                              “id”: long,

                                              “code”: string,

                                              “amount”: decimal,

                                              “status”: byte?,

                                              “transDate”: datetime,

                                              “bankAccount”: string,

                                              “accountId”: int?,

                               }], // Thông tin thanh toán

               “invoiceOrderSurcharges” :[{

                                              “id”: long,

                                              “invoiceId”: long?,

                                              “surchargeId”: int?,

                                              “name”: string,

                                              “value”: decimal,

                                              “price”: decimal,

                                              “createdDate”: datetime,

                               }], // Thông tin thu khác

   }]

               “invoiceDetails” :[{

                                              “productId”: long,

                                              “productCode”: string,

                                              “productName”: string,

                                              “quantity”: float?,

                                              “price”: decimal?,

                                              “discountRatio”: float?,

                                              “discount”: decimal?,

                                              “note”: string,

                               }], // Chi tiết hóa đơn

   }]

               “saleChannels” :[{

                                              “id”: int,

                                              “name”: string,

                                              “isNotDelete”: bool?,

                                              “retailerId”: int?,

                                              “position”: int?,

                                              “isActive”: bool?,

                                              “createdBy”: long?,

                                              “createdDate”: datetime?,

                               }], // Thông tin kênh bán

   }]

}

6.2. Lấy chi tiết hóa đơn

- Mục đích sử dụng: Trả về chi tiết hóa đơn

- Phương thức và URL: 

GET http://api-integration-hotel.kiotviet.vn/public/invoice/{id}

- Request: Sử dụng hàm GET với tham số:

“id”: long, optional // Id của hóa đơn

- Response:

{

“total”: int, tổng

“pageSize”: int, bao nhiêu dòng / 1 trang dữ liệu

“data”: [{

               “id”: long // id hóa đơn

               “code”: string // Mã hóa đơn

               “purchaseDate”: datetime// Ngày hóa đơn

               “branchId”: int, // Id chi nhánh

               “branchName”: string, // Tên chi nhánh

               “soldById”: long?, // Id thu ngân

               “soldByName”: string, // Tên thu ngân

               “customerId”: long?, // Id khách hàng

               “customerName”: string, // Tên khách hàng

               “code”: string, // Mã khách hàng

               “total”: decimal, // Khách cần trả

               “totalPayment”: decimal, // Khách đã trả

               “status”: int, // Trạng thái hóa đơn

               “statusValue”: string, // Trạng thái hóa đơn bằng chữ

               “createdDate”: datetime, // Ngày tạo

               “modifiedDate”: datetime, // Ngày cập nhật

               “payments” :[{

                                              “id”: long,

                                              “code”: string,

                                              “amount”: decimal,

                                              “status”: byte?,

                                              “statusValue”: string,

                                              “transDate”: datetime,

                                              “bankAccount”: string,

                                              “accountId”: int?,

                               }], // Thông tin thanh toán

               “invoiceOrderSurcharges” :[{

                                              “id”: long,

                                              “invoiceId”: long?,

                                              “surchargeId”: int?,

                                              “name”: string,

                                              “value”: decimal,

                                              “price”: decimal,

                                              “createdDate”: datetime,

                               }], // Thông tin thu khác

   }]

               “invoiceDetails” :[{

                                              “productId”: long,

                                              “productCode”: string,

                                              “productName”: string,

                                              “quantity”: float?,

                                              “price”: decimal?,

                                              “discountRatio”: float?,

                                              “discount”: decimal?,

                                              “note”: string,

                               }], // Chi tiết hóa đơn

   }]

               “saleChannels” :[{

                                              “id”: int,

                                              “name”: string,

                                              “isNotDelete”: bool?,

                                              “retailerId”: int?,

                                              “position”: int?,

                                              “isActive”: bool?,

                                              “createdBy”: long?,

                                              “createdDate”: datetime?,

                               }], // Thông tin kênh bán

   }]

}

 7. Khách hàng

7.1. Lấy danh sách khách hàng

- Mục đích sử dụng: Trả về danh sách khách hàng

- Phương thức và URL:

GET http://api-integration-hotel.kiotviet.vn/public/customer

- Request: Sử dụng hàm GET với tham số:

“code”: string, optional // Lấy theo mã khách hàng

“name”: string, optional // Theo tên khách hàng

“includeCustomerGroup”: boolean?, optional // Lấy thông tin nhóm khách hàng hay không

“IncludeCustomerTotal”: boolean?, optional // Lấy tổng số tiền hóa đơn, tổng điểm hay không

“contactNumber”: string, optional // Theo số điện thoại của khách hàng

“birthDate”: datetime, optional // Lấy theo sinh nhật khách hàng

“lastModifiedFrom”: string, optional // Thời gian cập nhật

“groupId”: long, optional // Theo id nhóm khách hàng

“pageSize”: int?, // số items trong 1 trang, mặc định 50 items, tối đa 100 items

“pageIndex”: int, // thứ tự trang lấy dữ liệu

- Response:  

{

“total”: int, tổng

“pageSize”: int, bao nhiêu dòng / 1 trang dữ liệu

“data”: [{

               “id”: long // id khách hàng

               “code”: string // Mã khách hàng

               “name”: datetime// Tên khách hàng

               “gender”: Boolean?// Giới tính

               “birthDate”: datetime?, // Ngày sinh

               “contactNumber”: string// Số điện thoại

               “address”: string// Địa chỉ

               “locationName”: string, // Khu vực

               “wardName”: string, // Phường xã

               “email”: string// Email khách hàng

               “organization”: string// Công ty

               “comments”: string// Ghi chú

               “taxCode”: string// Mã số thuế

               “debt”: decimal, // Nợ hiện tại

               “totalInvoiced”: decimal?// Tổng bán

               “totalPoint”: double?// Tổng điểm

               “retailerId”: long?, // Id cửa hàng

               “createdDate”: datetime, // Ngày tạo

               “modifiedDate”: datetime, // Ngày cập nhật

               “rewardPoint”: long?// Điểm hiện tại

               “customerGroups” :[{

                                              “id”: long,

                                              “name”: string,

                                              “createdDate”: datetime,

                               }], // Thông tin nhóm khách hàng

}

 7.2. Lấy chi tiết khách hàng

- Mục đích sử dụng: Trả về chi tiết khách hàng

- Phương thức và URL: 

GET http://api-integration-hotel.kiotviet.vn/public/customer/{id}

- Request: Sử dụng hàm GET với tham số:

“id”: long, optional // Lấy theo mã khách hàng

“includeCustomerGroup”: boolean?, optional // Lấy thông tin nhóm khách hàng hay không

“includeCustomerTotalInvoiced”: boolean?, optional // Lấy tổng số tiền invoice hay không

- Response:

{

“data”: {

               “id”: long // id hóa đơn

               “code”: string // Mã hóa đơn

               “name”: datetime// Ngày hóa đơn

               “gender”: Boolean?// Giới tính

               “birthDate”: datetime?, // Ngày sinh

               “contactNumber”: string// Số điện thoại

               “address”: string// Địa chỉ

               “locationName”: string, // Khu vực

               “wardName”: string, // Phường xã

               “email”: string// Email khách hàng

               “organization”: string// Công ty

               “comments”: string// Ghi chú

               “taxCode”: string// Mã số thuế

               “debt”: decimal, // Nợ hiện tại

               “totalInvoiced”: decimal?// Tổng bán

               “totalPoint”: double?// Tổng điểm

               “retailerId”: long?, // Id cửa hàng

               “createdDate”: datetime, // Ngày tạo

               “modifiedDate”: datetime, // Ngày cập nhật

               “rewardPoint”: long?// Điểm hiện tại

               “customerGroups” :[{

                                              “id”: long,

                                              “name”: string,

                                              “createdDate”: datetime,

                               }], // Thông tin nhóm khách hàng

}               

}

 8. Hạng phòng

8.1. Lấy danh sách hạng phòng

- Mục đích sử dụng: Lấy về danh sách hạng phòng và số phòng trống của hạng phòng

- Phương thức và URL:

GET http://api-integration-hotel.kiotviet.vn/public/room-class

- Request: Sử dụng hàm GET với tham số:

“branchIds”: int[] , optional // Lấy theo chi nhánh

“startDate”: datetime, required // Thời gian nhận phòng

“endDate”: datetime, required // Thời gian trả phòng

“totalRoom”: int?, optional // Số lượng phòng trống

“pageSize”: int?, // số items trong 1 trang, mặc định 50 items, tối đa 100 items

“pageIndex”: int, // thứ tự trang lấy dữ liệu

- Response:

{

        "total": 1,

        "pageIndex": 1,

        "pageSize": 50,

        "data": [

            {

                "id": 120841,

                "retailerId": 602482,

                "branchId": 2560, // Id chi  nhánh

                "code": "HP000138", // mã hạng phòng

                "name": "Hạng phòng Luxury", // tên hạng phòng

                "description": "Mô tả", // Mô tả hạng phòng

                "createdDate": "2024-04-15T11:15:24.1200000", // ngày tạo

                "basePrice": 100000.0000, giá niêm yết

                "pricePerHour": 100000.0000, giá giờ

                "pricePerDay": 100000.0000, giá ngày

                "pricePerNight": 700000.0000, giá đêm

                "pricePerMonth": 0, giá tháng

                "roomClassAttribute": {

                    "id": 12944,

                    "standardChildren": 1, // số lượng trẻ em tiêu chuẩn

                    "standardAdult": 2,  // số lượng người lớn tiêu chuẩn

                    "maxChildren": 1,  // số lượng trẻ em tối đa

                    "maxAdult": 2  // số lượng người lớn tối đa

                },

                "productImages": [  // ảnh hạng phòng

                    {

                        "id": 12939,

                        "image": "https://d1k20gtjgkmqcd.cloudfront.net/mthu3/9eca86912b0748c1887cb25e17f393e5"

                    }

                ],

                "totalAvailableRoom": 15, // số lượng phòng trống

                “version”: // version thay đổi của hạng phòng

            }

        ]

    }

 8.2. Lấy chi tiết hạng phòng

- Mục đích sử dụng: Lấy về chi tiết hạng phòng và số lượng phòng trống

- Phương thức và URL: 

GET http://api-integration-hotel.kiotviet.vn/public/room-class/{id}

- Request: Sử dụng hàm GET với tham số:

“Id”: long, required // Id hạng phòng

“StartDate”: datetime, required // Thời gian nhận phòng

“EndDate”: datetime, required // Thời gian trả phòng

“TotalRoom”: int?, optional // Số lượng phòng trống

- Response:

{

                "id": 120841,

                "retailerId": 602482,

               "branchId": 2560, // Id chi  nhánh

                "code": "HP000138", // mã hạng phòng

                "name": "Hạng phòng Luxury", // tên hạng phòng

                "description": "Mô tả", // Mô tả hạng phòng

                "isActive": true, // đang kinh doanh

                "createdDate": "2024-04-15T11:15:24.1200000", // ngày tạo

                "basePrice": 100000.0000, giá niêm yết

                "pricePerHour": 100000.0000, giá giờ

                "pricePerDay": 100000.0000, giá ngày

                "pricePerNight": 700000.0000, giá đêm

                "pricePerMonth": 0, giá tháng

                "roomClassAttribute": {

                    "id": 12944,

                    "standardChildren": 1, // số lượng trẻ em tiêu chuẩn

                    "standardAdult": 2,  // số lượng người lớn tiêu chuẩn

                    "maxChildren": 1,  // số lượng trẻ em tối đa

                    "maxAdult": 2  // số lượng người lớn tối đa

                },

                "productImages": [  // ảnh hạng phòng

                    {

                        "id": 12939,

                        "image": "https://d1k20gtjgkmqcd.cloudfront.net/mthu3/9eca86912b0748c1887cb25e17f393e5"

                    }

                ],

                "totalAvailableRoom": 15, // số lượng phòng trống,

                “version”: // version thay đổi của hạng phòng

            }

9. Đặt phòng

9.1. Tạo đặt phòng

- Mục đích sử dụng: Tạo đặt phòng mới

- Phương thức và URL:

Post http://api-integration-hotel.kiotviet.vn/public/order

- Request: Sử dụng hàm Post với body: 

{

    "phone":"0349202944", // string(255) / required / sdt khách hàng

    "customerName": "Xuân Hùng", // string(255) / optional/ tên khách hàng

    "email":"xuanhung@gmail.com", // string(255) / optional/ email khách hàng

    "checkInTime":"2024-04-20 00:00:00", // datetime / required / Thời gian nhận phòng ( không có giây và nhỏ hơn thời gian trả) // nếu đặt phòng theo ngày và đêm thì không truyển giờ phút giây hệ thống sẽ lấy theo giờ cài đặt

    "checkOutTime":"2024-04-22 15:47:53" , // datetime / required / Thời gian nhận phòng ( không có giây và lớn hơn thời gian nhận) / nếu đặt phòng theo ngày và đêm thì không chuyển giờ phút giây  hệ thống sẽ lấy theo giờ cài đặt

    "counterType":1,  // int / required /  hình thức lưu trú (1: Giờ, 2: Ngày, 3: Đêm )

    "branchId":3498, // int / required /   Id chi nhánh

    "adultQuantity":1, //int / optional/ số lượng người lớn

    "childQuantity":1, //int / optional/ số lượng trẻ em

    "note":"Ghi chú đặt phòng", // string(1000) / optional/ ghi chú đặt phòng

    "roomClasses":[  // required / danh sách đặt phòng

        {

            "id":120841, // long / required /   Id hạng phòng

            "quantity":2, // int/ required/ số lượng phòng

            "price":"20000", // long/ required / giá hạng phòng

            "note":"Ghi chú chi tiết", // string(1000) / optional / ghi  chú hạng phòng

            "version":3 // int/ required / version hạng phòng

        }

    ],

  "payment":  // optional / tiền khách thanh toán

        {

            "method":”transfer”, // string/ required  (cash : Tiền mặt , card: Thẻ, transfer: “Chuyển khoản”)

            "amount":"20000", // long/ required / số tiền khách trả

        }

}

- Response: 

{

        "uuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

        "customerId": 63182,

        "purchaseDate": "2024-04-20T10:08:32.0000000", // thời gian thanh toán

        "code": "DP000805", // mã đặt phòng

        "branchId": 3498, // id chi nhánh

        "status": 1, // trạng thái đặt phòng  (1: đã đặt,2: hoàn thành, 3: đã hủy, 4: Chưa xác nhận)

        "modifiedDate": "2024-04-20T10:09:21.1000000", // ngày cập nhật

        "retailerId": 602482,

        "discount": 71100.0000, // tổng giảm giá

        "soldById": 24587, // nhân viên thanh toán

        "createdDate": "2024-04-20T10:09:15.0530000",  ngày tạo đặt phòng

        "createdBy": 11889, // người tạo đặt phòng

        "modifiedBy": 11889, // người chỉnh sửa đặt phòng

        "discountRatio": 10, // phần tram giảm giá

        "total": 710289.0000, // tổng tiền hóa đơn

        "totalPayment": 200000.0000, // số tiền khách đã thanh toán

        "surcharge": 70389.0000, // thu khác

        "saleChannelId": 602482, // kênh bán

        "originVersion": 15,

        "orderDetails": [

            {

                "uuid": "7c37cd98-da15-4408-ab57-bca6b73d9418", // uuid chi tiết đặt phòng

                "productId": 120843,  // id sản phẩm

                "quantity": 1, // số lượng

                "price": 700000.0000, // đơn giá

                "discount": 0.0000, // giảm giá

                "createdDate": "2024-04-20T10:09:17.8630000", // ngày tạo

                "discountRatio": 0, // phần tram giảm giá

                "modifiedDate": "2024-04-20T10:09:20.7870000", // ngày cập nhật

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926, // id phòng

                "checkInTime": "2024-04-20T10:09:00.0000000", // ngày nhận phòng

                "checkOutTime": "2024-04-20T11:00:00.0000000", // ngày trả phòng

                "status": 2, trạng thái chi tiết đặt phòng (1: Đã đặt, 2: Đã nhận phòng, 3: Đã trả phòng, 4: Đã hủy,5: Chưa xác nhận)

                "productType": 6 // loại sản phẩm (2: Hàng hóa, 3: Dịch vụ, 6: Hạng phòng, 7: Phu phí),

                "counterType": 3, // hình thức lưu trú (1: Giờ, 2: Ngày, 3: Đêm ,4: Tháng)

                "retailerId": 602482,

                "branchId": 3498, // Id Chi nhánh

                "basePrice": 700000.0000, // Giá niêm yết

                "subTotal": 700000 // Tổng thành tiền

            },

            {

                "productId": 120841,

                "quantity": 0,

                "price": 0.0000,

                "discount": 0.0000,

                "createdDate": "2024-04-20T10:09:18.6230000",

                "discountRatio": 0,

                "uuid": "86d77aeb-95b6-4090-bdc7-af27ae026ed6",

                "modifiedDate": "2024-04-20T10:09:20.5400000",

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926,

                "status": 0,

                "productType": 7,

                "counterType": 0,

                "retailerId": 602482,

                "branchId": 3498,

                "basePrice": 0.0000,

                "subTotal": 0,

                "parentUuid": "7c37cd98-da15-4408-ab57-bca6b73d9418",

                "extraFeeId": 8226

            },

            {

                "productId": 120841,

                "quantity": 0,

                "price": 0.0000,

                "discount": 0.0000,

                "createdDate": "2024-04-20T10:09:18.6230000",

                "discountRatio": 0,

                "uuid": "6bb035ce-8748-4a30-b68c-50dbc7056616",

                "modifiedDate": "2024-04-20T10:09:20.5430000",

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926,

                "status": 0,

                "productType": 7,

                "counterType": 0,

                "retailerId": 602482,

                "branchId": 3498,

                "basePrice": 0.0000,

                "subTotal": 0,

                "parentUuid": "7c37cd98-da15-4408-ab57-bca6b73d9418",

                "extraFeeId": 8225

            },

            {

                "productId": 120842,

                "quantity": 0,

                "price": 1000000.0000,

                "discount": 0.0000,

                "createdDate": "2024-04-20T10:09:18.8500000",

                "discountRatio": 0,

                "uuid": "51d5aa32-ad3c-4577-97a0-91ba872dccad",

                "modifiedDate": "2024-04-20T10:09:20.7870000",

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926,

                "checkInTime": "2024-04-20T10:09:00.0000000",

                "checkOutTime": "2024-04-20T10:09:00.0000000",

                "status": 2,

                "productType": 6,

                "counterType": 2,

                "retailerId": 602482,

                "branchId": 3498,

                "basePrice": 1000000.0000,

                "subTotal": 0,

                "parentUuid": "7c37cd98-da15-4408-ab57-bca6b73d9418"

            },

            {

                "productId": 120938,

                "quantity": 1,

                "price": 11000.0000,

                "discount": 0.0000,

                "createdDate": "2024-04-20T10:09:19.0600000",

                "discountRatio": 0,

                "uuid": "b79a0b5e-6841-488a-999a-09e73836aa4a",

                "modifiedDate": "2024-04-20T10:09:20.5430000",

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926,

                "status": 0,

                "productType": 3,

                "counterType": 0,

                "retailerId": 602482,

                "branchId": 3498,

                "basePrice": 11000.0000,

                "subTotal": 11000,

                "parentUuid": "7c37cd98-da15-4408-ab57-bca6b73d9418"

            }

        ],

        "orderAttachments": [  // danh sách file đính kèm

            {

                "id": 254,

                "attachmentUrl": "https://d1k20gtjgkmqcd.cloudfront.net/mthu3/OrderAttachments/1e91d0dc4c5d4fd6bed480a368fcd7a0_0e3a7188146b46d6a79e3d62bb38ced2",

                "fileName": "hi.xlsx",

                "createdDate": "2024-04-20T10:09:19.2630000"

            }

        ],

          “historyNote”: “Ghi chú”, // Ghi chú đặt phòng

        "isCompletedPayment": false, // đã hoàn thành thanh toán hay chưa?

        "adultQuantity": 1, // số lượng người lớn

        "childQuantity": 0, // số lượng trẻ em

        "subTotal": 711000.0000, // tổng thành tiền đặt phòng

        "discountValue": 71100.0000 // tổng tiền giảm giá

    }

 9.2. Lấy chi tiết đặt phòng

- Mục đích sử dụng: Lấy về chi tiết đặt phòng

- Phương thức và URL: 

GET http://api-integration-hotel.kiotviet.vn/public/order

- Request: Sử dụng hàm GET với tham số:

“uuid”: guid ?, optional // Lấy theo uuid

“code”: string, optional // Lấy theo mã đặt phòng

- Response:

{

        "uuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",  // uuid đặt phòng

        "customerId": 63182,

        "purchaseDate": "2024-04-20T10:08:32.0000000", // thời gian thanh toán

        "code": "DP000805", // mã đặt phòng

        "branchId": 3498, // id chi nhánh

        "status": 1, // trạng thái đặt phòng  (1: đã đặt,2: hoàn thành, 3: đã hủy, 4: Chưa xác nhận)

        "modifiedDate": "2024-04-20T10:09:21.1000000", // ngày cập nhật

        "retailerId": 602482,

        "discount": 71100.0000, // tổng giảm giá

        "soldById": 24587, // nhân viên thanh toán

        "createdDate": "2024-04-20T10:09:15.0530000",  ngày tạo đặt phòng

        "createdBy": 11889, // người tạo đặt phòng

        "modifiedBy": 11889, // người chỉnh sửa đặt phòng

        "discountRatio": 10, // phần tram giảm giá

        "total": 710289.0000, // tổng tiền hóa đơn

        "totalPayment": 200000.0000, // số tiền khách đã thanh toán

        "surcharge": 70389.0000, // thu khác

        "saleChannelId": 602482, // kênh bán

        "originVersion": 15,

        "orderDetails": [

            {

                "uuid": "7c37cd98-da15-4408-ab57-bca6b73d9418", // uuid chi tiết đặt phòng

                "productId": 120843,  // id sản phẩm

                "quantity": 1, // số lượng

                "price": 700000.0000, // đơn giá

                "discount": 0.0000, // giảm giá

                "createdDate": "2024-04-20T10:09:17.8630000", // ngày tạo

                "discountRatio": 0, // phần tram giảm giá

                "modifiedDate": "2024-04-20T10:09:20.7870000", // ngày cập nhật

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926, // id phòng

                "checkInTime": "2024-04-20T10:09:00.0000000", // ngày nhận phòng

                "checkOutTime": "2024-04-20T11:00:00.0000000", // ngày trả phòng

                "status": 2, trạng thái chi tiết đặt phòng (1: Đã đặt, 2: Đã nhận phòng, 3: Đã trả phòng, 4: Đã hủy,5: Chưa xác nhận)

                "productType": 6 // loại sản phẩm (2: Hàng hóa, 3: Dịch vụ, 6: Hạng phòng, 7: Phu phí),

                "counterType": 3, // hình thức lưu trú (1: Giờ, 2: Ngày, 3: Đêm ,4: Tháng)

                "retailerId": 602482,

                "branchId": 3498, // Id Chi nhánh

                "basePrice": 700000.0000, // Giá niêm yết

                "subTotal": 700000 // Tổng thành tiền

            },

            {

                "productId": 120841,

                "quantity": 0,

                "price": 0.0000,

                "discount": 0.0000,

                "createdDate": "2024-04-20T10:09:18.6230000",

                "discountRatio": 0,

                "uuid": "86d77aeb-95b6-4090-bdc7-af27ae026ed6",

                "modifiedDate": "2024-04-20T10:09:20.5400000",

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926,

                "status": 0,

                "productType": 7,

                "counterType": 0,

                "retailerId": 602482,

                "branchId": 3498,

                "basePrice": 0.0000,

                "subTotal": 0,

                "parentUuid": "7c37cd98-da15-4408-ab57-bca6b73d9418",

                "extraFeeId": 8226

            },

            {

                "productId": 120841,

                "quantity": 0,

                "price": 0.0000,

                "discount": 0.0000,

                "createdDate": "2024-04-20T10:09:18.6230000",

                "discountRatio": 0,

                "uuid": "6bb035ce-8748-4a30-b68c-50dbc7056616",

                "modifiedDate": "2024-04-20T10:09:20.5430000",

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926,

                "status": 0,

                "productType": 7,

                "counterType": 0,

                "retailerId": 602482,

                "branchId": 3498,

                "basePrice": 0.0000,

                "subTotal": 0,

                "parentUuid": "7c37cd98-da15-4408-ab57-bca6b73d9418",

                "extraFeeId": 8225

            },

            {

                "id": 219177,

                "orderId": 108633,

                "productId": 120842,

                "quantity": 0,

                "price": 1000000.0000,

                "discount": 0.0000,

                "createdDate": "2024-04-20T10:09:18.8500000",

                "discountRatio": 0,

                "uuid": "51d5aa32-ad3c-4577-97a0-91ba872dccad",

                "modifiedDate": "2024-04-20T10:09:20.7870000",

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926,

                "checkInTime": "2024-04-20T10:09:00.0000000",

                "checkOutTime": "2024-04-20T10:09:00.0000000",

                "status": 2,

                "productType": 6,

                "counterType": 2,

                "retailerId": 602482,

                "branchId": 3498,

                "basePrice": 1000000.0000,

                "subTotal": 0,

                "parentUuid": "7c37cd98-da15-4408-ab57-bca6b73d9418"

            },

            {

                "productId": 120938,

                "quantity": 1,

                "price": 11000.0000,

                "discount": 0.0000,

                "createdDate": "2024-04-20T10:09:19.0600000",

                "discountRatio": 0,

                "uuid": "b79a0b5e-6841-488a-999a-09e73836aa4a",

                "modifiedDate": "2024-04-20T10:09:20.5430000",

                "orderUuid": "1e91d0dc-4c5d-4fd6-bed4-80a368fcd7a0",

                "isDeleted": false,

                "roomId": 52926,

                "status": 0,

                "productType": 3,

                "counterType": 0,

                "retailerId": 602482,

                "branchId": 3498,

                "basePrice": 11000.0000,

                "subTotal": 11000,

                "parentUuid": "7c37cd98-da15-4408-ab57-bca6b73d9418"

            }

        ],

        "orderAttachments": [  // danh sách file đính kèm

            {

                "id": 254,

                "attachmentUrl": "https://d1k20gtjgkmqcd.cloudfront.net/mthu3/OrderAttachments/1e91d0dc4c5d4fd6bed480a368fcd7a0_0e3a7188146b46d6a79e3d62bb38ced2",

                "fileName": "hi.xlsx",

                "createdDate": "2024-04-20T10:09:19.2630000"

            }

        ],

          “historyNote”: “Ghi chú”, // Ghi chú đặt phòng

        "isCompletedPayment": false, // đã hoàn thành thanh toán hay chưa?

        "adultQuantity": 1, // số lượng người lớn

        "childQuantity": 0, // số lượng trẻ em

          "subTotal": 711000.0000, // tổng thành tiền đặt phòng

        "discountValue": 71100.0000 // tổng tiền giảm giá

    }

 

Như vậy, KiotViet đã thực hiện xong phần hướng dẫn sử dụng Public API.

Mọi thắc mắc xin liên hệ tổng đài tư vấn bán hàng 1800 6162, tổng đài hỗ trợ phần mềm 1900 6522 hoặc email cho chúng tôi tại địa chỉ: hotro@kiotviet.com để được hỗ trợ và giải đáp.

Chúc Quý khách thành công!

Tài liệu được cập nhật mới nhất ngày 14/05/2024

 

KiotViet - Phần mềm quản lý bán hàng phổ biến nhất

  • Với 300.000 nhà kinh doanh sử dụng
  • Chỉ từ: 6.000đ/ ngày

Hãy để KiotViet đồng hành kinh doanh cùng bạn

Hotline

Tư vấn bán hàng: 1800 6162 Chăm sóc khách hàng: 1900 6522 Hoạt động 365 ngày/năm từ 7:00 đến 22:00 kể cả ngày nghỉ, lễ tết.

KiotViet Fanpage

Luôn trả lời các thông tin nhanh nhất thông qua các phản hồi trên Facebook.

Kênh hỗ trợ Youtube

Luôn cập nhật các kiến thức sử dụng phần mềm tức thời, trực quan giúp người dùng sử dụng được KiotViet dễ dàng và hiệu quả nhất.

Chat trên web & mobile

Luôn có người trực chat để trả lời câu hỏi của các bạn nhanh và hiệu quả nhất suốt 365 ngày/năm.