Skip to main content

Update Master Product

Method: PUT
/products/{id}

As a Customer of iFoodDS, you use the iFoodDS Master Product API to update FSMA 204 master product data in the iFoodDS Trace Exchange platform. Records will be stored for a minimum of two years.

info

This endpoint is being refined and thus subject to change. These docs will update when changes are made.

PUT Request Behavior

PUT requests perform a full resource replacement. When you submit a PUT to this endpoint, the payload must contain the complete record, including all fields you want preserved. The server overwrites the existing record with the data you provide.

Any field not included in the PUT payload is treated as intentionally omitted and will be removed from the stored record.

Use PUT only when you intend to fully replace the previously submitted resource. Partial updates are not supported.

Request

Type: application/json

The {id} of the path is the ID retrieved from:

  1. Completion of a succesful POST. Example: "request_ids": ["9ed5911f-f6a4-4ba2-9eb4-d6428237be28"]
  2. Within the payload results of a GET. Example: "id": "7b5c43c3-3526-4135-a602-0e3979c21d88"

The body of the request comprises one main section: the productMasterDataList.

{

"payloadId":"<payload id>",
"transmissionDateTime":"<transmission date time>",
"productMasterDataList": {
"itemCode": "<item code>",
"businessUnit": "<business unit>",
"itemDescription": "<item description>",
"isFtlItem": true,
"ftlCategory": "<FTL (Food Traceability List) category>",
"brandName": "<brand name>",
"packStyle": "<pack style>",
"packSize": "<pack size>",
"productCommodity": "<product commodity>",
"productVariety": "<product variety>",
"scientificName": "<scientific name>",
"acceptableSpeciesName": "<acceptable species name>",
"gtin": "<GTIN (Global Trade Item Number)>",
"itemUpc": "<item UPC (Universal Product Code)>",
"innerPackUpc": "<inner pack UPC>",
"plu": "<PLU (Price Look-up)>",
"alternateItemCode": "<alternate item code>",
"isCoveredByGdst": true,
"grossWeight": <gross weight>,
"grossWeightUOM": "<gross weight unit of measure>",
"netWeight": <net weight>,
"netWeightUOM": "<net weight unit of measure>"
}
}

Data Constraints

Please note the following data constraints:

  • strings allow a maximum of 100 characters

Payload Data

Optional

  • payloadId (string): A unique payload id supplied by the party submitting the event.
  • transmissionDateTime (datetime): The date and time the payload was sent.

Product Data

Required

  • itemCode (string): The vendor or purchaser item code that will be referenced in the product.
  • itemDescription (string): Product Description from the product owner or original purchase order.

Optional

  • businessUnit (string): Indicates the business unit associated with the product.
  • alternateItemCode (string): This field provides sender and shipper to use and alternate identifier for products. This could be a URL, a UUID, or other globally unique identification scheme. The important thing is that it is unique per product and shared between shipper and receiver. For example, this could be a GS1 Digital Link URL for the product
  • gtin (string): Case-level Global Trade Identification Number (GTIN-14). https://www.gs1.org/docs/idkeys/GS1_GTIN_Executive_Summary.pdf  
  • itemUpc (string): Item-level Universal Product Code, may be GTIN-8, GTIN-12, or GTIN-13. GS1 GTIN Executive Summary
  • innerPackUpc (string): Point of sale barcode, may be GTIN-8, GTIN-12, GTIN-13, or GTIN-14. GS1 GTIN Executive Summary
  • plu (string): Item-level Price Look-up Code. PLU Codes Search — IFPS
  • isFtlItem (boolean): Indicates whether product is on the Food Traceability List (FTL)
  • ftlCategory (string)*: Indicates the product's FTL category, i.e. “soft cheese”, “shell eggs”, “nut butter”, “cucumbers”, “herbs”, “leafy greens”, “melons”, “peppers”, “sprouts”, “tomatoes”, “tropical tree fruits”, “fresh-cut fruits”, “fresh-cut vegetables”, “finfish”, “smoked finfish”, “crustaceans”, “molluscan shellfish”, “ready-to-eat deli salads”, or “multiple-ftl-ingredients” *Required if on the FTL 
  • brandName (string): The brand of the product that appears on the consumer package
  • packStyle (string): Product's pack style, e.g. "Case", "Carton", "Tray", "Clamshell", etc.
  • packSize (string): Product's pack size as Packaging Configuration OR Count OR Weight + Unit of Measure, e.g. "20 x 12 oz bags"
  • productCommodity (string): For fresh produce, a description of the commodity, e.g. "Peppers"
  • productVariety (string): For fresh produce a description of the variety when applicable, e.g. "Jalapeno"
  • scientificName (string): For seafood the scientific name of the species, see: FDA Seafood List
  • acceptableSpeciesName (string): For seafood a description of the common species name, see: FDA Seafood List
  • isCoveredByGdst (boolean): Flag to indicate that product is part of GDST
  • grossWeight (numeric): The total weight of the shipped produce item including all packaging materials, pallets, cartons, and containers as recorded on the ASN.
  • grossWeightUOM (string): The unit of measure used to represent the gross weight value on the ASN (for example: LB, KG, OZ).
  • netWeight (numeric): The weight of the produce product itself excluding packaging, pallets, cartons, and other shipping materials as recorded on the ASN.
  • netWeightUOM (string): The unit of measure used to represent the net weight value on the ASN (for example: LB, KG, OZ).

Sample Payload

{
"productMasterDataList": {
"itemCode": "2790",
"businessUnit": "01",
"itemDescription": "Organic Apples",
"isFtlItem": true,
"ftlCategory": "Fruits",
"brandName": "French Farms",
"packStyle": "Bag",
"packSize": "5 lbs",
"productCommodity": "Apple",
"productVariety": "Fuji",
"scientificName": "Malus domestica",
"acceptableSpeciesName": "Apple",
"gtin": "01234567891234",
"itemUpc": "012345678912",
"innerPackUpc": "012345678913",
"plu": "4131",
"alternateItemCode": "2790-ALT",
"isCoveredByGdst": true,
"grossWeight": 2,
"grossWeightUOM": "LB",
"netWeight": 1.5,
"netWeightUOM": "LB"
}
}

Response

Product data ingested successfully

{
"request_ids": [
"1abc2f7e-6ca2-40ec-9566-19a850945d7f"
]
}