Packing API

Tuma mzigo, upate mpangilio wa kupakia uliopangwa vizuri na uliohalal kiufizikia — nafasi za kupakia, mita ya kupakia, futi za mstari na nafasi za pallet zinazotumika kwa malipo. Injini sawa inayotumika kwenye programu, iliyothibitishwa mara kwa mara kwa miundo ya wasambazaji halisi. Upatikanaji wa sandbox kwenye kila mpango; upatikanaji wa uzalishaji kwenye Enterprise.

Mwanzo wa haraka

  1. Ingia → bonyeza jina lako → API → unda ufunguo.
  2. Tuma kazi ya kupakia (hii inatekelezwa kwenye sandbox — bure kwenye kila mpango):
curl -X POST https://hansatic.com/api/v1/pack \
  -H "Authorization: Bearer hk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "vehicle": "CURTAINSIDER_136",
    "objective": "ldm",
    "sandbox": true,
    "items": [{
      "name": "Machine crate",
      "length": 2300, "width": 750, "height": 1400,
      "weight": 300, "quantity": 7,
      "stackable": false, "tiltable": false
    }]
  }'
{
  "job_id": "5e3617d1-abe4-4549-b7e6-d18c6baf814f",
  "status": "queued",
  "sandbox": true,
  "status_url": "https://hansatic.com/api/v1/jobs/5e3617d1-..."
}

Chunguza status_url (na kibali cha uthibitisho sawa) hadi status iwe "done":

{
  "job_id": "5e3617d1-...",
  "status": "done",
  "result": {
    "placed_count": 7,
    "unplaced_count": 0,
    "units": "metric",
    "metrics": {
      "ldm_m": 5.25,
      "span_mm": 5250,
      "linear_ft": 17.2,
      "pallet_positions_eur": 14,
      "total_weight_kg": 2100,
      "overlaps": 0
    },
    "items": [
      { "id": "...", "name": "Machine crate", "placed": true,
        "x": 8370, "y": 0, "z": 0,
        "rotation_deg": 90, "tilt_deg": 0, "...": "..." }
    ],
    "plan_url": "https://hansatic.com/en/app/plans/..."
  }
}

Njia za API

POST /api/v1/pack

Inathibitisha na kuweka kazi ya kupakia kwenye foleni. Inarudisha 202 pamoja na job_id. Inasaidia kichwa cha Idempotency-Key — majaribio ya kurudia na ufunguo sawa hurudisha kazi ya awali badala ya kupakia mara mbili.

GET /api/v1/jobs/{id}

Hali ya kazi na, wakati wa kumalizika, matokeo kamili. Matokeo yanatunzwa kwa siku 30; mipango ya uzalishaji inaishi kwenye eneo lako la kazi kwa muda usio na mwisho.

GET /api/v1/openapi.json

Mkataba wa OpenAPI 3.1 unaosomwa na mashine — uweze kuuhamisha kwenye Postman, zana za kuzalisha msimbo, au uelekeze zana yako ya AI ya uandishi wa msimbo. Nambari za gari zinachanganywa kutoka kwa injini hai, hivyo daima ni ya sasa. Fungua taarifa ↗

Sehemu za majibu

Kipengele cha result kwenye kazi iliyomalizika:

SehemuAinaMaelezo
placed_count / unplaced_countintegerIdadi ya vitu vilivyofaa / visivyofaa.
units"metric" | "imperial"Vipimo vinavyotumika kwa kila nambari hapa chini (inarejesha ombi).
metrics.ldm_mnumberMita za kupakia — urefu wa mzigo (mwisho wa juu − mwanzo wa chini).
metrics.linear_ftnumberUrefu huo huo kwa futi za mstari (US LTL).
metrics.span_mmintegerUrefu kwa mm, daima kipimo cha kimataifa.
metrics.pallet_positions_eurinteger | nullNafasi za pallet za EUR zinazotumika kwa malipo. null wakati mpangilio ni mkubwa mno kwa kupimwa.
metrics.total_weight_kgnumberUzito wa vitu vilivyowekwa, daima kwa kg.
metrics.overlapsintegerJozi zinazopenetana — daima 0 kwa mpangilio halali.
items[].placedbooleanKama kitu kimewekwa kwenye mpangilio.
items[].x / y / znumber | nullNafasi kwa vipimo vya ombi: x kutoka upande wa mlango, y kutoka ukuta wa kushoto, z juu ya sakafu. Zote tatu ni null wakati placed ni false.
items[].rotation_deg / tilt_deg0 | 90Mwelekeo: mzunguko kwenye mhimili wa wima; tilt = kulala pembeni.
items[].length / width / height / weightnumberKitu kama kilivyotumwa, kirejesha kwa vipimo vya ombi.
plan_urlstring | nullMpango ulioundwa kwenye programu. null kwa kazi za sandbox.

