Orders-API2026-11Preview

Fulfillmentorders

De regels van een bestelling die we in één pakket verpakken, met de doos waarin ze gaan en onze controle van elk artikel.
  • De meeste bestellingen hebben er één. Een bestelling waarvan de artikelen ver uit elkaar aankomen, of die je splitst, heeft er meer.
  • Een Shopify-bestelling komt binnen als Shopify's eigen fulfillmentverzoek. We accepteren het als elke regel aan een SKU is toegewezen (Varianten), en weigeren het met de regels die dat niet zijn, zodat Shopify het bij jou laat.
  • Een artikel dat onze controle niet doorstaat, verstuurt qc.issue en wacht op jouw keuze voordat het wordt verzonden.

Het Fulfillment order-object

idstring
Begint met fo_.
orderstring
De bestelling waar hij bij hoort.
statusstring
open (wacht op de artikelen), in_progress (wordt ingepakt), on_hold, closed (verzonden) of cancelled.
requestobject|null
Voor een Shopify-bestelling: de fulfillmentorder van Shopify en ons antwoord erop, geaccepteerd, of geweigerd met de winkelvarianten die niet aan een SKU zijn toegewezen.
holdobject|null
reason en note, zolang vastgehouden.
packagingstring|null
De doos of verzendzak waar het in gaat.
lines[].qcobject
Onze controle: pending, passed of issue, met de foto's en wanneer.
shipmentstring|null
Ingesteld zodra het vertrekt.
fulfillment_order
{
  "id": "fo_7k2m",
  "order": "ord_3n7q",
  "status": "in_progress",
  "request": {
    "channel": "shopify",
    "external_id": "gid://shopify/FulfillmentOrder/6650012",
    "status": "accepted",
    "unmapped": []
  },
  "hold": null,
  "packaging": "pkg_acme_mailer",
  "lines": [
    {
      "line": "lin_9a2c",
      "sku": "5187209554",
      "quantity": 1,
      "qc": {
        "status": "passed",
        "photos": [
          "https://media.ninjabuy.com/qc/ord_3n7q/1.webp",
          "https://media.ninjabuy.com/qc/ord_3n7q/2.webp"
        ],
        "checked_at": "2026-11-02T03:20:11Z"
      }
    }
  ],
  "shipment": null,
  "created_at": "2026-11-01T09:14:03Z"
}

Fulfillmentorders opvragen

GET/v1/fulfillment_orders

Nieuwste eerst. Filter op bestelling of status.

Scopeorders:read

Queryparameters

orderstring
Optioneel. Een bestellings-id.
statusstring
Optioneel.
limit, cursor
Pagination
curl "https://www.ninjabuy.com/api/v1/fulfillment_orders?status=on_hold" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "data": [
    {
      "id": "fo_7k1x",
      "order": "ord_3n6z",
      "status": "on_hold",
      "hold": { "reason": "combine" }
    }
  ],
  "has_more": false,
  "cursor": null
}

Een fulfillmentorder ophalen

GET/v1/fulfillment_orders/{id}

De regels, onze controle van elk, de verpakking en de zending.

Scopeorders:read

Padparameters

idstringverplicht
De id van de fulfillmentorder.

Fouten

StatusTypeWanneer
404not-foundDeze fulfillmentorder bestaat niet op dit account.
curl "https://www.ninjabuy.com/api/v1/fulfillment_orders/fo_7k2m" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "id": "fo_7k2m",
  "order": "ord_3n7q",
  "status": "in_progress",
  "request": {
    "channel": "shopify",
    "external_id": "gid://shopify/FulfillmentOrder/6650012",
    "status": "accepted",
    "unmapped": []
  },
  "hold": null,
  "packaging": "pkg_acme_mailer",
  "lines": [
    {
      "line": "lin_9a2c",
      "sku": "5187209554",
      "quantity": 1,
      "qc": {
        "status": "passed",
        "photos": [
          "https://media.ninjabuy.com/qc/ord_3n7q/1.webp",
          "https://media.ninjabuy.com/qc/ord_3n7q/2.webp"
        ],
        "checked_at": "2026-11-02T03:20:11Z"
      }
    }
  ],
  "shipment": null,
  "created_at": "2026-11-01T09:14:03Z"
}

Vasthouden

POST/v1/fulfillment_orders/{id}/hold

Houdt hem tegen tot je hem vrijgeeft: om te wachten op een andere bestelling naar dezelfde klant, of op voorraad die je instuurt. De gratis opslag op je schap loopt door.

Scopeorders:write

Padparameters

