Skip to content

How to Use the WholeChain CSV Template for Event Uploads

Overview

This guide explains how to use the WholeChain CSV template to upload supply chain events when you have already set up your products, locations, and trade partners in WholeChain. This method allows you to reference existing IDs for these entities, ensuring accuracy and consistency in your supply chain data.

The CSV template supports multiple event types, but this guide focuses on the Receive Event, which allows you to log when products or containers are received.


Receive Event

The Receive Event records the receipt of a product or a container. There are two ways to record a receive event:

  1. Receiving a Single Lot – Used when receiving one specific lot without a container.
  2. Receiving a Container with Multiple Lots – Used when receiving multiple product lots within a single container.

1. Receiving a Single Lot

  • If you are receiving a single product lot, you only need to provide the lot information.
  • Do not include the container ID or Container Type Columns in your CSV file.
  • Each row represents one received lot.

Example:

Id Type BizStep Disposition EventTime EventTimeZone PurchaseOrder InvoiceNumber ReadPoint ProductInstance-LotSerial ProductInstance-Quantity ProductInstance-ProductId ShipFromLocation-Id ShipToLocation-Id
EVT123 receive urn:epcglobal:cbv:bizstep:receiving urn:epcglobal:cbv:disp:in_progress 2025-01-01T12:00:00Z -05:00 PO001 INV001 Loading Dock LOT001 100 PROD123 SUPPLIER001 WAREHOUSE001

Download CSV Example

2. Receiving a Container with Multiple Lots

  • If you are receiving a container, you must specify which lots are inside the container.
  • Use multiple rows with the same container ID to indicate the lots that are inside that container.
  • Each row should have a unique Lot Serial but share the same Container ID.

Example:

Id Type BizStep Disposition EventTime EventTimeZone PurchaseOrder InvoiceNumber ReadPoint ShipFromLocation-Id ShipToLocation-Id Container-Id Container-Type
REC1 receive urn:epcglobal:cbv:bizstep:receiving urn:epcglobal:cbv:disp:in_progress 2025-03-25T12:00:00Z -05:00 PO001 INV001 Loading Dock 888777 77777 CONT001 SSCC

Download CSV Example


Required Fields for the Receive Event

For a successful upload, your CSV file must include the following mandatory fields:

Mandatory Fields for All Receive Events

Regardless of whether you are receiving a single lot or a container, these fields are required:

  • Id – A unique identifier for this receive event. Each new row must have a unique ID.
  • Type – The type of event (e.g., "Receive").
  • BizStep – The business step of the event (see possibilities here).
  • Disposition – The status of the product upon aggregation (see possibilities here).
  • EventTime – The timestamp of when the event occurred. (See format in example)
  • EventTimeZone – The time zone of the event timestamp. (See format in example)
  • PurchaseOrder – The purchase order number associated with this receipt.
  • InvoiceNumber – The invoice number related to the purchase order.
  • ReadPoint – The place within the location where the event took place.
  • ProductInstance-LotSerial – The unique identifier for the lot received.
  • ProductInstance-Quantity – The quantity of the product received.
  • ProductInstance-ProductId – The identifier for the received product.
  • ShipFromLocation-Id – The ID of the location from where the shipment was sent.
  • ShipToLocation-Id – The ID of the destination location.

Additional Mandatory Fields for Container Receipts

If you are receiving a container, you must also include:

  • Container-Id – The unique identifier of the received container.
  • Container-Type – The type of container used (Options: "SSCC" or "LogisticId").

Flexible Column Usage

  • Only include the columns that are relevant to your event type.
  • If a field is not applicable to your event, do not include it in your CSV file.
  • Example: If you are receiving a single lot (not a container), do not include the "Container-Id" and "Container-Type" columns.

Adding Certifications

You may want to add certifications that you have for specific lots. You are not limited in the number of certifications you can add. You may add multiple certifications to a lot or container if needed. Wholechain provides a template for adding these certifications.

Whether you are receiving a container or a lot, you can attach any number of certifications to that specific lot or container. To do this, you would add the certification information per row. If you are adding certifications, simply include the certification template headers in your row in addition to the mandatory fields.

To add the certifications, add the following fields:

  • Certification Typecertification1-type
  • Certification Standardcertification1-standard
  • Certification Agencycertification1-agency
  • Certification Valuecertification1-value
  • Certification Identificationcertification1-identification

If you would like to add multiple certifications, simply add additional fields and change the prefix (1 -> 2). For example:

  • Certification Typecertification2-type
  • Certification Typecertification3-type

Example with Certifications:

🚨 Important Notice:
In the example, we have included both product-level data (ProductInstance-LotSerial, ProductInstance-Quantity) and container information (Container-Id, Container-Type).

However, when submitting the event, only populate either the product-level data or the container-level datanot both. ⚠️

Id Type BizStep Disposition EventTime EventTimeZone PurchaseOrder InvoiceNumber ReadPoint ProductInstance-LotSerial ProductInstance-Quantity ProductInstance-ProductId ShipFromLocation-Id ShipToLocation-Id Container-Id Container-Type Certification1-Type Certification1-Standard Certification1-Agency Certification1-Value
EVT123 receive urn:epcglobal:cbv:bizstep:receiving urn:epcglobal:cbv:disp:in_progress 2024-03-30T16:00:00+00:00 -05:00 PO001 INV001 Loading Dock LOT001 100 PROD123 SUPPLIER001 WAREHOUSE001 CONT001 SSCC urn:gdst:certType:fishingAuth Los Angeles Fishing Certificate Los Angeles Fishing Authorization CAV

