---
title: "POST /{merchantId}/ordertrackingsignals"
method: POST
path: "/{merchantId}/ordertrackingsignals"
tags: ["ordertrackingsignals"]
---

# POST /{merchantId}/ordertrackingsignals

`POST /{merchantId}/ordertrackingsignals`

Creates new order tracking signal.

## Path parameters

- `merchantId` string, required

## Request body

- OrderTrackingSignal — Represents a merchant trade from which signals are extracted, e.g. shipping.
  - `shipmentLineItemMapping` OrderTrackingSignalShipmentLineItemMapping[] — The mapping of the line items to the shipment information.
    - `quantity` string, int64 — The line item quantity in the shipment.
    - `shipmentId` string — Required. The shipment ID. This field will be hashed in returned OrderTrackingSignal creation response.
    - `lineItemId` string — Required. The line item ID.
  - `orderTrackingSignalId` string, int64 — Output only. The ID that uniquely identifies this order tracking signal.
  - `lineItems` OrderTrackingSignalLineItemDetails[] — Information about line items in the order.
    - `mpn` string — The manufacturer part number.
    - `productTitle` string — Plain text title of this product.
    - `gtin` string — The Global Trade Item Number.
    - `brand` string — Brand of the product.
    - `lineItemId` string — Required. The ID for this line item.
    - `productId` string — Required. The Content API REST ID of the product, in the form channel:contentLanguage:targetCountry:offerId.
    - `upc` string — Universal product code for this item (deprecated: Please use GTIN instead).
    - `productDescription` string — Plain text description of this product (deprecated: Please use product_title instead).
    - `quantity` string, int64 — The quantity of the line item in the order.
    - `sku` string — Merchant SKU for this item (deprecated).
  - `orderId` string — Required. The ID of the order on the merchant side. This field will be hashed in returned OrderTrackingSignal creation response.
  - `shippingInfo` OrderTrackingSignalShippingInfo[] — The shipping information for the order.
    - `latestDeliveryPromiseTime` DateTime — Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.
      - `day` integer — Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.
      - `timeZone` TimeZone — Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).
        - `id` string — IANA Time Zone Database time zone. For example "America/New_York".
        - `version` string — Optional. IANA Time Zone Database version number. For example "2019a".
      - `utcOffset` string, google-duration — UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
      - `year` integer — Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
      - `month` integer — Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.
      - `seconds` integer — Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.
      - `minutes` integer — Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
      - `hours` integer — Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value "24:00:00" for scenarios like business closing time.
      - `nanos` integer — Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.
    - `originPostalCode` string — The origin postal code, as a continuous string without spaces or dashes, e.g. "95016". This field will be anonymized in returned OrderTrackingSignal creation response.
    - `carrierName` string — The name of the shipping carrier for the delivery. This field is required if one of the following fields is absent: earliest_delivery_promise_time, latest_delivery_promise_time, and actual_delivery_time.
    - `shippedTime` DateTime — Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.
      - `day` integer — Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.
      - `timeZone` TimeZone — Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).
        - `id` string — IANA Time Zone Database time zone. For example "America/New_York".
        - `version` string — Optional. IANA Time Zone Database version number. For example "2019a".
      - `utcOffset` string, google-duration — UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
      - `year` integer — Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
      - `month` integer — Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.
      - `seconds` integer — Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.
      - `minutes` integer — Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
      - `hours` integer — Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value "24:00:00" for scenarios like business closing time.
      - `nanos` integer — Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.
    - `earliestDeliveryPromiseTime` DateTime — Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.
      - `day` integer — Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.
      - `timeZone` TimeZone — Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).
        - `id` string — IANA Time Zone Database time zone. For example "America/New_York".
        - `version` string — Optional. IANA Time Zone Database version number. For example "2019a".
      - `utcOffset` string, google-duration — UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
      - `year` integer — Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
      - `month` integer — Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.
      - `seconds` integer — Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.
      - `minutes` integer — Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
      - `hours` integer — Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value "24:00:00" for scenarios like business closing time.
      - `nanos` integer — Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.
    - `trackingId` string — The tracking ID of the shipment. This field is required if one of the following fields is absent: earliest_delivery_promise_time, latest_delivery_promise_time, and actual_delivery_time.
    - `shippingStatus` 'SHIPPING_STATE_UNSPECIFIED' | 'SHIPPED' | 'DELIVERED' — The status of the shipment.
    - `carrierServiceName` string — The service type for fulfillment, e.g., GROUND, FIRST_CLASS, etc.
    - `actualDeliveryTime` DateTime — Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.
      - `day` integer — Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.
      - `timeZone` TimeZone — Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).
        - `id` string — IANA Time Zone Database time zone. For example "America/New_York".
        - `version` string — Optional. IANA Time Zone Database version number. For example "2019a".
      - `utcOffset` string, google-duration — UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
      - `year` integer — Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
      - `month` integer — Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.
      - `seconds` integer — Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.
      - `minutes` integer — Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
      - `hours` integer — Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value "24:00:00" for scenarios like business closing time.
      - `nanos` integer — Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.
    - `shipmentId` string — Required. The shipment ID. This field will be hashed in returned OrderTrackingSignal creation response.
    - `originRegionCode` string — The [CLDR territory code] (http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) for the shipping origin.
  - `merchantId` string, int64 — The Google merchant ID of this order tracking signal. This value is optional. If left unset, the caller's merchant ID is used. You must request access in order to provide data on behalf of another merchant. For more information, see [Submitting Order Tracking Signals](/shopping-content/guides/order-tracking-signals).
  - `customerShippingFee` PriceAmount — The price represented as a number and currency.
    - `value` string — The price represented as a number.
    - `currency` string — The currency of the price.
  - `deliveryRegionCode` string — Required. The [CLDR territory code] (http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) for the shipping destination.
  - `orderCreatedTime` DateTime — Represents civil time (or occasionally physical time). This type can represent a civil time in one of a few possible ways: * When utc_offset is set and time_zone is unset: a civil time on a calendar day with a particular offset from UTC. * When time_zone is set and utc_offset is unset: a civil time on a calendar day in a particular time zone. * When neither time_zone nor utc_offset is set: a civil time on a calendar day in local time. The date is relative to the Proleptic Gregorian Calendar. If year, month, or day are 0, the DateTime is considered not to have a specific year, month, or day respectively. This type may also be used to represent a physical time if all the date and time fields are set and either case of the `time_offset` oneof is set. Consider using `Timestamp` message for physical time instead. If your use case also would like to store the user's timezone, that can be done in another field. This type is more flexible than some applications may want. Make sure to document and validate your application's limitations.
    - `day` integer — Optional. Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a datetime without a day.
    - `timeZone` TimeZone — Represents a time zone from the [IANA Time Zone Database](https://www.iana.org/time-zones).
      - `id` string — IANA Time Zone Database time zone. For example "America/New_York".
      - `version` string — Optional. IANA Time Zone Database version number. For example "2019a".
    - `utcOffset` string, google-duration — UTC offset. Must be whole seconds, between -18 hours and +18 hours. For example, a UTC offset of -4:00 would be represented as { seconds: -14400 }.
    - `year` integer — Optional. Year of date. Must be from 1 to 9999, or 0 if specifying a datetime without a year.
    - `month` integer — Optional. Month of year. Must be from 1 to 12, or 0 if specifying a datetime without a month.
    - `seconds` integer — Optional. Seconds of minutes of the time. Must normally be from 0 to 59, defaults to 0. An API may allow the value 60 if it allows leap-seconds.
    - `minutes` integer — Optional. Minutes of hour of day. Must be from 0 to 59, defaults to 0.
    - `hours` integer — Optional. Hours of day in 24 hour format. Should be from 0 to 23, defaults to 0 (midnight). An API may choose to allow the value "24:00:00" for scenarios like business closing time.
    - `nanos` integer — Optional. Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999, defaults to 0.
  - `deliveryPostalCode` string — Required. The delivery postal code, as a continuous string without spaces or dashes, e.g. "95016". This field will be anonymized in returned OrderTrackingSignal creation response.

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/content.md) · [All operations](https://skmtc.net/google/apis/content/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/content/revisions/1033388fc86f/schema)
