Inbound Process

Summary

An inbound process maps all processes around incoming goods in a store or warehouse. This can include delivery of goods but also interfacility transfers, returns or similar processes. As of now, inbound processes can only be triggered through a purchase order. > Is this correct? Whenever a purchaseOrder or a receipt is created, a corresponding inboundProcess is automatically created as well.

An overview of all inbound process can be found in the inbound view or in the inventory app. Incoming goods can be accepted via the inbound section of our inventory app. The event of checking and accepting incoming goods is represented via Receipts.

Sub-Entities

The inbound process has sub-entities, which can be created and modified as part of the inbound process, or alternatively via their own endpoints.

Purchase Order

A purchase order is issued when new stock is ordered for a store or warehouse. It includes the following information:

Creating an inbound process with a purchaseOrder

Mandatory values:

  • facilityRef: facility for which the order is destined

  • purchaseOrder:

    • orderDate: time and date on which order was placed

    • requestedDate: time and date on which order is expected to arrive

    • requestedItems:

      • tenantArticleId: unique identifier for item

      • quantity: quantities and units of ordered items (maximum of 200 items can be processed)

Optional values:

  • tenantInboundProcessId:unique identifier for inbound used in the customer systems

  • onHold: Setting an inbound process on hold means that it should be paused for now. Can be set manually via Backoffice or via API. By setting the flag to true, the inboundProcess status is set to onHold.

  • scannableCodes: scannableCodes such as barcodes that are relevant in the inboundProcess, e.g. , barcode of the delivery note

  • customAttributes: can be used to carry custom information that might be of interest to connectors or services outside of fulfillmenttools. For more information see custom attributes.

  • purchaseOrder:

    • requestedItems:

      • stockProperties: information on stock properties of requested items such as expiry date

    • cancelled: If no further deliveries are expected, a purchaseOrder can be cancelled by an admin via Backoffice or via API. This is also possible, if several items have already been accepted. By setting the flag to true, the inboundProcess status is set to closed.

    • supplier: information on supplier of delivery (name)

    • customAttributes

Receipt

After a goods receipt was performed and goods have been accepted, a receipt is issued that adds the stock to the facility. It includes the following information:

Adding a receipt to an inboundProcess

Mandatory values:

  • receivedDate: date when the order was accepted in the facility

  • receivedItems: for each item that was announced via purchaseOrder the following information can be provided:

    • tenantArticleId:unique identifier for item

    • acceptedQuantity: quantity that was accepted in the goods receipt

    • rejectedQuantity: Quantity that was rejected in the goods receipt (due to being, e.g., broken).

    • comments: information relevant for that specific lineItem such as comments, photos, or other attachments

  • comments: information relevant for that specific delivery such as comments, photos, or other attachments

Rejected items are not a subset of accepted items and are not booked to the facility as stock.

Optional values:

  • asnRef: can be used to store the reference to an internal advanced shipping note

  • receivedItems: for each item that was announced via purchaseOrder the following information can be provided:

    • storageLocationRef: the storage location on which the item was placed

    • stockProperties: information specific to that lineItem such as expiry date or batch number

  • comments: information relevant for that specific delivery

  • status: If a goods receipt has been started via inventory app, the status of the receipt changes to IN_PROGRESS and then to FINISHEDafter the process was completed in the app.

  • customAttributes: Attributes that can be added to the receipt. These attributes cannot be used within fulfillmenttools' processes, but can be used to carry custom information on receipt.

Status

The inboundProcess itself as well as its sub-entities can have different status. Our clients show the status that are most relevant to the user in the inbound view and in the inventory app.

StatusMeaningEntity

OPEN

Delivery has not arrived yet

inboundProcess

PARTIAL_DELIVERY

Items in the delivery were missing

inboundProcess

CLOSED

All items that were announced via purchase order have arrived (either as accepted or rejected quantity) or purchase order was cancelled.

inboundProcess

ON_HOLD

Inbound process should be paused for now. Can be set manually via Backoffice or via API.

inboundProcess

CANCELLED

No further deliveries are expected. No real status, can be either true or false. Can be set manually via Backoffice or via API.

purchaseOrder

OPEN

No functional meaning

purchaseOrder

IN_PROGRESS

Goods receipt for (one part of the) delivery has been started (via inventory app)

