# Create new offer Endpoint: POST /offers Version: 1.0.0 Security: M2X_auth_application ## Request fields (application/json): - `offer` (object) - `offer.references` (array) - `offer.offerVersion` (string) - `offer.bookingId` (string) - `offer.carrierId` (string) The M2X carrier id for this offer - `offer.quantity` (number) The product quantity - `offer.properties` (object,null) A key value store containing bespoke properties usable for pricing and optimisation - `offer.noPayment` (boolean) Whether upon acceptance the carrier shall get a payment or not (e.g. freight forward) - `offer.productSpatialRequirement` (number,null) Optional override for the volume - `offer.productMassKg` (number,null) Optional total weight override for the booking - `offer.metadata` (object,null) Opaque passenger data - `offer.priceTransport` (number,null) The allocated transport price - `offer.priceFaf` (number,null) The allocated FAF - `offer.fromLocation` (object) - `offer.fromLocation.addressText` (string, required) - `offer.fromLocation.latitude` (number, required) - `offer.fromLocation.longitude` (number, required) - `offer.fromLocation.locationName` (string, required) - `offer.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. - `offer.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. - `offer.fromLocation.timezone` (string) IANA (aka TZ database) timezone name Example: "Pacific/Auckland" - `offer.fromLocation.properties` (object,null) - `offer.toLocation` (object) - `offer.transportTimestamp` (string) RFC3339 date time of cart - `mappingRequests` (object) - `mappingRequests.carrier` (object) - `mappingRequests.carrier.carrierExternalId` (string) External carrier id for this booking - `mappingRequests.content` (object,null) Specific information about the content of the booking - `mappingRequests.content.description` (string) Description of the payload - `mappingRequests.content.productBundle` (object) Details of the products carted - `mappingRequests.content.productBundle.payload` (array) - `mappingRequests.content.productBundle.payload.itemId` (string) - `mappingRequests.content.productBundle.payload.quantity` (number) This item quantity - `mappingRequests.content.productBundle.payload.description` (string) - `mappingRequests.content.productBundle.payload.massKg` (number) Optional override for the weight - `mappingRequests.content.productBundle.payload.spatialRequirement` (number) Optional override for the volume - `mappingRequests.content.productBundle.payload.unitOfMeasure` (string) Optional unit of measure (e.g. bags) - `mappingRequests.content.productBundle.payload.product` (object) - `mappingRequests.content.productBundle.payload.product.productCode` (string,null) M2X internal tracking id for the product code used - `mappingRequests.content.productBundle.payload.product.productCodeExternalId` (string,null) External Id for product tracking - `mappingRequests.content.productBundle.payload.product.productDescription` (string,null) Helps user creating the missing mapping upon mapping failure - `mappingRequests.fromLocationGroup` (object) - `mappingRequests.fromLocationGroup.groupId` (string,null) M2X internal tracking id for the location code used - `mappingRequests.fromLocationGroup.externalId` (string,null) External Id - `mappingRequests.fromLocationGroup.usePrimaryLocation` (boolean) Will use primary location of this supplier. If specified, will ignore location - `mappingRequests.fromLocationGroup.subLocationExternalId` (string,null) External Id of one of the group sub location. If specified, will ignore location - `mappingRequests.toLocationGroup` (object) - `cancel` (boolean) - `settled` (boolean) ## Response 200 fields (application/json): - `batchId` (string) Example: "XYZ123" - `id` (string) Example: "ABC123" ## Response 400 fields (application/json): - `message` (string) Example: "missing data" ## Response 202 fields