# Level3Data

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Represents Level 3 data for a transaction, including shipping information and line items.

## Fields
- `shipFromZip` (string): The ZIP code from where the item is shipped. Conditional: When ShipFromZip is not null. Max length: 10. (nullable, max length 10)
- `destinationZip` (string): The destination ZIP code for the shipment. Conditional: When DestinationZip is not null. Max length: 10. (nullable, max length 10)
- `destinationCountryCode` (string): The destination country code for the shipment (ISO 3166-1 alpha-3 format). Conditional: When DestinationCountryCode is not empty. Pattern: ^[A-Z]{3}$. (nullable, max length 3)
- `invoiceNumber` (string): The invoice number associated with the transaction. Conditional: When InvoiceNumber is not null. Max length: 25. (nullable, max length 25)
- `orderNumber` (string): The order number for the transaction. Conditional: When OrderNumber is not null. Max length: 25. (nullable, max length 25)
- `dutyAmount` (number(double)): The total duty amount for the transaction. Must be non-negative. Conditional: When DutyAmount is not null. Must be >= 0. (nullable)
- `freightAmount` (number(double)): The total freight/shipping amount for the transaction. Must be non-negative. Conditional: When FreightAmount is not null. Must be >= 0. (nullable)
- `discountAmount` (number(double)): The total discount amount applied at the header level. Must be non-negative. Conditional: When DiscountAmount is not null. Must be >= 0. (nullable)
- `lineItems` (array<[Level3LineItem](https://devportal.demo.winkpg.io/docs/api/models/Level3LineItem.md)>) required: The list of line items associated with the transaction. (nullable, max items 250)
  Fields of each item:
  - `id` (string(uuid)): The unique identifier for the line item.
  - `productCode` (string): The product code. Maximum length is 25 characters. Conditional: When ProductCode is not null. Max length: 25. (nullable, max length 25)
  - `commodityCode` (string): The commodity code. Maximum length is 25 characters. Conditional: When CommodityCode is not null. Max length: 25. (nullable, max length 25)
  - `description` (string): The description of the item. Maximum length is 25 characters. Conditional: When Description is not null. Max length: 25. (nullable, max length 25)
  - `upc` (string): The Universal Product Code (UPC). Maximum length is 25 characters. Conditional: When Upc is not null. Max length: 25. (nullable, max length 25)
  - `invoiceNumber` (string): The invoice number. Maximum length is 25 characters. Conditional: When InvoiceNumber is not null. Max length: 25. (nullable, max length 25)
  - `taxType` (string): The tax type. (nullable)
  - `quantity` (number(double)): The quantity of the item. Must be non-negative. Conditional: When Quantity is not null. Must be > 0. (nullable)
  - `unitOfMeasure` (string): The unit of measure. Maximum length is 30 characters. Conditional: When UnitOfMeasure is not null. Max length: 30. (nullable, max length 30)
  - `unitPrice` (number(double)): The unit price of the item. Must be positive. Conditional: When UnitPrice is not null. Must be >= 0. (nullable)
  - `discountAmount` (number(double)): The discount amount. Must be non-negative. Conditional: When DiscountAmount is not null. Must be >= 0. (nullable)
  - `totalAmount` (number(double)): The total amount for the line item. Must be positive. Conditional: When TotalAmount is not null. Must be >= 0. (nullable)
  - `taxAmount` (number(double)): The tax amount. Must be non-negative. Conditional: When TaxAmount is not null. Must be >= 0. (nullable)
  - `taxRate` (number(double)): The tax rate. Must be non-negative. Conditional: When TaxRate is not null. Must be >= 0. (nullable)
  - `extendedAmount` (number(double)): The extended amount. Must be non-negative. Conditional: When ExtendedAmount is not null. Must be >= 0. (nullable)
  - `freightAmount` (number(double)): The freight amount. Must be non-negative. Conditional: When FreightAmount is not null. Must be >= 0. (nullable)
  - `dutyAmount` (number(double)): The duty amount. Must be non-negative. Conditional: When DutyAmount is not null. Must be >= 0. (nullable)
  - `taxIncluded` (boolean): Value indicating whether tax is included in the price. (nullable)
  - `wicFoodCategoryCode` (string): The USDA WIC food category code for the item (e.g. the 2-digit category in the WIC  Authorized Product List). Optional; only populated for eWIC line items. Maximum length  is 25 characters. Conditional: When WicFoodCategoryCode is not null. Max length: 25. (nullable, max length 25)
  - `wicSubcategoryCode` (string): The USDA WIC food subcategory code for the item, where the category is further  subdivided. Optional; only populated for eWIC line items. Maximum length is 25 characters. Conditional: When WicSubcategoryCode is not null. Max length: 25. (nullable, max length 25)
  - `wicBenefitType` ([WicBenefitType](https://devportal.demo.winkpg.io/docs/api/models/WicBenefitType.md)): The coarse eWIC benefit mechanism this line redeems against. See  `WicBenefitType`. Optional; only populated  for eWIC line items. Conditional: When WicBenefitType is not null. (nullable)
    Values:
    - `Unspecified`: Benefit mechanism not specified. Default for line items that carry other eWIC data (e.g. a category code) without an explicit mechanism classification.
    - `FoodBenefit`: Standard fixed-quantity food benefit, redeemed by USDA food category/subcategory against the cardholder's remaining prescribed balance for that category.
    - `CashValueBenefit`: Cash Value Benefit (CVB) / Cash Value Voucher (CVV): a dollar-denominated benefit for fruits and vegetables, redeemed against a remaining dollar balance rather than a fixed quantity.
    - `InfantFormula`: Infant formula. Handled distinctly from standard food benefits because of contract-brand restrictions and manufacturer rebate accounting.
  - `voucherReference` (string): The processor-issued voucher / benefit reference this line redeems against. Optional;  only populated for eWIC line items. Maximum length is 25 characters. Format is not  enforced here because it is processor-specific (the initial eWIC processor is selected  later in the epic). Conditional: When VoucherReference is not null. Max length: 25. (nullable, max length 25)
  - `wicUnitOfMeasure` (string): The WIC-specific unit of measure for the item, which can differ from the generic  `unitOfMeasure` (WIC programs prescribe benefits in program-specific units).  Optional; only populated for eWIC line items. Maximum length is 30 characters. Conditional: When WicUnitOfMeasure is not null. Max length: 30. (nullable, max length 30)
  - `wicEligibleQuantity` (number(double)): The quantity of this line that is WIC-eligible, which can be less than the cart-line  `quantity` when only part of the purchased quantity falls within the  cardholder's benefit. Must be non-negative. Optional; only populated for eWIC line items. Conditional: When WicEligibleQuantity is not null. Must be >= 0. (nullable)
  - `wicEligibleAmount` (number(double)): The amount of this line that is WIC-eligible, which can be less than the cart-line  `totalAmount` when only part of the line is covered by the benefit. Must be  non-negative. Optional; only populated for eWIC line items. Conditional: When WicEligibleAmount is not null. Must be >= 0. (nullable)

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
