# Webhook - Đồng bộ ACheckin với hệ thống quản lý có sẵn của Doanh nghiệp

## Webhook là gì?

Hiện nay, webhook là khái niệm rất phổ biến ở các hệ thống cho phép đồng bộ dữ liệu liên tục thông qua các hệ thống mà không cần mất công gọi qua gọi lại các API để lấy dữ liệu.

Nhận thấy các doanh nghiệp có nhu cầu cao về việc sử dụng webhook cho việc đồng bộ dữ liệu sang hệ thống của mình khi sử dụng ACheckin. Chính vì vậy, hệ thống ACheckin mở chức năng webhook cho phép các doanh nghiệp đấu nối thông qua việc cấu hình trực tiếp trên CMS vận hành Workspace.

## Mô tả luồng hoạt động của Webhook ACheckin

![](https://lh5.googleusercontent.com/GfeuVIlKP9twe4etRmdqlLNr-we8WcpAgNY2dD4VXk2hQrlTyZxvcfdkMhzymrXMZJEJ3_c2AGgdXSVsOf3s4naJSl16340PNz-kJThFf4zfwzcxfYhP6wJaPDDXoVrHl-xFlZ3T)

## Bật cấu hình Webhook trên CMS ACheckin

{% hint style="info" %}
Vị trí: CMS -> Nhà phát triển -> Webhook -> Chọn Thêm
{% endhint %}

![HÌnh 1: Danh sách Webhook](/files/-MYOeQSlmCpgMUWdhDww)

### Thêm Webhook

![Hình 2: Thêm Webhook](/files/-MYOenqS05tB2NDu_E2S)

* Tên Webhook (bắt buộc): đặt tên webhook&#x20;
* API URL (bắt buộc): địa chỉ API mà hệ thống ACheckin sẽ gọi tới sau khi cấu hình xong
* API Key: chìa khóa mã nguồn để xác thực giữa hệ thống của doanh nghiệp và hệ thống ACheckin
* Permissions:  danh sách các trường dữ liệu sẽ đẩy sang hệ thống doanh nghiệp. Nếu không chọn thì khi truyền sang sẽ là Không xác định
* Triggers: Action mà doanh nghiệp muốn đẩy dữ liệu sang

Chọn "**Đồng ý**" để lưu Webhook

### Sửa/Xóa Webhook

![Hình 3](/files/-MYOksA1qqX7mABiOxEU)

* Chọn button như hình 4 để sửa thông tin Webhook

![Hình 4](/files/-MYOl-VpVcpbR4dhPuGN)

* Chọn button như hình 5 để xóa Webhook đã lưu

![HÌnh 5](/files/-MYOlTxhVVYSP9_kMHK_)

## Mô tả API Webhook

### Webhook Checkin

* **Phương thức: POST**
* **Timeout: 5s**
* **Header**

| **Tham số**        | **Bắt buộc** | **Mô tả**                                                                                                                                                               | **Kiểu dữ liệu** |
| ------------------ | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- |
| **X-API-KEY**      | **không**    | **Là trường API Key khi tạo webhook. Nếu doanh nghiệp có cấu hình API Key thì khi truyền dữ liệu sang vui lòng check API Key trùng trước khi xử lý các bước tiếp theo** | **String**       |
| **X-WEBHOOK-TYPE** | **Có**       | **Kiểu webhook: CHECKIN hoặc JOIN\_EVENT (sự kiện)**                                                                                                                    | **String**       |

* **Tham Số**

| **Tham số**              | **Bắt buộc** | **Mô tả**                                                               | **Kiểu dữ liệu** |
| ------------------------ | ------------ | ----------------------------------------------------------------------- | ---------------- |
| **user\_id**             | **có**       | **Id của nhân viên trong hệ thống ACheckin**                            | **string**       |
| **sex**                  | **có**       | **Giới tính của nhân viên. MALE hoặc FEMALE**                           | **string**       |
| **phone\_number**        | **không**    | **Số điện thoại của nhân viên**                                         | **string**       |
| **email**                | **không**    | **Email của nhân viên**                                                 | **string**       |
| **company\_id**          | **không**    | **Id công ty của nhân viên trong hệ thống ACheckin**                    | **string**       |
| **office\_location**     | **không**    | **Vị trí văn phòng của nhân viên**                                      | **string**       |
| **workspace\_id**        | **có**       | **Id của workspace trong hệ thống ACheckin**                            | **string**       |
| **machine\_id**          | **không**    | **Id của máy checkin khi nhân viên checkin**                            | **string**       |
| **name**                 | **có**       | **Tên nhân viên**                                                       | **string**       |
| **avatar**               | **có**       | **Ảnh đại diện của nhân viên**                                          | **string**       |
| **checkin\_timestamp**   | **có**       | **Thời gian checkin của nhân viên. Dạng: time unix millisecond**        | **number**       |
| **working\_group**       | **không**    |                                                                         | **object**       |
| **working\_group.begin** | **không**    | **Thời gian bắt đầu ca. Chỉ đẩy sang khi lần đầu checkin. Dạng: HHmm**  | **number**       |
| **working\_group.end**   | **không**    | **Thời gian kết thúc ca. Chỉ đẩy sang khi lần đầu checkin. Dạng: HHmm** | **number**       |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.acheckin.vn/mo-rong/webhook.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
