# Quản lý doanh nghiệp

## Tạo doanh nghiệp

<mark style="color:green;">`POST`</mark> `[URL]/api/partner/tenant/add`

Tạo doanh nghiệp đối tác\
Sau khi tạo doanh nghiệp xong, sẽ mất khoảng **3 - 10s** để kích hoạt xong doanh nghiệp và khởi tạo dữ liệu ban đầu

#### Headers

| Name          | Type   | Description                          |
| ------------- | ------ | ------------------------------------ |
| Authorization | string | Bearer Access Token : Bearer 'token' |

#### Request Body

| Name         | Type    | Description                                                      |
| ------------ | ------- | ---------------------------------------------------------------- |
| email        | string  | Email chủ doanh nghiệp                                           |
| password     | string  | Mật khẩu. Bao gồm 8 ký tự (In hoa, thường, số và ký tự đặc biệt) |
| fullName     | string  | Tên doanh nghiệp (Nhỏ hơn 255 ký tự)                             |
| ownerName    | string  | Tên chủ doanh nghiệp (Nhỏ hơn 255 ký tự)                         |
| phone        | string  | Số điện thoại chủ doanh nghiệp                                   |
| isAutoActive | boolean | Tự động kích hoạt tài khoản hoặc không                           |

{% tabs %}
{% tab title="200 Tạo doanh nghiệp thành công" %}

```
{
    "status_code": 9999,
    "instance_id": "stg",
    "instance_name": "DESKTOP-1OB3SFM",
    "payload": {
        "id": "5f59784273227343222243" // ID doanh nghiệp
    },
    "key_enabled": false
}
```

{% endtab %}
{% endtabs %}

**Mã lỗi khi tạo doanh nghiệp**

| Mã lỗi                      | Mô tả                                                                                     |
| --------------------------- | ----------------------------------------------------------------------------------------- |
| partner\_invalid            | Access token không phải của đối tác                                                       |
| tenant\_invalid             | Access token không phải của đối tác                                                       |
| body\_request\_is\_required | Thiếu request body                                                                        |
| request\_invalid            | Các dữ liệu bắt buộc không được nhập hoặc nhập không hợp lệ                               |
| email\_invalid              | Email không hợp lệ                                                                        |
| password\_invalid           | <p>Mật khẩu không hợp lệ</p><p>Mật khẩu bao gồm (In hoa, thường, số , ký tự đặc biệt)</p> |
| email\_registered           | Email này đã được đăng ký với 1 chủ doanh nghiệp trước đó                                 |
| create\_tenant\_error       | Tạo doanh nghiệp bị lỗi                                                                   |

## Danh sách doanh nghiệp

<mark style="color:green;">`POST`</mark> `[URL]/api/partner/tenant/list`

Danh sách doanh nghiệp thuộc đối tác

#### Query Parameters

| Name | Type    | Description                  |
| ---- | ------- | ---------------------------- |
| size | number  | Kích thước trang             |
| page | integer | Trang tìm kiếm, bắt đầu từ 1 |

#### Headers

| Name          | Type   | Description                   |
| ------------- | ------ | ----------------------------- |
| Authorization | string | Access token : Bearer 'token' |

#### Request Body

| Name    | Type   | Description                                              |
| ------- | ------ | -------------------------------------------------------- |
| keyword | string | <p>Từ khóa tìm kiếm<br>- Tên doanh nghiệp<br>- Email</p> |

{% tabs %}
{% tab title="200 " %}

```
```

{% endtab %}
{% endtabs %}

## Chi tiết doanh nghiệp thuộc đối tác

<mark style="color:blue;">`GET`</mark> `[URL]/api/partner/tenant/info?id=`

Thông tin chi tiết doanh nghiệp thuộc đối tác

#### Query Parameters

| Name | Type   | Description                          |
| ---- | ------ | ------------------------------------ |
| id   | string | id của doanh nghiệp (**tenant\_id**) |

