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

# Get shipment information (Merchant to Global-e)

> Retrieve the product, weight, classification and customs-value data Global-e holds for a shipment, plus its export-declaration header, so you can prepare a customs export declaration.

<Note>
  This API is enabled per merchant account by Global-e. If it is not enabled for your account, the request returns `403 Forbidden`.
</Note>

<Info>
  **Typical integration sequence.** These APIs may be used together when an export declaration or bonded reporting is required, but they are **independent endpoints** — none is a prerequisite for another.

  1. [Get shipping documents](/api-reference/get-shipping-documents) — obtain the label and tracking number
  2. [Submit bonded information](/api-reference/submit-bonded-information) — report bonded vs free-circulation status per product *(when bonded reporting is required)*
  3. **Get shipment information** — retrieve product, pricing and declaration header data *(when you need the data Global-e holds)*
  4. Create the export document — your side, not a Global-e API
  5. [Upload shipment documents](/api-reference/upload-shipment-documents) — upload the document and its reference to Global-e *(when a document must be attached)*
  6. [Dispatch orders](/api-reference/dispatch-orders) — End of Day

  Only steps 1 and 6 are universal. Steps 2 to 5 depend on the shipment type, the destination and your configuration. Where they apply, complete steps 2 and 5 **before End of Day / Dispatch orders**.
</Info>

<Note>
  An export declaration is required only when the shipment leaves the EU customs territory **and** either contains bonded goods or contains free-circulation goods with a total value of €1,000 or more. When no declaration is required, steps 3 to 5 do not apply.
</Note>

<Note>
  Bonded vs free-circulation status is submitted separately, through [Submit bonded information](/api-reference/submit-bonded-information). This API does not return bonded status.
</Note>

<Warning>
  The response contains commercial values — customs values and commercial-invoice totals. It is returned with `Cache-Control: no-store`. Do not cache or store it beyond the immediate purpose of preparing the declaration.
</Warning>

<Note>
  Global-e never returns partial declaration data. If a value the declaration requires is not yet available, the call returns `409` with no `exportDeclaration` section. This is a permanent gap rather than a not-yet-ready state, so contact Global-e instead of retrying.
</Note>


## OpenAPI

````yaml api-reference/specs/getshipmentinformation.yaml GET /api/shipments/{trackingNumber}
openapi: 3.0.3
info:
  title: GetShipmentInformation
  version: 1.0.0
  description: >-
    The Get Shipment Information API returns the data Global-e holds about a
    shipment that has already been created — its parcels, the goods inside them,
    and the export-declaration header — so that you can prepare a customs export
    declaration for it. Every value is the same value Global-e sent the carrier
    on the original shipping request, so the declaration reconciles against what
    was actually shipped.
servers:
  - url: https://{globale_api_domain}
    variables:
      globale_api_domain:
        default: globale_api_domain
        description: Global-e API host, supplied to the merchant by Global-e.
security: []
tags:
  - name: GetShipmentInformation
    x-page-title: GetShipmentInformation
  - name: 'Direction: Merchant → Global-e'
  - name: 'Domain: Shipping'
