Production

Called with factory account keys. A key only sees its own account's data. Every example uses the same sample brand, order and item, so you can follow one item from call to call.

Base URL http://62.169.23.239:8001/api/v1Auth Bearer token5 endpoints

List Factory Orders#

GET/factory/production-orders

Requires scope factory_orders:read

Parameters

  • searchstringquery

    Search order ID, brand, product, or SKU

  • statusstringquery

    Filter by order status

  • brand_namestringquery

    Filter by brand name

  • date_fromdatequery

    Order date on or after

  • date_todatequery

    Order date on or before

  • pageintegerquery

    Defaults to 1

  • limitintegerquery

    Defaults to 5

Returns

HTTP 200
  • itemsarray of objectsRequired

    The objects on this page.

    +Show 11 child attributes
    • order_idstringRequired

      Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

    • order_display_idstringRequired

      Order number formatted for display (#PO-YYYY-XXXX).

    • brand_namestringRequired
    • product_namestringRequired
    • total_quantityintegerRequired
    • flow_typestringRequired

      standard = the factory knows each item's variant when printing; variable = variants are assigned at QC.

    • date_receiveddate | null
    • due_datedate | null
    • statusstringRequired

      Current state of the object. See the allowed values.

    • tracking_statusstring | null

      Where the production order is in its lifecycle. This is the only progress field — use it, not status_display.

    • status_displaystring | null
  • paginationobjectRequired

    Page position: current_page, limit, total_pages, total_results.

    +Show 6 child attributes
    • total_resultsintegerRequired
    • total_pagesintegerRequired
    • current_pageintegerRequired
    • limitintegerRequired
    • showing_fromintegerRequired
    • showing_tointegerRequired
GET /factory/production-orders
curl
curl http://62.169.23.239:8001/api/v1/factory/production-orders \
  -H "Authorization: Bearer $SKANNIT_TOKEN"
200Response
json
{
  "items": [
    {
      "order_id": "ord_8c2f4e1a9b7d3c60",
      "order_display_id": "#PO-2026-7F3A",
      "brand_name": "Northwind Apparel",
      "product_name": "Trail Tee",
      "total_quantity": 24,
      "flow_type": "flow type",
      "date_received": "2026-11-20",
      "due_date": "2026-11-20",
      "status": "active",
      "tracking_status": "IN-PRODUCTION",
      "status_display": "In production"
    }
  ],
  "pagination": {
    "total_results": 24,
    "total_pages": 24,
    "current_page": 1,
    "limit": 1,
    "showing_from": 1,
    "showing_to": 1
  }
}

Get Factory Order Detail#

GET/factory/production-orders/{order_id}

Requires scope factory_orders:read

Parameters

  • order_idstringpathRequired

    Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

Returns

HTTP 200
  • order_idstringRequired

    Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

  • order_display_idstringRequired

    Order number formatted for display (#PO-YYYY-XXXX).

  • tracking_statusstringRequired

    Where the production order is in its lifecycle. This is the only progress field — use it, not status_display.

  • status_displaystringRequired
  • status_tonestring | null
  • scheduled_completiondate | null
  • production_linestring | null
  • flow_typestring

    standard = the factory knows each item's variant when printing; variable = variants are assigned at QC.

    Defaults to standard

  • product_image_urlstring | null
  • product_idstring | null

    Skannit's id for the product.

  • material_declaredboolean

    True once the factory has declared what it is actually sourcing for this run. start_factory_production requires this before SCHEDULED -> IN-PRODUCTION is allowed.

    Defaults to false

  • material_weights_declaredboolean

    True once every declared element carries a gram weight at every size in product_sizes. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • product_sizesarray of strings

    Sizes this product is made in, from its variants — the columns the factory's per-element weight grid has to fill.

  • sustainability_declaredboolean

    True once the factory has declared sustainability & circularity data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • repairability_declaredboolean

    True once the factory has declared repairability data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • origin_compliance_declaredboolean

    True once the factory has declared origin & compliance data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • declarations_lockedboolean

    True once production has started: declarations can no longer change and certificates can only be added as amendments with a note.

    Defaults to false

  • is_delayedboolean

    Defaults to false

  • batch_infoobjectRequired
    +Show 10 child attributes
    • batch_idstringRequired
    • lot_numberstringRequired
    • prioritystring | null
    • operator_namestring | null
    • operator_avatar_urlstring | null
    • start_timestring | null
    • estimated_endstring | null
    • brand_namestringRequired
    • product_namestringRequired
    • statusstringRequired

      Current state of the object. See the allowed values.

  • total_unitsintegerRequired

    Target units from quantity matrix

  • total_itemsintegerRequired

    Component rows in production list

  • completed_itemsintegerRequired
  • items_progress_labelstringRequired

    Human label e.g. "480 / 500 items units"

  • progress_stagesarray of objectsRequired
    +Show 4 child attributes
    • keystringRequired
      One ofraw_materialsassemblyquality_checkpackaging
    • labelstringRequired
    • statestringRequired
      One ofcompletedactivepending
    • sublabelstringRequired
  • locationobject | null

    Free-text place in your warehouse, for example "Aisle 4, Bay B".

    +Show 4 child attributes
    • labelstringRequired
    • baystring | null
    • sectorstring | null
    • warehouse_map_urlstring | null
  • kpisobjectRequired
    +Show 2 child attributes
    • efficiency_pctnumberRequired
    • waste_ratio_pctnumberRequired
  • actionsobjectRequired
    +Show 10 child attributes
    • can_start_productionboolean

      Defaults to false

    • can_complete_productionboolean

      Defaults to false

    • can_complete_batchboolean

      Defaults to false

    • can_generate_qrboolean

      Defaults to false

    • can_print_labelsboolean

      Defaults to false

    • can_confirm_label_printboolean

      Defaults to false

    • can_report_issueboolean

      Defaults to true

    • qr_batch_idstring | null

      The QR batch created for this order — one per production order.

    • qr_batch_statusstring | null
    • labels_printed_atstring | null
  • itemsarray of objectsRequired

    The objects on this page.

    +Show 6 child attributes
    • component_idstringRequired
    • colorstringRequired

      Colour name, exactly as on the product's variants.

    • sizestringRequired

      Size name, exactly as on the product's variants.

    • statusstringRequired

      Current state of the object. See the allowed values.

      One ofPassReviewIn ProgressPending
    • quantityintegerRequired

      Number of units.

    • quality_scoreintegerRequired
  • logistics_planobject | null
    +Show 2 child attributes
    • boxesarray of objects
      +Show 6 child attributes
      • idstringRequired
      • modestringRequired
        One ofsamemixed
      • capacityintegerRequired
      • regionstring | null
      • linesarray of objectsRequired

        Line items, one per variant.

        +Show 5 child attributes
        • colorstringRequired

          Colour name, exactly as on the product's variants.

        • sizestringRequired

          Size name, exactly as on the product's variants.

        • batch_skustring | null

          SKU printed on the label for this variant in this batch.

        • quantityintegerRequired

          Number of units.

        • volume_lstring | null

          Packaged volume of one unit, in litres. Used to size boxes.

      • created_atstring | null

        When the object was created (ISO 8601, UTC).

    • destinationsarray of objects
      +Show 8 child attributes
      • idstringRequired
      • namestringRequired
      • citystring | null
      • countrystringRequired
      • arrival_datestring | null
      • prioritystring
        One oflowstandardurgent

        Defaults to standard

      • box_idsarray of strings

        Ids of the boxes this call acts on.

      • instructionsstring

        Defaults to

GET /factory/production-orders/{order_id}
curl
curl http://62.169.23.239:8001/api/v1/factory/production-orders/ord_8c2f4e1a9b7d3c60 \
  -H "Authorization: Bearer $SKANNIT_TOKEN"
200Response
json
{
  "order_id": "ord_8c2f4e1a9b7d3c60",
  "order_display_id": "#PO-2026-7F3A",
  "tracking_status": "IN-PRODUCTION",
  "status_display": "In production",
  "status_tone": "on_track",
  "scheduled_completion": "2026-11-20",
  "production_line": "production line",
  "flow_type": "standard",
  "product_image_url": "https://files.skannit.example/product_image.png",
  "product_id": "f6abe715-90aa-5908-a0a6-12951a3a21cc",
  "material_declared": false,
  "material_weights_declared": false,
  "product_sizes": [
    "product size"
  ],
  "sustainability_declared": false,
  "repairability_declared": false,
  "origin_compliance_declared": false,
  "declarations_locked": false,
  "is_delayed": false,
  "batch_info": {
    "batch_id": "d25c8e92-dbf6-501d-9bbb-ca1b783c82d1",
    "lot_number": "lot number",
    "priority": "standard",
    "operator_name": "Operator",
    "operator_avatar_url": "https://files.skannit.example/operator_avatar.png",
    "start_time": "start time",
    "estimated_end": "estimated end",
    "brand_name": "Northwind Apparel",
    "product_name": "Trail Tee",
    "status": "active"
  },
  "total_units": 24,
  "total_items": 24,
  "completed_items": 1,
  "items_progress_label": "Items progress",
  "progress_stages": [
    {
      "key": "raw_materials",
      "label": "Packed",
      "state": "completed",
      "sublabel": "sublabel"
    }
  ],
  "location": "Aisle 4, Bay B",
  "kpis": {
    "efficiency_pct": 72.5,
    "waste_ratio_pct": 72.5
  },
  "actions": {
    "can_start_production": false,
    "can_complete_production": false,
    "can_complete_batch": false,
    "can_generate_qr": false,
    "can_print_labels": false,
    "can_confirm_label_print": false,
    "can_report_issue": true,
    "qr_batch_id": "qb_3e9a1c7f2b40",
    "qr_batch_status": "qr batch status",
    "labels_printed_at": null
  },
  "items": [
    {
      "component_id": "beb72a9a-5c27-534e-93b5-af0d8a8cd73e",
      "color": "White",
      "size": "M",
      "status": "Pass",
      "quantity": 1,
      "quality_score": 1
    }
  ],
  "logistics_plan": {
    "boxes": [
      {
        "id": "SKN-CRT-00402-9A1C3E7F",
        "mode": "same",
        "capacity": 1,
        "region": "EU",
        "lines": [
          {
            "color": "White",
            "size": "M",
            "batch_sku": "TT-100-WHT-M",
            "quantity": 1,
            "volume_l": 0.5
          }
        ],
        "created_at": "2026-10-09T09:30:00Z"
      }
    ],
    "destinations": [
      "in_store"
    ]
  }
}

Complete batch after label printing#

POST/factory/production-orders/{order_id}/complete-batch

Requires scope factory_orders:write

Advance the order from **AWAITING LABELS** → **QUALITY CONTROL**.

Requires QR labels to be confirmed printed (labels_printed batch status).

Parameters

  • order_idstringpathRequired

    Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

Returns

HTTP 200
  • order_idstringRequired

    Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

  • order_display_idstringRequired

    Order number formatted for display (#PO-YYYY-XXXX).

  • tracking_statusstringRequired

    Where the production order is in its lifecycle. This is the only progress field — use it, not status_display.

  • status_displaystringRequired
  • status_tonestring | null
  • scheduled_completiondate | null
  • production_linestring | null
  • flow_typestring

    standard = the factory knows each item's variant when printing; variable = variants are assigned at QC.

    Defaults to standard

  • product_image_urlstring | null
  • product_idstring | null

    Skannit's id for the product.

  • material_declaredboolean

    True once the factory has declared what it is actually sourcing for this run. start_factory_production requires this before SCHEDULED -> IN-PRODUCTION is allowed.

    Defaults to false

  • material_weights_declaredboolean

    True once every declared element carries a gram weight at every size in product_sizes. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • product_sizesarray of strings

    Sizes this product is made in, from its variants — the columns the factory's per-element weight grid has to fill.

  • sustainability_declaredboolean

    True once the factory has declared sustainability & circularity data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • repairability_declaredboolean

    True once the factory has declared repairability data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • origin_compliance_declaredboolean

    True once the factory has declared origin & compliance data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • declarations_lockedboolean

    True once production has started: declarations can no longer change and certificates can only be added as amendments with a note.

    Defaults to false

  • is_delayedboolean

    Defaults to false

  • batch_infoobjectRequired
    +Show 10 child attributes
    • batch_idstringRequired
    • lot_numberstringRequired
    • prioritystring | null
    • operator_namestring | null
    • operator_avatar_urlstring | null
    • start_timestring | null
    • estimated_endstring | null
    • brand_namestringRequired
    • product_namestringRequired
    • statusstringRequired

      Current state of the object. See the allowed values.

  • total_unitsintegerRequired

    Target units from quantity matrix

  • total_itemsintegerRequired

    Component rows in production list

  • completed_itemsintegerRequired
  • items_progress_labelstringRequired

    Human label e.g. "480 / 500 items units"

  • progress_stagesarray of objectsRequired
    +Show 4 child attributes
    • keystringRequired
      One ofraw_materialsassemblyquality_checkpackaging
    • labelstringRequired
    • statestringRequired
      One ofcompletedactivepending
    • sublabelstringRequired
  • locationobject | null

    Free-text place in your warehouse, for example "Aisle 4, Bay B".

    +Show 4 child attributes
    • labelstringRequired
    • baystring | null
    • sectorstring | null
    • warehouse_map_urlstring | null
  • kpisobjectRequired
    +Show 2 child attributes
    • efficiency_pctnumberRequired
    • waste_ratio_pctnumberRequired
  • actionsobjectRequired
    +Show 10 child attributes
    • can_start_productionboolean

      Defaults to false

    • can_complete_productionboolean

      Defaults to false

    • can_complete_batchboolean

      Defaults to false

    • can_generate_qrboolean

      Defaults to false

    • can_print_labelsboolean

      Defaults to false

    • can_confirm_label_printboolean

      Defaults to false

    • can_report_issueboolean

      Defaults to true

    • qr_batch_idstring | null

      The QR batch created for this order — one per production order.

    • qr_batch_statusstring | null
    • labels_printed_atstring | null
  • itemsarray of objectsRequired

    The objects on this page.

    +Show 6 child attributes
    • component_idstringRequired
    • colorstringRequired

      Colour name, exactly as on the product's variants.

    • sizestringRequired

      Size name, exactly as on the product's variants.

    • statusstringRequired

      Current state of the object. See the allowed values.

      One ofPassReviewIn ProgressPending
    • quantityintegerRequired

      Number of units.

    • quality_scoreintegerRequired
  • logistics_planobject | null
    +Show 2 child attributes
    • boxesarray of objects
      +Show 6 child attributes
      • idstringRequired
      • modestringRequired
        One ofsamemixed
      • capacityintegerRequired
      • regionstring | null
      • linesarray of objectsRequired

        Line items, one per variant.

        +Show 5 child attributes
        • colorstringRequired

          Colour name, exactly as on the product's variants.

        • sizestringRequired

          Size name, exactly as on the product's variants.

        • batch_skustring | null

          SKU printed on the label for this variant in this batch.

        • quantityintegerRequired

          Number of units.

        • volume_lstring | null

          Packaged volume of one unit, in litres. Used to size boxes.

      • created_atstring | null

        When the object was created (ISO 8601, UTC).

    • destinationsarray of objects
      +Show 8 child attributes
      • idstringRequired
      • namestringRequired
      • citystring | null
      • countrystringRequired
      • arrival_datestring | null
      • prioritystring
        One oflowstandardurgent

        Defaults to standard

      • box_idsarray of strings

        Ids of the boxes this call acts on.

      • instructionsstring

        Defaults to

POST /factory/production-orders/{order_id}/complete-batch
curl
curl -X POST http://62.169.23.239:8001/api/v1/factory/production-orders/ord_8c2f4e1a9b7d3c60/complete-batch \
  -H "Authorization: Bearer $SKANNIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
200Response
json
{
  "order_id": "ord_8c2f4e1a9b7d3c60",
  "order_display_id": "#PO-2026-7F3A",
  "tracking_status": "IN-PRODUCTION",
  "status_display": "In production",
  "status_tone": "on_track",
  "scheduled_completion": "2026-11-20",
  "production_line": "production line",
  "flow_type": "standard",
  "product_image_url": "https://files.skannit.example/product_image.png",
  "product_id": "f6abe715-90aa-5908-a0a6-12951a3a21cc",
  "material_declared": false,
  "material_weights_declared": false,
  "product_sizes": [
    "product size"
  ],
  "sustainability_declared": false,
  "repairability_declared": false,
  "origin_compliance_declared": false,
  "declarations_locked": false,
  "is_delayed": false,
  "batch_info": {
    "batch_id": "d25c8e92-dbf6-501d-9bbb-ca1b783c82d1",
    "lot_number": "lot number",
    "priority": "standard",
    "operator_name": "Operator",
    "operator_avatar_url": "https://files.skannit.example/operator_avatar.png",
    "start_time": "start time",
    "estimated_end": "estimated end",
    "brand_name": "Northwind Apparel",
    "product_name": "Trail Tee",
    "status": "active"
  },
  "total_units": 24,
  "total_items": 24,
  "completed_items": 1,
  "items_progress_label": "Items progress",
  "progress_stages": [
    {
      "key": "raw_materials",
      "label": "Packed",
      "state": "completed",
      "sublabel": "sublabel"
    }
  ],
  "location": "Aisle 4, Bay B",
  "kpis": {
    "efficiency_pct": 72.5,
    "waste_ratio_pct": 72.5
  },
  "actions": {
    "can_start_production": false,
    "can_complete_production": false,
    "can_complete_batch": false,
    "can_generate_qr": false,
    "can_print_labels": false,
    "can_confirm_label_print": false,
    "can_report_issue": true,
    "qr_batch_id": "qb_3e9a1c7f2b40",
    "qr_batch_status": "qr batch status",
    "labels_printed_at": null
  },
  "items": [
    {
      "component_id": "beb72a9a-5c27-534e-93b5-af0d8a8cd73e",
      "color": "White",
      "size": "M",
      "status": "Pass",
      "quantity": 1,
      "quality_score": 1
    }
  ],
  "logistics_plan": {
    "boxes": [
      {
        "id": "SKN-CRT-00402-9A1C3E7F",
        "mode": "same",
        "capacity": 1,
        "region": "EU",
        "lines": [
          {
            "color": "White",
            "size": "M",
            "batch_sku": "TT-100-WHT-M",
            "quantity": 1,
            "volume_l": 0.5
          }
        ],
        "created_at": "2026-10-09T09:30:00Z"
      }
    ],
    "destinations": [
      "in_store"
    ]
  }
}

Mark factory production as complete#

POST/factory/production-orders/{order_id}/complete-production

Requires scope factory_orders:write

Advance the order from **IN-PRODUCTION** → **AWAITING LABELS**.

Requires QR labels to be confirmed printed (labels_printed batch status).

Parameters

  • order_idstringpathRequired

    Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

Returns

HTTP 200
  • order_idstringRequired

    Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

  • order_display_idstringRequired

    Order number formatted for display (#PO-YYYY-XXXX).

  • tracking_statusstringRequired

    Where the production order is in its lifecycle. This is the only progress field — use it, not status_display.

  • status_displaystringRequired
  • status_tonestring | null
  • scheduled_completiondate | null
  • production_linestring | null
  • flow_typestring

    standard = the factory knows each item's variant when printing; variable = variants are assigned at QC.

    Defaults to standard

  • product_image_urlstring | null
  • product_idstring | null

    Skannit's id for the product.

  • material_declaredboolean

    True once the factory has declared what it is actually sourcing for this run. start_factory_production requires this before SCHEDULED -> IN-PRODUCTION is allowed.

    Defaults to false

  • material_weights_declaredboolean

    True once every declared element carries a gram weight at every size in product_sizes. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • product_sizesarray of strings

    Sizes this product is made in, from its variants — the columns the factory's per-element weight grid has to fill.

  • sustainability_declaredboolean

    True once the factory has declared sustainability & circularity data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • repairability_declaredboolean

    True once the factory has declared repairability data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • origin_compliance_declaredboolean

    True once the factory has declared origin & compliance data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • declarations_lockedboolean

    True once production has started: declarations can no longer change and certificates can only be added as amendments with a note.

    Defaults to false

  • is_delayedboolean

    Defaults to false

  • batch_infoobjectRequired
    +Show 10 child attributes
    • batch_idstringRequired
    • lot_numberstringRequired
    • prioritystring | null
    • operator_namestring | null
    • operator_avatar_urlstring | null
    • start_timestring | null
    • estimated_endstring | null
    • brand_namestringRequired
    • product_namestringRequired
    • statusstringRequired

      Current state of the object. See the allowed values.

  • total_unitsintegerRequired

    Target units from quantity matrix

  • total_itemsintegerRequired

    Component rows in production list

  • completed_itemsintegerRequired
  • items_progress_labelstringRequired

    Human label e.g. "480 / 500 items units"

  • progress_stagesarray of objectsRequired
    +Show 4 child attributes
    • keystringRequired
      One ofraw_materialsassemblyquality_checkpackaging
    • labelstringRequired
    • statestringRequired
      One ofcompletedactivepending
    • sublabelstringRequired
  • locationobject | null

    Free-text place in your warehouse, for example "Aisle 4, Bay B".

    +Show 4 child attributes
    • labelstringRequired
    • baystring | null
    • sectorstring | null
    • warehouse_map_urlstring | null
  • kpisobjectRequired
    +Show 2 child attributes
    • efficiency_pctnumberRequired
    • waste_ratio_pctnumberRequired
  • actionsobjectRequired
    +Show 10 child attributes
    • can_start_productionboolean

      Defaults to false

    • can_complete_productionboolean

      Defaults to false

    • can_complete_batchboolean

      Defaults to false

    • can_generate_qrboolean

      Defaults to false

    • can_print_labelsboolean

      Defaults to false

    • can_confirm_label_printboolean

      Defaults to false

    • can_report_issueboolean

      Defaults to true

    • qr_batch_idstring | null

      The QR batch created for this order — one per production order.

    • qr_batch_statusstring | null
    • labels_printed_atstring | null
  • itemsarray of objectsRequired

    The objects on this page.

    +Show 6 child attributes
    • component_idstringRequired
    • colorstringRequired

      Colour name, exactly as on the product's variants.

    • sizestringRequired

      Size name, exactly as on the product's variants.

    • statusstringRequired

      Current state of the object. See the allowed values.

      One ofPassReviewIn ProgressPending
    • quantityintegerRequired

      Number of units.

    • quality_scoreintegerRequired
  • logistics_planobject | null
    +Show 2 child attributes
    • boxesarray of objects
      +Show 6 child attributes
      • idstringRequired
      • modestringRequired
        One ofsamemixed
      • capacityintegerRequired
      • regionstring | null
      • linesarray of objectsRequired

        Line items, one per variant.

        +Show 5 child attributes
        • colorstringRequired

          Colour name, exactly as on the product's variants.

        • sizestringRequired

          Size name, exactly as on the product's variants.

        • batch_skustring | null

          SKU printed on the label for this variant in this batch.

        • quantityintegerRequired

          Number of units.

        • volume_lstring | null

          Packaged volume of one unit, in litres. Used to size boxes.

      • created_atstring | null

        When the object was created (ISO 8601, UTC).

    • destinationsarray of objects
      +Show 8 child attributes
      • idstringRequired
      • namestringRequired
      • citystring | null
      • countrystringRequired
      • arrival_datestring | null
      • prioritystring
        One oflowstandardurgent

        Defaults to standard

      • box_idsarray of strings

        Ids of the boxes this call acts on.

      • instructionsstring

        Defaults to

POST /factory/production-orders/{order_id}/complete-production
curl
curl -X POST http://62.169.23.239:8001/api/v1/factory/production-orders/ord_8c2f4e1a9b7d3c60/complete-production \
  -H "Authorization: Bearer $SKANNIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
200Response
json
{
  "order_id": "ord_8c2f4e1a9b7d3c60",
  "order_display_id": "#PO-2026-7F3A",
  "tracking_status": "IN-PRODUCTION",
  "status_display": "In production",
  "status_tone": "on_track",
  "scheduled_completion": "2026-11-20",
  "production_line": "production line",
  "flow_type": "standard",
  "product_image_url": "https://files.skannit.example/product_image.png",
  "product_id": "f6abe715-90aa-5908-a0a6-12951a3a21cc",
  "material_declared": false,
  "material_weights_declared": false,
  "product_sizes": [
    "product size"
  ],
  "sustainability_declared": false,
  "repairability_declared": false,
  "origin_compliance_declared": false,
  "declarations_locked": false,
  "is_delayed": false,
  "batch_info": {
    "batch_id": "d25c8e92-dbf6-501d-9bbb-ca1b783c82d1",
    "lot_number": "lot number",
    "priority": "standard",
    "operator_name": "Operator",
    "operator_avatar_url": "https://files.skannit.example/operator_avatar.png",
    "start_time": "start time",
    "estimated_end": "estimated end",
    "brand_name": "Northwind Apparel",
    "product_name": "Trail Tee",
    "status": "active"
  },
  "total_units": 24,
  "total_items": 24,
  "completed_items": 1,
  "items_progress_label": "Items progress",
  "progress_stages": [
    {
      "key": "raw_materials",
      "label": "Packed",
      "state": "completed",
      "sublabel": "sublabel"
    }
  ],
  "location": "Aisle 4, Bay B",
  "kpis": {
    "efficiency_pct": 72.5,
    "waste_ratio_pct": 72.5
  },
  "actions": {
    "can_start_production": false,
    "can_complete_production": false,
    "can_complete_batch": false,
    "can_generate_qr": false,
    "can_print_labels": false,
    "can_confirm_label_print": false,
    "can_report_issue": true,
    "qr_batch_id": "qb_3e9a1c7f2b40",
    "qr_batch_status": "qr batch status",
    "labels_printed_at": null
  },
  "items": [
    {
      "component_id": "beb72a9a-5c27-534e-93b5-af0d8a8cd73e",
      "color": "White",
      "size": "M",
      "status": "Pass",
      "quantity": 1,
      "quality_score": 1
    }
  ],
  "logistics_plan": {
    "boxes": [
      {
        "id": "SKN-CRT-00402-9A1C3E7F",
        "mode": "same",
        "capacity": 1,
        "region": "EU",
        "lines": [
          {
            "color": "White",
            "size": "M",
            "batch_sku": "TT-100-WHT-M",
            "quantity": 1,
            "volume_l": 0.5
          }
        ],
        "created_at": "2026-10-09T09:30:00Z"
      }
    ],
    "destinations": [
      "in_store"
    ]
  }
}

Start production on a scheduled order#

POST/factory/production-orders/{order_id}/start-production

Requires scope factory_orders:write

Advance the order from **SCHEDULED** → **IN-PRODUCTION**.

Requires material composition, sustainability, repairability, and origin & compliance to already be declared via the corresponding POST .../{type}-declaration endpoints — returns 422 with the list of missing declarations otherwise.

Parameters

  • order_idstringpathRequired

    Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

Returns

HTTP 200
  • order_idstringRequired

    Skannit's id for the production order. Use it in every /production-orders/{order_id} and QR call.

  • order_display_idstringRequired

    Order number formatted for display (#PO-YYYY-XXXX).

  • tracking_statusstringRequired

    Where the production order is in its lifecycle. This is the only progress field — use it, not status_display.

  • status_displaystringRequired
  • status_tonestring | null
  • scheduled_completiondate | null
  • production_linestring | null
  • flow_typestring

    standard = the factory knows each item's variant when printing; variable = variants are assigned at QC.

    Defaults to standard

  • product_image_urlstring | null
  • product_idstring | null

    Skannit's id for the product.

  • material_declaredboolean

    True once the factory has declared what it is actually sourcing for this run. start_factory_production requires this before SCHEDULED -> IN-PRODUCTION is allowed.

    Defaults to false

  • material_weights_declaredboolean

    True once every declared element carries a gram weight at every size in product_sizes. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • product_sizesarray of strings

    Sizes this product is made in, from its variants — the columns the factory's per-element weight grid has to fill.

  • sustainability_declaredboolean

    True once the factory has declared sustainability & circularity data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • repairability_declaredboolean

    True once the factory has declared repairability data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • origin_compliance_declaredboolean

    True once the factory has declared origin & compliance data for this run. Also required before SCHEDULED -> IN-PRODUCTION.

    Defaults to false

  • declarations_lockedboolean

    True once production has started: declarations can no longer change and certificates can only be added as amendments with a note.

    Defaults to false

  • is_delayedboolean

    Defaults to false

  • batch_infoobjectRequired
    +Show 10 child attributes
    • batch_idstringRequired
    • lot_numberstringRequired
    • prioritystring | null
    • operator_namestring | null
    • operator_avatar_urlstring | null
    • start_timestring | null
    • estimated_endstring | null
    • brand_namestringRequired
    • product_namestringRequired
    • statusstringRequired

      Current state of the object. See the allowed values.

  • total_unitsintegerRequired

    Target units from quantity matrix

  • total_itemsintegerRequired

    Component rows in production list

  • completed_itemsintegerRequired
  • items_progress_labelstringRequired

    Human label e.g. "480 / 500 items units"

  • progress_stagesarray of objectsRequired
    +Show 4 child attributes
    • keystringRequired
      One ofraw_materialsassemblyquality_checkpackaging
    • labelstringRequired
    • statestringRequired
      One ofcompletedactivepending
    • sublabelstringRequired
  • locationobject | null

    Free-text place in your warehouse, for example "Aisle 4, Bay B".

    +Show 4 child attributes
    • labelstringRequired
    • baystring | null
    • sectorstring | null
    • warehouse_map_urlstring | null
  • kpisobjectRequired
    +Show 2 child attributes
    • efficiency_pctnumberRequired
    • waste_ratio_pctnumberRequired
  • actionsobjectRequired
    +Show 10 child attributes
    • can_start_productionboolean

      Defaults to false

    • can_complete_productionboolean

      Defaults to false

    • can_complete_batchboolean

      Defaults to false

    • can_generate_qrboolean

      Defaults to false

    • can_print_labelsboolean

      Defaults to false

    • can_confirm_label_printboolean

      Defaults to false

    • can_report_issueboolean

      Defaults to true

    • qr_batch_idstring | null

      The QR batch created for this order — one per production order.

    • qr_batch_statusstring | null
    • labels_printed_atstring | null
  • itemsarray of objectsRequired

    The objects on this page.

    +Show 6 child attributes
    • component_idstringRequired
    • colorstringRequired

      Colour name, exactly as on the product's variants.

    • sizestringRequired

      Size name, exactly as on the product's variants.

    • statusstringRequired

      Current state of the object. See the allowed values.

      One ofPassReviewIn ProgressPending
    • quantityintegerRequired

      Number of units.

    • quality_scoreintegerRequired
  • logistics_planobject | null
    +Show 2 child attributes
    • boxesarray of objects
      +Show 6 child attributes
      • idstringRequired
      • modestringRequired
        One ofsamemixed
      • capacityintegerRequired
      • regionstring | null
      • linesarray of objectsRequired

        Line items, one per variant.

        +Show 5 child attributes
        • colorstringRequired

          Colour name, exactly as on the product's variants.

        • sizestringRequired

          Size name, exactly as on the product's variants.

        • batch_skustring | null

          SKU printed on the label for this variant in this batch.

        • quantityintegerRequired

          Number of units.

        • volume_lstring | null

          Packaged volume of one unit, in litres. Used to size boxes.

      • created_atstring | null

        When the object was created (ISO 8601, UTC).

    • destinationsarray of objects
      +Show 8 child attributes
      • idstringRequired
      • namestringRequired
      • citystring | null
      • countrystringRequired
      • arrival_datestring | null
      • prioritystring
        One oflowstandardurgent

        Defaults to standard

      • box_idsarray of strings

        Ids of the boxes this call acts on.

      • instructionsstring

        Defaults to

POST /factory/production-orders/{order_id}/start-production
curl
curl -X POST http://62.169.23.239:8001/api/v1/factory/production-orders/ord_8c2f4e1a9b7d3c60/start-production \
  -H "Authorization: Bearer $SKANNIT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)"
200Response
json
{
  "order_id": "ord_8c2f4e1a9b7d3c60",
  "order_display_id": "#PO-2026-7F3A",
  "tracking_status": "IN-PRODUCTION",
  "status_display": "In production",
  "status_tone": "on_track",
  "scheduled_completion": "2026-11-20",
  "production_line": "production line",
  "flow_type": "standard",
  "product_image_url": "https://files.skannit.example/product_image.png",
  "product_id": "f6abe715-90aa-5908-a0a6-12951a3a21cc",
  "material_declared": false,
  "material_weights_declared": false,
  "product_sizes": [
    "product size"
  ],
  "sustainability_declared": false,
  "repairability_declared": false,
  "origin_compliance_declared": false,
  "declarations_locked": false,
  "is_delayed": false,
  "batch_info": {
    "batch_id": "d25c8e92-dbf6-501d-9bbb-ca1b783c82d1",
    "lot_number": "lot number",
    "priority": "standard",
    "operator_name": "Operator",
    "operator_avatar_url": "https://files.skannit.example/operator_avatar.png",
    "start_time": "start time",
    "estimated_end": "estimated end",
    "brand_name": "Northwind Apparel",
    "product_name": "Trail Tee",
    "status": "active"
  },
  "total_units": 24,
  "total_items": 24,
  "completed_items": 1,
  "items_progress_label": "Items progress",
  "progress_stages": [
    {
      "key": "raw_materials",
      "label": "Packed",
      "state": "completed",
      "sublabel": "sublabel"
    }
  ],
  "location": "Aisle 4, Bay B",
  "kpis": {
    "efficiency_pct": 72.5,
    "waste_ratio_pct": 72.5
  },
  "actions": {
    "can_start_production": false,
    "can_complete_production": false,
    "can_complete_batch": false,
    "can_generate_qr": false,
    "can_print_labels": false,
    "can_confirm_label_print": false,
    "can_report_issue": true,
    "qr_batch_id": "qb_3e9a1c7f2b40",
    "qr_batch_status": "qr batch status",
    "labels_printed_at": null
  },
  "items": [
    {
      "component_id": "beb72a9a-5c27-534e-93b5-af0d8a8cd73e",
      "color": "White",
      "size": "M",
      "status": "Pass",
      "quantity": 1,
      "quality_score": 1
    }
  ],
  "logistics_plan": {
    "boxes": [
      {
        "id": "SKN-CRT-00402-9A1C3E7F",
        "mode": "same",
        "capacity": 1,
        "region": "EU",
        "lines": [
          {
            "color": "White",
            "size": "M",
            "batch_sku": "TT-100-WHT-M",
            "quantity": 1,
            "volume_l": 0.5
          }
        ],
        "created_at": "2026-10-09T09:30:00Z"
      }
    ],
    "destinations": [
      "in_store"
    ]
  }
}
NextDeclarations & certificates→