# Tạo đơn hàng

## Địa chỉ người nhận

* Đối với địa chỉ có cấu trúc 3 cấp (Tỉnh/thành, quận/huyện, phường/xã theo cấu trúc địa giới Việt Nam trước ngày 01.07.2025) truyền thông tin như sau:
  * ReceiverProvinceName: tên tỉnh/thành người nhận.
  * ReceiverDistrictName: tên quận/huyện người nhận.
  * ReceiverWardName: tên phường/xã người nhận.
* Đối với địa chỉ có cấu trúc 2 cấp (Tỉnh/thành, phường/xã theo cấu trúc địa giới Việt Nam từ ngày 01.07.2025) truyền thông tin như sau:
  * ReceiverProvinceName: tên tỉnh/thành người nhận.
  * <mark style="color:red;">ReceiverDistrictName: không truyền.</mark>
  * ReceiverWardName: tên phường/xã người nhận.

## CustomerAPICreateOrder

<mark style="color:green;">`POST:`</mark>`/Api/Customer/CustomerAPICreateOrder`

**Headers**

| Name     | Value                |
| -------- | -------------------- |
| ClientID | Lấy từ api đăng nhập |
| Token    | Lấy từ api đăng nhập |

**Body**

<table><thead><tr><th width="231">Name</th><th width="97">Type</th><th>Description</th></tr></thead><tbody><tr><td>ClientHubID</td><td>number</td><td>Mã địa chỉ khách hàng (Bắt buộc khi không truyền CusWareHouseID và KH có địa chỉ gửi cố định)</td></tr><tr><td>CusWareHouseID</td><td>string</td><td>Mã kho/shop (Bắt buộc khi không truyền ClientHubID và KH có địa chỉ gửi cố định)</td></tr><tr><td>ContactName</td><td>string</td><td>Tên người liên hệ gửi hàng</td></tr><tr><td>ContactPhone</td><td>string</td><td>SĐT người liên hệ gửi hàng (bắt buộc khi KH có địa chỉ gửi không cố định)</td></tr><tr><td>DirectSenderName</td><td>string</td><td>Người đi gửi Thư/Hàng (bắt buộc khi KH có địa chỉ gửi không cố định)</td></tr><tr><td>SenderAddress</td><td>string</td><td>Địa chỉ đầy đủ người gửi, bao gồm: số nhà, tên đường, tên xã, tên huyện, tên tỉnh. (bắt buộc khi KH có địa chỉ gửi không cố định)</td></tr><tr><td>ReceiverPhone<mark style="color:red;">*</mark></td><td>string</td><td>Số điện thoại người nhận</td></tr><tr><td>ReceiverName</td><td>string</td><td>Tên người nhận</td></tr><tr><td>ReceiverAddress<mark style="color:red;">*</mark></td><td>string</td><td>Địa chỉ đầy đủ của người nhận (Cấu trúc địa chỉ 3 cấp: số nhà, tên đường, tên xã, tên huyện, tên tỉnh/ Cấu trúc địa chỉ 2 cấp: Số nhà, tên đường, tên xã, tên tỉnh)</td></tr><tr><td>ReceiverProvinceName<mark style="color:red;">*</mark></td><td>string</td><td>Tên Tỉnh/Thành phố người nhận</td></tr><tr><td>ReceiverDistrictName<mark style="color:red;">*</mark></td><td>string</td><td>Tên Quận/Huyện người nhận (null nếu sử dụng địa chỉ 2 cấp Tỉnh/thành phố, Phường/xã)</td></tr><tr><td>ReceiverWardName</td><td>string</td><td>Tên Phường/Xã người nhận</td></tr><tr><td>ReceiveCompanyName</td><td>string</td><td>Công ty nhận</td></tr><tr><td>RealWeight</td><td>number</td><td>Trọng lượng thực tế (kg)</td></tr><tr><td>Length</td><td>number</td><td>Chiều dài (cm)</td></tr><tr><td>Width</td><td>number</td><td>Chiều rộng (cm)</td></tr><tr><td>Height</td><td>number</td><td>Chiều cao (cm)</td></tr><tr><td>Quantity</td><td>number</td><td>Số lượng kiện</td></tr><tr><td>Note</td><td>string</td><td>Ghi chú</td></tr><tr><td>ServiceTypeID<mark style="color:red;">*</mark></td><td>string</td><td>Mã dịch vụ</td></tr><tr><td>MailerType</td><td>string</td><td>Mã loại hàng hóa vận chuyển: HH - Hàng hóa. TL - Tài liệu.</td></tr><tr><td>CODAmount</td><td>number</td><td>Tiền thu người nhận</td></tr><tr><td>ExternalCode</td><td>string</td><td>Mã vận đơn khách hàng</td></tr><tr><td>ReferenceCode</td><td>string</td><td>Mã tham chiếu khách hàng</td></tr><tr><td>SpecialInstructionId</td><td>number</td><td>Mã ghi chú đặc biệt chỉ đối với đơn hàng COD: 1 - Cho xem hàng. 0 - Không cho xem hàng.</td></tr><tr><td>InformFee</td><td>string</td><td>Giá trị kê khai. Các trường hợp lưu ý khi kê khai: 1 - Trọng lượng tính giá >= 2.5kg bắt buộc chọn Loại hình = HH(hàng hóa) 2 - Loại hình = HH bắt buộc nhập giá trị kê khai 3 - Đơn chọn DVBH (Dịch vụ bảo hiểm) thì bắt buộc nhập giá trị kê khai.</td></tr><tr><td>ExtraServices</td><td>array</td><td>Danh sách các dịch vụ gia tăng</td></tr><tr><td>Packages</td><td>array</td><td><pre class="language-json" data-overflow="wrap"><code class="lang-json">{
    "PackageID": "", //Mã kiện,
    "Length": 100, // Kích thước (Dài - bắt buộc khi có nhập Rộng, Cao)(cm),
    "Width": 50, // Kích thước (Rộng - bắt buộc khi có nhập Dài, Cao)(cm),
    "Height": 80,// Kích thước (Cao - Bắt buộc khi có nhập Dài, Rộng)(cm),
    "RealWeight": 25// Trọng lượng thực của kiện (kg)
}
</code></pre><p>(*)Số lượng Packages phải khớp với Quantity. Trường hợp Quantity = 1 thì Packages = []</p></td></tr><tr><td>COPAmt</td><td>number</td><td>Tiền COP (Cash on pickup)</td></tr><tr><td>RequestedDeliveryTime</td><td>DateTime</td><td>Thời gian hẹn phát (*chỉ áp dụng cho các DVGT có hẹn giờ phát)</td></tr><tr><td>RequestedDeliveryType</td><td>string</td><td>Loại hẹn phát:<br>"DUNGGIO" : Đúng giờ<br>"TRUOCGIO" : Trước giờ<br>(*chỉ áp dụng cho các DVGT có hẹn giờ phát)</td></tr></tbody></table>