receipt

FINISHED

Goods receipt for (one part of the) delivery has been finished (via inventory app)

receipt

Validation in inbound process

Unit validation in inbound processes

If there is a measurementUnitKey defined for a listing that is part of the inboundProcess, each new line item in inboundProcess.purchaseOrder.requestedItems and inboundProcess.receipts.receivedItems is validated against it: All quantities MUST match the unit of the Listing.

Attention: When creating an inboundProcess with a purchaseOrder with unit "xyz" and changing the listing.measurementUnitKey to something else ("qwe") the inboundProcess.purchaseOrder must now be patched/replaced to reflect the correct unit again before a receipt can created in the inventory app. This is intentional and ensures the consistency of new stock levels in the facility. In general it is not advised to change the unit of a product in a facility without careful consideration, but in some cases it might be desired to start with no unit on the listing (= no validation) and transition to stricter rules later.

For more information on measurementUnits, click here.

Stock property validation in inbound processes

If there are stockProperties defined for a listing that is part of the inboundProcess, each new line item in inboundProcess.purchaseOrder.requestedItems and inboundProcess.receipts.receivedItems is validated against it. The validation for requested and received items behaves slightly different as we do not expect systems to know the exact properties of all items before they have arrived.

Validation for requestedItems

  • All stockProperties that are part of the requestedItems must also be defined in the stockProperties of the listing.

  • Not all stockProperties that are part of the listing must also be present in the requestedItems.

  • This means, it is allowed to create a purchaseOrder without stockProperties in the requestedItems even though the included listing has stockProperties defined.

Validation for receivedItems

  • All stockProperties that are part of the receivedItems must also be defined in the stockProperties of the listing.

  • Not all stockProperties that are part of the listing must also be present in the requestedItems. Only stockProperties where required is true need to be present in both listing and receivedItems. This is because creating a stock without providing a value for a required property is forbidden and will fail.

For more information on stockProperties on listing, click here.

Api Documentation

Inbound Process

Get multiple Inbound Processes

GET/api/inboundprocesses
Query parameters
Response

Paginated result containing the matching Inbound Process entities

Body
total*number
inboundProcesses*array of StrippedInboundProcess (object)
Request
const response = await fetch('/api/inboundprocesses', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "total": 0,
  "inboundProcesses": [
    {
      "id": "text",
      "version": 0,
      "created": "2024-09-07T23:24:38.845Z",
      "lastModified": "2024-09-07T23:24:38.845Z",
      "tenantInboundProcessId": "text",
      "facilityRef": "text",
      "status": "OPEN",
      "onHold": false,
      "inboundDate": [
        "2024-09-07T23:24:38.845Z"
      ],
      "origin": [
        {
          "name": "text"
        }
      ],
      "scannableCodes": [
        "text"
      ],
      "anonymized": false
    }
  ]
}

Create a new Inbound Process

POST/api/inboundprocesses
Body
tenantInboundProcessIdstring
facilityRef*string
receiptsarray of InboundReceiptForCreation (object)
onHoldboolean
purchaseOrderInboundProcessPurchaseOrderForCreation (object)
scannableCodesarray of string
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

Response

Created Inbound Process entity