These fields are free-text fields, meaning you can enter any relevant certification details that apply to your product lots or containers.

Download CSV Example


Adding Global Dialogue for Seafood Traceability (GDST) Data

There may be instances where you want to add Global Dialogue for Seafood Traceability (GDST) data to your event. If this is the case, you need to use specific headers that enable the Wholechain system to identify that the data belongs to the GDST framework.

Understanding the Difference: Aquaculture vs. Wild Harvest

The required GDST fields differ depending on whether the seafood product comes from aquaculture (farmed seafood) or wild-harvest (wild-caught seafood).

For GDST, most of the necessary fields are already included within the mandatory receive event fields. These fields capture key information about the product however, there are additional fields that are needed.

Required GDST Fields

For both aquaculture and wild-harvest seafood, you must include:

  • Product Ownercbv-productOwner
  • Information Providercbv-informationProvider
  • Species (Scientific Name)productMasterData-gdst-speciesName
  • Species (3-letter Code)productMasterData-gdst-speciesCode
  • Chain of Custody Certification → Use the same certification format explained in the certification section.

For wild-harvest seafood only, you must also include:

  • Product Formproduct-name
  • Product Short DescriptionproductMasterData-gdst-productShortDescription

Example with GDST Data:

🚨 Important Notice:
In the example, we have included both product-level data (ProductInstance-LotSerial, ProductInstance-Quantity) and container information (Container-Id, Container-Type).

However, when submitting the event, only populate either the product-level data or the container-level datanot both. ⚠️

Id Type BizStep Disposition EventTime EventTimeZone PurchaseOrder InvoiceNumber ReadPoint ProductInstance-LotSerial ProductInstance-Quantity ProductInstance-ProductId ShipFromLocation-Id ShipToLocation-Id Container-Id Container-Type cbv-productOwner cbv-informationProvider productMasterData-gdst-speciesName productMasterData-gdst-speciesCode productMasterData-gdst-productForm product-name
EVT123 receive urn:epcglobal:cbv:bizstep:receiving urn:epcglobal:cbv:disp:in_progress 2024-03-30T16:00:00+00:00 -05:00 PO001 INV001 Loading Dock LOT001 100 PROD123 SUPPLIER001 WAREHOUSE001 CONT001 SSCC OceanCorp TraceData Ltd Thunnus albacares YFT Frozen Loins Premium-grade frozen tuna loins

These fields should be added per row in addition to the mandatory receive event fields when submitting GDST data.

Download CSV Example


Adding FSMA 204 Traceability Log Code (TLC) Data

If you need to comply with FSMA 204 regulations, you must provide data related to the Traceability Log Code (TLC) Source. The following additional fields are required:

  • TLC Source NametlcSource-name
  • TLC Source CitytlcSource-city
  • TLC Source StatetlcSource-state
  • TLC Source CountrytlcSource-country
  • TLC Source Address Line 1tlcSource-addressLine1
  • TLC Source Address Line 2tlcSource-addressLine2
  • TLC Source Postal CodetlcSource-postalCode

Example with FSMA 204 Data:

Id Type BizStep Disposition EventTime EventTimeZone PurchaseOrder InvoiceNumber ReadPoint ProductInstance-LotSerial ProductInstance-Quantity ProductInstance-ProductId ShipFromLocation-Id ShipToLocation-Id tlcSource-name tlcSource-city tlcSource-state tlcSource-country tlcSource-addressLine1 tlcSource-addressLine2 tlcSource-postalCode
EVT123 receive urn:epcglobal:cbv:bizstep:receiving urn:epcglobal:cbv:disp:in_progress 2024-03-30T16:00:00+00:00 -05:00 PO001 INV001 Loading Dock LOT001 100 PROD123 SUPPLIER001 WAREHOUSE001 Ocean Logistics Los Angeles CA USA 123 Seafood Way Suite 200 90001

These fields should be added per row in addition to the mandatory receive event fields as well as any additional fields you have added when submitting FSMA 204 data.

Download CSV Example


Adding Custom Data

There may be a time when you want to add custom data to your events or products when uploading your CSV to the WholeChain system. WholeChain allows users to define custom fields that can be added either at the product level or the instance (event) level, depending on whether the data should remain consistent across all events for a product or be specific to individual events.

  1. Product-Level Data (Product Master Data) – This data is associated with the product itself and remains constant for all instances of that product.
  2. Instance-Level Data (Event-Level Data) – This data is specific to an individual event and can change with each new transaction or commission.

Example of Product-Level and Instance-Level Custom Data

Id Type BizStep Disposition EventTime EventTimeZone PurchaseOrder InvoiceNumber ReadPoint ProductInstance-LotSerial ProductInstance-Quantity ProductInstance-ProductId ShipFromLocation-Id ShipToLocation-Id custom-dogsname ProductMasterData-CustomDashDogSpecies
EVT123 Receive urn:epcglobal:cbv:bizstep:receiving urn:epcglobal:cbv:disp:in_progress 2024-03-30T16:00:00+00:00 -05:00 PO001 INV001 Loading Dock LOT001 100 PROD123 SUPPLIER001 WAREHOUSE001 Max Canis familiaris

In this example:

  • ProductMasterData-CustomDashDogSpecies is defined at the product level and remains constant across all events.
  • custom-dogsname is defined at the instance level and can be customized for each event.

This flexibility allows users to maintain structured product attributes while dynamically updating specific event-level data when needed.

Download CSV Example


Download Template

You can download the CSV template, with all fields, using the link below:

Download CSV Template