Xếp hàng cho dự án
Xếp xe và kiện hàng của dự án y hệt POST /v1/pack: cùng giá, cùng cơ chế tạm giữ credit, giới hạn, Idempotency-Key, ?wait= và tác vụ.
Khi tác vụ thành công, sơ đồ được lưu vào dự án; sau đó dự án mở trong ứng dụng với sơ đồ này. Nếu dự án thay đổi trong lúc tác vụ chạy, sơ đồ chỉ được giữ trên tác vụ (cảnh báo project_not_saved). ID trong kết quả là ID của dự án: vehicle_id là ID slot xe (pv_…), item_id là ID kiện hàng (item_…).
Xác thực
Tham số đường dẫn
idstringbắt buộcID dự án (prj_…).
Tham số truy vấn
waitintegerSố giây giữ phản hồi để chờ tác vụ hoàn tất. Xong kịp: 200, kèm kết quả trong phản hồi. Nếu không: 202.
00–60Tham số header
Idempotency-KeystringChuỗi duy nhất bất kỳ, chẳng hạn UUID hoặc mã đơn hàng của bạn. Cùng một khóa trong vòng 24 giờ sẽ trả về tác vụ ban đầu thay vì tạo và tính phí một tác vụ mới.
Tham số body
application/jsonreferencestringMã tham chiếu của bạn, được trả lại trên tác vụ. Mặc định là tên dự án.
optionsProjectPackOptionsTùy chọn cho lượt chạy. Mọi trường đều không bắt buộc.
packing_modestringauto = khi các xe đã khai báo đầy, hệ thống thêm bản sao của xe phù hợp nhất (đến giới hạn số xe của tác vụ); fleet_only = chỉ dùng các xe đã khai báo, mọi thứ không xếp vừa được báo là chưa xếp.
autofleet_onlyallow_overweightbooleanBỏ qua giới hạn tải trọng của xe.
max_stack_itemsintegerSố kiện tối đa trong một chồng. 0 = không giới hạn.
0max_stack_density_kg_m2number · kg/m²Trọng lượng chồng tối đa trên mỗi đơn vị diện tích sàn. 0 = không giới hạn.
0lock_rotationsbooleanGiữ hướng đặt đầu tiên vừa với chiều cao xe.
falsegroup_identical_binsbooleanCoi các xe giống nhau như một tập xe dùng chung.
falsetime_limitnumber · sGiới hạn trên của thời gian tính toán cho toàn bộ tác vụ. 0 = tự động (tối đa max_time_limit_seconds từ GET /v1/limits). Khi chạm giới hạn, sơ đồ tốt nhất tìm được đến lúc đó sẽ được trả về. Bạn chỉ trả tiền cho thời gian tính toán thực tế.
0enforce_axleCần được cấp quyềnbooleanTừ chối các vị trí xếp làm quá tải một cụm trục, trên những xe có đủ cả mười trường của mô hình trục.
falseYêu cầu mẫu
curl -X POST "https://runner.cargoduo.com/v1/projects/prj_3051/pack" \
-H "Authorization: Bearer $CARGODUO_API_KEY" \
-H "Idempotency-Key: order-1042-v1" \
-H "Content-Type: application/json" \
-d '{
"reference": "order-1042"
}'const res = await fetch("https://runner.cargoduo.com/v1/projects/prj_3051/pack", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
"Idempotency-Key": "order-1042-v1",
"Content-Type": "application/json",
},
body: JSON.stringify({
"reference": "order-1042"
}),
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.post(
"https://runner.cargoduo.com/v1/projects/prj_3051/pack",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}", "Idempotency-Key": "order-1042-v1"},
json={
"reference": "order-1042",
},
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
body := strings.NewReader(`{
"reference": "order-1042"
}`)
req, err := http.NewRequest("POST", "https://runner.cargoduo.com/v1/projects/prj_3051/pack", body)
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("CARGODUO_API_KEY"))
req.Header.Set("Idempotency-Key", "order-1042-v1")
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 = """
{
"reference": "order-1042"
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://runner.cargoduo.com/v1/projects/prj_3051/pack"))
.header("Authorization", "Bearer " + System.getenv("CARGODUO_API_KEY"))
.header("Idempotency-Key", "order-1042-v1")
.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"));
client.DefaultRequestHeaders.Add("Idempotency-Key", "order-1042-v1");
var json = """
{
"reference": "order-1042"
}
""";
var request = new HttpRequestMessage(HttpMethod.Post, "https://runner.cargoduo.com/v1/projects/prj_3051/pack")
{
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'
{
"reference": "order-1042"
}
JSON;
$ch = curl_init('https://runner.cargoduo.com/v1/projects/prj_3051/pack');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('CARGODUO_API_KEY'),
'Idempotency-Key: order-1042-v1',
'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/projects/prj_3051/pack")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch("CARGODUO_API_KEY")}"
request["Idempotency-Key"] = "order-1042-v1"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
"reference": "order-1042"
}
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": "job_4bK9mT2xQe7LpW1zRc8VdN3f",
"object": "job",
"status": "queued",
"reference": "order-1042",
"source": "api",
"project_id": "prj_3051",
"created_at": "2026-10-19T09:12:03Z",
"started_at": null,
"finished_at": null,
"progress": {
"stage": "queued",
"vehicles_done": 0,
"placed_items": 0
},
"summary": {
"items_requested": 58,
"items_placed": 0,
"items_unplaced": 0,
"vehicles_used": 0,
"total_weight": 0,
"volume_utilization": 0,
"queue_ms": 0,
"compute_ms": 0
},
"cost": {
"credits": 0,
"reserved_credits": 1.11,
"rate_card_version": 1,
"breakdown": {
"base": 0,
"vehicles": 0,
"compute": 0,
"large_load": 0
}
},
"error": null,
"warnings": [],
"result_url": "https://runner.cargoduo.com/v1/jobs/job_4bK9mT2xQe7LpW1zRc8VdN3f/result",
"pdf_url": "",
"expires_at": "2026-11-02T09:12:03Z"
}Phản hồi
200OKTác vụ xong trong thời gian ?wait, kết quả nằm trong phản hồi. Cũng là phản hồi khi phát lại (idempotent) một tác vụ đã kết thúc.
TênKiểuBắt buộcMô tảidstringbắt buộcstringCóID tác vụ (job_…).
objectstringbắt buộcstringCóLuôn là
job.jobstatusstringbắt buộcstringCóqueued→running→succeeded|failed|canceled.queuedrunningsucceededfailedcanceledreferencestringstringKhôngMã tham chiếu của bạn từ yêu cầu.
sourcestringstringKhôngNơi tạo tác vụ.
apiplaygroundproject_idstringstringKhôngDự án (prj_…) mà tác vụ POST /v1/projects/{id}/pack lưu sơ đồ vào. Không có ở các tác vụ khác.
created_atstringbắt buộcstringCóMốc thời gian RFC 3339.
started_atstring | nullstring | nullKhôngThời điểm bắt đầu tính toán (RFC 3339) hoặc
null.finished_atstring | nullstring | nullKhôngThời điểm tác vụ kết thúc (RFC 3339) hoặc
null.progressJobProgressJobProgressKhôngTiến độ trực tiếp khi tác vụ đang chờ/đang chạy.
stagestringstringKhôngGiai đoạn hiện tại, chẳng hạn
queued,running,finalizinghoặcdone. Chỉ để tham khảo: hãy dựa vàoJob.statusđể xử lý.vehicles_doneintegerintegerKhôngSố xe đã xếp xong đến hiện tại.
placed_itemsintegerintegerKhôngSố kiện đã xếp đến hiện tại.
summaryJobSummaryJobSummaryKhôngSố liệu và thời gian.
items_requestedintegerintegerKhôngTổng số kiện (tổng số lượng).
items_placedintegerintegerKhôngSố kiện đã xếp.
items_unplacedintegerintegerKhôngSố kiện không xếp được.
vehicles_usedintegerintegerKhôngSố xe chở ít nhất một kiện hàng.
total_weightnumber · kgnumber · kgKhôngTrọng lượng đã xếp.
volume_utilizationnumbernumberKhôngTỷ lệ sử dụng thể tích trung bình của các xe đã dùng, 0–1.
queue_msintegerintegerKhôngThời gian chờ tài nguyên tính toán (không tính phí).
compute_msintegerintegerKhôngThời gian tính toán (có tính phí).
costJobCostJobCostKhôngCredit đã bị trừ (chốt khi tác vụ kết thúc) và khoản tạm giữ trong lúc tác vụ chạy.
creditsnumber · creditsnumber · creditsKhôngCredit đã bị trừ (0 cho đến khi tác vụ kết thúc). Tác vụ thất bại không bị tính phí, trừ time_limit_exceeded, được tính phí như tác vụ bị hủy.
reserved_creditsnumber · creditsnumber · creditsKhôngCredit bị tạm giữ khi tác vụ đang chờ/đang chạy (mức giá tối đa). Được giải phóng khi tác vụ kết thúc.
rate_card_versionintegerintegerKhôngBảng giá dùng để tính giá tác vụ.
breakdownCostBreakdownCostBreakdownKhôngGiá chi tiết theo từng khoản.
basenumber · creditsnumber · creditsKhôngPhí mỗi tác vụ.
vehiclesnumber · creditsnumber · creditsKhôngTheo mỗi xe được xếp hàng (không tính với tác vụ bị hủy hoặc time_limit_exceeded).
computenumber · creditsnumber · creditsKhôngTheo giây tính toán, tính theo tỷ lệ đến từng mili giây.
large_loadnumber · creditsnumber · creditsKhôngPhụ phí cho mỗi 100 kiện vượt ngưỡng tải lớn (phần lẻ tính tròn lên 100).
errorJobError | nullJobError | nullKhôngLý do tác vụ thất bại hoặc bị hủy; nếu không thì là
null.codestringstringKhôngMã dành cho máy (xem Lỗi).
messagestringstringKhôngGiải thích bằng tiếng Anh.
warningsWarning[]Warning[]KhôngGhi chú về yêu cầu, không chặn tác vụ (cũng được lặp lại trong kết quả).
codestringstringKhôngMã dành cho máy.
messagestringstringKhôngGiải thích bằng tiếng Anh.
result_urlstringstringKhôngGọi GET tới URL này để lấy toàn bộ kết quả khi
statuslàsucceeded.pdf_urlstringstringKhôngLiên kết mở trên trình duyệt để tạo PDF sơ đồ xếp hàng (góc nhìn 3D + các bước xếp hàng). Có hiệu lực đến expires_at. Rỗng sau khi hết hạn.
expires_atstringstringKhôngThời điểm nội dung yêu cầu/kết quả và liên kết PDF bị xóa (RFC 3339). Siêu dữ liệu và khoản phí của tác vụ vẫn được giữ.
resultResultResultKhôngToàn bộ kết quả, chỉ được đưa vào khi được yêu cầu (?include=result) hoặc khi POST /v1/pack?wait= xong kịp thời gian.
job_idstringstringKhôngTác vụ.
vehiclesResultVehicle[]ResultVehicle[]KhôngCác xe đã xếp hàng theo thứ tự xếp (bỏ qua xe trống).
indexintegerintegerKhôngVị trí trong sơ đồ, bắt đầu từ 0.
vehicle_idstringstringKhôngID định nghĩa xe của bạn (với tác vụ của dự án: ID slot, pv_…).
copyintegerintegerKhôngSố thứ tự bản sao của định nghĩa đó, bắt đầu từ 1 (quantity > 1, hoặc được thêm ở chế độ auto).
auto_addedbooleanbooleanKhôngĐược thêm bởi
packing_modeauto, ngoàiquantitybạn đã khai báo.namestringstringKhôngTên xe.
typestringstringKhôngLoại xe.
lengthnumber · cmnumber · cmKhôngChiều dài khoang chở hàng.
widthnumber · cmnumber · cmKhôngChiều rộng khoang chở hàng.
heightnumber · cmnumber · cmKhôngChiều cao khoang chở hàng.
max_weightnumber · kgnumber · kgKhôngGiới hạn tải trọng.
items_placedintegerintegerKhôngSố kiện trong xe này.
total_weightnumber · kgnumber · kgKhôngTrọng lượng hàng trong xe này.
volume_utilizationnumbernumberKhôngThể tích đã dùng / thể tích khoang chở hàng, 0–1.
weight_utilizationnumbernumberKhôngtotal_weight / max_weight, 0–1 (có thể vượt 1 khi bật allow_overweight).
center_of_gravityPointPointKhôngTrọng tâm của hàng hóa (cm).
xnumber · cmnumber · cmKhôngynumber · cmnumber · cmKhôngznumber · cmnumber · cmKhôngplacementsPlacement[]Placement[]KhôngMọi kiện trong xe này.
item_idstringstringKhôngID định nghĩa kiện hàng của bạn (với tác vụ của dự án: ID kiện hàng, item_…).
instanceintegerintegerKhôngSố thứ tự kiện trong định nghĩa kiện hàng đó, bắt đầu từ 1 (duy nhất trong toàn bộ sơ đồ).
labelstringstringKhôngNhãn kiện hàng.
xnumber · cmnumber · cmKhôngVị trí góc nhỏ nhất theo chiều dài.
ynumber · cmnumber · cmKhôngĐộ cao góc nhỏ nhất so với sàn.
znumber · cmnumber · cmKhôngVị trí góc nhỏ nhất theo chiều rộng.
lengthnumber · cmnumber · cmKhôngKích thước theo trục x khi đã đặt.
widthnumber · cmnumber · cmKhôngKích thước theo trục z khi đã đặt.
heightnumber · cmnumber · cmKhôngKích thước theo trục y khi đã đặt.
rotatedbooleanbooleanKhôngĐược đặt theo hướng khác với định nghĩa.
orientationstringstringKhôngCạnh đã định nghĩa nào nằm theo trục x, z và y:
lwh= như định nghĩa,wlh= xoay 90° quanh trục đứng,lhw,hwl,whl,hlw= lật nghiêng.stepintegerintegerKhôngBước xếp hàng trong xe, bắt đầu từ 1 (xếp theo thứ tự tăng dần).
weightnumber · kgnumber · kgKhôngTrọng lượng một kiện.
axle_loadsCần được cấp quyềnAxleLoad[]AxleLoad[]KhôngTải trọng từng trục (chỉ với xe có dữ liệu trục).
namestringstringKhôngAxle 1,Axle 2… theo thứ tự củaaxle_positions.positionnumber · cmnumber · cmKhôngVị trí trục tính từ đầu khoang chở hàng.
loadnumber · kgnumber · kgKhôngTải trọng hàng trên trục.
maxnumber · kgnumber · kgKhôngMức tối đa đã cấu hình (0 = không giới hạn).
okbooleanbooleanKhôngload≤max(luôn làtruenếu không đặt mức tối đa).unplacedUnplacedItem[]UnplacedItem[]KhôngCác kiện không xếp được, kèm lý do.
item_idstringstringKhôngID định nghĩa kiện hàng của bạn.
instanceintegerintegerKhôngSố thứ tự kiện, bắt đầu từ 1.
labelstringstringKhôngNhãn kiện hàng.
reasonstringstringKhôngLý do không xếp được.
warningsWarning[]Warning[]KhôngGhi chú về sơ đồ.
codestringstringKhôngMã dành cho máy.
messagestringstringKhôngGiải thích bằng tiếng Anh.
pdf_urlstringstringKhôngLiên kết mở trên trình duyệt để tạo PDF của sơ đồ.
expires_atstringstringKhôngThời điểm kết quả này bị xóa (RFC 3339).
202AcceptedĐã nhận tác vụ (đang chờ hoặc đang chạy).
TênKiểuBắt buộcMô tảidstringbắt buộcstringCóID tác vụ (job_…).
objectstringbắt buộcstringCóLuôn là
job.jobstatusstringbắt buộcstringCóqueued→running→succeeded|failed|canceled.queuedrunningsucceededfailedcanceledreferencestringstringKhôngMã tham chiếu của bạn từ yêu cầu.
sourcestringstringKhôngNơi tạo tác vụ.
apiplaygroundproject_idstringstringKhôngDự án (prj_…) mà tác vụ POST /v1/projects/{id}/pack lưu sơ đồ vào. Không có ở các tác vụ khác.
created_atstringbắt buộcstringCóMốc thời gian RFC 3339.
started_atstring | nullstring | nullKhôngThời điểm bắt đầu tính toán (RFC 3339) hoặc
null.finished_atstring | nullstring | nullKhôngThời điểm tác vụ kết thúc (RFC 3339) hoặc
null.progressJobProgressJobProgressKhôngTiến độ trực tiếp khi tác vụ đang chờ/đang chạy.
stagestringstringKhôngGiai đoạn hiện tại, chẳng hạn
queued,running,finalizinghoặcdone. Chỉ để tham khảo: hãy dựa vàoJob.statusđể xử lý.vehicles_doneintegerintegerKhôngSố xe đã xếp xong đến hiện tại.
placed_itemsintegerintegerKhôngSố kiện đã xếp đến hiện tại.
summaryJobSummaryJobSummaryKhôngSố liệu và thời gian.
items_requestedintegerintegerKhôngTổng số kiện (tổng số lượng).
items_placedintegerintegerKhôngSố kiện đã xếp.
items_unplacedintegerintegerKhôngSố kiện không xếp được.
vehicles_usedintegerintegerKhôngSố xe chở ít nhất một kiện hàng.
total_weightnumber · kgnumber · kgKhôngTrọng lượng đã xếp.
volume_utilizationnumbernumberKhôngTỷ lệ sử dụng thể tích trung bình của các xe đã dùng, 0–1.
queue_msintegerintegerKhôngThời gian chờ tài nguyên tính toán (không tính phí).
compute_msintegerintegerKhôngThời gian tính toán (có tính phí).
costJobCostJobCostKhôngCredit đã bị trừ (chốt khi tác vụ kết thúc) và khoản tạm giữ trong lúc tác vụ chạy.
creditsnumber · creditsnumber · creditsKhôngCredit đã bị trừ (0 cho đến khi tác vụ kết thúc). Tác vụ thất bại không bị tính phí, trừ time_limit_exceeded, được tính phí như tác vụ bị hủy.
reserved_creditsnumber · creditsnumber · creditsKhôngCredit bị tạm giữ khi tác vụ đang chờ/đang chạy (mức giá tối đa). Được giải phóng khi tác vụ kết thúc.
rate_card_versionintegerintegerKhôngBảng giá dùng để tính giá tác vụ.
breakdownCostBreakdownCostBreakdownKhôngGiá chi tiết theo từng khoản.
basenumber · creditsnumber · creditsKhôngPhí mỗi tác vụ.
vehiclesnumber · creditsnumber · creditsKhôngTheo mỗi xe được xếp hàng (không tính với tác vụ bị hủy hoặc time_limit_exceeded).
computenumber · creditsnumber · creditsKhôngTheo giây tính toán, tính theo tỷ lệ đến từng mili giây.
large_loadnumber · creditsnumber · creditsKhôngPhụ phí cho mỗi 100 kiện vượt ngưỡng tải lớn (phần lẻ tính tròn lên 100).
errorJobError | nullJobError | nullKhôngLý do tác vụ thất bại hoặc bị hủy; nếu không thì là
null.codestringstringKhôngMã dành cho máy (xem Lỗi).
messagestringstringKhôngGiải thích bằng tiếng Anh.
warningsWarning[]Warning[]KhôngGhi chú về yêu cầu, không chặn tác vụ (cũng được lặp lại trong kết quả).
codestringstringKhôngMã dành cho máy.
messagestringstringKhôngGiải thích bằng tiếng Anh.
result_urlstringstringKhôngGọi GET tới URL này để lấy toàn bộ kết quả khi
statuslàsucceeded.pdf_urlstringstringKhôngLiên kết mở trên trình duyệt để tạo PDF sơ đồ xếp hàng (góc nhìn 3D + các bước xếp hàng). Có hiệu lực đến expires_at. Rỗng sau khi hết hạn.
expires_atstringstringKhôngThời điểm nội dung yêu cầu/kết quả và liên kết PDF bị xóa (RFC 3339). Siêu dữ liệu và khoản phí của tác vụ vẫn được giữ.
resultResultResultKhôngToàn bộ kết quả, chỉ được đưa vào khi được yêu cầu (?include=result) hoặc khi POST /v1/pack?wait= xong kịp thời gian.
job_idstringstringKhôngTác vụ.
vehiclesResultVehicle[]ResultVehicle[]KhôngCác xe đã xếp hàng theo thứ tự xếp (bỏ qua xe trống).
indexintegerintegerKhôngVị trí trong sơ đồ, bắt đầu từ 0.
vehicle_idstringstringKhôngID định nghĩa xe của bạn (với tác vụ của dự án: ID slot, pv_…).
copyintegerintegerKhôngSố thứ tự bản sao của định nghĩa đó, bắt đầu từ 1 (quantity > 1, hoặc được thêm ở chế độ auto).
auto_addedbooleanbooleanKhôngĐược thêm bởi
packing_modeauto, ngoàiquantitybạn đã khai báo.namestringstringKhôngTên xe.
typestringstringKhôngLoại xe.
lengthnumber · cmnumber · cmKhôngChiều dài khoang chở hàng.
widthnumber · cmnumber · cmKhôngChiều rộng khoang chở hàng.
heightnumber · cmnumber · cmKhôngChiều cao khoang chở hàng.
max_weightnumber · kgnumber · kgKhôngGiới hạn tải trọng.
items_placedintegerintegerKhôngSố kiện trong xe này.
total_weightnumber · kgnumber · kgKhôngTrọng lượng hàng trong xe này.
volume_utilizationnumbernumberKhôngThể tích đã dùng / thể tích khoang chở hàng, 0–1.
weight_utilizationnumbernumberKhôngtotal_weight / max_weight, 0–1 (có thể vượt 1 khi bật allow_overweight).
center_of_gravityPointPointKhôngTrọng tâm của hàng hóa (cm).
xnumber · cmnumber · cmKhôngynumber · cmnumber · cmKhôngznumber · cmnumber · cmKhôngplacementsPlacement[]Placement[]KhôngMọi kiện trong xe này.
item_idstringstringKhôngID định nghĩa kiện hàng của bạn (với tác vụ của dự án: ID kiện hàng, item_…).
instanceintegerintegerKhôngSố thứ tự kiện trong định nghĩa kiện hàng đó, bắt đầu từ 1 (duy nhất trong toàn bộ sơ đồ).
labelstringstringKhôngNhãn kiện hàng.
xnumber · cmnumber · cmKhôngVị trí góc nhỏ nhất theo chiều dài.
ynumber · cmnumber · cmKhôngĐộ cao góc nhỏ nhất so với sàn.
znumber · cmnumber · cmKhôngVị trí góc nhỏ nhất theo chiều rộng.
lengthnumber · cmnumber · cmKhôngKích thước theo trục x khi đã đặt.
widthnumber · cmnumber · cmKhôngKích thước theo trục z khi đã đặt.
heightnumber · cmnumber · cmKhôngKích thước theo trục y khi đã đặt.
rotatedbooleanbooleanKhôngĐược đặt theo hướng khác với định nghĩa.
orientationstringstringKhôngCạnh đã định nghĩa nào nằm theo trục x, z và y:
lwh= như định nghĩa,wlh= xoay 90° quanh trục đứng,lhw,hwl,whl,hlw= lật nghiêng.stepintegerintegerKhôngBước xếp hàng trong xe, bắt đầu từ 1 (xếp theo thứ tự tăng dần).
weightnumber · kgnumber · kgKhôngTrọng lượng một kiện.
axle_loadsCần được cấp quyềnAxleLoad[]AxleLoad[]KhôngTải trọng từng trục (chỉ với xe có dữ liệu trục).
namestringstringKhôngAxle 1,Axle 2… theo thứ tự củaaxle_positions.positionnumber · cmnumber · cmKhôngVị trí trục tính từ đầu khoang chở hàng.
loadnumber · kgnumber · kgKhôngTải trọng hàng trên trục.
maxnumber · kgnumber · kgKhôngMức tối đa đã cấu hình (0 = không giới hạn).
okbooleanbooleanKhôngload≤max(luôn làtruenếu không đặt mức tối đa).unplacedUnplacedItem[]UnplacedItem[]KhôngCác kiện không xếp được, kèm lý do.
item_idstringstringKhôngID định nghĩa kiện hàng của bạn.
instanceintegerintegerKhôngSố thứ tự kiện, bắt đầu từ 1.
labelstringstringKhôngNhãn kiện hàng.
reasonstringstringKhôngLý do không xếp được.
warningsWarning[]Warning[]KhôngGhi chú về sơ đồ.
codestringstringKhôngMã dành cho máy.
messagestringstringKhôngGiải thích bằng tiếng Anh.
pdf_urlstringstringKhôngLiên kết mở trên trình duyệt để tạo PDF của sơ đồ.
expires_atstringstringKhôngThời điểm kết quả này bị xóa (RFC 3339).
400Bad request
invalid_jsonidempotency_key_invalidinvalid_jsonNội dung không phải JSON hợp lệ hoặc có trường sai kiểu.idempotency_key_invalidHeader Idempotency-Key dài hơn 128 ký tự.
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.
402Payment required
insufficient_creditsinsufficient_creditsCredit khả dụng không đủ cho lần chạy rẻ nhất có thể của tác vụ này.
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.
404Not found
project_not_foundproject_not_foundTổ chức của bạn không có dự án nào với ID này.
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.
409Conflict
project_busyproject_busyDự án đang được xếp hàng (trong ứng dụng hoặc bởi một tác vụ khá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.
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
too_many_jobsrate_limitedtoo_many_jobsTổ chức đã đạt số tác vụ tối đa đang chờ + đang chạy.rate_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.