Body
id*string
version*number
created*string (date-time)
lastModified*string (date-time)
tenantInboundProcessIdstring
facilityRef*string
status*enum
OPENPARTIAL_DELIVERYON_HOLDCLOSED
onHold*boolean
inboundDate*array of string (date-time)
origin*array of InboundProcessOrigin (object)
scannableCodes*array of string
anonymized*boolean
purchaseOrderInboundProcessPurchaseOrder (object)
receipts*array of InboundReceipt (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

Request
const response = await fetch('/api/inboundprocesses', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "facilityRef": "text"
    }),
});
const data = await response.json();
Response
{
  "id": "text",
  "version": 0,
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z",
  "tenantInboundProcessId": "text",
  "facilityRef": "text",
  "status": "OPEN",
  "onHold": false,
  "inboundDate": [
    "2024-09-07T23:24:38.845Z"
  ],
  "origin": [
    {
      "name": "text"
    }
  ],
  "scannableCodes": [
    "text"
  ],
  "anonymized": false,
  "purchaseOrder": {
    "id": "text",
    "created": "2024-09-07T23:24:38.845Z",
    "lastModified": "2024-09-07T23:24:38.845Z",
    "orderDate": "2024-09-07T23:24:38.845Z",
    "requestedDate": {
      "type": "ASAP",
      "value": "2024-09-07T23:24:38.845Z"
    },
    "requestedItems": [
      {
        "tenantArticleId": "text",
        "quantity": {
          "unit": "text"
        },
        "stockProperties": {
          "expiry": "text",
          "batch": "text"
        }
      }
    ],
    "status": "OPEN",
    "cancelled": false,
    "supplier": {
      "name": "text"
    },
    "transfer": {
      "id": "text"
    }
  },
  "receipts": [
    {
      "asnRef": "text",
      "receivedDate": "2024-09-07T23:24:38.845Z",
      "receivedItems": [
        {
          "tenantArticleId": "text",
          "acceptedQuantity": {
            "unit": "text"
          },
          "rejectedQuantity": {
            "unit": "text"
          },
          "comments": [
            {
              "userRef": "text",
              "content": "text",
              "attachments": [
                {
                  "inboundAttachmentRef": "text"
                }
              ]
            }
          ],
          "storageLocationRef": "text",
          "stockProperties": {
            "expiry": "text",
            "batch": "text"
          }
        }
      ],
      "comments": [
        {
          "userRef": "text",
          "content": "text",
          "attachments": [
            {
              "inboundAttachmentRef": "text"
            }
          ]
        }
      ],
      "status": "IN_PROGRESS",
      "id": "text"
    }
  ]
}

Get an Inbound Process by ID

GET/api/inboundprocesses/{inboundProcessId}
Path parameters
inboundProcessId*string
Response

Requested Inbound Process entity