**Response**

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

```json
{
    "Errors": [],
    "ErrorCode": "0",
    "OrderInfo": {
        "OrderCode": "HD000003",
        "ReferenceCode": "HD000003",
        "ExternalCode": "HD000003",
        "TotalServiceCost": 44176,
        "ExtraServices": [
            {
                "ServiceName": "Chuyển phát nhanh",
                "ServiceID": "DE",
                "Cost": 16800
            },
            {
                "ServiceName": "Hàng đông lạnh",
                "ServiceID": "HDL",
                "Cost": 15000
            },
            {
                "ServiceName": "Báo phát",
                "ServiceID": "BP",
                "Cost": 5000
            },
            {
                "ServiceName": "Phí xăng dầu",
                "ServiceID": "Fuel",
                "Cost": 3360
            },
            {
                "ServiceName": "Phí VAT",
                "ServiceID": "VAT",
                "Cost": 4016
            }
        ],
        "DeliveryType": "1"
    },
    "ErrorMessage": ""
}
```

{% endtab %}

{% tab title="401" %}

```json
{
    "IsError": true,
    "ErrorMessage": "Bạn cần đăng nhập để truy cập chức năng này."
}
```

{% endtab %}
{% endtabs %}

| Name             | Type         | Description                                                             |
| ---------------- | ------------ | ----------------------------------------------------------------------- |
| Errors           | array object | Mảng các lỗi trả về                                                     |
| ErrorCode        | string       | Mã lỗi                                                                  |
| ErrorMessage     | string       | Thông báo lỗi                                                           |
| **OrderInfo**    | object       | Thông tin đơn hàng tạo thành công                                       |
| OrderCode        | string       | Mã đơn hàng                                                             |
| ReferenceCode    | string       | Mã tham chiếu khách hàng                                                |
| ExternalCode     | string       | Mã đơn hàng khách hàng                                                  |
| TotalServiceCost | number       | Tổng phí                                                                |
| **ExtraService** | array object | Danh sách các dịch vụ của đơn hàng                                      |
| ServiceName      | string       | Tên dịch vụ                                                             |
| ServiceID        | string       | Mã dịch vụ                                                              |
| Cost             | number       | Phí dịch vụ                                                             |
| DeliveryTimeType | string       | <p>Đơn vị thực hiện phát:<br>"1" - 247 phát<br>"2" - Bên thứ 3 phát</p> |