paths:
  /api/shipments/{trackingNumber}:
    get:
      tags:
        - GetShipmentInformation
      summary: Get the declaration data for a shipment
      description: >-
        Returns one shipment — its parcels, the goods they contain, and the
        export-declaration header — for the tracking number you supply. Use it
        to obtain the product, weight, classification and customs-value data
        needed to create a customs export declaration for a shipment Global-e
        has already created.


        Every value returned is the value Global-e sent the carrier on the
        original shipping request. Nothing is recalculated, so the declaration
        you build reconciles against the shipment and its commercial invoice.


        The call is a safe, repeatable read with no side effects.


        Global-e never returns partial declaration data. If a value that the
        declaration requires is not yet available, the call returns 409 with no
        export-declaration section at all. That is a permanent gap, not a
        not-yet-ready state: contact Global-e rather than retrying.


        The response contains personal data and commercial values, and is
        returned with Cache-Control no-store. Do not cache or store it beyond
        the immediate purpose of preparing the declaration.
      operationId: getShipmentInformation
      parameters:
        - name: trackingNumber
          in: path
          required: true
          description: >-
            Tracking number identifying the shipment. This is the parcel's
            carrier tracking number when it has one, and otherwise the order's
            tracking number. Global-e returns the shipment only if it belongs to
            your merchant account.
          schema:
            type: string
            minLength: 1
            maxLength: 50
          example: GK414731769016968912
      responses:
        '200':
          description: >-
            The shipment was found and all the data the declaration requires is
            available.
          headers:
            Cache-Control:
              description: >-
                Always no-store. The response carries personal data and
                commercial values; do not cache or persist it beyond preparing
                the declaration.
              schema:
                type: string
                enum:
                  - no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShipmentInformation'
              example:
                shipment:
                  trackingNumber: GK414731769016968912
                  weightUnit: kg
                  totalWeight: 0.9
                  parcels:
                    - parcelTrackingNumber: GK414731769016968912
                      orderId: GE794624680TS
                      parcelWeight: 0.9
                      products:
                        - productCode: W5588R-BLK-XS
                          productName: Cotton Rib Support Tank
                          originCountryCode: TR
                          quantity: 2
                          productNetWeight: 0.18
                          productWeight: 0.22
                          exportHsCode: '61091000'
                          importHsCode: '61091000'
                          discountedPriceForCustomsInClearanceCurrency: 42.5
                        - productCode: W6007R-NVY-M
                          productName: 7/8 High-Waist Airlift Legging
                          originCountryCode: VN
                          quantity: 1
                          productNetWeight: 0.3
                          productWeight: 0.34
                          exportHsCode: '61046200'
                          importHsCode: '61046200'
                          discountedPriceForCustomsInClearanceCurrency: 84
                exportDeclaration:
                  dispatchCountryCode: NL
                  destinationCountryCode: GB
                  currencyCode: GBP
                  incoterm: DDP
                  exporter:
                    name: Global-e NL B.V.
                    eoriNumber: NL859146492
                    vatRegistrationNumber: NL859146492B01
                    address1: Krijn Taconiskade 430
                    city: Amsterdam
                    postalCode: 1087 HW
                    countryCode: NL
                  commercialInvoice:
                    number: '1650338'
                    date: '2026-07-27'
                    totalValue: 169
        '400':
          description: >-
            The request was rejected. A810 means no shipment is visible to your
            merchant account for this tracking number — Global-e returns the
            same response for a tracking number that does not exist and for one
            that belongs to another merchant. INVALID_REQUEST means the request
            itself is malformed, for example a tracking number in an invalid
            format.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                shipmentNotFound:
                  summary: A810 — no shipment found for this merchant
                  value:
                    Code: A810
                    Error: TrackingNumberNotFound
                    Description: Tracking number not found for this merchant.
                invalidRequest:
                  summary: The request is malformed
                  value:
                    Code: INVALID_REQUEST
                    Error: The request is not valid.
                    Description: The tracking number format is not valid.
        '401':
          description: >-
            The merchant credential is missing or invalid. This response is
            produced by the Global-e authentication layer before the request
            reaches this endpoint.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                Code: UNAUTHORIZED
                Error: Authentication failed.
                Description: The merchant credential is missing or invalid.
        '403':
          description: >-
            Your credential is valid, but this API is not enabled for your
            merchant account. The same call succeeds once Global-e enables it —
            contact your Global-e account manager.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                Code: FORBIDDEN
                Error: This API is not enabled for your account.
                Description: Contact your Global-e account manager to have it enabled.
        '409':
          description: >-
            The shipment exists, but a value the export declaration requires —
            such as the exporter EORI number, a product's commodity code, or a
            line's customs value — is not yet available in Global-e. No
            export-declaration section is returned. Retrying does not resolve
            this: contact Global-e.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                Code: SHIPMENT_CONFIGURATION_INCOMPLETE
                Error: Shipment configuration is incomplete.
                Description: >-
                  A mandatory value is not yet loaded; do not retry — contact
                  Global-e.
        '500':
          description: An unexpected error occurred in the Global-e system.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                Code: INTERNAL_ERROR
                Error: An unexpected error occurred.
                Description: >-
                  The request could not be completed. Retry, or report it to
                  Global-e.