Body
id*string
version*number
created*string (date-time)
lastModified*string (date-time)
tenantInboundProcessIdstring
facilityRef*string
status*enum
OPENPARTIAL_DELIVERYON_HOLDCLOSED
onHold*boolean
inboundDate*array of string (date-time)
origin*array of InboundProcessOrigin (object)
scannableCodes*array of string
anonymized*boolean
purchaseOrderInboundProcessPurchaseOrder (object)
receipts*array of InboundReceipt (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

Request
const response = await fetch('/api/inboundprocesses/{inboundProcessId}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "id": "text",
  "version": 0,
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z",
  "tenantInboundProcessId": "text",
  "facilityRef": "text",
  "status": "OPEN",
  "onHold": false,
  "inboundDate": [
    "2024-09-07T23:24:38.845Z"
  ],
  "origin": [
    {
      "name": "text"
    }
  ],
  "scannableCodes": [
    "text"
  ],
  "anonymized": false,
  "purchaseOrder": {
    "id": "text",
    "created": "2024-09-07T23:24:38.845Z",
    "lastModified": "2024-09-07T23:24:38.845Z",
    "orderDate": "2024-09-07T23:24:38.845Z",
    "requestedDate": {
      "type": "ASAP",
      "value": "2024-09-07T23:24:38.845Z"
    },
    "requestedItems": [
      {
        "tenantArticleId": "text",
        "quantity": {
          "unit": "text"
        },
        "stockProperties": {
          "expiry": "text",
          "batch": "text"
        }
      }
    ],
    "status": "OPEN",
    "cancelled": false,
    "supplier": {
      "name": "text"
    },
    "transfer": {
      "id": "text"
    }
  },
  "receipts": [
    {
      "asnRef": "text",
      "receivedDate": "2024-09-07T23:24:38.845Z",
      "receivedItems": [
        {
          "tenantArticleId": "text",
          "acceptedQuantity": {
            "unit": "text"
          },
          "rejectedQuantity": {
            "unit": "text"
          },
          "comments": [
            {
              "userRef": "text",
              "content": "text",
              "attachments": [
                {
                  "inboundAttachmentRef": "text"
                }
              ]
            }
          ],
          "storageLocationRef": "text",
          "stockProperties": {
            "expiry": "text",
            "batch": "text"
          }
        }
      ],
      "comments": [
        {
          "userRef": "text",
          "content": "text",
          "attachments": [
            {
              "inboundAttachmentRef": "text"
            }
          ]
        }
      ],
      "status": "IN_PROGRESS",
      "id": "text"
    }
  ]
}

Delete an Inbound Process by ID

DELETE/api/inboundprocesses/{inboundProcessId}
Path parameters
inboundProcessId*string
Response

Inbound Process successfully deleted

Request
const response = await fetch('/api/inboundprocesses/{inboundProcessId}', {
    method: 'DELETE',
    headers: {},
});
const data = await response.json();
Response
[
  {
    "description": "Missing attributes were name, address, items",
    "requestVersion": 41,
    "summary": "One or more mandatory attributes were not provided.",
    "version": 42
  }
]

Purchase Order

Get a Purchase Order by ID

GET/api/purchaseorders/{purchaseOrderId}
Path parameters
purchaseOrderId*string
Response

Purchase Order entity

Body
id*string
created*string (date-time)
lastModified*string (date-time)
orderDate*string (date-time)
requestedDate*RequestedDate (object)
requestedItems*array of InboundLineItem (object)
status*enum
OPEN
cancelled*boolean
supplierInboundProcessPurchaseOrderSupplier (object)
transferInboundProcessPurchaseOrderTransfer (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

version*number
facilityRef*string
inboundProcessRef*string
Request
const response = await fetch('/api/purchaseorders/{purchaseOrderId}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "id": "text",
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z",
  "orderDate": "2024-09-07T23:24:38.845Z",
  "requestedDate": {
    "type": "ASAP",
    "value": "2024-09-07T23:24:38.845Z"
  },
  "requestedItems": [
    {
      "tenantArticleId": "text",
      "quantity": {
        "unit": "text"
      },
      "stockProperties": {
        "expiry": "text",
        "batch": "text"
      }
    }
  ],
  "status": "OPEN",
  "cancelled": false,
  "supplier": {
    "name": "text"
  },
  "transfer": {
    "id": "text"
  },
  "version": 0,
  "facilityRef": "text",
  "inboundProcessRef": "text"
}

Update or create a Purchase Order

PUT/api/purchaseorders/{purchaseOrderId}
Path parameters
purchaseOrderId*string
Body
orderDate*string (date-time)
requestedDate*InputRequestedDate (object)
requestedItems*array of InboundLineItem (object)
statusenum
OPEN
cancelledboolean
supplierInboundProcessPurchaseOrderSupplier (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

version*number
Response

Updated/created Purchase Order entity

Body
id*string
created*string (date-time)
lastModified*string (date-time)
orderDate*string (date-time)
requestedDate*RequestedDate (object)
requestedItems*array of InboundLineItem (object)
status*enum
OPEN
cancelled*boolean
supplierInboundProcessPurchaseOrderSupplier (object)
transferInboundProcessPurchaseOrderTransfer (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

version*number
facilityRef*string
inboundProcessRef*string
Request
const response = await fetch('/api/purchaseorders/{purchaseOrderId}', {
    method: 'PUT',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "orderDate": "2024-09-07T23:24:38.845Z",
      "requestedDate": {
        "type": "ASAP"
      },
      "requestedItems": [
        {
          "tenantArticleId": "text",
          "quantity": {}
        }
      ],
      "version": 0
    }),
});
const data = await response.json();
Response
{
  "id": "text",
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z",
  "orderDate": "2024-09-07T23:24:38.845Z",
  "requestedDate": {
    "type": "ASAP",
    "value": "2024-09-07T23:24:38.845Z"
  },
  "requestedItems": [
    {
      "tenantArticleId": "text",
      "quantity": {
        "unit": "text"
      },
      "stockProperties": {
        "expiry": "text",
        "batch": "text"
      }
    }
  ],
  "status": "OPEN",
  "cancelled": false,
  "supplier": {
    "name": "text"
  },
  "transfer": {
    "id": "text"
  },
  "version": 0,
  "facilityRef": "text",
  "inboundProcessRef": "text"
}

Partially updates a Purchase Order using a selection of fields

PATCH/api/purchaseorders/{purchaseOrderId}
Path parameters
purchaseOrderId*string
Body
version*number
orderDatestring (date-time)
requestedDateInputRequestedDate (object)
requestedItemsarray of InboundLineItem (object)
statusenum
OPEN
cancelledboolean
supplierInboundProcessPurchaseOrderSupplier (object)
Response

Updated Purchase Order entity

Body
id*string
created*string (date-time)
lastModified*string (date-time)
orderDate*string (date-time)
requestedDate*RequestedDate (object)
requestedItems*array of InboundLineItem (object)
status*enum
OPEN
cancelled*boolean
supplierInboundProcessPurchaseOrderSupplier (object)
transferInboundProcessPurchaseOrderTransfer (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

version*number
facilityRef*string
inboundProcessRef*string
Request
const response = await fetch('/api/purchaseorders/{purchaseOrderId}', {
    method: 'PATCH',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "version": 0
    }),
});
const data = await response.json();
Response
{
  "id": "text",
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z",
  "orderDate": "2024-09-07T23:24:38.845Z",
  "requestedDate": {
    "type": "ASAP",
    "value": "2024-09-07T23:24:38.845Z"
  },
  "requestedItems": [
    {
      "tenantArticleId": "text",
      "quantity": {
        "unit": "text"
      },
      "stockProperties": {
        "expiry": "text",
        "batch": "text"
      }
    }
  ],
  "status": "OPEN",
  "cancelled": false,
  "supplier": {
    "name": "text"
  },
  "transfer": {
    "id": "text"
  },
  "version": 0,
  "facilityRef": "text",
  "inboundProcessRef": "text"
}

Create a new Purchase Order

POST/api/purchaseorders
Body
orderDate*string (date-time)
requestedDate*InputRequestedDate (object)
requestedItems*array of InboundLineItem (object)
statusenum
OPEN
cancelledboolean
supplierInboundProcessPurchaseOrderSupplier (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

facilityRef*string
Response

Created Purchase Order entity

Body
id*string
created*string (date-time)
lastModified*string (date-time)
orderDate*string (date-time)
requestedDate*RequestedDate (object)
requestedItems*array of InboundLineItem (object)
status*enum
OPEN
cancelled*boolean
supplierInboundProcessPurchaseOrderSupplier (object)
transferInboundProcessPurchaseOrderTransfer (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

version*number
facilityRef*string
inboundProcessRef*string
Request
const response = await fetch('/api/purchaseorders', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "orderDate": "2024-09-07T23:24:38.845Z",
      "requestedDate": {
        "type": "ASAP"
      },
      "requestedItems": [
        {
          "tenantArticleId": "text",
          "quantity": {}
        }
      ],
      "facilityRef": "text"
    }),
});
const data = await response.json();
Response
{
  "id": "text",
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z",
  "orderDate": "2024-09-07T23:24:38.845Z",
  "requestedDate": {
    "type": "ASAP",
    "value": "2024-09-07T23:24:38.845Z"
  },
  "requestedItems": [
    {
      "tenantArticleId": "text",
      "quantity": {
        "unit": "text"
      },
      "stockProperties": {
        "expiry": "text",
        "batch": "text"
      }
    }
  ],
  "status": "OPEN",
  "cancelled": false,
  "supplier": {
    "name": "text"
  },
  "transfer": {
    "id": "text"
  },
  "version": 0,
  "facilityRef": "text",
  "inboundProcessRef": "text"
}

