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