> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OutboundCustomsInput

> The goods declared to customs. Required by carriers whenever the shipment crosses a customs border. The certification, signer, declaration text, and AES citation printed on the form are resolved from your Redo customs settings, not sent here.

<ResponseField name="aesExemptionCode" type={<a href="/docs/api-reference/v3/reference/shipping/aes-exemption-code">AesExemptionCode</a>}>
  AES exemption to cite when your account files by exemption. Ignored if your account files by ITN; defaults to `NOEEI_30_37_A`.
</ResponseField>

<ResponseField name="contentsExplanation" type="String">
  Description of the contents to print on the form. Defaults to your configured description, or the item descriptions joined together.
</ResponseField>

<ResponseField name="contentsType" type={<a href="/docs/api-reference/v3/reference/shipping/customs-contents-type">CustomsContentsType</a>}>
  What the shipment holds. Defaults to `MERCHANDISE`.
</ResponseField>

<ResponseField name="items" type={<a href="/docs/api-reference/v3/reference/shipping/outbound-customs-item-input">[OutboundCustomsItemInput!]!</a>} required>
  The declared lines (max 100).

  <Expandable title="fields" lazyRender>
    <ResponseField name="description" type="String!" required>
      Plain-language description of the goods.
    </ResponseField>

    <ResponseField name="hsTariffNumber" type="String!" required>
      Harmonized System tariff code for the goods.
    </ResponseField>

    <ResponseField name="manufacturer" type={<a href="/docs/api-reference/v3/reference/shipping/customs-manufacturer-input">CustomsManufacturerInput</a>}>
      Manufacturer of the goods, when the carrier requires it.

      <Expandable title="fields" lazyRender>
        <ResponseField name="city" type="String">
          City.
        </ResponseField>

        <ResponseField name="country" type={<a href="/docs/api-reference/v3/reference/common/country-code">CountryCode</a>}>
          Country the manufacturer is in.
        </ResponseField>

        <ResponseField name="mid" type="String">
          Manufacturer identification code (MID).
        </ResponseField>

        <ResponseField name="name" type="String">
          Manufacturer company or contact name.
        </ResponseField>

        <ResponseField name="state" type="String">
          State, province, or region.
        </ResponseField>

        <ResponseField name="street1" type="String">
          Street address.
        </ResponseField>

        <ResponseField name="street2" type="String">
          Second address line.
        </ResponseField>

        <ResponseField name="zip" type="String">
          Postal code.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="manufacturerProductId" type="String">
      The manufacturer's part number. Required on EU B2C imports when the product is not exempt.
    </ResponseField>

    <ResponseField name="merchantProductId" type="String">
      Your identifier for the goods, typically a SKU. Not a barcode or GTIN.
    </ResponseField>

    <ResponseField name="originCountry" type={<a href="/docs/api-reference/v3/reference/common/country-code">CountryCode!</a>} required>
      Country where the goods were manufactured.
    </ResponseField>

    <ResponseField name="productIdentifier" type="String">
      Legacy single identifier for the goods (e.g. a SKU). Prefer merchantProductId, manufacturerProductId, and standardizedProductId.
    </ResponseField>

    <ResponseField name="quantity" type="Int!" required>
      How many units of this line are in the shipment.
    </ResponseField>

    <ResponseField name="standardizedProductId" type="String">
      A standardized identifier such as a GTIN (barcode). Not your SKU.
    </ResponseField>

    <ResponseField name="unitValue" type={<a href="/docs/api-reference/v3/reference/common/money-input">MoneyInput!</a>} required>
      Declared value of a single unit. The line total is derived as this times `quantity`. Every item must use the same currency — carriers accept one currency per form.

      <Expandable title="fields" lazyRender>
        <ResponseField name="amount" type={<a href="/docs/api-reference/v3/reference/common/decimal">Decimal!</a>} required>
          The amount as an exact decimal string (e.g. "19.99").
        </ResponseField>

        <ResponseField name="currency" type="String!" required>
          ISO 4217 currency code (e.g. USD).
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="unitWeight" type={<a href="/docs/api-reference/v3/reference/catalog/weight-input">WeightInput!</a>} required>
      Weight of a single unit. Lines whose declared total exceeds the shipment's actual weight are scaled down to fit it.

      <Expandable title="fields" lazyRender>
        <ResponseField name="unit" type={<a href="/docs/api-reference/v3/reference/catalog/weight-unit">WeightUnit!</a>} required>
          The unit the value is expressed in.
        </ResponseField>

        <ResponseField name="value" type="Float!" required>
          The numeric magnitude of the weight.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="itn" type="String">
  Internal Transaction Number for a shipment you filed with AES, e.g. "AES X20260827123456". Used only if your account is configured to file by ITN.
</ResponseField>

<ResponseField name="nonDeliveryOption" type={<a href="/docs/api-reference/v3/reference/shipping/customs-non-delivery-option">CustomsNonDeliveryOption</a>}>
  What to do if the shipment cannot be delivered. Defaults to `RETURN`.
</ResponseField>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.