---
updatedAt: 2025-12-18T15:44:04.000Z
agentTools:
  projectIndex: https://developers.shipup.co/llms.txt
---

# The line item object

A <code>line\_item</code> is a product included in an order, with an associated quantity. Line items are split between fulfillments. They are also linked to a tracker once they're shipped.

<Table align={["left","left"]}>
  <thead>
    <tr>
      <th style={{ textAlign: "left" }}>
        FIELD
      </th>

      <th style={{ textAlign: "left" }}>
        DESCRIPTION
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td style={{ textAlign: "left" }}>
        **merchant_id**
        string, required
      </td>

      <td style={{ textAlign: "left" }}>
        Unique identifier used by the online retailer for this line_item
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **title**  
        string, optional
      </td>

      <td style={{ textAlign: "left" }}>
        Product title
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **variant_title**  
        string, optional
      </td>

      <td style={{ textAlign: "left" }}>
        Variant title
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **name**  
        string, optional
      </td>

      <td style={{ textAlign: "left" }}>
        Full name of the product
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **description**  
        string, optional
      </td>

      <td style={{ textAlign: "left" }}>
        Product description
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **quantity**  
        integer, optional
      </td>

      <td style={{ textAlign: "left" }}>
        Product quantity of the line item in the fulfillment. This field must not change. If part of the quantity of the line item is canceled, please use <code>canceled_quantity</code> field.
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **requires_shipping**  
        boolean, optional
      </td>

      <td style={{ textAlign: "left" }}>
        If false, no notification will be sent for this product. Defaults to true
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **shipped_quantity**  
        integer, optional
      </td>

      <td style={{ textAlign: "left" }}>
        (This field is only available in line_items that are nested inside a tracker)  
        Product quantity of the line item within a tracker, in case not all of its fulfilled quantity can fit in a single package. This field must be smaller than or equal to `quantity`. (See [use case](https://developers.shipup.co/docs/line-items-configuration#use-case-canceled-quantity))  
        _Note: This field should not be used when a value is sent on **canceled_quantity**_
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **sku**  
        string, optional
      </td>

      <td style={{ textAlign: "left" }}>
        Stock Keeping Unit of the product
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **thumbnail**  
        object, optional
      </td>

      <td style={{ textAlign: "left" }}>
        An object formed of the src, width and height keys. Dimensions are in px  
        `{ "src": "https://*.jpg", "width": "400", "height": "400" }`
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **canceled**  
        boolean, optional
      </td>

      <td style={{ textAlign: "left" }}>
        Whether or not the item is canceled from the order
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **canceled_quantity**  
        integer, optional
      </td>

      <td style={{ textAlign: "left" }}>
        If the line item is only partly canceled, this field will indicate which quantity is canceled. The `quantity` field must remain unchanged. If the canceled quantity evolves, this field must change. If the `canceled_quantity` is greater than or equal to the `quantity`, the `canceled` field will be forced to true. (See [use case](https://developers.shipup.co/docs/line-items-configuration#use-case-canceled-quantity))  
        _Note: This field should not be used when a value is sent on **canceled_quantity**_
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **price**  
        string (ex: "20.00" for 20€)
      </td>

      <td style={{ textAlign: "left" }}>
        The unit price (incl. tax, incl. discount) of the line item, in the same currency as [order_details.currency_code](https://developers.shipup.co/reference/the-order-details-object).
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **vat_amount**  
        string (ex: "20.00" for 20€)
      </td>

      <td style={{ textAlign: "left" }}>
        The VAT for a single item of this line, in the same currency as [order_details.currency_code](https://developers.shipup.co/reference/the-order-details-object).
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **merchant_price**  
        string (ex: "20.00" for 20€)
      </td>

      <td style={{ textAlign: "left" }}>
        Optional. The unit price (incl. tax, incl. discount) of the line item, in the same currency as [order_details.merchant_currency_code](https://developers.shipup.co/reference/the-order-details-object)
      </td>
    </tr>

    <tr>
      <td style={{ textAlign: "left" }}>
        **merchant_vat_amount**  
        string (ex: "20.00" for 20€)
      </td>

      <td style={{ textAlign: "left" }}>
        Optional. The VAT for a single item of this line, in the same currency as [order_details.merchant_currency_code](https://developers.shipup.co/reference/the-order-details-object)
      </td>
    </tr>
  </tbody>
</Table>

<Callout icon="📘" theme="info">
  Please read the [line item configuration guide](https://developers.shipup.co/docs/line-items-configuration) to fully understand the use cases behind these fields
</Callout>

**Thumbnails in CSV:**\
If you wish to send the **thumbnail** information in a FTP integration, you'll have to create up to 3 separate columns:

* <code>line\_item.thumbnail.src</code>
* <code>line\_item.thumbnail.width</code>
* <code>line\_item.thumbnail.height</code>

## Disclaimer

The order details are being currently implemented, you can already send the information to us, but you won't be able to use it right away. Our team will keep you posted as soon as we have more info about it.