> ## 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.

# OutboundShipmentRequestInput

> A shipment to quote or buy rates for: addresses, parcels, and — when the shipment crosses a customs border — its customs declaration.

<ResponseField name="contentsSummary" type={<a href="/docs/api-reference/v3/reference/shipping/contents-summary-input">ContentsSummaryInput</a>}>
  Total declared contents. Required by carriers that want a declaration even with no customs items.

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

    <ResponseField name="value" type={<a href="/docs/api-reference/v3/reference/common/money-input">MoneyInput!</a>} required>
      Total declared value of the shipment.

      <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>
  </Expandable>
</ResponseField>

<ResponseField name="customs" type={<a href="/docs/api-reference/v3/reference/shipping/outbound-customs-input">OutboundCustomsInput</a>}>
  Customs declaration. Required for international shipments; carriers reject them without one.

  <Expandable title="fields" lazyRender>
    <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.
        </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.
        </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.
        </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>
  </Expandable>
</ResponseField>

<ResponseField name="deliveredDutyPaid" type="Boolean">
  Assigns who is billed for duties and import taxes: the sender (DDP) or the recipient (DAP). Does not affect the quoted or charged rate — duties are billed separately after the shipment moves. Omit to leave the choice to your carrier configuration.
</ResponseField>

<ResponseField name="fromAddress" type={<a href="/docs/api-reference/v3/reference/shipping/outbound-address-input">OutboundAddressInput!</a>} required>
  Ship-from address.

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

    <ResponseField name="country" type="String!" required />

    <ResponseField name="email" type="String" />

    <ResponseField name="name" type="String" />

    <ResponseField name="phone" type="String" />

    <ResponseField name="state" type="String" />

    <ResponseField name="street1" type="String" />

    <ResponseField name="street2" type="String" />

    <ResponseField name="zip" type="String!" required />
  </Expandable>
</ResponseField>

<ResponseField name="parcels" type={<a href="/docs/api-reference/v3/reference/shipping/outbound-parcel-input">[OutboundParcelInput!]!</a>} required>
  The parcels in the shipment (max 5).

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

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

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

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

    <ResponseField name="weight" type={<a href="/docs/api-reference/v3/reference/catalog/weight-input">WeightInput!</a>} required>
      <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>

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

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

<ResponseField name="returnAddress" type={<a href="/docs/api-reference/v3/reference/shipping/outbound-address-input">OutboundAddressInput</a>}>
  Return address, if different from the ship-from address.

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

    <ResponseField name="country" type="String!" required />

    <ResponseField name="email" type="String" />

    <ResponseField name="name" type="String" />

    <ResponseField name="phone" type="String" />

    <ResponseField name="state" type="String" />

    <ResponseField name="street1" type="String" />

    <ResponseField name="street2" type="String" />

    <ResponseField name="zip" type="String!" required />
  </Expandable>
</ResponseField>

<ResponseField name="taxIdentifiers" type={<a href="/docs/api-reference/v3/reference/shipping/tax-identifier-input">[TaxIdentifierInput!]</a>}>
  Tax identifiers for the shipment, e.g. an IOSS number for EU-bound goods.

  <Expandable title="fields" lazyRender>
    <ResponseField name="entity" type={<a href="/docs/api-reference/v3/reference/shipping/tax-identifier-entity">TaxIdentifierEntity!</a>} required>
      Which party the identifier belongs to.
    </ResponseField>

    <ResponseField name="issuingCountry" type={<a href="/docs/api-reference/v3/reference/common/country-code">CountryCode!</a>} required>
      Country of the authority that issued it.
    </ResponseField>

    <ResponseField name="type" type={<a href="/docs/api-reference/v3/reference/shipping/tax-identifier-type">TaxIdentifierType!</a>} required>
      The kind of identifier.
    </ResponseField>

    <ResponseField name="value" type="String!" required>
      The identifier itself.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="toAddress" type={<a href="/docs/api-reference/v3/reference/shipping/outbound-address-input">OutboundAddressInput!</a>} required>
  Ship-to address.

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

    <ResponseField name="country" type="String!" required />

    <ResponseField name="email" type="String" />

    <ResponseField name="name" type="String" />

    <ResponseField name="phone" type="String" />

    <ResponseField name="state" type="String" />

    <ResponseField name="street1" type="String" />

    <ResponseField name="street2" type="String" />

    <ResponseField name="zip" type="String!" required />
  </Expandable>
</ResponseField>


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