Creates or updates the specific purchase order of an existing inbound process.

PUT/api/inboundprocesses/{inboundProcessId}/purchaseorder
Path parameters
inboundProcessId*string
Body
orderDate*string (date-time)
requestedDate*InputRequestedDate (object)
requestedItems*array of InboundLineItem (object)
statusenum
OPEN
cancelledboolean
supplierInboundProcessPurchaseOrderSupplier (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

version*number
Response

Purchase order successfully updated on inbound process

Body
id*string
created*string (date-time)
lastModified*string (date-time)
orderDate*string (date-time)
requestedDate*RequestedDate (object)
requestedItems*array of InboundLineItem (object)
status*enum
OPEN
cancelled*boolean
supplierInboundProcessPurchaseOrderSupplier (object)
transferInboundProcessPurchaseOrderTransfer (object)
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

Request
const response = await fetch('/api/inboundprocesses/{inboundProcessId}/purchaseorder', {
    method: 'PUT',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "orderDate": "2024-09-07T23:24:38.845Z",
      "requestedDate": {
        "type": "ASAP"
      },
      "requestedItems": [
        {
          "tenantArticleId": "text",
          "quantity": {}
        }
      ],
      "version": 0
    }),
});
const data = await response.json();
Response
{
  "id": "text",
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z",
  "orderDate": "2024-09-07T23:24:38.845Z",
  "requestedDate": {
    "type": "ASAP",
    "value": "2024-09-07T23:24:38.845Z"
  },
  "requestedItems": [
    {
      "tenantArticleId": "text",
      "quantity": {
        "unit": "text"
      },
      "stockProperties": {
        "expiry": "text",
        "batch": "text"
      }
    }
  ],
  "status": "OPEN",
  "cancelled": false,
  "supplier": {
    "name": "text"
  },
  "transfer": {
    "id": "text"
  }
}

