Tạo xe
Lưu một xe vào đội xe của tổ chức (xe này cũng hiển thị trong ứng dụng).
Các trường và quy tắc truy cập giống một xe trong /v1/pack, được kiểm tra theo giới hạn kích thước và tải trọng của ứng dụng cho từng loại xe. Miễn phí: không trừ credit.
Xác thực
Tham số body
application/jsontypestringbắt buộcLoại xe. Chỉ chấp nhận các loại được liệt kê trong GET /v1/limits (allowed_vehicle_types).
trucktrailerflatbedcontainerpalletaircraftshipnamestringbắt buộcTên hiển thị.
lengthnumber · cmbắt buộcChiều dài bên trong khoang chở hàng, theo trục x (từ vách trước về phía cửa).
widthnumber · cmbắt buộcChiều rộng bên trong khoang chở hàng, theo trục z.
heightnumber · cmbắt buộcChiều cao bên trong khoang chở hàng, theo trục y.
max_weightnumber · kgbắt buộcTải trọng tối đa.
floor_load_capacitynumber · kg/m²Tải trọng sàn: từ 0 trở lên (0 = không giới hạn).
aux_deckbooleanXe có sàn thứ hai (xe hai tầng).
falseaux_deck_heightnumber · cmĐộ cao của sàn thứ hai so với sàn xe. Bắt buộc khi aux_deck là true.
aux_deck_max_weightnumber · kgGiới hạn tải của sàn thứ hai. Bắt buộc khi aux_deck là true.
blocked_areasRect[]Các vùng sàn không được đặt gì lên (hốc bánh xe, chỗ hư hỏng, khoảng trống dành riêng). Mỗi vùng phải nằm trên sàn xe.
xnumber · cmbắt buộcKhoảng cách từ vách trước đến cạnh gần của hình chữ nhật.
znumber · cmbắt buộcKhoảng cách từ vách phải (z = 0; bên phải khi đứng ở cửa nhìn vào) đến cạnh gần của hình chữ nhật.
lengthnumber · cmbắt buộcKích thước theo trục x.
widthnumber · cmbắt buộcKích thước theo trục z.
axle_positionsCần được cấp quyềnnumber[] · cmVị trí các trục (điểm đỡ) tính từ đầu khoang chở hàng; số âm = phía trước khoang. Cùng độ dài với axle_max_loads. Mỗi giá trị nằm trong khoảng từ −300 (trục ở phía trước khoang chở hàng, ví dụ trục trước nằm dưới cabin của xe tải thùng) đến chiều dài xe.
axle_max_loadsCần được cấp quyềnnumber[] · kgTải trọng hàng tối đa trên mỗi trục, theo thứ tự của axle_positions. Mỗi giá trị lớn hơn 0 và không vượt quá 100000.
cog_range_xCần được cấp quyềnnumber · cmĐộ lệch trọng tâm cho phép so với điểm giữa chiều dài: từ 0 đến length / 2.
cog_range_yCần được cấp quyềnnumber · cmĐộ lệch trọng tâm cho phép so với điểm giữa chiều rộng: từ 0 đến width / 2.
tractor_weightCần được cấp quyềnnumber · kgMô hình trục sơ mi rơ moóc: khối lượng đầu kéo.
empty_trailer_weightCần được cấp quyềnnumber · kgMô hình trục sơ mi rơ moóc: khối lượng rơ moóc không tải.
front_axle_to_middle_axleCần được cấp quyềnnumber · cmMô hình trục sơ mi rơ moóc: từ trục trước của đầu kéo đến trục dẫn động (trục giữa).
front_axle_to_tractor_cogCần được cấp quyềnnumber · cmMô hình trục sơ mi rơ moóc: từ trục trước đến trọng tâm đầu kéo.
front_axle_to_kingpinCần được cấp quyềnnumber · cmMô hình trục sơ mi rơ moóc: từ trục trước đến chốt kéo (mâm kéo).
kingpin_to_rear_axleCần được cấp quyềnnumber · cmMô hình trục sơ mi rơ moóc: từ chốt kéo đến cụm trục sau của rơ moóc.
trailer_cog_to_rear_axleCần được cấp quyềnnumber · cmMô hình trục sơ mi rơ moóc: từ trọng tâm rơ moóc đến cụm trục sau.
trailer_start_to_kingpinCần được cấp quyềnnumber · cmMô hình trục sơ mi rơ moóc: từ đầu rơ moóc đến chốt kéo.
max_middle_axle_weightCần được cấp quyềnnumber · kgMô hình trục sơ mi rơ moóc: giới hạn pháp lý của trục dẫn động (trục giữa).
max_rear_axle_weightCần được cấp quyềnnumber · kgMô hình trục sơ mi rơ moóc: giới hạn pháp lý của cụm trục sau.
Yêu cầu mẫu
curl -X POST "https://runner.cargoduo.com/v1/vehicles" \
-H "Authorization: Bearer $CARGODUO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000
}'const res = await fetch("https://runner.cargoduo.com/v1/vehicles", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000
}),
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.post(
"https://runner.cargoduo.com/v1/vehicles",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}"},
json={
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000,
},
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
body := strings.NewReader(`{
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000
}`)
req, err := http.NewRequest("POST", "https://runner.cargoduo.com/v1/vehicles", body)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("CARGODUO_API_KEY"))
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(out))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
String body = """
{
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://runner.cargoduo.com/v1/vehicles"))
.header("Authorization", "Bearer " + System.getenv("CARGODUO_API_KEY"))
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode() + " " + response.body());
}
}using System.Net.Http.Headers;
using System.Text;
using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("CARGODUO_API_KEY"));
var json = """
{
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000
}
""";
var request = new HttpRequestMessage(HttpMethod.Post, "https://runner.cargoduo.com/v1/vehicles")
{
Content = new StringContent(json, Encoding.UTF8, "application/json"),
};
var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");<?php
$payload = <<<'JSON'
{
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000
}
JSON;
$ch = curl_init('https://runner.cargoduo.com/v1/vehicles');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CARGODUO_API_KEY'),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), ' ', $response, PHP_EOL;require "net/http"
require "uri"
uri = URI("https://runner.cargoduo.com/v1/vehicles")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch("CARGODUO_API_KEY")}"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000
}
JSON
response = Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.code, response.bodyPhản hồi mẫu
{
"id": "veh_118",
"object": "vehicle",
"kind": "custom",
"name": "Mega trailer 13.6 m",
"type": "trailer",
"length": 1360,
"width": 248,
"height": 300,
"max_weight": 24000,
"floor_load_capacity": null,
"axle_positions": [],
"axle_max_loads": [],
"cog_range_x": null,
"cog_range_y": null,
"aux_deck": false,
"aux_deck_height": null,
"aux_deck_max_weight": null,
"tractor_weight": null,
"empty_trailer_weight": null,
"front_axle_to_middle_axle": null,
"front_axle_to_tractor_cog": null,
"front_axle_to_kingpin": null,
"kingpin_to_rear_axle": null,
"trailer_cog_to_rear_axle": null,
"trailer_start_to_kingpin": null,
"max_middle_axle_weight": null,
"max_rear_axle_weight": null,
"blocked_areas": [],
"created_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"updated_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"created_at": "2026-10-02T08:41:17Z"
}Phản hồi
201Xe mới.
TênKiểuBắt buộcMô tảidstringstringKhôngID xe thiết lập sẵn, hoặc veh_… với xe riêng của bạn.
objectstringstringKhôngvehiclekindstringstringKhôngpreset= danh mục xe định sẵn;custom= xe của tổ chức bạn.presetcustomtypestringstringKhôngLoại xe. Chỉ chấp nhận các loại được liệt kê trong GET /v1/limits (allowed_vehicle_types).
trucktrailerflatbedcontainerpalletaircraftshipnamestringstringKhôngTên hiển thị.
lengthnumber · cmnumber · cmKhôngChiều dài bên trong khoang chở hàng, theo trục x (từ vách trước về phía cửa).
widthnumber · cmnumber · cmKhôngChiều rộng bên trong khoang chở hàng, theo trục z.
heightnumber · cmnumber · cmKhôngChiều cao bên trong khoang chở hàng, theo trục y.
max_weightnumber · kgnumber · kgKhôngTải trọng tối đa.
floor_load_capacitynumber | null · kg/m²number | null · kg/m²KhôngTải trọng sàn: từ 0 trở lên (0 = không giới hạn).
axle_positionsnumber[] · cmnumber[] · cmKhôngVị trí các trục (điểm đỡ) tính từ đầu khoang chở hàng; số âm = phía trước khoang. Cùng độ dài với axle_max_loads. Mỗi giá trị nằm trong khoảng từ −300 (trục ở phía trước khoang chở hàng, ví dụ trục trước nằm dưới cabin của xe tải thùng) đến chiều dài xe.
axle_max_loadsnumber[] · kgnumber[] · kgKhôngTải trọng hàng tối đa trên mỗi trục, theo thứ tự của axle_positions. Mỗi giá trị lớn hơn 0 và không vượt quá 100000.
cog_range_xnumber | null · cmnumber | null · cmKhôngĐộ lệch trọng tâm cho phép so với điểm giữa chiều dài: từ 0 đến length / 2.
cog_range_ynumber | null · cmnumber | null · cmKhôngĐộ lệch trọng tâm cho phép so với điểm giữa chiều rộng: từ 0 đến width / 2.
aux_deckbooleanbooleanKhôngXe có sàn thứ hai (xe hai tầng).
aux_deck_heightnumber | null · cmnumber | null · cmKhôngĐộ cao của sàn thứ hai so với sàn xe. Bắt buộc khi
aux_decklàtrue.aux_deck_max_weightnumber | null · kgnumber | null · kgKhôngGiới hạn tải của sàn thứ hai. Bắt buộc khi
aux_decklàtrue.tractor_weightnumber | null · kgnumber | null · kgKhôngMô hình trục sơ mi rơ moóc: khối lượng đầu kéo.
empty_trailer_weightnumber | null · kgnumber | null · kgKhôngMô hình trục sơ mi rơ moóc: khối lượng rơ moóc không tải.
front_axle_to_middle_axlenumber | null · cmnumber | null · cmKhôngMô hình trục sơ mi rơ moóc: từ trục trước của đầu kéo đến trục dẫn động (trục giữa).
front_axle_to_tractor_cognumber | null · cmnumber | null · cmKhôngMô hình trục sơ mi rơ moóc: từ trục trước đến trọng tâm đầu kéo.
front_axle_to_kingpinnumber | null · cmnumber | null · cmKhôngMô hình trục sơ mi rơ moóc: từ trục trước đến chốt kéo (mâm kéo).
kingpin_to_rear_axlenumber | null · cmnumber | null · cmKhôngMô hình trục sơ mi rơ moóc: từ chốt kéo đến cụm trục sau của rơ moóc.
trailer_cog_to_rear_axlenumber | null · cmnumber | null · cmKhôngMô hình trục sơ mi rơ moóc: từ trọng tâm rơ moóc đến cụm trục sau.
trailer_start_to_kingpinnumber | null · cmnumber | null · cmKhôngMô hình trục sơ mi rơ moóc: từ đầu rơ moóc đến chốt kéo.
max_middle_axle_weightnumber | null · kgnumber | null · kgKhôngMô hình trục sơ mi rơ moóc: giới hạn pháp lý của trục dẫn động (trục giữa).
max_rear_axle_weightnumber | null · kgnumber | null · kgKhôngMô hình trục sơ mi rơ moóc: giới hạn pháp lý của cụm trục sau.
blocked_areasRect[]Rect[]KhôngCác vùng sàn không được đặt gì lên (hốc bánh xe, chỗ hư hỏng, khoảng trống dành riêng). Mỗi vùng phải nằm trên sàn xe.
xnumber · cmbắt buộcnumber · cmCóKhoảng cách từ vách trước đến cạnh gần của hình chữ nhật.
znumber · cmbắt buộcnumber · cmCóKhoảng cách từ vách phải (z = 0; bên phải khi đứng ở cửa nhìn vào) đến cạnh gần của hình chữ nhật.
lengthnumber · cmbắt buộcnumber · cmCóKích thước theo trục x.
widthnumber · cmbắt buộcnumber · cmCóKích thước theo trục z.
created_byUserRef | nullUserRef | nullKhôngThành viên đã tạo (với lệnh gọi API: thành viên đã tạo khóa).
nullnếu không xác định.idstringstringKhôngID thành viên (usr_…). Lọc danh sách bằng ?created_by=.
namestringstringKhôngupdated_byUserRef | nullUserRef | nullKhôngThành viên thay đổi gần nhất.
idstringstringKhôngID thành viên (usr_…). Lọc danh sách bằng ?created_by=.
namestringstringKhôngcreated_atstring | nullstring | nullKhôngRFC 3339;
nullvới xe thiết lập sẵn.400Bad request
invalid_jsoninvalid_jsonNội dung không phải JSON hợp lệ hoặc có trường sai kiểu.
Tất cả mã lỗiTênKiểuBắt buộcMô tảerrorErrorBodybắt buộcErrorBodyCócodestringbắt buộcstringCóMã dành cho máy (snake_case). Hãy dựa vào mã này để xử lý lỗi, không bao giờ dựa vào
message.messagestringbắt buộcstringCóGiải thích bằng tiếng Anh.
request_idstringbắt buộcstringCóGiống header X-Request-Id. Cung cấp mã này khi liên hệ bộ phận hỗ trợ.
detailsErrorDetail[]ErrorDetail[]KhôngLỗi theo từng trường (
validation_failed).pathstringstringKhôngĐường dẫn JSON của trường bị lỗi, ví dụ items[3].length.
codestringstringKhôngrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringKhôngGiải thích bằng tiếng Anh.
401Unauthorized
unauthorizedkey_revokedkey_expiredunauthorizedThiếu khóa API, khóa sai định dạng hoặc không xác định.key_revokedKhóa đã bị thu hồi.key_expiredKhóa đã quá ngày hết hạn.
Tất cả mã lỗiTênKiểuBắt buộcMô tảerrorErrorBodybắt buộcErrorBodyCócodestringbắt buộcstringCóMã dành cho máy (snake_case). Hãy dựa vào mã này để xử lý lỗi, không bao giờ dựa vào
message.messagestringbắt buộcstringCóGiải thích bằng tiếng Anh.
request_idstringbắt buộcstringCóGiống header X-Request-Id. Cung cấp mã này khi liên hệ bộ phận hỗ trợ.
detailsErrorDetail[]ErrorDetail[]KhôngLỗi theo từng trường (
validation_failed).pathstringstringKhôngĐường dẫn JSON của trường bị lỗi, ví dụ items[3].length.
codestringstringKhôngrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringKhôngGiải thích bằng tiếng Anh.
403Forbidden
ip_not_allowedsubscription_inactiveaccount_inactivescope_missingip_not_allowedIP gọi đến không nằm trong danh sách IP được phép của khóa.subscription_inactiveTổ chức không có gói đăng ký đang hoạt động nào bao gồm API.account_inactiveTổ chức bị tạm ngưng, hoặc không có chủ sở hữu nào có tài khoản đang hoạt động.scope_missingKhóa thiếu phạm vi quyền mà endpoint này yêu cầu.
Tất cả mã lỗiTênKiểuBắt buộcMô tảerrorErrorBodybắt buộcErrorBodyCócodestringbắt buộcstringCóMã dành cho máy (snake_case). Hãy dựa vào mã này để xử lý lỗi, không bao giờ dựa vào
message.messagestringbắt buộcstringCóGiải thích bằng tiếng Anh.
request_idstringbắt buộcstringCóGiống header X-Request-Id. Cung cấp mã này khi liên hệ bộ phận hỗ trợ.
detailsErrorDetail[]ErrorDetail[]KhôngLỗi theo từng trường (
validation_failed).pathstringstringKhôngĐường dẫn JSON của trường bị lỗi, ví dụ items[3].length.
codestringstringKhôngrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringKhôngGiải thích bằng tiếng Anh.
413Payload too large
payload_too_largepayload_too_largeNội dung yêu cầu vượt quá 10 MB.
Tất cả mã lỗiTênKiểuBắt buộcMô tảerrorErrorBodybắt buộcErrorBodyCócodestringbắt buộcstringCóMã dành cho máy (snake_case). Hãy dựa vào mã này để xử lý lỗi, không bao giờ dựa vào
message.messagestringbắt buộcstringCóGiải thích bằng tiếng Anh.
request_idstringbắt buộcstringCóGiống header X-Request-Id. Cung cấp mã này khi liên hệ bộ phận hỗ trợ.
detailsErrorDetail[]ErrorDetail[]KhôngLỗi theo từng trường (
validation_failed).pathstringstringKhôngĐường dẫn JSON của trường bị lỗi, ví dụ items[3].length.
codestringstringKhôngrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringKhôngGiải thích bằng tiếng Anh.
422Unprocessable entity
validation_failedvalidation_failedYêu cầu là JSON đúng cú pháp nhưng mô tả một tác vụ không hợp lệ. details[] liệt kê mọi lỗi.
Tất cả mã lỗiTênKiểuBắt buộcMô tảerrorErrorBodybắt buộcErrorBodyCócodestringbắt buộcstringCóMã dành cho máy (snake_case). Hãy dựa vào mã này để xử lý lỗi, không bao giờ dựa vào
message.messagestringbắt buộcstringCóGiải thích bằng tiếng Anh.
request_idstringbắt buộcstringCóGiống header X-Request-Id. Cung cấp mã này khi liên hệ bộ phận hỗ trợ.
detailsErrorDetail[]ErrorDetail[]KhôngLỗi theo từng trường (
validation_failed).pathstringstringKhôngĐường dẫn JSON của trường bị lỗi, ví dụ items[3].length.
codestringstringKhôngrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringKhôngGiải thích bằng tiếng Anh.
429Too many requests
rate_limitedrate_limitedQuá nhiều yêu cầu trong phút, giờ hoặc ngày hiện tại (theo khóa hoặc theo tổ chức), hoặc có hơn 60 lần xác thực thất bại mỗi phút từ địa chỉ IP của bạn.
Tất cả mã lỗiTênKiểuBắt buộcMô tảerrorErrorBodybắt buộcErrorBodyCócodestringbắt buộcstringCóMã dành cho máy (snake_case). Hãy dựa vào mã này để xử lý lỗi, không bao giờ dựa vào
message.messagestringbắt buộcstringCóGiải thích bằng tiếng Anh.
request_idstringbắt buộcstringCóGiống header X-Request-Id. Cung cấp mã này khi liên hệ bộ phận hỗ trợ.
detailsErrorDetail[]ErrorDetail[]KhôngLỗi theo từng trường (
validation_failed).pathstringstringKhôngĐường dẫn JSON của trường bị lỗi, ví dụ items[3].length.
codestringstringKhôngrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringKhôngGiải thích bằng tiếng Anh.
500Internal server error
internal_errorinternal_errorĐã xảy ra lỗi ở phía chúng tôi.
Tất cả mã lỗiTênKiểuBắt buộcMô tảerrorErrorBodybắt buộcErrorBodyCócodestringbắt buộcstringCóMã dành cho máy (snake_case). Hãy dựa vào mã này để xử lý lỗi, không bao giờ dựa vào
message.messagestringbắt buộcstringCóGiải thích bằng tiếng Anh.
request_idstringbắt buộcstringCóGiống header X-Request-Id. Cung cấp mã này khi liên hệ bộ phận hỗ trợ.
detailsErrorDetail[]ErrorDetail[]KhôngLỗi theo từng trường (
validation_failed).pathstringstringKhôngĐường dẫn JSON của trường bị lỗi, ví dụ items[3].length.
codestringstringKhôngrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringKhôngGiải thích bằng tiếng Anh.
503Service unavailable
api_disabledapi_disabledAPI tạm thời bị tắt (bảo trì) hoặc đã bị tắt cho tổ chức.
Tất cả mã lỗiTênKiểuBắt buộcMô tảerrorErrorBodybắt buộcErrorBodyCócodestringbắt buộcstringCóMã dành cho máy (snake_case). Hãy dựa vào mã này để xử lý lỗi, không bao giờ dựa vào
message.messagestringbắt buộcstringCóGiải thích bằng tiếng Anh.
request_idstringbắt buộcstringCóGiống header X-Request-Id. Cung cấp mã này khi liên hệ bộ phận hỗ trợ.
detailsErrorDetail[]ErrorDetail[]KhôngLỗi theo từng trường (
validation_failed).pathstringstringKhôngĐường dẫn JSON của trường bị lỗi, ví dụ items[3].length.
codestringstringKhôngrequired,invalid_value,out_of_range,duplicate_id,unknown_vehicle,unknown_template,type_not_allowed,unknown_group,does_not_fit,too_many_items,too_many_vehicles,unknown_field,invalid_json.messagestringstringKhôngGiải thích bằng tiếng Anh.