idstringverplicht
De id van de fulfillmentorder.

Body

reasonstringverplicht
combine, wait_for_stock of other.
notestring
Optioneel. Een notitie voor jezelf, opgeslagen bij de pauze.

Fouten

StatusTypeWanneer
404not-foundDeze fulfillmentorder bestaat niet op dit account.
409invalid-stateHij is gesloten of geannuleerd.
curl -X POST "https://www.ninjabuy.com/api/v1/fulfillment_orders/fo_7k2m/hold" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "combine" }'
Response 200
HTTP/2 200 OK

{
  "id": "fo_7k2m",
  "order": "ord_3n7q",
  "status": "on_hold",
  "request": {
    "channel": "shopify",
    "external_id": "gid://shopify/FulfillmentOrder/6650012",
    "status": "accepted",
    "unmapped": []
  },
  "hold": {
    "reason": "combine",
    "note": null,
    "since": "2026-11-02T04:00:00Z"
  },
  "packaging": "pkg_acme_mailer",
  "lines": [
    {
      "line": "lin_9a2c",
      "sku": "5187209554",
      "quantity": 1,
      "qc": {
        "status": "passed",
        "photos": [
          "https://media.ninjabuy.com/qc/ord_3n7q/1.webp",
          "https://media.ninjabuy.com/qc/ord_3n7q/2.webp"
        ],
        "checked_at": "2026-11-02T03:20:11Z"
      }
    }
  ],
  "shipment": null,
  "created_at": "2026-11-01T09:14:03Z"
}

Vrijgeven

POST/v1/fulfillment_orders/{id}/release

Laat een vastgehouden fulfillmentorder verdergaan.

Scopeorders:write

Padparameters

idstringverplicht
De id van de fulfillmentorder.

Fouten

StatusTypeWanneer
404not-foundDeze fulfillmentorder bestaat niet op dit account.
409invalid-stateHij wordt niet vastgehouden.
curl -X POST "https://www.ninjabuy.com/api/v1/fulfillment_orders/fo_7k2m/release" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Idempotency-Key: $(uuidgen)"
Response 200
HTTP/2 200 OK

{
  "id": "fo_7k2m",
  "order": "ord_3n7q",
  "status": "in_progress",
  "request": {
    "channel": "shopify",
    "external_id": "gid://shopify/FulfillmentOrder/6650012",
    "status": "accepted",
    "unmapped": []
  },
  "hold": null,
  "packaging": "pkg_acme_mailer",
  "lines": [
    {
      "line": "lin_9a2c",
      "sku": "5187209554",
      "quantity": 1,
      "qc": {
        "status": "passed",
        "photos": [
          "https://media.ninjabuy.com/qc/ord_3n7q/1.webp",
          "https://media.ninjabuy.com/qc/ord_3n7q/2.webp"
        ],
        "checked_at": "2026-11-02T03:20:11Z"
      }
    }
  ],
  "shipment": null,
  "created_at": "2026-11-01T09:14:03Z"
}

Annuleren

POST/v1/fulfillment_orders/{id}/cancel

Annuleert het pakket zolang er nog niets in is verpakt. De artikelen blijven op je schap, om later of met een andere bestelling te verzenden. Wil je ook de aankoop annuleren, annuleer dan de bestelling.

Scopeorders:write

Padparameters

idstringverplicht
De id van de fulfillmentorder.

Fouten

StatusTypeWanneer
404not-foundDeze fulfillmentorder bestaat niet op dit account.
409invalid-stateHij is ingepakt of verzonden.
curl -X POST "https://www.ninjabuy.com/api/v1/fulfillment_orders/fo_7k2m/cancel" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Idempotency-Key: $(uuidgen)"
Response 200
HTTP/2 200 OK

{
  "id": "fo_7k2m",
  "order": "ord_3n7q",
  "status": "cancelled",
  "request": {
    "channel": "shopify",
    "external_id": "gid://shopify/FulfillmentOrder/6650012",
    "status": "accepted",
    "unmapped": []
  },
  "hold": null,
  "packaging": "pkg_acme_mailer",
  "lines": [
    {
      "line": "lin_9a2c",
      "sku": "5187209554",
      "quantity": 1,
      "qc": {
        "status": "passed",
        "photos": [
          "https://media.ninjabuy.com/qc/ord_3n7q/1.webp",
          "https://media.ninjabuy.com/qc/ord_3n7q/2.webp"
        ],
        "checked_at": "2026-11-02T03:20:11Z"
      }
    }
  ],
  "shipment": null,
  "created_at": "2026-11-01T09:14:03Z"
}