Receipt

Adds a receipt to an inbound process.

POST/api/inboundprocesses/{inboundProcessId}/receipts
Path parameters
inboundProcessId*string
Body
asnRefstring
receivedDate*string (date-time)
receivedItems*array of InboundReceiptLineItem (object)
comments*array of InboundReceiptComment (object)
statusenum
IN_PROGRESSFINISHED
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

Response

Receipt was added to the inbound process

Body
asnRefstring
receivedDate*string (date-time)
receivedItems*array of InboundReceiptLineItem (object)
comments*array of InboundReceiptComment (object)
statusenum
IN_PROGRESSFINISHED
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

id*string
Request
const response = await fetch('/api/inboundprocesses/{inboundProcessId}/receipts', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "receivedDate": "2024-09-07T23:24:38.845Z",
      "receivedItems": [
        {
          "tenantArticleId": "text",
          "acceptedQuantity": {},
          "rejectedQuantity": {},
          "comments": [
            {
              "content": "text"
            }
          ]
        }
      ],
      "comments": [
        {
          "content": "text"
        }
      ]
    }),
});
const data = await response.json();
Response
{
  "asnRef": "text",
  "receivedDate": "2024-09-07T23:24:38.845Z",
  "receivedItems": [
    {
      "tenantArticleId": "text",
      "acceptedQuantity": {
        "unit": "text"
      },
      "rejectedQuantity": {
        "unit": "text"
      },
      "comments": [
        {
          "userRef": "text",
          "content": "text",
          "attachments": [
            {
              "inboundAttachmentRef": "text"
            }
          ]
        }
      ],
      "storageLocationRef": "text",
      "stockProperties": {
        "expiry": "text",
        "batch": "text"
      }
    }
  ],
  "comments": [
    {
      "userRef": "text",
      "content": "text",
      "attachments": [
        {
          "inboundAttachmentRef": "text"
        }
      ]
    }
  ],
  "status": "IN_PROGRESS",
  "id": "text"
}

Get InboundReceiptJobs

GET/api/inboundreceiptjobs
Query parameters
Response

Paginated Inbound Receipt Jobs

Body
total*number
inboundReceiptJobs*array of InboundReceiptJob (object)
Request
const response = await fetch('/api/inboundreceiptjobs', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "total": 0,
  "inboundReceiptJobs": [
    {
      "id": "text",
      "facilityRef": "text",
      "inboundProcessRef": "text",
      "originReadableName": "text",
      "originReadableId": "text",
      "status": "OPEN",
      "expectedDate": {
        "type": "ASAP",
        "value": "2024-09-07T23:24:38.845Z"
      },
      "items": {
        "tenantArticleId": "text",
        "quantity": {
          "unit": "text"
        },
        "stockProperties": {
          "expiry": "text",
          "batch": "text"
        }
      },
      "origin": {
        "name": "text"
      }
    }
  ]
}

Get an Inbound Receipt Job by ID

GET/api/inboundreceiptjobs/{inboundEntryId}
Path parameters
inboundEntryId*string
Response
Body
id*string
facilityRef*string
inboundProcessRef*string
originReadableNamestring
originReadableIdstring
status*enum
OPENPARTIAL_DELIVERYON_HOLDCLOSED
expectedDate*RequestedDate (object)
items*InboundLineItem (object)
origin*InboundReceiptJobOrigin (object)
Request
const response = await fetch('/api/inboundreceiptjobs/{inboundEntryId}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "id": "text",
  "facilityRef": "text",
  "inboundProcessRef": "text",
  "originReadableName": "text",
  "originReadableId": "text",
  "status": "OPEN",
  "expectedDate": {
    "type": "ASAP",
    "value": "2024-09-07T23:24:38.845Z"
  },
  "items": {
    "tenantArticleId": "text",
    "quantity": {
      "unit": "text"
    },
    "stockProperties": {
      "expiry": "text",
      "batch": "text"
    }
  },
  "origin": {
    "name": "text"
  }
}

