Paxon
Paxon MultiBoxPacker Cartonisatieservice
API
NL

API-referentie

Roep de packing-engine rechtstreeks aan via HTTP. Stuur een zending (producten en doostypes) en ontvang de optimale set pakketten. Antwoorden zijn deterministisch voor een gegeven aanvraag.

Basis-URL

http://localhost:5180

Authenticatie

Elke aanvraag moet je API-sleutel bevatten in de X-Api-Key-header. Neem contact op met je Paxon-beheerder voor een sleutel.

X-Api-Key: your-api-key

Endpoint

POST http://localhost:5180/api/v1/pack

Aanvraagvelden

FieldTypeNotes
maxParcelsintMax parcels (boxes + boxless).
rotationModestringNone | UprightOnly | Free.
productsarrayid, length, width, height (mm), weight (g), quantity, breakable, dg, boxless?, orientationConstrained?, tags?.
boxTypesarrayid, length, width, height (mm), maxWeight (g), breakableAllowed, dgAllowed, priority (lower preferred), minCutHeight? (mm — the machine can trim the box down to this height).
rulesarray?type (keep-separate | keep-together | limit-quantity), tagA, tagB?, quantity?.
maxRuntimeSecondsint?Override the solve budget (bounded by a server ceiling).
forceRecomputebool?Bypass the cache lookup (result still cached).

Antwoordvelden

FieldTypeNotes
statusstringSUCCESS | NO_SOLUTION | NOT_FOUND | ERROR.
parcelsUsedintBoxes + boxless items used.
boxesarrayChosen boxes with their placements, contentsHeight (mm, how tall the contents stack) and cutHeight? (mm, present only when the box is cuttable).
boxlessItemsarrayItems shipped without a box.
timedOutboolTrue if the solve budget elapsed.
runtimeMslongSolve time in milliseconds.
errorsarray?Present when status is ERROR.

Resultaatstatus

SUCCESS: er is een oplossing gevonden. NO_SOLUTION: bewezen onmogelijk binnen de limieten. NOT_FOUND: geen oplossing gevonden maar niet bewezen onmogelijk (zie timedOut). ERROR: de aanvraag was ongeldig (zie errors).

Fouten

Ongeldige invoer geeft HTTP 200 met status ERROR en een errors-array; elk item heeft een code (een veldpad zoals products[0].weight) en een leesbare boodschap.

Limieten

Maximaal 100 aanvragen per minuut per IP-adres; aanvraagbodies zijn beperkt tot 1 MB.

Voorbeeldaanvraag

{
  "maxParcels": 6,
  "rotationMode": "Free",
  "products": [
    { "id": "SKU-1", "length": 220, "width": 150, "height": 20, "weight": 500, "quantity": 1, "breakable": false, "dg": false }
  ],
  "boxTypes": [
    { "id": "A1", "length": 225, "width": 150, "height": 100, "maxWeight": 15000, "breakableAllowed": true, "dgAllowed": true, "priority": 20, "minCutHeight": 20 }
  ]
}

Voorbeeldantwoord

{
  "success": true,
  "parcelsUsed": 1,
  "boxes": [ { "boxTypeId": "A1", "contentsHeight": 20, "cutHeight": 20, "placements": [ { "productId": "SKU-1" } ] } ],
  "boxlessItems": [],
  "status": "SUCCESS",
  "timedOut": false,
  "runtimeMs": 3
}