### Mẫu ví dụ

```json5
{
   "OrderInfo":{
      "ClientHubID":11583,
      "CusWareHouseID":"30984",
      "ContactName": "Trần Văn B",
      "ContactPhone": "0332318317",
      "DirectSenderName": "Nguyễn Văn A",
      "SenderAddress": "145/6C Trần Bá Giao, Phường 5, Gò Vấp, HCM",      
      "ReceiverPhone":"0345555777",
      "ReceiverName":"Trương Chí Nhân",
      "ReceiverAddress":"326 Võ Văn Kiệt, phường Cầu Ông Lãnh, Hồ Chí Minh, Việt Nam",
      "ReceiverProvinceName":"Hồ Chí Minh",
      "ReceiverDistrictName": null,
      "ReceiverWardName":"Phường Cầu Ông Lãnh",   
      "RealWeight":1,
      "Length":0,
      "Width":0,
      "Height":0,
      "Quantity":1,
      "Note":"Tài liệu",
      "ServiceTypeID":"DE",
      "MailerType":"TL",
      "CODAmount":0,
      "ExternalCode":"HD000003",
      "ReferenceCode": "HD000003",
      "SpecialInstructionId":1,
      "ExtraServices":[
         {
            "ServiceID":"PTN",
            "Type":2
         },
         {
            "ServiceID":"BP",
            "Type":2
         }
      ]
   }
}
```

### Thông tin mã lỗi

{% hint style="danger" %}

* 1: Thông tin Phường/Xã không chính xác
* 2: Thông tin Quận/Huyện không chính xác
* 3: Thông tin Tỉnh/Thành không chính xác
* 4: Trùng mã đơn hàng
* 5: Server error
* 6: Có lỗi xảy ra trong quá trình xử lý
* 9: Lỗi chưa cập nhật ghi chú đặc biệt
* 10: Lỗi chưa truyền dịch vụ
* 11: Địa chỉ gửi hàng không hợp lệ
* 12: Tài khoản khách hàng không hợp lệ
* 15: Chưa truyền mã đơn hàng
* 16: Đơn hàng không hợp lệ
* 17: Địa chỉ người nhận không hợp lệ
* 18: Mã loại hàng hóa vận chuyển không hợp lệ
* 19: Số lượng kiện không hợp lệ
* 20: Chi tiết kiện không hợp lệ
* 21: Thông tin người gửi chưa đầy đủ
* 25: Tiền COP không hợp lệ
  {% endhint %}


---

# 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://apidoc.247express.vn/customer/tao-don-hang.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.