Creates a receipt

POST/api/receipts
Body
asnRefstring
receivedDate*string (date-time)
receivedItems*array of InboundReceiptLineItem (object)
comments*array of InboundReceiptComment (object)
statusenum
IN_PROGRESSFINISHED
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

facilityRef*string
Response

Created inbound receipt

Body
asnRefstring
receivedDate*string (date-time)
receivedItems*array of InboundReceiptLineItem (object)
comments*array of InboundReceiptComment (object)
statusenum
IN_PROGRESSFINISHED
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

id*string
inboundProcessRef*string
version*number
created*string (date-time)
lastModified*string (date-time)
Request
const response = await fetch('/api/receipts', {
    method: 'POST',
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "receivedDate": "2024-09-07T23:24:38.845Z",
      "receivedItems": [
        {
          "tenantArticleId": "text",
          "acceptedQuantity": {},
          "rejectedQuantity": {},
          "comments": [
            {
              "content": "text"
            }
          ]
        }
      ],
      "comments": [
        {
          "content": "text"
        }
      ],
      "facilityRef": "text"
    }),
});
const data = await response.json();
Response
{
  "asnRef": "text",
  "receivedDate": "2024-09-07T23:24:38.845Z",
  "receivedItems": [
    {
      "tenantArticleId": "text",
      "acceptedQuantity": {
        "unit": "text"
      },
      "rejectedQuantity": {
        "unit": "text"
      },
      "comments": [
        {
          "userRef": "text",
          "content": "text",
          "attachments": [
            {
              "inboundAttachmentRef": "text"
            }
          ]
        }
      ],
      "storageLocationRef": "text",
      "stockProperties": {
        "expiry": "text",
        "batch": "text"
      }
    }
  ],
  "comments": [
    {
      "userRef": "text",
      "content": "text",
      "attachments": [
        {
          "inboundAttachmentRef": "text"
        }
      ]
    }
  ],
  "status": "IN_PROGRESS",
  "id": "text",
  "inboundProcessRef": "text",
  "version": 0,
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z"
}

Get receipt by id

GET/api/receipts/{receiptId}
Path parameters
receiptId*string
Response
Body
asnRefstring
receivedDate*string (date-time)
receivedItems*array of InboundReceiptLineItem (object)
comments*array of InboundReceiptComment (object)
statusenum
IN_PROGRESSFINISHED
customAttributesnullable object

Attributes that can be added to this entity. These attributes cannot be used within fulfillment processes, but enable you to attach custom data from your systems to fulfillmenttools entities.

id*string
inboundProcessRef*string
version*number
created*string (date-time)
lastModified*string (date-time)
Request
const response = await fetch('/api/receipts/{receiptId}', {
    method: 'GET',
    headers: {},
});
const data = await response.json();
Response
{
  "asnRef": "text",
  "receivedDate": "2024-09-07T23:24:38.845Z",
  "receivedItems": [
    {
      "tenantArticleId": "text",
      "acceptedQuantity": {
        "unit": "text"
      },
      "rejectedQuantity": {
        "unit": "text"
      },
      "comments": [
        {
          "userRef": "text",
          "content": "text",
          "attachments": [
            {
              "inboundAttachmentRef": "text"
            }
          ]
        }
      ],
      "storageLocationRef": "text",
      "stockProperties": {
        "expiry": "text",
        "batch": "text"
      }
    }
  ],
  "comments": [
    {
      "userRef": "text",
      "content": "text",
      "attachments": [
        {
          "inboundAttachmentRef": "text"
        }
      ]
    }
  ],
  "status": "IN_PROGRESS",
  "id": "text",
  "inboundProcessRef": "text",
  "version": 0,
  "created": "2024-09-07T23:24:38.845Z",
  "lastModified": "2024-09-07T23:24:38.845Z"
}

Last updated