Tạo dự án
Tạo một dự án mở được trong ứng dụng: tên, và tùy chọn thêm xe (xe đã lưu, chỉ định bằng vehicle_id), kiện hàng và nhóm theo cấu trúc của /v1/pack cùng các tùy chọn được lưu.
Lập sơ đồ xếp hàng cho dự án bằng POST /v1/projects/{id}/pack. Miễn phí: không trừ credit.
Xác thực
Tham số body
application/jsonnamestringbắt buộcvehiclesProjectVehicle[]Các slot xe.
idstringID slot (pv_…). Kết quả của các tác vụ thuộc dự án tham chiếu đến nó dưới tên vehicle_id. Chỉ đọc.
vehicle_idstringbắt buộcID xe lấy từ GET /v1/vehicles (xe thiết lập sẵn hoặc veh_…).
namestringTên của xe đã lưu. Chỉ đọc.
typestringLoại của xe đã lưu. Chỉ đọc.
trucktrailerflatbedcontainerpalletaircraftshiplengthnumber · cmGiá trị slot dùng khi xếp; nếu gửi lên, sẽ ghi đè giá trị của xe đã lưu.
widthnumber · cmGiá trị slot dùng khi xếp; nếu gửi lên, sẽ ghi đè giá trị của xe đã lưu.
heightnumber · cmGiá trị slot dùng khi xếp; nếu gửi lên, sẽ ghi đè giá trị của xe đã lưu.
max_weightnumber · kgGiá trị slot dùng khi xếp; nếu gửi lên, sẽ ghi đè giá trị của xe đã lưu.
quantityintegerSố xe giống hệt nhau của định nghĩa này đang có.
11–100aux_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.
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.
itemsItem[]Kiện hàng (tối đa 500 định nghĩa).
idstringMã định danh của bạn, duy nhất trong yêu cầu. Kết quả tham chiếu đến nó dưới tên item_id. Mặc định là template_id.
template_idstringID mẫu hàng (tpl_…) lấy từ GET /v1/templates. Cung cấp mọi trường của kiện hàng; các trường gửi kèm sẽ ghi đè lên chúng.
labelstringNhãn hiển thị (mặc định là ID).
shapestringHình dạng kiện hàng. cylinder và drum dùng radius + height thay cho length + width; pallet và drum luôn đứng thẳng.
boxcylinderpalletbagdrumMặc định "box"lengthnumber · cmChiều dài. Bắt buộc, trừ khi shape là cylinder hoặc drum.
widthnumber · cmChiều rộng. Bắt buộc, trừ khi shape là cylinder hoặc drum.
heightnumber · cmbắt buộcChiều cao (cạnh thẳng đứng khi kiện hàng đứng như định nghĩa).
radiusnumber · cmBán kính. Bắt buộc khi shape là cylinder hoặc drum.
weightnumber · kgbắt buộcTrọng lượng của MỘT kiện.
quantityintegerSố kiện giống nhau.
11–10000stackablebooleanCó thể đặt kiện hàng khác lên trên kiện này.
truemax_stack_weightnumber · kgTrọng lượng tối đa được đè lên một kiện. 0 = không giới hạn.
0rotationstringall = bất kỳ hướng nào trong sáu hướng; upright = chỉ được xoay quanh trục đứng (giữ mặt trên hướng lên); fixed = không bao giờ xoay.
alluprightfixedMặc định "all"hazardousbooleanHàng nguy hiểm: được đặt thấp và tách khỏi các hàng nguy hiểm khác.
falsepriorityintegerMức ưu tiên xếp hàng. Cao hơn = được xếp trước và được giữ lại khi hết chỗ. 0 = không ưu tiên.
0groupstringTên nhóm chứa kiện hàng này (xem groups và options.group_routing).
colorstringMàu hiển thị dạng #rrggbb (chỉ dùng cho trình xem và PDF).
nesting_heightnumber · cmPhần lồng vào nhau khi các kiện giống nhau xếp chồng (thùng, xô lồng vào nhau).
0groupsGroup[]Các nhóm, kèm thứ tự xếp hàng.
namestringbắt buộcTên nhóm, được Item.group tham chiếu.
orderintegerThứ tự xếp hàng (nhỏ hơn = xếp trước). Mặc định là vị trí trong danh sách.
colorstringMàu hiển thị dạng #rrggbb.
optionsProjectOptionsCác tùy chọn xếp hàng mà dự án lưu.
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_onlyMặc định "auto"group_routingstringnone = nhóm chỉ để tham khảo; wall = mỗi nhóm có một khoang riêng trong xe; routing = các nhóm được xếp theo thứ tự, nhóm sau có thể nằm trên hoặc cạnh nhóm trước nhưng không bao giờ nằm dưới (giao hàng nhiều điểm); no_stack = các nhóm được xếp theo thứ tự cạnh nhau, không bao giờ chồng lên nhau.
nonewallroutingno_stackMặc định "none"allow_overweightbooleanBỏ qua giới hạn tải trọng của xe.
falseYêu cầu mẫu
curl -X POST "https://runner.cargoduo.com/v1/projects" \
-H "Authorization: Bearer $CARGODUO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Order 1042",
"vehicles": [
{
"vehicle_id": "standard-trailer-13-6m"
}
],
"items": [
{
"template_id": "tpl_42",
"quantity": 18
},
{
"template_id": "tpl_43",
"quantity": 40
}
]
}'const res = await fetch("https://runner.cargoduo.com/v1/projects", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.CARGODUO_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"name": "Order 1042",
"vehicles": [
{
"vehicle_id": "standard-trailer-13-6m"
}
],
"items": [
{
"template_id": "tpl_42",
"quantity": 18
},
{
"template_id": "tpl_43",
"quantity": 40
}
]
}),
});
const data = await res.json();
console.log(res.status, data);import os
import requests
response = requests.post(
"https://runner.cargoduo.com/v1/projects",
headers={"Authorization": f"Bearer {os.environ['CARGODUO_API_KEY']}"},
json={
"name": "Order 1042",
"vehicles": [
{
"vehicle_id": "standard-trailer-13-6m",
},
],
"items": [
{
"template_id": "tpl_42",
"quantity": 18,
},
{
"template_id": "tpl_43",
"quantity": 40,
},
],
},
)
print(response.status_code, response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
body := strings.NewReader(`{
"name": "Order 1042",
"vehicles": [
{
"vehicle_id": "standard-trailer-13-6m"
}
],
"items": [
{
"template_id": "tpl_42",
"quantity": 18
},
{
"template_id": "tpl_43",
"quantity": 40
}
]
}`)
req, err := http.NewRequest("POST", "https://runner.cargoduo.com/v1/projects", 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": "Order 1042",
"vehicles": [
{
"vehicle_id": "standard-trailer-13-6m"
}
],
"items": [
{
"template_id": "tpl_42",
"quantity": 18
},
{
"template_id": "tpl_43",
"quantity": 40
}
]
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://runner.cargoduo.com/v1/projects"))
.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": "Order 1042",
"vehicles": [
{
"vehicle_id": "standard-trailer-13-6m"
}
],
"items": [
{
"template_id": "tpl_42",
"quantity": 18
},
{
"template_id": "tpl_43",
"quantity": 40
}
]
}
""";
var request = new HttpRequestMessage(HttpMethod.Post, "https://runner.cargoduo.com/v1/projects")
{
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": "Order 1042",
"vehicles": [
{
"vehicle_id": "standard-trailer-13-6m"
}
],
"items": [
{
"template_id": "tpl_42",
"quantity": 18
},
{
"template_id": "tpl_43",
"quantity": 40
}
]
}
JSON;
$ch = curl_init('https://runner.cargoduo.com/v1/projects');
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/projects")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch("CARGODUO_API_KEY")}"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
"name": "Order 1042",
"vehicles": [
{
"vehicle_id": "standard-trailer-13-6m"
}
],
"items": [
{
"template_id": "tpl_42",
"quantity": 18
},
{
"template_id": "tpl_43",
"quantity": 40
}
]
}
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": "prj_3051",
"object": "project",
"name": "Order 1042",
"status": "draft",
"item_count": 58,
"vehicle_count": 1,
"app_url": "https://app.cargoduo.com/projects/3051",
"created_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"updated_by": {
"id": "usr_7",
"name": "Elif Kaya"
},
"created_at": "2026-10-19T09:10:03Z",
"updated_at": "2026-10-19T09:10:03Z",
"options": {
"packing_mode": "auto",
"group_routing": "none",
"allow_overweight": false
},
"vehicles": [
{
"id": "pv_5120",
"vehicle_id": "standard-trailer-13-6m",
"name": "Standard Trailer (13.6m)",
"type": "trailer",
"quantity": 1,
"length": 1362,
"width": 248,
"height": 270,
"max_weight": 24000
}
],
"items": [
{
"id": "item_88410",
"label": "Euro pallet",
"shape": "box",
"length": 120,
"width": 80,
"height": 140,
"weight": 450,
"quantity": 18,
"stackable": false,
"rotation": "all",
"color": "#3b82f6"
},
{
"id": "item_88411",
"label": "Carton A",
"shape": "box",
"length": 60,
"width": 40,
"height": 40,
"weight": 12,
"quantity": 40,
"stackable": true,
"rotation": "upright",
"color": "#f59e0b"
}
],
"groups": [],
"plan": null
}Phản hồi
201Dự án mới.
TênKiểuBắt buộcMô tảidstringstringKhôngID dự án (prj_…).
objectstringstringKhôngprojectnamestringstringKhôngstatusstringstringKhôngdraft= chưa từng xếp hoặc dữ liệu đầu vào đã bị thay;calculated= có sơ đồ hiện tại;stale= một cài đặt đã thay đổi sau khi lập sơ đồ.draftcalculatedstaleerroritem_countintegerintegerKhôngSố kiện (tổng số lượng).
vehicle_countintegerintegerKhôngSố xe (tổng số lượng).
app_urlstringstringKhôngMở dự án trong trình chỉnh sửa 3D của ứng dụng.
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_atstringstringKhôngRFC 3339.
updated_atstringstringKhôngRFC 3339.
optionsProjectOptionsProjectOptionsKhôngCác tùy chọn xếp hàng mà dự án lưu.
packing_modestringstringKhôngauto= 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_onlyMặc định"auto"group_routingstringstringKhôngnone= nhóm chỉ để tham khảo;wall= mỗi nhóm có một khoang riêng trong xe;routing= các nhóm được xếp theo thứ tự, nhóm sau có thể nằm trên hoặc cạnh nhóm trước nhưng không bao giờ nằm dưới (giao hàng nhiều điểm);no_stack= các nhóm được xếp theo thứ tự cạnh nhau, không bao giờ chồng lên nhau.nonewallroutingno_stackMặc định"none"allow_overweightbooleanbooleanKhôngBỏ qua giới hạn tải trọng của xe.
Mặc địnhfalsevehiclesProjectVehicle[]ProjectVehicle[]KhôngidstringstringKhôngID slot (pv_…). Kết quả của các tác vụ thuộc dự án tham chiếu đến nó dưới tên vehicle_id. Chỉ đọc.
vehicle_idstringbắt buộcstringCóID xe lấy từ GET /v1/vehicles (xe thiết lập sẵn hoặc veh_…).
namestringstringKhôngTên của xe đã lưu. Chỉ đọc.
typestringstringKhôngLoại của xe đã lưu. Chỉ đọc.
trucktrailerflatbedcontainerpalletaircraftshiplengthnumber · cmnumber · cmKhôngGiá trị slot dùng khi xếp; nếu gửi lên, sẽ ghi đè giá trị của xe đã lưu.
widthnumber · cmnumber · cmKhôngGiá trị slot dùng khi xếp; nếu gửi lên, sẽ ghi đè giá trị của xe đã lưu.
heightnumber · cmnumber · cmKhôngGiá trị slot dùng khi xếp; nếu gửi lên, sẽ ghi đè giá trị của xe đã lưu.
max_weightnumber · kgnumber · kgKhôngGiá trị slot dùng khi xếp; nếu gửi lên, sẽ ghi đè giá trị của xe đã lưu.
quantityintegerintegerKhôngSố xe giống hệt nhau của định nghĩa này đang có.
Mặc định11–100aux_deckbooleanbooleanKhôngXe có sàn thứ hai (xe hai tầng).
Mặc địnhfalseaux_deck_heightnumber · cmnumber · 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 · kgnumber · kgKhôngGiới hạn tải của sàn thứ hai. Bắt buộc khi
aux_decklàtrue.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.
≤ 32 itemsxnumber · 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.
tractor_weightCần được cấp quyềnnumber · kgnumber · kgKhôngMô 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 · kgnumber · 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_axleCần được cấp quyềnnumber · cmnumber · 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_cogCần được cấp quyềnnumber · cmnumber · 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_kingpinCần được cấp quyềnnumber · cmnumber · 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_axleCần được cấp quyềnnumber · cmnumber · 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_axleCần được cấp quyềnnumber · cmnumber · 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_kingpinCần được cấp quyềnnumber · cmnumber · cmKhôngMô 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 · kgnumber · 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_weightCần được cấp quyềnnumber · kgnumber · 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.
itemsItem[]Item[]KhôngHàng hóa theo cấu trúc Item của /v1/pack; ID có dạng item_….
idstringstringKhôngMã định danh của bạn, duy nhất trong yêu cầu. Kết quả tham chiếu đến nó dưới tên item_id. Mặc định là template_id.
≤ 128 charstemplate_idstringstringKhôngID mẫu hàng (tpl_…) lấy từ GET /v1/templates. Cung cấp mọi trường của kiện hàng; các trường gửi kèm sẽ ghi đè lên chúng.
labelstringstringKhôngNhãn hiển thị (mặc định là ID).
≤ 255 charsshapestringstringKhôngHình dạng kiện hàng.
cylindervàdrumdùngradius+heightthay cholength+width;palletvàdrumluôn đứng thẳng.boxcylinderpalletbagdrumMặc định"box"lengthnumber · cmnumber · cmKhôngChiều dài. Bắt buộc, trừ khi
shapelàcylinderhoặcdrum.widthnumber · cmnumber · cmKhôngChiều rộng. Bắt buộc, trừ khi
shapelàcylinderhoặcdrum.heightnumber · cmbắt buộcnumber · cmCóChiều cao (cạnh thẳng đứng khi kiện hàng đứng như định nghĩa).
radiusnumber · cmnumber · cmKhôngBán kính. Bắt buộc khi
shapelàcylinderhoặcdrum.weightnumber · kgbắt buộcnumber · kgCóTrọng lượng của MỘT kiện.
quantityintegerintegerKhôngSố kiện giống nhau.
Mặc định11–10000stackablebooleanbooleanKhôngCó thể đặt kiện hàng khác lên trên kiện này.
Mặc địnhtruemax_stack_weightnumber · kgnumber · kgKhôngTrọng lượng tối đa được đè lên một kiện. 0 = không giới hạn.
Mặc định0rotationstringstringKhôngall= bất kỳ hướng nào trong sáu hướng;upright= chỉ được xoay quanh trục đứng (giữ mặt trên hướng lên);fixed= không bao giờ xoay.alluprightfixedMặc định"all"hazardousbooleanbooleanKhôngHàng nguy hiểm: được đặt thấp và tách khỏi các hàng nguy hiểm khác.
Mặc địnhfalsepriorityintegerintegerKhôngMức ưu tiên xếp hàng. Cao hơn = được xếp trước và được giữ lại khi hết chỗ. 0 = không ưu tiên.
Mặc định0groupstringstringKhôngTên nhóm chứa kiện hàng này (xem
groupsvàoptions.group_routing).colorstringstringKhôngMàu hiển thị dạng #rrggbb (chỉ dùng cho trình xem và PDF).
nesting_heightnumber · cmnumber · cmKhôngPhần lồng vào nhau khi các kiện giống nhau xếp chồng (thùng, xô lồng vào nhau).
Mặc định0groupsGroup[]Group[]Khôngnamestringbắt buộcstringCóTên nhóm, được Item.group tham chiếu.
≤ 128 charsorderintegerintegerKhôngThứ tự xếp hàng (nhỏ hơn = xếp trước). Mặc định là vị trí trong danh sách.
colorstringstringKhôngMàu hiển thị dạng #rrggbb.
planProjectPlan | nullProjectPlan | nullKhôngSơ đồ hiện tại;
nullkhi dự án chưa có sơ đồ.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.
job_idstringstringKhôngTác vụ API đã tạo sơ đồ này, chừng nào chưa có gì thay đổi nó. Rỗng với sơ đồ được lập hoặc chỉnh sửa trong ứng dụng.
pdf_urlstringstringKhôngLiên kết PDF của tác vụ đó (đến expires_at của tác vụ). Nếu không thì rỗng.
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
plan_limit_reachedip_not_allowedsubscription_inactiveaccount_inactivescope_missingplan_limit_reachedGói của tổ chức không cho phép thêm dự án hoặc kiện hàng.ip_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.