components:
  schemas:
    ShipmentInformation:
      type: object
      title: ShipmentInformation
      required:
        - shipment
        - exportDeclaration
      properties:
        shipment:
          $ref: '#/components/schemas/ShipmentCore'
        exportDeclaration:
          $ref: '#/components/schemas/ExportDeclaration'
    ErrorResponse:
      type: object
      title: ErrorResponse
      description: >-
        The error response. Global-e fails fast and never returns partial
        declaration data alongside an error.
      required:
        - Code
        - Error
      properties:
        Code:
          type: string
          description: >-
            The machine-readable outcome to branch on. Note that the 401
            response is produced by the Global-e authentication layer before the
            request reaches this endpoint, so its exact body is defined by the
            platform.
          enum:
            - A810
            - INVALID_REQUEST
            - UNAUTHORIZED
            - FORBIDDEN
            - SHIPMENT_CONFIGURATION_INCOMPLETE
            - INTERNAL_ERROR
          example: SHIPMENT_CONFIGURATION_INCOMPLETE
        Error:
          type: string
          description: A human-readable error message.
          example: Shipment configuration is incomplete.
        Description:
          type: string
          description: >-
            Fuller guidance on what to do. Repeats the error message when there
            is nothing more to add.
          example: >-
            A mandatory value is not yet loaded; do not retry — contact
            Global-e.
    ShipmentCore:
      type: object
      title: Shipment
      description: The shipment, with its weights and its parcels.
      required:
        - trackingNumber
        - weightUnit
        - totalWeight
        - parcels
      properties:
        trackingNumber:
          type: string
          maxLength: 50
          description: >-
            The tracking number this shipment was requested with — the parcel's
            carrier tracking number when it has one, otherwise the order's. One
            export declaration covers one tracking number.
          example: GK414731769016968912
        weightUnit:
          type: string
          description: >-
            The unit of measure that every weight in this response is expressed
            in. Further units may be added.
          enum:
            - kg
            - gr
            - lb
            - oz
          example: kg
        totalWeight:
          type: number
          minimum: 0
          description: >-
            Gross weight of the whole shipment, in weightUnit. Equals the sum of
            the parcels' parcelWeight values.
          example: 0.9
        parcels:
          type: array
          minItems: 1
          description: >-
            The parcels — the physical boxes — that make up this shipment.
            Always present, with at least one entry; in the current phase a
            shipment always has exactly one parcel. Every parcel in a shipment
            belongs to the same order.
          items:
            $ref: '#/components/schemas/ShipmentParcel'
    ExportDeclaration:
      type: object
      title: ExportDeclaration
      description: >-
        The export-declaration header. Together with each product's HS codes and
        customs value, this is what you need to prepare the declaration. The
        declaration is in a single currency, so no exchange rate is returned.
      required:
        - dispatchCountryCode
        - destinationCountryCode
        - currencyCode
        - incoterm
        - exporter
        - commercialInvoice
      properties:
        dispatchCountryCode:
          type: string
          pattern: ^[A-Z]{2}$
          description: >-
            The country the goods are exported from — the dispatch hub's country
            — as an ISO 3166-1 alpha-2 code.
          example: NL
        destinationCountryCode:
          type: string
          pattern: ^[A-Z]{2}$
          description: The customs destination country, as an ISO 3166-1 alpha-2 code.
          example: GB
        currencyCode:
          type: string
          pattern: ^[A-Z]{3}$
          description: >-
            The single ISO 4217 currency this shipment is cleared in. Every
            monetary amount in this response is in this currency — the
            commercial invoice's totalValue and each product line's customs
            value. Amounts are already rounded to this currency's decimal
            places; do not recalculate or re-round them. When Global-e cannot
            resolve a single currency for the shipment, the call returns 409.
          example: GBP
        incoterm:
          type: string
          description: The Incoterm that governs the movement. No named place is returned.
          enum:
            - DDP
            - DAP
          example: DDP
        exporter:
          $ref: '#/components/schemas/Exporter'
        commercialInvoice:
          $ref: '#/components/schemas/CommercialInvoice'
    ShipmentParcel:
      type: object
      title: Parcel
      description: >-
        One parcel — its own tracking number, its order, its gross weight, and
        the goods inside it.
      required:
        - orderId
        - parcelWeight
        - products
      properties:
        parcelTrackingNumber:
          type: string
          maxLength: 50
          description: >-
            The parcel's own carrier tracking number. For a single-parcel
            shipment this is the same as the shipment's trackingNumber.
          example: GK414731769016968912
        orderId:
          type: string
          maxLength: 20
          description: >-
            The Global-e order this parcel belongs to — the same OrderId that
            GetShippingDocuments returns.
          example: GE794624680TS
        parcelWeight:
          type: number
          minimum: 0
          description: >-
            Gross weight of the parcel including its packaging, in weightUnit.
            Always returned: when Global-e holds no weight for the parcel, it is
            calculated from the parcel's items. No net weight is given per
            parcel.
          example: 0.9
        products:
          type: array
          minItems: 1
          description: >-
            The goods in this parcel, one entry per product. A bundle is
            returned as a single line, matching the shipping request and the
            commercial invoice — its components are not listed separately.
          items:
            $ref: '#/components/schemas/ShipmentProduct'
    Exporter:
      type: object
      title: Exporter
      description: >-
        The exporter of record for the goods. Being named here does not make the
        party the customs declarant.
      required:
        - name
        - eoriNumber
        - address1
        - city
        - postalCode
        - countryCode
      properties:
        name:
          type: string
          example: Global-e NL B.V.
        eoriNumber:
          type: string
          maxLength: 50
          description: >-
            The exporter of record's EORI number — the identifier the export
            declaration uses.
          example: NL859146492
        vatRegistrationNumber:
          type: string
          maxLength: 50
          description: >-
            The exporter's VAT registration number, returned when Global-e holds
            one. This is a commercial-invoice attribute rather than a
            declaration element.
          example: NL859146492B01
        address1:
          type: string
          description: Primary address line.
          example: Krijn Taconiskade 430
        address2:
          type: string
          description: >-
            Further address information, such as a building or unit. Not
            returned when the address has a single line.
          example: Flat 4
        city:
          type: string
          maxLength: 100
          example: Amsterdam
        postalCode:
          type: string
          maxLength: 50
          example: 1087 HW
        countryCode:
          type: string
          pattern: ^[A-Z]{2}$
          example: NL
    CommercialInvoice:
      type: object
      title: CommercialInvoice
      description: The shipment's commercial-invoice values, in the declaration currency.
      required:
        - number
        - date
        - totalValue
      properties:
        number:
          type: string
          maxLength: 20
          description: >-
            The commercial-invoice reference — the same value
            GetShippingDocuments returns as CommercialInvoiceNumber. For a split
            order this is the parcel's invoice number.
          example: '1650338'
        date:
          type: string
          format: date
          description: >-
            The date on the commercial invoice, which is the date the order was
            created. It is not necessarily the dispatch date.
          example: '2026-07-27'
        totalValue:
          type: number
          minimum: 0
          description: >-
            The total commercial-invoice value of the shipment, in the
            declaration currency, covering the goods only and summed across all
            of the shipment's parcels. For a single-parcel shipment this equals
            the parcel's TotalValue as returned by GetShippingDocuments. This is
            the total the declaration reconciles against.
          example: 169
    ShipmentProduct:
      type: object
      title: Product
      description: >-
        One product line in a parcel, with its customs classification and
        customs value.
      required:
        - productCode
        - productName
        - originCountryCode
        - quantity
        - productNetWeight
        - productWeight
        - exportHsCode
        - importHsCode
        - discountedPriceForCustomsInClearanceCurrency
      properties:
        productCode:
          type: string
          description: >-
            The product SKU, the same one Global-e sends on the shipping
            request. It matches the corresponding commercial-invoice line.
          example: W5588R-BLK-XS
        productName:
          type: string
          description: >-
            The product name as held by Global-e. This is the plain name, not
            the formatted variant that appears on the commercial invoice.
          example: Cotton Rib Support Tank
        originCountryCode:
          type: string
          pattern: ^[A-Z]{2}$
          description: >-
            The country the product was manufactured in, as an ISO 3166-1
            alpha-2 code.
          example: TR
        quantity:
          type: integer
          minimum: 1
          description: The number of units of this product in the parcel.
          example: 2
        productNetWeight:
          type: number
          minimum: 0
          description: >-
            Net weight of one unit — the goods without packaging — in
            weightUnit. The line's net weight is this value times quantity.
            Always returned: when Global-e holds no net weight, productWeight is
            returned instead.
          example: 0.18
        productWeight:
          type: number
          minimum: 0
          description: >-
            Gross weight of one unit — the goods including their own packaging —
            in weightUnit. This is per unit, and is not the same as the parcel's
            parcelWeight.
          example: 0.22
        exportHsCode:
          type: string
          maxLength: 8
          description: >-
            The 8-digit customs commodity code for the export declaration — the
            first eight digits of the country-specific tariff code. When
            Global-e cannot resolve it, the call returns 409 rather than an
            empty value.
          example: '61091000'
        importHsCode:
          type: string
          description: The customs commodity code for the import declaration.
          example: '61091000'
        discountedPriceForCustomsInClearanceCurrency:
          type: number
          minimum: 0
          description: >-
            The customs value of one unit, in the shipment's clearance currency
            — the currency given by currencyCode. The line's customs value is
            this value times quantity. Zero is a valid value for a free or
            promotional line and does not mean the price is missing; a genuinely
            unavailable price returns 409 instead.
          example: 42.5

````

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