Toleo na utulivu

Mkataba unaotolewa kwa njia ya /api/v1/. Ndani ya v1, mabadiliko ni ya kuongeza tu — sehemu mpya za ombi za hiari, sehemu mpya za majibu, nambari mpya za gari na nambari za makosa zinaweza kuonekana, na wateja wanapaswa kuzitilia mbali sehemu ambazo hawajui. Sehemu zilizopo kamwe hazibadilishi maana au aina, wala hakuna chochote kinachofutwa. Mabadiliko makubwa yanamaanisha njia mpya ya toleo, na v1 itatunzwa sambamba kwa angalau miezi 12 na taarifa ya kuondoa kwa barua pepe kwa kila eneo la kazi lenye ufunguo wa kazi.

Sehemu za ombi

SehemuAinaMaelezo
vehiclestringNambari ya gari kutoka kwa jedwali hapa chini. Au tuma {customVehicleId} (gari kutoka kwa usafiri wako wa eneo la kazi).
objective"ldm" | "pallets"Punguza mita za kupakia, au punguza nafasi za pallet zinazotumika kwa malipo. Chaguo-msingi ni "ldm".
units"metric" | "imperial"Jinsi vipimo na uzito vya vitu vinavyosomwa NA kurudishwa: mm/kg (chaguo-msingi) au in/lb. Nafasi kwenye jibu zinafuata vipimo hivyo hivyo.
itemsarray, requiredOrodha ya mizigo (sehemu zifuatazo).
sandboxbooleanHali ya jaribio: matokeo kamili, hakuna kitu kinachohifadhiwa. Inapatikana kwenye kila mpango.
namestringJina la mpango (hali ya uzalishaji).
ldm_limit_mnumberPunguza mzigo hadi mita N za kwanza za kupakia (malori).
budget_msnumberWakati wa uboreshaji (uzalishaji; chaguo-msingi 30000, kiwango cha juu 300000).
callback_urlhttps URLInatumwa POST matokeo wakati kazi inapomalizika, imesainiwa (angalia Webhooks).

Sehemu za kitu

SehemuAinaMaelezo
length / width / heightnumber, requiredVipimo vya kitu, vinavyosomwa kwa vipimo vya ombi (mm kwa chaguo-msingi, inchi kwa "units": "imperial").
weightnumber, requiredUzito wa kitu (kg kwa chaguo-msingi, lb kwa "units": "imperial").
quantityinteger, default 1Inapanua kuwa vitengo binafsi.
namestring, optionalInaonekana kwenye mpango na jibu.
stackableboolean, default trueMizigo mingine inaweza kusimama juu ya kitu hiki.
max_stacknumber, optionalUzito wa juu unaoweza kusimama juu ya kitu hiki (vipimo sawa na uzito).
fragileboolean, default falseVitu vya kuvunjika huwekwa kwenye safu za juu tu.
tiltableboolean, default trueJe, kitu kinaweza kulala pembeni.
destination_stopinteger, default 1Kituo cha kufikisha kwa upakiaji wa LIFO wa vituo vingi.

Nambari za gari

Zimetengenezwa kutoka kwa taarifa za injini hai. Gari maalum kutoka kwa usafiri wako wa eneo la kazi hufanya kazi kupitia custom_vehicle_id.

Malori & viburudisho

NambariGariNdani (U×P×K)Mzigo
CURTAINSIDER_13613.6m Curtainsider13.62 × 2.48 × 2.70 m24 t
BOX_13613.6m Box Trailer13.62 × 2.46 × 2.68 m24 t
MEGA_13613.6m Mega Trailer13.62 × 2.48 × 3.00 m22.5 t
MEGA_CURTAIN_13613.6m Mega Curtainsider13.62 × 2.48 × 3.00 m22 t
FLATBED_13613.6m Flatbed13.62 × 2.48 × 3.00 m25 t
REEFER_13613.6m Reefer13.32 × 2.44 × 2.54 m22 t
CURTAINSIDER_757.5m City Curtainsider7.50 × 2.48 × 2.70 m12 t
SWAPBODY_7157.15m Swap Body7.15 × 2.48 × 2.70 m12 t
SWAPBODY_7457.45m Swap Body7.45 × 2.48 × 2.70 m12 t
DRY_VAN_5353ft Dry Van16.15 × 2.59 × 2.74 m20 t
FLATBED_5353ft Flatbed16.15 × 2.59 × 3.66 m22 t
REEFER_5353ft Reefer15.85 × 2.46 × 2.59 m18.5 t
CURTAINSIDER_125_CN12.5m Curtainsider (CN)12.50 × 2.50 × 2.80 m27 t
FLATBED_40_IN40ft Flatbed (IN)12.19 × 2.50 × 3.50 m26 t
BOX_138_BR13.8m Box Van (BR)13.80 × 2.50 × 2.90 m28 t
CURTAINSIDER_12_ZA12m Curtainsider (ZA)12.00 × 2.48 × 2.70 m28 t

