# Site fulfilment webhook webhook type: SITE_FULFILMENT Endpoint: POST Site Fulfilment Version: 1.0.0 ## Request fields (application/json): - `fulfilmentRequest` (object) - `fulfilmentRequest.id` (string) - `fulfilmentRequest.externalReference` (string) - `fulfilmentRequest.externalNote` (string) - `fulfilmentRequest.internalNote` (string) - `fulfilmentRequest.remainerCanceled` (boolean) Whether the remaining items are not fulfilled - `fulfilmentRequest.labels` (array) Extra label for picking - `fulfilmentRequest.noPayment` (boolean) Whether upon acceptance the carrier shall get a payment or not (e.g. freight forward) - `fulfilmentRequest.noPrice` (boolean) Whether the booking is free of charge, no offer generated - `fulfilmentRequest.carrierId` (string) The M2X carrier id for this booking - `fulfilmentRequest.carrierExternalId` (string) External carrier id for this carrier - `fulfilmentRequest.carrierName` (string) Carrier name for this job - `fulfilmentRequest.corporateId` (string) The M2X corporate id for this booking - `fulfilmentRequest.corporateName` (string) Corporate name for this job - `fulfilmentRequest.backOrder` (boolean) - `fulfilmentRequest.urgent` (boolean) - `fulfilmentRequest.updated` (string) - `fulfilmentRequest.requestedQuantity` (number) The product quantity - `fulfilmentRequest.quantity` (number) The product quantity - `fulfilmentRequest.productSpatialRequirement` (number,null,number,null) Optional override for the volume - `fulfilmentRequest.productSpatialRequirementPerUnit` (number,null) Optional override for the volume per unit - `fulfilmentRequest.productMassKg` (number,null,number,null) Optional total weight override for the booking - `fulfilmentRequest.productMassKgPerUnit` (number,null) Optional total weight override for the booking per unit - `fulfilmentRequest.transportRequirementsId` (string) M2X internal tracking id for the product type - `fulfilmentRequest.productCode` (string,null) M2X internal tracking id for the product code used - `fulfilmentRequest.productCodeName` (string,null) M2X name for the product code used - `fulfilmentRequest.productCodeExternalId` (string,null) External Id for product tracking - `fulfilmentRequest.content` (object,null) Specific information about the content of the booking - `fulfilmentRequest.content.description` (string,null) Description of the payload - `fulfilmentRequest.content.productBundle` (object) Details of the products carted - `fulfilmentRequest.content.productBundle.payload` (array) - `fulfilmentRequest.content.productBundle.payload.requestedQuantity` (number) This item requested quantity - `fulfilmentRequest.content.productBundle.payload.quantity` (number) This item quantity - `fulfilmentRequest.content.productBundle.payload.description` (string) - `fulfilmentRequest.content.productBundle.payload.itemId` (string) - `fulfilmentRequest.content.productBundle.payload.massKg` (number) Optional override for the weight - `fulfilmentRequest.content.productBundle.payload.massKgPerUnit` (number) Optional override for the weight per unit - `fulfilmentRequest.content.productBundle.payload.spatialRequirement` (number) Optional override for the volume - `fulfilmentRequest.content.productBundle.payload.spatialRequirementPerUnit` (number) Optional override for the volume per unit - `fulfilmentRequest.content.productBundle.payload.unitOfMeasure` (string) Optional unit of measure (e.g. bags) - `fulfilmentRequest.content.productBundle.payload.product` (object) A product - `fulfilmentRequest.content.productBundle.payload.product.productCodeName` (string,null) Friendly name of the product code - `fulfilmentRequest.content.productBundle.payload.metadata` (object,null) Opaque passenger data - `fulfilmentRequest.content.productBundle.payload.properties` (object,null) A key value store containing bespoke properties usable for pricing and optimisation - `fulfilmentRequest.content.productBundle.payload.propertyRequests` (array,null) - `fulfilmentRequest.content.productBundle.payload.propertyRequests.fieldId` (string) The property field to fill - `fulfilmentRequest.content.productBundle.payload.propertyRequests.fieldLabel` (string) The property field label for the UI - `fulfilmentRequest.content.productBundle.payload.propertyRequests.type` (string) The type of input Enum: "select", "selectWithQuantity", "string", "stringWithQuantity", "boolean", "number" - `fulfilmentRequest.content.productBundle.payload.propertyRequests.items` (array) In case of a select the items to select from - `fulfilmentRequest.content.productBundle.payload.propertyRequests.items.text` (string) - `fulfilmentRequest.content.productBundle.payload.propertyRequests.items.value` (string) - `fulfilmentRequest.content.productBundle.supplimentary` (array) Details of the products carted that are not considered part of the actual payload - `fulfilmentRequest.fromLocation` (object) - `fulfilmentRequest.fromLocation.addressText` (string, required) - `fulfilmentRequest.fromLocation.latitude` (number, required) - `fulfilmentRequest.fromLocation.longitude` (number, required) - `fulfilmentRequest.fromLocation.locationName` (string, required) - `fulfilmentRequest.fromLocation.locationId` (string,null) The M2X internal location id. When a location is manually created in M2X, this is a randomly generated unique identifier. If creating locations via API, the caller can set the Location ID. - `fulfilmentRequest.fromLocation.locationOwnerId` (string,null) The M2X internal location owner id. - `fulfilmentRequest.fromLocation.locationVersion` (string,null) Version of the location for change tracking. - `fulfilmentRequest.fromLocation.externalId` (string,null) An optional external identifier assigned to the location. This ID can be provided when creating the location and is typically used for cross-system referencing or integration with external data sources. - `fulfilmentRequest.fromLocation.timezone` (string) IANA (aka TZ database) timezone name Example: "Pacific/Auckland" - `fulfilmentRequest.fromLocation.properties` (object,null) - `fulfilmentRequest.fromDateAndTimeConstraint` (object) - `fulfilmentRequest.fromDateAndTimeConstraint.date` (string, required) Day required (YYYY-MM-DD) - `fulfilmentRequest.fromDateAndTimeConstraint.timeConstraint` (any) - `fulfilmentRequest.fromTimeWindows` (array) - `fulfilmentRequest.fromTimeWindows.start` (integer, required) Epoch timestamp (seconds since 1970), start of the window - `fulfilmentRequest.fromTimeWindows.end` (integer, required) Epoch timestamp (seconds since 1970), end of the window - `fulfilmentRequest.fromLocationGroup` (object) - `fulfilmentRequest.fromLocationGroup.groupId` (string) Internal M2X Location Id - `fulfilmentRequest.fromLocationGroup.code` (string) Rapid searchable code for front end users Example: "C123" - `fulfilmentRequest.fromLocationGroup.externalId` (string,null) Id to map group to an external system Example: "asd-asd-asd" - `fulfilmentRequest.fromLocationGroup.name` (string) Group name - `fulfilmentRequest.fromContactDetails` (object) - `fulfilmentRequest.fromContactDetails.email` (string) - `fulfilmentRequest.fromContactDetails.phone` (string) - `fulfilmentRequest.fromContactDetails.name` (string) - `fulfilmentRequest.toLocation` (object) - `fulfilmentRequest.toDateAndTimeConstraint` (object) - `fulfilmentRequest.toTimeWindows` (array) - `fulfilmentRequest.toLocationGroup` (object) - `fulfilmentRequest.toContactDetails` (object) - `fulfilmentRequest.bookingId` (string) - `fulfilmentRequest.acted` (boolean) True when the grace period has expired and users can't go back - `fulfilmentRequest.done` (boolean) Whether the user has completed it - `fulfilmentRequest.type` (string) Fulfilment type Enum: "cancel", "fulfil" - `fulfilmentRequest.offerStatus` (string) The offer status - `fulfilmentRequest.offerPriceFaf` (number,null) The FAF offered - `fulfilmentRequest.offerPriceTransport` (number,null) The transport price offered - `fulfilmentRequest.bookingPriceFaf` (number,null) The FAF booked - `fulfilmentRequest.bookingPriceTransport` (number,null) The transport price booked - `fulfilmentRequest.siteStatus` (string) Status of the fulfilment at the site - `fulfilmentRequest.siteOnHoldReason` (string,null) Reason for the fulfilment to be on hold at a site - `fulfilmentRequest.fulfilmentId` (string) The instance of fulfilment attempt - `fulfilmentRequest.fulfilmentRequestId` (string) The instance of fulfilment request, duplicate of Id - `site` (object) - `site.siteId` (string) - `site.locationGroupId` (string) - `site.locationGroupName` (string) - `status` (string) - `extras` (object) - `extras.bookingGroup` (string) - `extras.labels` (array) - `assignment` (object) - `assignment.operatorId` (string) - `assignment.code` (string) ## Response 200 fields