#### Headers

| Name          | Type   | Description                   |
| ------------- | ------ | ----------------------------- |
| Authorization | string | Access token : Bearer 'token' |

{% tabs %}
{% tab title="200 " %}

```
{
    "status_code": 9999,
    "instance_id": "stg",
    "instance_name": "DESKTOP-1OB3SFM",
    "payload": {
        "full_name": "Omi Team",
        "email": "support@omicrm.com",
        "description": "Nâng cao trải nghiệm khách hàng, lấy sự hài lòng của khách hàng làm tiêu chí phấn đấu của doanh nghiệp",
        "enabled": true, //Đang hoạt động hoặc ngưng hoạt động
        "domain": "omiteam", // Tên miền truy cập OMI
        "domain_fusion": "omiteam", // Tên miền tổng đài
        "domain_expire": 1584606068154, // Ngày hết hạn domain
        "effective_date": 1583396482840, // Ngày kích hoạt
        "expire_date": 1614936981790, // Ngày hết hạn
        "phone": "0844441900", // SĐT chủ doanh nghiệp
        "status": "activated", // Trạng thái: Đã kích hoạt / Chưa kích hoạt
        "paid_type": "prepaid", // Hình thức thanh toán : prepaid : Trả trước, postpaid : Trả sau
        "nation": "vn", // Quốc gia
        "currency": "VND", // Tiền tệ
        "language": "vi", // Ngôn ngữ
        "balance": 3007855, // Số dư tài khoản
        "api_key": "K343KDK9-2I34K3K-3I33K3-2222" // Api key của doanh nghiệp
        "public_numbers": [
            {
                "number": "842877788056", // Số hotline
                "provider": "itel", // Nhà mạng
                "expire_date": 1602731734809, //Ngày hết hạn số
                "status": "active" // Tình trạng số
            }
        ],
        "service_package": {
            "code_name": "trial", // Mã gói
            "service_name": "Trial", // Tên gói
            "staff_num": 5, // Số lượng nhân viên
            "customer_num": 100, // Số lượng khách hàng
            "expiry_date": 1606300035002, // Ngày gói hết hạn
            "cashback" : 2092202 // Số tiền hoàn lại nếu khách hàng lên gói cao hơn
        }
    },
    "key_enabled": false
}
```

{% endtab %}
{% endtabs %}

## Nạp tiền

<mark style="color:green;">`POST`</mark> `[URL]/api/partner/tenant/update_balance`

Nạp tiền cho doanh nghiệp thông qua email

#### Headers

| Name          | Type   | Description                           |
| ------------- | ------ | ------------------------------------- |
| Authorization | string | Access token : Bearer 'partner token' |

#### Request Body

| Name        | Type   | Description                                                        |
| ----------- | ------ | ------------------------------------------------------------------ |
| email       | string | Email chủ doanh nghiệp                                             |
| amount      | number | Số tiền (lớn hơn 10,000 VNĐ)                                       |
| description | string | Nội dung  nạp tiền (lớn hơn 50 ký tự)                              |
| wallet      | string | <p>Loại ví: <br>- "SPK": ví dịch vụ<br>- "NORMAL"; "": ví cước</p> |

{% tabs %}
{% tab title="200 Nạp tiền thành công" %}

```
```

{% endtab %}
{% endtabs %}

#### THÔNG BÁO LỖI KHI NẠP TIỀN

| Mã                                             | Mô tả                        |
| ---------------------------------------------- | ---------------------------- |
| access\_denied                                 | Nạp tiền bị từ chối          |
| amount\_gte\_10.000\_vnd                       | Số tiền tối thiểu 10,000 VNĐ |
| description\_is\_required                      | Mô tả là bắt buộc            |
| description\_is\_to\_short.gte\_50\_characters | Mô tả phải lớn 50 ký tự      |


---

# 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://api.omicall.com/partner/tenant.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.