Kontena

NambariKontenaNdani (U×P×K)Mzigo
20DC20' Dry Container5.89 × 2.35 × 2.39 m21.727 t
20HC20' High Cube5.89 × 2.35 × 2.70 m21.58 t
40DC40' Dry Container12.03 × 2.35 × 2.39 m26.63 t
40HC40' High Cube12.03 × 2.35 × 2.70 m26.58 t
45HC45' High Cube13.56 × 2.35 × 2.70 m25.68 t
20OT20' Open Top5.89 × 2.35 × 2.39 m21.64 t
40OT40' Open Top12.03 × 2.35 × 2.39 m26.58 t
20RF20' Reefer5.44 × 2.29 × 2.27 m21 t
40RF40' Reefer11.58 × 2.29 × 2.21 m25.6 t
40RFHC40' Reefer High Cube11.58 × 2.29 × 2.54 m25.88 t
53DC53' Domestic16.15 × 2.59 × 2.90 m26 t

Viwango vya upatikanaji & vikomo

Sandbox (kila mpango)Uzalishaji (Enterprise)
Maombi25 yenye mafanikio / mwezi5,000 inayofanikiwa / mwezi
Vitu kwa orodha205,000
Kazi zinazotekelezwa wakati mmoja110
Wakati wa uboreshaji10 s30 s kwa chaguo-msingi, hadi 300 s
UhifadhiHakuna chochote kinachohifadhiwaKila kupakia huunda mpango halisi kwenye eneo lako la kazi

Hesabu inahusu tu pakiti zilizofanikiwa — zile zisizokidhi vigezo na kazi zilizoshindwa hazihusiki na kipimo. Vijenzi vyote hupangwa upya tarehe 1 (UTC). Matokeo ya sandbox ni kamili na yasiyopunguzwa — vikwazo ndivyo kizingiti, si matokeo. Unahitaji zaidi ya pakiti 5,000 kwa mwezi? Wasiliana nasi kuhusu bei ya wingi na OEM.

Webhooks

Tuma callback_url ili upokee matokeo kupitia POST wakati kazi inapomalizika. Kila callback inabeba X-Hansatic-Signature: HMAC-SHA256 ya mwili wa maandishi kwa siri yako ya webhook ya ufunguo (inayoonekana mara moja wakati wa kuunda ufunguo). Thibitisha:

const crypto = require('crypto');

function verify(rawBody, signatureHeader, webhookSecret) {
  const expected = crypto.createHmac('sha256', webhookSecret)
    .update(rawBody).digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(expected), Buffer.from(signatureHeader));
}

Uwasilishaji ni jaribio moja na muda wa muda wa 5s — status_url daima inabaki chanzo cha ukweli.

Makosa

Makosa yote ni { "error": { "code", "message", ... } } — nambari ya makosa inayosomwa na mashine, ujumbe unaosomwa na binadamu, na field wakati sehemu maalum ya ombi ni sababu.

NambariHTTPMaana
invalid_key401Ufunguo wa API unaokosekana, uliopangwa vibaya, au umefutwa.
invalid_json400Mwili si JSON halali.
invalid_vehicle400Nambari ya gari / {customVehicleId} haijulikani.
invalid_items400Sehemu ya kitu inakosekana, si nambari, au nje ya kiwango.
suspicious_dimensions400Vipimo vyote chini ya 100mm — labda inchi zimetumwa kama mm. Tuma "units": "imperial".
invalid_units400units lazima ziwe "metric" au "imperial".
invalid_objective400objective lazima iwe "ldm" au "pallets".
invalid_callback400callback_url lazima iwe https.
too_many_items400Orodha ya mizigo inazidi kikomo cha vitu kwa kiwango chako cha upatikanaji.
upgrade_required402Hali ya uzalishaji inahitaji mpango wa Enterprise. Tumia sandbox, au uboreshe.
sandbox_limit_reached402Kikomo cha sandbox cha mwezi kimefikiwa — kinarejesha tarehe 1.
quota_exceeded402Kipimo cha uzalishaji wa mwezi wa pakiti 5,000 kimekwisha — hupangwa upya tarehe 1. Kwa wingi zaidi: wasiliana nasi.
too_many_jobs429Kikomo cha kazi zinazotekelezwa wakati mmoja kimefikiwa. Chunguza kazi zinazotekelezwa na ujaribu tena.
not_found404Hakuna kazi kama hiyo kwa eneo hili la kazi.

Maswali, vikomo vikubwa zaidi, au kiungo unachohitaji (Zapier, Excel, MCP)? hello@hansatic.com