openapi: 3.1.0 info: version: 1.2.2-oas3.1 title: Ankorstore Stock Tracking and Logistics Applications Fulfillment API summary: API specification for the Ankorstore Stock Tracking and Logistics system description: Ankorstore Stock Tracking and Logistics (ASTRAL) API specification contact: name: Ankorstore url: https://www.ankorstore.com email: api@ankorstore.com license: url: https://creativecommons.org/publicdomain/zero/1.0/ name: CC0 1.0 Universal servers: - url: http://www.ankorlocal.com:8000 description: Local Development Server - url: https://www.preprod.ankorstore.com description: Staging Environment - url: https://www.ankorstore.com description: Prod Environment tags: - name: Fulfillment description: "ℹ️ Here you can find the information and endpoint specification related to fulfillment of the orders.\n\n## \U0001F4A1 About Fulfillment\n\n_Fulfillment_ is the process of preparing and shipping orders to customers via Ankorstore Fulfillment Centers.\nBrands that use fulfillment send their inventory to a warehouse in advance, and when orders come in, the warehouse\npicks, packs, and ships on the brand's behalf.\n\n### What does \"fulfillable\" mean?\n\nThe concept of a \"fulfillable\" is _that which is required to prepare and ship a product (variant)_.\nWhile a Fulfillment Centre deals exclusively with items, which represents a single item that an employee can pick up and prepare for shipping.\nA fulfillable is simply a set of one or more items, that together represent a product as ordered.\n\nUse the [List Fulfillables](#tag/Fulfillment/operation/fulfillment-list-fulfillable) endpoint to check stock\navailability for specific product variants before creating orders. For more detailed stock information —\nincluding quantities by location, status, and lot — use the\n[Stock State endpoint](/api/astral/v1/stock/state) from the Ankorstore Stock Tracking and Logistics API (ASTRAL).\n\n### Fulfillments\n\nWhen a _Master Order_ has fulfillment requested, one or more _Fulfillments_ are created. Multiple fulfillments\ncan be associated with a single master order (many-to-one). You can retrieve their details and track progress\nthrough the following statuses:\n\n| Status | Description |\n| --- | --- |\n| `requested` | Fulfillment has been requested for the order |\n| `created` | Fulfillment has been created in the warehouse system |\n| `scheduled` | Fulfillment is scheduled for picking |\n| `released` | Fulfillment has been released for picking |\n| `shipped` | Fulfillment has been shipped from the warehouse |\n| `cancelled` | Fulfillment has been cancelled |\n| `cancellation_requested` | A cancellation has been requested but not yet processed |\n\nPass `?include=statusUpdates` when retrieving a fulfillment to see the full history of status transitions.\n\n### Lots\n\nIf your products are lot-tracked or expiry-tracked, the [List Lots](#tag/Fulfillment/operation/fulfillment-list-lots)\nendpoint shows the current lot inventory in the warehouse, including lot numbers, available quantities, and\nexpiry/sell-by dates. You can filter and sort by available quantity, sell-by date range, and product name.\n\n### Fulfillment Costs\n\nUse the [Get Fulfillment Costs](#tag/Fulfillment/operation/fulfillment-costs-get-specifications) endpoint to estimate\nfulfillment costs before committing to an order. Provide the destination country, parcel dimensions, and picking\nquantity to receive a cost breakdown by category (shipping, pick fees by quantity tier).\n\n> ⚠️ The cost estimation does **not** include packing consumables. The actual invoiced amount may differ.\n\n## Replenishments\n\nReplenishments are required to send inventory to the warehouse. They follow a specific workflow:\n\n### Replenishment Workflow\n\n
\nstateDiagram-v2\n    direction LR\n    [*] --> created\n    created --> confirmed : Brand confirms\n    confirmed --> sent : Sent to warehouse\n    sent --> delivered : Arrives at warehouse\n    delivered --> received : Items put into stock\n    received --> [*]\n
\n\n* **Created**: When a replenishment is initially created, it will be at status `created` and is considered a draft. In this state, it can be edited via PATCH requests or deleted.\n* **Confirmed**: Once editing is complete, the status should be updated to `confirmed` as part of a PATCH request. At this point, the replenishment information will be sent to the warehouse (asynchronously).\n* **Sent**: Once the replenishment information is sent to the warehouse, the status changes to `sent`. The replenishment will remain in this status while waiting for delivery.\n* **Delivered**: When the replenishment physically arrives at the warehouse, its status will be automatically updated to `delivered`.\n* **Received**: Once the items are put into stock at the warehouse, the status will be updated to `received`. At this stage, receipts are added with the received stock quantities and lots.\n\n### Creating a Replenishment\n\nEach replenishment requires a carrier name, shipment type, and a list of items with their fulfillment item IDs\nand quantities:\n\n```json5\n// POST /api/v1/fulfillment/replenishments\n{\n \"fulfillmentBrandId\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"warehouseId\": \"98765432-abcd-ef01-2345-678901234567\",\n \"shippingCarrierName\": \"DHL\",\n \"shipmentType\": \"PARCEL\", // \"LTL\", \"FTL\", or \"PARCEL\"\n \"items\": [\n {\n \"fulfillmentItemId\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n \"quantity\": 100\n }\n ]\n}\n```\n\nAfter creating a replenishment, update its status to `confirmed` via PATCH when you are ready to notify the warehouse.\n\n### How Fulfillment Connects to Orders\n\nThe diagram below shows how fulfillment fits into the order lifecycle:\n\n
\ngraph LR\n    A[Master Order] --> D[Fulfillment 1]\n    A --> E[Fulfillment 2]\n    F[Replenishment] --> G[Warehouse Stock]\n    G --> D\n    G --> E\n
\n\n1. Brands send inventory to the warehouse via _Replenishments_\n2. When fulfillment is requested for a _Master Order_, one or more _Fulfillments_ are created\n3. The warehouse picks items from stock and ships each fulfillment\n4. Use the fulfillment endpoints to track both your inventory and fulfillment status\n" paths: /api/v1/product-variants/{productVariant}/declare-fulfillment-item: post: summary: Declare product variant as fulfillment item operationId: product-variants-declare-fulfillment-item tags: - Fulfillment parameters: - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json - name: productVariant in: path required: true schema: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid requestBody: required: true content: application/vnd.api+json: schema: type: object properties: data: type: object properties: barcode: type: string pattern: ^\d{13,14}$ unitsPerBatch: type: integer unitCostMargin: description: Margin (as a percentage) between the cost price and wholesale price. Used for insurance purposes type: number format: float minimum: 0 maximum: 100 classificationCode: type: - string - 'null' expiryTracked: type: boolean shelfLife: type: - integer - 'null' lotTracked: type: boolean isFragile: type: boolean isOrganic: type: boolean needRepack: type: boolean needRelabel: type: boolean alcoholCode: description: Code for alcohol classification, as used in the warehouse type: integer minimum: 1 maximum: 11 alcoholPercentage: description: Percentage of alcohol in the item type: number format: float minimum: 0 maximum: 100 volumeOfLiquidPerPack: description: Volume of liquid per pack in liter type: number format: float minimum: 0 maximum: 100 icpeCode: description: Installation Classified for the Protection of the Environment, as used in the warehouse type: integer minimum: 1000 maximum: 4999 required: - barcode - unitCost responses: '200': description: Fulfillment item already exists for this product variant content: application/vnd.api+json: schema: type: object properties: data: type: 'null' jsonapi: description: An object describing the server's implementation type: object properties: &id001 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false '201': description: Fulfillment item successfully created content: application/vnd.api+json: schema: type: object properties: data: type: 'null' jsonapi: description: An object describing the server's implementation type: object properties: *id001 additionalProperties: false '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id002 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id001 additionalProperties: false required: &id003 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id002 required: *id003 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id002 required: *id003 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id002 required: *id003 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '422': description: 'Unprocessable Entity : Data provided are invalid' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id002 required: *id003 example: jsonapi: version: string errors: - detail: The field is required. source: pointer: data.attributes.field status: '422' title: Unprocessable Content '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id002 required: *id003 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/bundles: get: summary: List Fulfillment Bundles operationId: fulfillment-list-bundles description: Returns a list of fulfillable bundles tags: - Fulfillment parameters: - schema: type: string in: header name: Accept description: application/vnd.api+json - in: query name: page[limit] schema: type: integer - in: query name: page[offset] schema: type: integer responses: '200': description: Set of fulfillment bundles content: application/vnd.api+json: schema: type: object properties: data: type: array items: properties: type: type: string default: fulfillment-bundle id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object properties: productVariantId: type: string format: uuid items: type: array items: type: object properties: fulfillmentItemId: type: string format: uuid quantity: type: integer description: The number of items in the bundle required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id004 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id005 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id004 additionalProperties: false required: &id006 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id005 required: *id006 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id005 required: *id006 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id005 required: *id006 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id005 required: *id006 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id005 required: *id006 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/orders: get: summary: List Fulfillment Orders operationId: fulfillment-list-orders description: Returns a list of fulfillment orders for the authenticated brand tags: - Fulfillment parameters: - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json - in: query name: page[limit] schema: type: integer - in: query name: page[offset] schema: type: integer - name: filter[status] in: query description: Request a specific status only allowEmptyValue: false required: false schema: type: string enum: &id007 - internal - requested - created - scheduled - released - shipped - cancelled - cancellation_requested readOnly: true - name: filter[uuid] in: query description: List of fulfillment orders uuids required: false schema: type: array items: type: string format: uuid - name: sort in: query description: Specify what attribute(s) to sort by allowEmptyValue: false required: false schema: type: string default: -createdAt enum: - createdAt - -createdAt - schema: type: string enum: - statusUpdates name: include in: query description: 'A comma-separated list of resources to include (e.g: statusUpdates)' responses: '200': description: Set of fulfillment orders content: application/vnd.api+json: schema: type: object properties: data: type: array items: properties: type: type: string default: fulfillment-orders id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object properties: reference: description: Unique human readable reference for the fulfillment order, used for communication with the warehouse type: string pattern: ^O_[0-9]{1,18}|[A-HJ-NP-TV-Z0-9]+(_\d+)?$ status: type: string enum: *id007 readOnly: true createdAt: type: string format: date-time readOnly: true items: type: array items: type: object properties: fulfillmentItemId: type: string format: uuid quantity: type: integer description: quantity in batches lotNumber: type: - 'null' - string expiryDate: type: - 'null' - string format: date-time required: - fulfillmentItemId - quantity shippedItems: type: array items: type: object properties: fulfillableId: type: string format: uuid batchQuantity: type: integer unitQuantity: type: integer lotNumber: type: - 'null' - string expiryDate: type: - 'null' - string format: date-time required: - fulfillableId - batchQuantity - unitQuantity recipientType: type: string enum: - consumer - business default: business description: The type of recipient for a fulfillment order externalReference: type: - string - 'null' instructionText: deprecated: true description: '[Deprecated] This field is deprecated and will be removed in a future version. Use instructions.externalReference instead' type: - string - 'null' instructions: anyOf: - type: object properties: externalReference: type: - string - 'null' deliverySchedule: anyOf: - type: object additionalProperties: false properties: timeSlots: type: array description: 'Opening times for the customer''s business. The time slots when the customer is available for delivery expressed as ranges in 24-hour time format. When null, the customer can be delivered anytime. ' items: type: object additionalProperties: false properties: startTime: type: string description: 'Start of the opening time expressed in a 24-hour time format (e.g. `14:00`). ' example: 09:30 endTime: type: string description: 'End of the opening time expressed in a 24-hour time format (e.g. `14:00`). ' example: '12:30' required: - startTime - endTime nullable: true openDays: description: 'The opening days for the customer''s business. ISO 8601 numeric representation of the day of the week (`1` for Monday through `7` for Sunday). ' type: array items: type: integer minimum: 1 maximum: 7 minItems: 1 uniqueItems: true example: - 1 - 2 - 3 required: - timeSlots - openDays - type: 'null' packingInstruction: anyOf: - type: object additionalProperties: false required: - services properties: services: type: array description: List of services to be performed on the order. Either `PALLETISE`, `DOCS` or `CUSTOM_BUILD` minItems: 1 items: type: string enum: - PALLETISE - CUSTOM_BUILD - DOCS instruction: type: string description: Instruction text for packing the order. - type: 'null' - type: 'null' required: - items links: type: object properties: order: type: string relationships: type: object properties: statusUpdates: type: object properties: data: description: An array of objects each containing `type` and `id` members for to-many relationships. type: array items: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: - id - type properties: id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false uniqueItems: true required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id008 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false included: type: array items: anyOf: - properties: type: type: string default: fulfillment-order-status-updates id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: description: Fulfillment order status update type: object properties: status: type: string enum: *id007 readOnly: true receivedAt: type: string format: date-time readOnly: true required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id009 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id008 additionalProperties: false required: &id010 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id009 required: *id010 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id009 required: *id010 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id009 required: *id010 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id009 required: *id010 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/orders/{id}: get: summary: Get Fulfillment Order operationId: fulfillment-get-order description: Returns details of a single fulfillment order tags: - Fulfillment parameters: - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json - schema: type: string format: uuid name: id in: path required: true description: Fulfillment order ID - schema: type: string enum: - statusUpdates name: include in: query description: 'A comma-separated list of resources to include (e.g: statusUpdates)' responses: '200': description: Single fulfillment order content: application/vnd.api+json: schema: type: object properties: data: properties: type: type: string default: fulfillment-orders id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object properties: reference: description: Unique human readable reference for the fulfillment order, used for communication with the warehouse type: string pattern: ^O_[0-9]{1,18}|[A-HJ-NP-TV-Z0-9]+(_\d+)?$ status: type: string enum: &id011 - internal - requested - created - scheduled - released - shipped - cancelled - cancellation_requested readOnly: true createdAt: type: string format: date-time readOnly: true items: type: array items: type: object properties: fulfillmentItemId: type: string format: uuid quantity: type: integer description: quantity in batches lotNumber: type: - 'null' - string expiryDate: type: - 'null' - string format: date-time required: - fulfillmentItemId - quantity shippedItems: type: array items: type: object properties: fulfillableId: type: string format: uuid batchQuantity: type: integer unitQuantity: type: integer lotNumber: type: - 'null' - string expiryDate: type: - 'null' - string format: date-time required: - fulfillableId - batchQuantity - unitQuantity recipientType: type: string enum: - consumer - business default: business description: The type of recipient for a fulfillment order externalReference: type: - string - 'null' instructionText: deprecated: true description: '[Deprecated] This field is deprecated and will be removed in a future version. Use instructions.externalReference instead' type: - string - 'null' instructions: anyOf: - type: object properties: externalReference: type: - string - 'null' deliverySchedule: anyOf: - type: object additionalProperties: false properties: timeSlots: type: array description: 'Opening times for the customer''s business. The time slots when the customer is available for delivery expressed as ranges in 24-hour time format. When null, the customer can be delivered anytime. ' items: type: object additionalProperties: false properties: startTime: type: string description: 'Start of the opening time expressed in a 24-hour time format (e.g. `14:00`). ' example: 09:30 endTime: type: string description: 'End of the opening time expressed in a 24-hour time format (e.g. `14:00`). ' example: '12:30' required: - startTime - endTime nullable: true openDays: description: 'The opening days for the customer''s business. ISO 8601 numeric representation of the day of the week (`1` for Monday through `7` for Sunday). ' type: array items: type: integer minimum: 1 maximum: 7 minItems: 1 uniqueItems: true example: - 1 - 2 - 3 required: - timeSlots - openDays - type: 'null' packingInstruction: anyOf: - type: object additionalProperties: false required: - services properties: services: type: array description: List of services to be performed on the order. Either `PALLETISE`, `DOCS` or `CUSTOM_BUILD` minItems: 1 items: type: string enum: - PALLETISE - CUSTOM_BUILD - DOCS instruction: type: string description: Instruction text for packing the order. - type: 'null' - type: 'null' required: - items links: type: object properties: order: type: string relationships: type: object properties: statusUpdates: type: object properties: data: description: An array of objects each containing `type` and `id` members for to-many relationships. type: array items: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: - id - type properties: id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false uniqueItems: true required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id012 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false included: type: array items: anyOf: - properties: type: type: string default: fulfillment-order-status-updates id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: description: Fulfillment order status update type: object properties: status: type: string enum: *id011 readOnly: true receivedAt: type: string format: date-time readOnly: true required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id013 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id012 additionalProperties: false required: &id014 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id013 required: *id014 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id013 required: *id014 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id013 required: *id014 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id013 required: *id014 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id013 required: *id014 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/fulfillable: get: summary: List Fulfillables operationId: fulfillment-list-fulfillable description: Returns a list of fulfillables with their stock availability tags: - Fulfillment responses: '200': description: Set of fulfillment fullfilables content: application/vnd.api+json: schema: type: object properties: data: type: array items: properties: type: type: string default: fulfillment-fulfillables id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: description: A fulfillable entity, which can be either an item or a bundle (set of items) type: object properties: fulfillableId: type: string format: uuid batchQuantity: description: quantity in batches type: integer unitQuantity: description: quantity in units type: integer required: - fulfillableId - batchQuantity - unitQuantity relationships: type: object properties: item: type: object properties: data: anyOf: - description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: &id015 - id - type properties: &id016 id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false - type: 'null' lots: type: object properties: data: anyOf: - description: An array of objects each containing `type` and `id` members for to-many relationships. type: array items: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: *id015 properties: *id016 additionalProperties: false uniqueItems: true - type: 'null' required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id017 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false included: type: array items: anyOf: - properties: type: type: string default: fulfillment-lots id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object properties: fulfillmentItemId: type: string format: uuid availableQuantity: type: integer expiryDate: description: Optional expiry date of the lot type: - string - 'null' format: date-time sellByDate: description: If the lot can expire, last point in time when this lot can be used to fulfill an order type: - string - 'null' format: date-time lotNumber: type: string required: - fulfillmentItemId - availableQuantity - lotNumber relationships: type: object required: - type - id - attributes - properties: type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: title: FulfillmentItem description: Fulfillment item as exposed on the public API. Stock information (availableQuantity, stockStatus) is not included — use the stock API instead. type: object properties: productVariantId: type: string format: uuid barcode: type: string unitsPerBatch: type: integer unitCostMargin: type: number format: float unitCost: type: number format: float sku: type: string productName: type: string categoryName: type: string classificationCode: type: - string - 'null' expiryTracked: type: boolean shelfLife: type: - integer - 'null' lotTracked: type: boolean isFragile: type: - boolean - 'null' isOrganic: type: - boolean - 'null' needRepack: type: - boolean - 'null' needRelabel: type: - boolean - 'null' alcoholCode: type: - integer - 'null' alcoholPercentage: type: - number - 'null' format: float volumeOfLiquidPerPack: type: - number - 'null' format: float icpeCode: type: - integer - 'null' packingRules: type: - object - 'null' additionalProperties: type: string status: type: string enum: - created - pending - pending_measurements - synced expectedStockForDays: type: - integer - 'null' referenceId: type: string required: - productVariantId - barcode - unitsPerBatch - sku - unitCost - unitCostMargin - productName - categoryName required: - type - id - attributes required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id018 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id017 additionalProperties: false required: &id019 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id018 required: *id019 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id018 required: *id019 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id018 required: *id019 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id018 required: *id019 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id018 required: *id019 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' parameters: - schema: type: string in: header name: Accept description: application/vnd.api+json - name: fulfillableIds[] in: query description: A set of UUIDs representing the fulfillables to check availability for required: true schema: type: array items: type: string format: uuid minItems: 1 - schema: type: string enum: - item - lots name: include in: query description: 'A comma-separated list of resources to include (e.g: item,lots)' /api/v1/fulfillment/items: get: summary: List Fulfillment Items operationId: fulfillment-list-items description: Returns a list of fulfillment items for the authenticated brand tags: - Fulfillment parameters: - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json - in: query name: page[limit] schema: type: integer - in: query name: page[offset] schema: type: integer - name: filter[id] in: query description: Filter by fulfillment item UUIDs required: false schema: type: array items: type: string format: uuid minItems: 1 - name: filter[productVariantIds] in: query description: Filter items by product variant UUIDs required: false schema: type: array items: type: string format: uuid minItems: 1 - name: filter[status] in: query description: 'Filter by item status. Accepts either a single status or an array of statuses (e.g. `filter[status][]=synced&filter[status][]=pending_measurements`). ' required: false schema: oneOf: - type: string enum: - synced - pending - pending_measurements - type: array items: type: string enum: - synced - pending - pending_measurements minItems: 1 - name: sort in: query description: Specify what attribute(s) to sort by allowEmptyValue: false required: false schema: type: string enum: - expectZeroStockAt - -expectZeroStockAt responses: '200': description: Collection of fulfillment items (public API, without stock fields) content: application/vnd.api+json: schema: type: object properties: data: type: array items: properties: type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: title: FulfillmentItem description: Fulfillment item as exposed on the public API. Stock information (availableQuantity, stockStatus) is not included — use the stock API instead. type: object properties: productVariantId: type: string format: uuid barcode: type: string unitsPerBatch: type: integer unitCostMargin: type: number format: float unitCost: type: number format: float sku: type: string productName: type: string categoryName: type: string classificationCode: type: - string - 'null' expiryTracked: type: boolean shelfLife: type: - integer - 'null' lotTracked: type: boolean isFragile: type: - boolean - 'null' isOrganic: type: - boolean - 'null' needRepack: type: - boolean - 'null' needRelabel: type: - boolean - 'null' alcoholCode: type: - integer - 'null' alcoholPercentage: type: - number - 'null' format: float volumeOfLiquidPerPack: type: - number - 'null' format: float icpeCode: type: - integer - 'null' packingRules: type: - object - 'null' additionalProperties: type: string status: type: string enum: - created - pending - pending_measurements - synced expectedStockForDays: type: - integer - 'null' referenceId: type: string required: - productVariantId - barcode - unitsPerBatch - sku - unitCost - unitCostMargin - productName - categoryName required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id020 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id021 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id020 additionalProperties: false required: &id022 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id021 required: *id022 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id021 required: *id022 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id021 required: *id022 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id021 required: *id022 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' post: summary: Create Fulfillment Item operationId: fulfillment-create-item description: 'Create a fulfillment item for the authenticated brand. The referenced product variant must belong to the authenticated brand. ' tags: - Fulfillment parameters: - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json requestBody: required: true content: application/vnd.api+json: schema: type: object properties: data: title: FulfillmentItemInput description: Input schema for creating a fulfillment item on the public API type: object properties: productVariantId: type: string format: uuid description: The product variant UUID. Must belong to the authenticated brand. barcode: type: string pattern: ^\d{13,14}$ unitsPerBatch: type: integer minimum: 1 unitCost: type: number format: float minimum: 1 unitCostMargin: type: number format: float minimum: 0 sku: type: string productName: type: string categoryName: type: string classificationCode: type: string expiryTracked: type: boolean default: false shelfLife: type: - integer - 'null' lotTracked: type: boolean default: false isFragile: type: - boolean - 'null' default: false isOrganic: type: - boolean - 'null' default: false needRepack: type: - boolean - 'null' default: false needRelabel: type: - boolean - 'null' default: false alcoholCode: type: - integer - 'null' minimum: 1 maximum: 11 alcoholPercentage: type: - number - 'null' format: float minimum: 0 maximum: 100 volumeOfLiquidPerPack: type: - number - 'null' format: float minimum: 0 maximum: 100 icpeCode: type: integer minimum: 1000 maximum: 4999 required: - productVariantId - barcode - unitsPerBatch - sku - unitCost - unitCostMargin - productName - categoryName required: - data responses: '200': description: Single fulfillment item (public API, without stock fields) content: application/vnd.api+json: schema: type: object properties: data: properties: type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: title: FulfillmentItem description: Fulfillment item as exposed on the public API. Stock information (availableQuantity, stockStatus) is not included — use the stock API instead. type: object properties: productVariantId: type: string format: uuid barcode: type: string unitsPerBatch: type: integer unitCostMargin: type: number format: float unitCost: type: number format: float sku: type: string productName: type: string categoryName: type: string classificationCode: type: - string - 'null' expiryTracked: type: boolean shelfLife: type: - integer - 'null' lotTracked: type: boolean isFragile: type: - boolean - 'null' isOrganic: type: - boolean - 'null' needRepack: type: - boolean - 'null' needRelabel: type: - boolean - 'null' alcoholCode: type: - integer - 'null' alcoholPercentage: type: - number - 'null' format: float volumeOfLiquidPerPack: type: - number - 'null' format: float icpeCode: type: - integer - 'null' packingRules: type: - object - 'null' additionalProperties: type: string status: type: string enum: - created - pending - pending_measurements - synced expectedStockForDays: type: - integer - 'null' referenceId: type: string required: - productVariantId - barcode - unitsPerBatch - sku - unitCost - unitCostMargin - productName - categoryName required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id023 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id024 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id023 additionalProperties: false required: &id025 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id024 required: *id025 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id024 required: *id025 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id024 required: *id025 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '422': description: 'Unprocessable Entity : Data provided are invalid' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id024 required: *id025 example: jsonapi: version: string errors: - detail: The field is required. source: pointer: data.attributes.field status: '422' title: Unprocessable Content '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id024 required: *id025 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/items/{id}: get: summary: Get Fulfillment Item operationId: fulfillment-get-item description: Returns a single fulfillment item for the authenticated brand tags: - Fulfillment parameters: - schema: type: string format: uuid name: id in: path required: true description: Fulfillment item ID - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json responses: '200': description: Single fulfillment item (public API, without stock fields) content: application/vnd.api+json: schema: type: object properties: data: properties: type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: title: FulfillmentItem description: Fulfillment item as exposed on the public API. Stock information (availableQuantity, stockStatus) is not included — use the stock API instead. type: object properties: productVariantId: type: string format: uuid barcode: type: string unitsPerBatch: type: integer unitCostMargin: type: number format: float unitCost: type: number format: float sku: type: string productName: type: string categoryName: type: string classificationCode: type: - string - 'null' expiryTracked: type: boolean shelfLife: type: - integer - 'null' lotTracked: type: boolean isFragile: type: - boolean - 'null' isOrganic: type: - boolean - 'null' needRepack: type: - boolean - 'null' needRelabel: type: - boolean - 'null' alcoholCode: type: - integer - 'null' alcoholPercentage: type: - number - 'null' format: float volumeOfLiquidPerPack: type: - number - 'null' format: float icpeCode: type: - integer - 'null' packingRules: type: - object - 'null' additionalProperties: type: string status: type: string enum: - created - pending - pending_measurements - synced expectedStockForDays: type: - integer - 'null' referenceId: type: string required: - productVariantId - barcode - unitsPerBatch - sku - unitCost - unitCostMargin - productName - categoryName required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id026 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id027 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id026 additionalProperties: false required: &id028 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id027 required: *id028 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id027 required: *id028 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id027 required: *id028 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id027 required: *id028 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id027 required: *id028 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/items/{id}/lots: get: summary: List Fulfillment Item Lots operationId: fulfillment-list-item-lots description: Returns a list of lots related to a fulfillment item tags: - Fulfillment parameters: - schema: type: string format: uuid name: id in: path required: true description: Fulfillment item ID - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json - in: query name: page[limit] schema: type: integer - in: query name: page[offset] schema: type: integer - name: sort in: query description: Specify what attribute(s) to sort by allowEmptyValue: false required: false schema: type: string enum: - createdAt responses: '200': description: Set of fulfillment lots content: application/vnd.api+json: schema: type: object properties: data: type: array items: properties: type: type: string default: fulfillment-lots id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object properties: fulfillmentItemId: type: string format: uuid availableQuantity: type: integer expiryDate: description: Optional expiry date of the lot type: - string - 'null' format: date-time sellByDate: description: If the lot can expire, last point in time when this lot can be used to fulfill an order type: - string - 'null' format: date-time lotNumber: type: string required: - fulfillmentItemId - availableQuantity - lotNumber relationships: type: object required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id029 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id030 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id029 additionalProperties: false required: &id031 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id030 required: *id031 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id030 required: *id031 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id030 required: *id031 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id030 required: *id031 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id030 required: *id031 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/items/{id}/relationships/lots: get: summary: List Fulfillment Item Lot Relationships operationId: fulfillment-list-item-lots-relationships description: Returns lot relationships for a fulfillment item (JSON:API relationship format) tags: - Fulfillment parameters: - schema: type: string format: uuid name: id in: path required: true description: Fulfillment item ID - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json - in: query name: page[limit] schema: type: integer - in: query name: page[offset] schema: type: integer - name: sort in: query description: Specify what attribute(s) to sort by allowEmptyValue: false required: false schema: type: string enum: - createdAt responses: '200': description: Set of fulfillment lot relationships (type and id only) content: application/vnd.api+json: schema: type: object properties: data: description: An array of objects each containing `type` and `id` members for to-many relationships. type: array items: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: - id - type properties: id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false uniqueItems: true jsonapi: description: An object describing the server's implementation type: object properties: &id032 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id033 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id032 additionalProperties: false required: &id034 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id033 required: *id034 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id033 required: *id034 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id033 required: *id034 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id033 required: *id034 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id033 required: *id034 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/lots: get: summary: List lots in the warehouse operationId: fulfillment-list-lots description: Returns a list of lots tags: - Fulfillment responses: '200': description: Set of fulfillment lots content: application/vnd.api+json: schema: type: object properties: data: type: array items: properties: type: type: string default: fulfillment-lots id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object properties: fulfillmentItemId: type: string format: uuid availableQuantity: type: integer expiryDate: description: Optional expiry date of the lot type: - string - 'null' format: date-time sellByDate: description: If the lot can expire, last point in time when this lot can be used to fulfill an order type: - string - 'null' format: date-time lotNumber: type: string required: - fulfillmentItemId - availableQuantity - lotNumber relationships: type: object required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id035 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id036 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id035 additionalProperties: false required: &id037 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id036 required: *id037 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id036 required: *id037 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id036 required: *id037 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id036 required: *id037 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' parameters: - schema: type: string in: header name: Accept description: application/vnd.api+json - in: query name: page[limit] schema: type: integer - in: query name: page[offset] schema: type: integer - name: sort in: query description: Specify what attribute(s) to sort by allowEmptyValue: false required: false schema: type: string enum: - availableQuantity - expiryDate - lotNumber - sellByDate - fulfillmentItems.productName - -availableQuantity - -expiryDate - -lotNumber - -sellByDate - -fulfillmentItems.productName - name: filter[minAvailableQuantity] in: query description: Request instances with a available quantity greater or equal to a given value required: false schema: type: integer - name: filter[minSellByDate] in: query description: Request instances with a last sell by date greater or equal to a given value required: false schema: type: string format: datetime - name: filter[maxSellByDate] in: query description: Request instances with a last sell by date smaller or equal to a given value required: false schema: type: string format: datetime - name: include in: query description: 'A comma-separated list of resources to include (e.g: fulfillmentItem)' /api/v1/fulfillment/costs/order: post: summary: Get the fulfillment costs operationId: fulfillment-costs-get-specifications description: Returns a list of fulfillment costs for the given specification. tags: - Fulfillment parameters: - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json requestBody: description: The order fulfillment specification. required: true content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string enum: - fulfillment-order-costs-specification attributes: type: object required: - shipToCountry - shipToPostalCode - parcels - pickingQuantity properties: shipToCountry: description: A 2-letter ISO-3166 country code of the destination country. type: string example: GB shipToPostalCode: description: Postal code of the destination, used for remote-area surcharge and FR/MC region resolution. type: string example: '75001' parcels: type: array items: type: object required: - length - width - height - weight properties: length: description: Parcel length in centimeters type: integer minimum: 0 width: description: Parcel width in centimeters type: integer minimum: 0 height: description: Parcel height in centimeters type: integer minimum: 0 weight: description: Parcel weight in grams type: integer minimum: 0 packageType: description: Type of package, used to route to the parcel or pallet pricing grid. When omitted, it is estimated from the parcel dimensions. type: string enum: - parcel - pallet pickingQuantity: type: integer minimum: 0 responses: '200': description: List of fulfillment costs content: application/vnd.api+json: schema: type: object properties: data: type: array items: type: object required: - type - id - attributes properties: type: type: string default: fulfillment-order-costs id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object properties: category: type: string enum: - shipping - order pick lt 4u - order pick lt 40u - order pick gt 40u - unit pick lt 4u - unit pick lt 40u - unit pick gt 40u quantity: type: integer minimum: 0 unitAmount: type: integer minimum: 0 totalAmount: type: integer minimum: 0 vatRate: type: number format: double minimum: 0 maximum: 100 example: 20 totalAmountWithVat: type: integer minimum: 0 jsonapi: description: An object describing the server's implementation type: object properties: &id038 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi examples: example: value: jsonapi: version: '1.0' data: - type: fulfillment-order-costs id: a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d attributes: category: shipping quantity: 1 unitAmount: 850 totalAmount: 850 vatRate: 20 totalAmountWithVat: 1020 - type: fulfillment-order-costs id: b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e attributes: category: order pick lt 4u quantity: 1 unitAmount: 150 totalAmount: 150 vatRate: 20 totalAmountWithVat: 180 - type: fulfillment-order-costs id: c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f attributes: category: unit pick lt 4u quantity: 3 unitAmount: 50 totalAmount: 150 vatRate: 20 totalAmountWithVat: 180 '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id039 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id038 additionalProperties: false required: &id040 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id039 required: *id040 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id039 required: *id040 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id039 required: *id040 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id039 required: *id040 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '422': description: 'Unprocessable Entity : Data provided are invalid' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id039 required: *id040 example: jsonapi: version: string errors: - detail: The field is required. source: pointer: data.attributes.field status: '422' title: Unprocessable Content '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id039 required: *id040 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/feasibility: post: summary: Check fulfillment feasibility operationId: fulfillment-feasibility-check description: 'Checks whether fulfillment is feasible for a given brand, delivery destination, and set of items. Returns an empty 200 response when fulfillment is feasible, or a 400 response with JSON:API errors when it is not. **Feasibility checks performed:** - Brand is enrolled for fulfillment (`not_a_fulfillment_brand`) - Delivery destination is allowed (`AllowedFulfillmentDestination` validation) - HS codes are present for non-EU destinations (`missing_hs_code_for_international_order`) - Items are available in the warehouse with sufficient stock and shelf life (`unavailable_items`) ' tags: - Fulfillment parameters: - name: Accept in: header description: application/vnd.api+json schema: type: string default: application/vnd.api+json requestBody: required: true content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string enum: - feasibility-check attributes: type: object required: - deliveryAddress - items properties: deliveryAddress: type: object required: - countryCode - postalCode - city - street properties: countryCode: type: string minLength: 2 maxLength: 2 example: FR postalCode: type: string example: '75001' city: type: string example: Paris street: type: string example: 123 Rue de Rivoli additionalAddress: type: string nullable: true example: 2nd floor items: type: array minItems: 1 items: type: object required: - productVariantUuid - quantity properties: productVariantUuid: type: string format: uuid quantity: type: integer minimum: 1 minimumRemainingShelfLife: type: integer minimum: 0 nullable: true description: 'Minimum remaining shelf life in days. When specified, the fulfillment center will ensure items have at least this many days of shelf life remaining. Null for non-perishable items. ' responses: '200': description: Fulfillment is feasible. Empty response body. '400': description: Fulfillment is not feasible. content: application/vnd.api+json: schema: type: object properties: errors: type: array items: type: object properties: detail: type: string description: Machine-readable reason code enum: - not_a_fulfillment_brand - unavailable_items - missing_hs_code_for_international_order status: type: string example: '400' title: type: string description: Human-readable error message meta: type: object additionalProperties: true examples: not_a_fulfillment_brand: value: errors: - detail: not_a_fulfillment_brand status: '400' title: Brand is not enrolled for fulfillment meta: {} unavailable_items: value: errors: - detail: unavailable_items status: '400' title: Some items are not available for fulfillment meta: {} '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id041 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: &id042 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id041 required: *id042 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id041 required: *id042 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '422': description: 'Unprocessable Entity : Data provided are invalid' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id041 required: *id042 example: jsonapi: version: string errors: - detail: The field is required. source: pointer: data.attributes.field status: '422' title: Unprocessable Content '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id041 required: *id042 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' /api/v1/fulfillment/replenishments: get: summary: List Brand Replenishments operationId: fulfillment-list-replenishments description: Returns a list of declared replenishments tags: - Fulfillment responses: '200': description: Set of replenishments content: application/vnd.api+json: schema: type: object properties: data: type: array items: properties: type: type: string default: replenishments id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object allOf: - title: Replenishment type: object properties: brandId: description: deprecated, use fulfillmentBrandId instead type: integer deprecated: true fulfillmentBrandId: type: string format: uuid warehouseId: type: string format: uuid shippingCarrierName: type: string shipmentType: type: string enum: - '' - LTL - FTL - PARCEL items: type: array items: title: ReplenishmentItem type: object properties: &id043 fulfillmentItemId: type: string format: uuid quantity: type: integer status: type: - string - 'null' enum: - available - blocked - incoming - qualityControl - reserved - damaged required: &id044 - fulfillmentItemId - quantity required: - shippingCarrierName - shipmentType - items - type: object properties: reference: type: string status: type: string enum: - created - sent - received - confirmed - delivered receivedAt: type: - string - 'null' format: date-time deliveredAt: type: - string - 'null' format: date-time confirmedAt: type: - string - 'null' format: date-time submittedAt: type: - string - 'null' format: date-time createdAt: type: - string format: date-time receipts: type: array items: title: ReplenishmentReceipt type: object properties: receiptId: type: string receivedAt: type: string format: date-time items: type: array items: title: ReplenishmentItem type: object properties: *id043 required: *id044 relationships: type: object properties: fulfillmentBrand: type: object properties: data: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: &id045 - id - type properties: &id046 id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false warehouse: type: object properties: data: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: *id045 properties: *id046 additionalProperties: false required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id047 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id048 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id047 additionalProperties: false required: &id049 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id048 required: *id049 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id048 required: *id049 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id048 required: *id049 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id048 required: *id049 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' parameters: - schema: type: string in: header name: Accept description: application/vnd.api+json - in: query name: page[limit] schema: type: integer - in: query name: page[offset] schema: type: integer - name: sort in: query description: Specify what attribute(s) to sort by allowEmptyValue: false required: false schema: type: string default: -submittedAt post: summary: Create Replenishment operationId: fulfillment-create-replenishment description: Creates a new replenishment tags: - Fulfillment parameters: - schema: type: string in: header name: Accept description: application/vnd.api+json responses: '200': description: Single replenishment content: application/vnd.api+json: schema: type: object properties: data: properties: type: type: string default: replenishments id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object allOf: - title: Replenishment type: object properties: &id057 brandId: description: deprecated, use fulfillmentBrandId instead type: integer deprecated: true fulfillmentBrandId: type: string format: uuid warehouseId: type: string format: uuid shippingCarrierName: type: string shipmentType: type: string enum: - '' - LTL - FTL - PARCEL items: type: array items: title: ReplenishmentItem type: object properties: &id050 fulfillmentItemId: type: string format: uuid quantity: type: integer status: type: - string - 'null' enum: - available - blocked - incoming - qualityControl - reserved - damaged required: &id051 - fulfillmentItemId - quantity required: &id058 - shippingCarrierName - shipmentType - items - type: object properties: reference: type: string status: type: string enum: - created - sent - received - confirmed - delivered receivedAt: type: - string - 'null' format: date-time deliveredAt: type: - string - 'null' format: date-time confirmedAt: type: - string - 'null' format: date-time submittedAt: type: - string - 'null' format: date-time createdAt: type: - string format: date-time receipts: type: array items: title: ReplenishmentReceipt type: object properties: receiptId: type: string receivedAt: type: string format: date-time items: type: array items: title: ReplenishmentItem type: object properties: *id050 required: *id051 relationships: type: object properties: fulfillmentBrand: type: object properties: data: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: &id052 - id - type properties: &id053 id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false warehouse: type: object properties: data: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: *id052 properties: *id053 additionalProperties: false required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id054 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id055 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id054 additionalProperties: false required: &id056 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id055 required: *id056 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id055 required: *id056 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id055 required: *id056 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id055 required: *id056 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' requestBody: required: true content: application/vnd.api+json: schema: type: object allOf: - title: Replenishment type: object properties: *id057 required: *id058 - type: object properties: id: type: string format: uuid /api/v1/fulfillment/replenishments/{id}: get: summary: Details of a single replenishment operationId: fulfillment-get-replenishment description: Returns details of a single replenishment tags: - Fulfillment parameters: - schema: type: string format: uuid name: id in: path required: true description: Replenishment ID - schema: type: string in: header name: Accept description: application/vnd.api+json responses: '200': description: Single replenishment content: application/vnd.api+json: schema: type: object properties: data: properties: type: type: string default: replenishments id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object allOf: - title: Replenishment type: object properties: brandId: description: deprecated, use fulfillmentBrandId instead type: integer deprecated: true fulfillmentBrandId: type: string format: uuid warehouseId: type: string format: uuid shippingCarrierName: type: string shipmentType: type: string enum: - '' - LTL - FTL - PARCEL items: type: array items: title: ReplenishmentItem type: object properties: &id059 fulfillmentItemId: type: string format: uuid quantity: type: integer status: type: - string - 'null' enum: - available - blocked - incoming - qualityControl - reserved - damaged required: &id060 - fulfillmentItemId - quantity required: - shippingCarrierName - shipmentType - items - type: object properties: reference: type: string status: type: string enum: - created - sent - received - confirmed - delivered receivedAt: type: - string - 'null' format: date-time deliveredAt: type: - string - 'null' format: date-time confirmedAt: type: - string - 'null' format: date-time submittedAt: type: - string - 'null' format: date-time createdAt: type: - string format: date-time receipts: type: array items: title: ReplenishmentReceipt type: object properties: receiptId: type: string receivedAt: type: string format: date-time items: type: array items: title: ReplenishmentItem type: object properties: *id059 required: *id060 relationships: type: object properties: fulfillmentBrand: type: object properties: data: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: &id061 - id - type properties: &id062 id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false warehouse: type: object properties: data: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: *id061 properties: *id062 additionalProperties: false required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id063 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id064 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id063 additionalProperties: false required: &id065 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id064 required: *id065 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id064 required: *id065 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id064 required: *id065 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id064 required: *id065 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id064 required: *id065 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' patch: summary: Update a replenishment operationId: fulfillment-patch-replenishment description: Update a replenishment tags: - Fulfillment parameters: - schema: type: string format: uuid name: id in: path required: true description: Replenishment ID - schema: type: string in: header name: Accept description: application/vnd.api+json responses: '200': description: Single replenishment content: application/vnd.api+json: schema: type: object properties: data: properties: type: type: string default: replenishments id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid attributes: type: object allOf: - title: Replenishment type: object properties: brandId: description: deprecated, use fulfillmentBrandId instead type: integer deprecated: true fulfillmentBrandId: type: string format: uuid warehouseId: type: string format: uuid shippingCarrierName: type: string shipmentType: type: string enum: - '' - LTL - FTL - PARCEL items: type: array items: title: ReplenishmentItem type: object properties: &id066 fulfillmentItemId: type: string format: uuid quantity: type: integer status: type: - string - 'null' enum: - available - blocked - incoming - qualityControl - reserved - damaged required: &id067 - fulfillmentItemId - quantity required: - shippingCarrierName - shipmentType - items - type: object properties: reference: type: string status: type: string enum: - created - sent - received - confirmed - delivered receivedAt: type: - string - 'null' format: date-time deliveredAt: type: - string - 'null' format: date-time confirmedAt: type: - string - 'null' format: date-time submittedAt: type: - string - 'null' format: date-time createdAt: type: - string format: date-time receipts: type: array items: title: ReplenishmentReceipt type: object properties: receiptId: type: string receivedAt: type: string format: date-time items: type: array items: title: ReplenishmentItem type: object properties: *id066 required: *id067 relationships: type: object properties: fulfillmentBrand: type: object properties: data: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: &id068 - id - type properties: &id069 id: type: string description: '[resource object identifier (uuid)](https://jsonapi.org/format/#document-resource-object-identification)' format: uuid type: type: string description: '[resource object type](https://jsonapi.org/format/#document-resource-object-identification)' meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false warehouse: type: object properties: data: description: Resource identification present in Resource Objects and Resource Identifier Objects. type: object required: *id068 properties: *id069 additionalProperties: false required: - type - id - attributes jsonapi: description: An object describing the server's implementation type: object properties: &id070 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false required: - data - jsonapi '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id071 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id070 additionalProperties: false required: &id072 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id071 required: *id072 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id071 required: *id072 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id071 required: *id072 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id071 required: *id072 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '422': description: 'Unprocessable Entity : Data provided are invalid' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id071 required: *id072 example: jsonapi: version: string errors: - detail: The field is required. source: pointer: data.attributes.field status: '422' title: Unprocessable Content '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id071 required: *id072 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' requestBody: content: application/vnd.api+json: schema: type: object properties: data: type: object properties: shippingCarrierName: type: string shipmentType: type: string enum: - LTL - FTL - PARCEL status: type: string enum: - sent items: type: array items: title: ReplenishmentItem type: object properties: *id066 required: *id067 delete: summary: Delete a draft replenishment operationId: fulfillment-delete-draft-replenishment description: Delete a draft replenishment tags: - Fulfillment parameters: - schema: type: string format: uuid name: id in: path required: true description: Replenishment ID responses: '200': description: No content content: application/vnd.api+json: schema: type: object properties: jsonapi: description: An object describing the server's implementation type: object properties: &id073 version: type: string meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false '401': description: Unauthorized content: application/vnd.api+json: schema: type: object additionalProperties: false properties: &id074 errors: type: array uniqueItems: true items: type: object properties: code: description: An application-specific error code, expressed as a string value. type: string detail: description: A human-readable explanation specific to this occurrence of the problem. type: string status: description: The HTTP status code applicable to this problem, expressed as a string value. type: string title: description: The HTTP status code description applicable to this problem type: string source: type: object description: Optional object pointing towards the problematic field properties: pointer: type: string description: The field key meta: description: Non-standard meta-information that can not be represented as an attribute or relationship. type: object additionalProperties: true additionalProperties: false jsonapi: description: An object describing the server's implementation type: object properties: *id073 additionalProperties: false required: &id075 - errors example: jsonapi: version: '1.0' errors: - detail: Unauthorized status: '401' '403': description: '[Forbidden](https://jsonapi.org/format/#crud-creating-responses-403)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id074 required: *id075 example: jsonapi: version: '1.0' errors: - detail: Forbidden status: '403' '404': description: '[Not found](https://jsonapi.org/format/#fetching-resources-responses-404)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id074 required: *id075 example: jsonapi: version: '1.0' errors: - detail: Not found status: '404' '406': description: Not Acceptable content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id074 required: *id075 example: jsonapi: version: '1.0' errors: - detail: Not Acceptable status: '406' '415': description: Unsupported Media Type content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id074 required: *id075 example: jsonapi: version: '1.0' errors: - detail: Unsupported Media Type status: '415' '422': description: 'Unprocessable Entity : Data provided are invalid' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id074 required: *id075 example: jsonapi: version: string errors: - detail: The field is required. source: pointer: data.attributes.field status: '422' title: Unprocessable Content '500': description: '[Server Error](https://jsonapi.org/format/#errors)' content: application/vnd.api+json: schema: type: object additionalProperties: false properties: *id074 required: *id075 example: jsonapi: version: '1.0' errors: - detail: Server Error status: '500' components: securitySchemes: CookieKey: type: apiKey name: ankorstore_session in: cookie