This document explains a Google Checkout feature that enables merchants to specify different shipping information for individual items in an order. In addition, merchants can identify specific items that have been placed on backorder, canceled or returned. This feature offers several benefits to Google Checkout merchants and their customers.
This feature lets merchants more accurately convey shipment tracking information to customers. Merchants can specify multiple shipments for an order and identify the items included in each shipment.
Merchants who drop-ship items from multiple warehouses can easily relay tracking information to Google Checkout for individual shipments.
Merchants can now correct tracking information for an individual item if the item is mistakenly marked as shipped or associated with the wrong shipment tracking number.
Merchants can identify items that are out-of-stock as well as items that have been canceled from an order or returned by the customer.
This document explains how merchants can convey shipment tracking information for individual items in an order. It also describes how line-item shipping information will be communicated to customers who complete purchases using Google Checkout.
With the introduction of the line-item shipping API commands, you can set the shipping status of each item in an order. The default status for each item is not yet shipped. You can then set the status for individual items to shipped, backordered, cancelled or returned.
When you use the line-item shipping commands, Google will group items into shipments based on the shipping information that you provide. Those shipments will be identified in the Merchant Center and on the customer's Order History page. For example, if two items in an order have the same order tracking information, Google will group those items into a single shipment. Google will display information about the shipment in the Merchant Center and to the customer. Please note that all shipped items that do not have tracking information will be grouped into a single shipment marked as not yet shipped.
The image below shows an order containing two items that are each shipped separately. The merchant has associated a tracking number with the first shipped item but has not sent a tracking number for the second item. Since both items cannot be grouped under the same tracking number, Google displays them as two separate shipments.

All of the API commands for line-item shipping require you to be able to identify items in your order using merchant item IDs. The merchant-item-id parameter contains a value, such as a SKU, that you use to uniquely identify an item in an order. If you plan to use the line-item shipping API commands, you must include merchant item IDs in the Checkout API request for an order so that you can use the same IDs to specify shipping information for the items in that order.
Please note that Google will accept Checkout API requests in which multiple items have the same merchant item ID. However, each item in an order must have a unique merchant item ID if you are using the line-item shipping commands described in this document.
Note: You must include merchant item IDs in Checkout API requests before you implement the API commands for line-item shipping. We recommend that you begin populating the merchant-item-id parameter as early as possible in your production systems. Google Checkout will return an error if you try to send line-item shipping commands for an order and the Checkout API request originally associated with the order did not include merchant item IDs.
This document defines several API commands that are used to relay the shipping status of individual items in an order.
The <ship-items> command specifies shipping information for one or more items in an order. You can specify one or more shipment tracking numbers for each item. You can also indicate whether Google Checkout should send an email notification to the customer with the line-item shipping information.
Each item that you specify in a <ship-items> command will be marked as shipped in the Merchant Center and on the customer's purchase history page.
The <backorder-items><cancel-items> and <return-items> commands allow you to update the status of one or more items. Each command also lets you opt whether Google Checkout should notify the customer of the status changes.
The <reset-items-shipping-information> command lets you remove shipping information for one or more items in an order. Each item that you specify in a <reset-items-shipping-information> will have its status reset to not yet shipped. This command will also remove the shipment tracking information associated with any of those items.
Each Google Checkout order has a financial order state and a fulfillment order state, and Google Checkout sends an order-state-change-notification each time one of these states changes. The possible states for an order are listed in the Order States section of the HTML API Developer's Guide.
The following rules explain how an order's fulfillment state is determined.
An order will be have a fulfillment state of NEW as long as one item in the order is either not yet shipped or backordered. In other words, an order will not be NEW if all of the items in the order are either shipped, cancelled or returned.
An order will have a fulfillment state of WILL_NOT_DELIVER if all of its items have been cancelled.
An order will have a fulfillment state of DELIVERED if all of the items in the order have either been shipped, returned or cancelled. The only exception to this rule occurs when all of the items in an order are cancelled, as described in the previous bullet point.
Google will update an order's state to NEW if you reset the shipping status of any items in the order. By resetting the shipping status of an item, you will remove any tracking information associated with that item. After its shipping status is reset, the item's status will be not yet shipped.
The list below explains how shipping commands can cause an order's state to change.
Google will update an order's state to DELIVERED if you send any number of <ship-items> requests that indicate that all of the items in the order have been shipped.
Google will update an order's state to DELIVERED if you send a deliver-order request for that order.
Google will not update an order's state from DELIVERED to NEW if you send a <return-items> request for an item in that order. If you receive a returned item, and you plan to replace the returned item, you can reset the shipping status of that item.
Google will update an order's state to WILL_NOT_DELIVER if you send any number of <cancel-items> requests that indicate that all of the items in the order have been cancelled. By cancelling all of the items in an order, you will also change the order's financial state to CANCELLED. Please note that you will not be able to cancel all of the items in an order unless you have already issued a full refund for that order.
Each item can only have one shipping status at any given time. An item's shipping status will update each time you submit a <ship-items><backorder-items><cancel-items> or <return-items> request that specifies that item.
Note: You should use the backordered status to identify out-of-stock items that have not yet been shipped. In the Merchant Center and on the buyer's receipt page, backordered items appear grouped with other items that have not yet shipped. In addition, you should use the returned status to identify items that have already been shipped. Returned items will appear grouped with other shipped items unless you reset the shipping status of the returned item. The following section explains how to reset an item's shipping status.
The <reset-items-shipping-information> command lets you remove the shipping status associated with one or more items and return those items to the Not yet shipped state. This command will also remove any shipment tracking data you have associated with those items. The <reset-items-shipping-information> command can be used to remove tracking information incorrectly associated with an item. It can also be used if you need to replace a returned item and want to remove the tracking information associated with that item before adding tracking information for the replacement.
If an order is in the DELIVERED fulfillment state and you reset the shipping information for an item in that order, the order will transition back to the NEW fulfillment state. When you reset the shipping status of an item, the item will appear in the Merchant Center and the buyer's receipt page to be grouped with other items that are not yet shipped.
Google Checkout does allow you to reset the status of a cancelled item. However, you can not use the <reset-items-shipping-information> command to move an order out of the WILL_NOT_DELIVER fulfillment state. As such, you should not try to reset the status of a cancelled item if all of the other items in the order have also been cancelled.
The following sample request shows a sample <reset-items-shipping-information> request.
_type=reset-items-shipping-information &google-order-number=841171949013218 &item-ids.item-id-1.merchant-item-id=A1 &item-ids.item-id-2.merchant-item-id=B2
As noted earlier, the <ship-items> command lets you specify shipping information for one or more items in an order. When you send a <ship-items> request, the shipping information in that request will be appended to the existing shipping records for the specified order.
The sample request below shows the basic structure of a <ship-items> request:
_type=ship-items &google-order-number=841171949013218 &item-shipping-information-list.item-shipping-information-1.item-id.merchant-item-id=A1 &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.tracking-number=5555AbCd &send-email=true
The following list describes key elements of this request. Please see Appendix A for several examples that show how to use the <ship-items> command for different types of use cases.
The google-order-number identifies the order for which you are providing shipping information.
Each <ship-items> request may contain shipping information for one or more item. The recurring item-shipping-information element associates shipment tracking information with a single item. For example, in the example above, the item-shipping-information field for each parameter has an index of 1, indicating that all of the parameters are relevant to the same item. The API examples in Appendix A show several <ship-items> requests that provide shipment tracking information for multiple shipments or items.
The merchant-item-id parameter specifies a value that uniquely identifies an item in an order. You must use merchant item IDs to identify the items in your order. To learn more about merchant item IDs, please see the Identifying the Items in an Order section of this document.
Just as a <ship-items> request may contain shipping information for one or more items, it can also contain shipping information for one or more shipments. The recurring tracking-data element provides information about a single shipment. For example, in the example above, the tracking-data field for each parameter has an index of 1, indicating that all of the parameters are relevant to the same shipment for an item. Example 4 in Appendix A shows how to describe an item that ships in multiple packages.
As noted earlier, Google will group items into shipments based on the shipping information that you provide. Google will then display those shipments in the Merchant Center and on the customer's Order History page.
For example, suppose a buyer purchases a shirt, a wallet and a belt. You ship the shirt from a different location than the wallet and belt. When you ship the shirt, you send a <ship-items> request with the relevant tracking information for the shirt. Then, when you ship the wallet and belt, you send another <ship-items> request with the additional tracking information for those two items. In this example, the order contains three items, and you ship one item from a different location and in a separate package than the other two items. The Merchant Center and the customer's Order History page would both specify two shipments for the order.
The line-item shipping API commands include three methods that let you identify backordered, cancelled and returned items. To help ensure a consistent buyer experience, please use the following basic definitions for these terms.
Backordered items are out of stock.
Cancelled items are items that are being removed from an order, whether the removal is initiated by the merchant or by a request from the buyer. (If the buyer wants to cancel an item, the merchant must actually cancel the item on the buyer's behalf.) For example, a buyer might contact the merchant to cancel an item that was mistakenly included in an order, or a merchant might cancel a discontinued item.
Returned items are items that were shipped and sent back to the merchant for a replacement product or a refund.
The list below identifies the API commands for changing item statuses. Requests using any of these commands all follow the same format. The request identifies a list of one or more items that are being updated and also indicates whether Google Checkout should notify the customer of the status change. By default, Google will notify the customer of any shipping status changes. The following subsections provide an example for each of these commands.
The backorder-items command lets you identify one or more out-of-stock items in an order.
_type=backorder-items &google-order-number=841171949013218 &item-ids.item-id-1.merchant-item-id=A1 &item-ids.item-id-2.merchant-item-id=B2 &send-email=false
The cancel-items command lets you identify one or more items that are being removed from an order. Please note that if an order has already been charged, you must issue a full refund for that order before submitting a cancel-items command that results in all of the items in the order being cancelled. However, Google does not require you to issue a refund before canceling items from a previously charged order if you are not canceling all of the items in the order.
If you cancel all of the items in an order, Google will update the order's financial state to CANCELLED and the order's fulfillment state to WILL_NOT_DELIVER.
If you try to cancel all of the items in a charged (or partially charged) order before you issue a full refund for the order, Google will return an error in response to your cancel-items request.
_type=cancel-items &google-order-number=841171949013218 &reason=This%20item%20is%20no%20longer%20manufactured. &comment=Suggested%20replacement%20is%20model%20XBR2700. &item-ids.item-id-1.merchant-item-id=A1 &item-ids.item-id-2.merchant-item-id=B2 &send-email=false
The return-items command lets you identify one or more items that were shipped to the customer and then sent back to you. The following XML shows a sample return-items request.
_type=return-items &google-order-number=841171949013218 &item-ids.item-id-1.merchant-item-id=A1 &item-ids.item-id-2.merchant-item-id=B2 &send-email=false
When you send a return-items request, information about the returned item displays in the Order History and Order Details sections of the buyer's receipt page. The images below show how the information about the returned item appears in these two sections.
Order History

Order Details

If the customer returns an item for a refund, then the final state of the item will be Returned. You must send a separate refund-order API request to instruct Google Checkout to issue the refund. In addition, if all of the other items in the order have already been shipped, cancelled or returned, then the order's status will be DELIVERED.
If the customer returns an item and you need to send a replacement, then the Returned status is a temporary one. (After you ship the replacement for the returned item, you should reset the item's shipping information and then send a ship-items request with the new tracking information. As such, the final status of the item will be Shipped.)
On the buyer's receipt page, the returned item will be grouped in a shipment and the word Returned will appear next to the item as shown in the Order Details image above. If all of the other items in the order have already been shipped, cancelled or returned, then the order's status will remain at DELIVERED unless you reset the shipping status of the returned item. Resetting the item's shipping status will change the order's fulfillment state to NEW. In addition, after you reset the returned item's shipping status, that item will display with other items that have not yet shipped and the Returned text will no longer display next to the item. However, the order history will still indicate that the item had been returned.
The following commands are relevant for merchants that are using either line-item shipping or order-level shipping.
The add-merchant-order-number command instructs Google Checkout to associate
The following XML shows a sample add-merchant-order-number request:
_type=add-merchant-order-number &google-order-number=841171949013218 &merchant-order-number=P6502-53-7861SBJD
The send-buyer-message command instructs Google Checkout to place a message in the buyer's Google Checkout account. It may also include an optional argument instructing Google Checkout to also email the message to the buyer. This command does not impact the order's fulfillment state.
The following XML shows a sample send-buyer-message request. In this request, the optional send-email element indicates that Google should email the customer in addition to displaying the message in the customer's Google Checkout account.
_type=send-buyer-message &google-order-number=841171949013218 &message=Due%20to%20high%20volume%2C%20your%20order%20will%20ship%20soon. &send-email=true
This section explains how the existing deliver-order and cancel-order> commands relate to line-item shipping. The following list identifies the API commands for order-level shipping.
The deliver-order command is an alias for a <ship-items> command that specifies all of the items in an order. Google will take three actions in response to a deliver-order request.
Google will mark all of the items in the order as shipped.
If the request specifies shipment tracking information, Google will associate that tracking data with all of the items in the order. Please note that a deliver-order request may only specify a single tracking number. If you want to provide multiple tracking numbers that apply to all of the items in an order, you can submit one deliver-order request for each tracking number.
Google will update the order's fulfillment state to DELIVERED.
The cancel-order command is an alias for a <cancel-items> command that specifies all of the items in an order. Google will take two actions in response to a cancel-order request.
Google will mark all of the items in the order as cancelled. Google will not allow you to cancel all of the items in an order unless you have already issued a full refund on the order.
Google will update the order's fulfillment state to WILL_NOT_DELIVER.
Google will update the order's financial state to CANCELLED.
The examples below explain how to use the <ship-items> command to convey several different shipping scenarios for an order.
Note: These examples demonstrate how to send shipping information to the API using a minimal number of API requests. You can also implement this API functionality so that your system sends one API request per item, with each request only containing the shipping information for that one item. In such an implementation, for an order with three items, your system would send at least three API requests. (For example, your system might send more than one request per item if you shipped a single item in multiple boxes and configured your system to send an API request each time a box was shipped.)
This example describes an order that contains two items, which are identified by the merchant-item-ids A1 and B2. In this example, each of the items in the order ships at the same time, but in a separate box. Since this request describes shipping information for two items, the item-shipping-information field for each parameter has an index value of either 1 or 2 to identify the corresponding item. In addition, since each item is shipped in a single package, the tracking-data field has an index value of 1 for both items. For this order, the Merchant Center and the buyer's receipt page would display two shipments for the order, and each shipment would contain one item.
_type=ship-items &google-order-number=841171949013218 &item-shipping-information-list.item-shipping-information-1.item-id.merchant-item-id=A1 &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.tracking-number=5555AbCd &item-shipping-information-list.item-shipping-information-2.item-id.merchant-item-id=B2 &item-shipping-information-list.item-shipping-information-2.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-2.tracking-data-list.tracking-data-1.tracking-number=7777AbCd &send-email=true
This example describes an order that contains two items, which are identified by the merchant-item-ids A1 and B2. In this example, both of the items in the order ship at the same time and in the same box. Since this request describes shipping information for two items, the item-shipping-information field for each parameter has an index value of either 1 or 2 to identify the corresponding item. In addition, since each item is shipped in a single package, the tracking-data field has an index value of 1 for both items. Finally, since both items are shipped in the same package, the request specifies the same tracking number for both items. For this order, the Merchant Center and the buyer's receipt page would display one shipment for the order, and that shipment would contain both items in the order.
_type=ship-items &google-order-number=841171949013218 &item-shipping-information-list.item-shipping-information-1.item-id.merchant-item-id=A1 &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.tracking-number=5555AbCd &item-shipping-information-list.item-shipping-information-2.item-id.merchant-item-id=B2 &item-shipping-information-list.item-shipping-information-2.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-2.tracking-data-list.tracking-data-1.tracking-number=5555AbCd &send-email=true
This example describes an order that contains four items, which are identified by the merchant-item-ids A1, B2, C3 and D4. In this example, two items (A1 and B2) ship in separate boxes. The merchant sends this shipping information to Google, at which point the buyer's Order History page will indicate that those items have shipped, while items C3 and D4 have not yet shipped. At a later time, the merchant ships the two remaining items in the same box.
In this example, the merchant would send two API requests. The first request would be formatted identically to the request in example 1, and the second request would be formatted identically to the request in example 2. After the first request, the Merchant Center and the buyer's receipt page would display two shipments for the order, each of which contained one item, and a group of two items that had not yet shipped. After the second request, the Merchant Center would display a total of three shipments for the order. Those shipments would include the two shipments from the first request and a third shipment containing two items.
Request 1:
_type=ship-items &google-order-number=841171949013218 &item-shipping-information-list.item-shipping-information-1.item-id.merchant-item-id=A1 &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.tracking-number=5555AbCd &item-shipping-information-list.item-shipping-information-2.item-id.merchant-item-id=B2 &item-shipping-information-list.item-shipping-information-2.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-2.tracking-data-list.tracking-data-1.tracking-number=7777AbCd &send-email=true
Request 2:
_type=ship-items &google-order-number=841171949013218 &item-shipping-information-list.item-shipping-information-1.item-id.merchant-item-id=C3 &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.tracking-number=9999AbCd &item-shipping-information-list.item-shipping-information-2.item-id.merchant-item-id=D4 &item-shipping-information-list.item-shipping-information-2.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-2.tracking-data-list.tracking-data-1.tracking-number=9999AbCd &send-email=true
This example shows how you would handle an order where one item ships in two separate boxes. Since this request describes shipping information for one item, the item-shipping-information field for each parameter has an index value of 1. In addition, since the item is shipped in two packages, the tracking-data field has an index value of either 1 or 2 so that the request can provide two different tracking numbers for the item. For this order, the Merchant Center and the buyer's receipt page would display multiple tracking numbers next to the shipped item.
_type=ship-items &google-order-number=841171949013218 &item-shipping-information-list.item-shipping-information-1.item-id.merchant-item-id=A1 &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.carrier=UPS &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-1.tracking-number=5555AbCd &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-2.carrier=UPS &item-shipping-information-list.item-shipping-information-1.tracking-data-list.tracking-data-2.tracking-number=7777AbCd &send-email=true
| carrier |
The carrier parameter contains the name of the company responsible for shipping the item. Valid values for this parameter are DHL, FedEx, UPS, UPS MI, UPS Mail Innovations, USPS and Other. Please note that UPS MI and UPS Mail Innovations both refer to the same UPS service. Associated recurring elements In a ship-items request, the item-shipping-information and tracking-data elements must both be numbered.
API commands Content format for parameter value String
Sample use(s) In a ship-items request:
item-shipping-information-list. In a deliver-order or add-tracking-data request: tracking-data.carrier=UPS |
| comment |
The comment parameter contains a comment related to a refunded or canceled order. Note: The maximum accepted length for the parameter value is 140 characters. API commands Content format for parameter value String
Sample use(s) comment=Refund+processed+by+Bob+Smith
|
| google-order-number |
The google-order-number parameter contains an ID, which Google generates, that uniquely identifies an order. API commands New Order Notification, Risk Information Notification, Order State Change Notification, Charge Amount Notification, Refund Amount Notification, Chargeback Amount Notification, Authorization Amount Notification, Charge Order, Refund Order, Cancel Order, Authorize Order, Process Order, Deliver Order, Add Tracking Data, Send Buyer Message, Archive Order, Unarchive Order, Add Merchant Order Number, Ship Items, Reset Items Shipping Information, Cancel Items, Return Items, Backorder Items
Content format for parameter value String
Sample use(s) google-order-number=6014423719
|
| merchant-item-id |
The merchant-item-id parameter contains a value, such as a stock keeping unit (SKU), that you use to uniquely identify an item. Google Checkout will include this value in the new order notification for the order. This value also appears in the order information displayed in the Merchant Center. Note: To use the merchant-item-id to modify the shipping information for an item in an order, you must have provided the same merchant-item-id for that item in the Checkout API request for the order. Associated recurring elements The item element, which must be numbered, associates this parameter with a specific item in an order.
API commands Content format for parameter value String
Sample use(s)
<input type="hidden" name="shopping-cart.
|
| merchant-order-number |
The merchant-order-number parameter contains the order number that you have assigned to an order. This number appears in the reconciliation report available in the Merchant Center. API commands Content format for parameter value String (Limit 255 characters)
Sample use(s) merchant-order-number=1234abcd
|
| message |
The message parameter contains a message associated with a coupon or, when used in a send-buyer-message request, a message that you want to communicate to a buyer about a specific order. The maximum accepted length for the parameter value is 255 characters. When associated with a demo-failure response, the message parameter contains a short note that Google Checkout will return in an error message. In this context, the message parameter has a maximum length of 25 characters. Associated recurring elements In a new order notification, the message parameter must contain the coupon-adjustment element, and that element must be numbered.
API commands Content format for parameter value String
Sample use(s) In a send-buyer-message request:
message=Your+order+has+shipped. In a demo-failure command: message=test+error+handling |
| reason |
As a subtag of cancel-order or refund-order, the reason parameter contains the reason that you are canceling or refunding an order. As a subtag of order-state-change-notification, the reason parameter, if provided, will contain a description of the reason that Google canceled a particular order. For example, Google would cancel an order if the buyer's credit card authorization failed and the buyer did not provide updated credit card information within 72 hours. This element may be included in an order-state-change notification when an order's financial state is changed to CANCELLED_BY_GOOGLE. Note: The maximum accepted length for the parameter value is 140 characters. API commands Content format for parameter value String
Sample use(s) reason=Failed%20risk%20check
|
| send-email |
The send-email parameter indicates whether Google Checkout should email the buyer with updated information about the shipping status of the items in an order. Google's default behavior is to send an email. To prevent Google Checkout from sending this email, your command must include this element with a value of false. API commands Content format for parameter value Boolean
Sample use(s) send-email=true
|
| tracking-number |
The tracking-number parameter contains the shipper's tracking number that is associated with an order. Associated recurring elements In a ship-items request, the item-shipping-information and tracking-data elements must both be numbered.
API commands Content format for parameter value String
Sample use(s) In a ship-items request:
item-shipping-information-list. In a deliver-order or add-tracking-data request: tracking-data.tracking-number=Z5498W45987123684 |
The following screenshots illustrate how your customer's Order History page will display the shipping statuses of individual items in an order. The list below identifies the different use cases shown in the screenshots.
The image below shows an order containing three items that have been sent in two separate shipments.

The image below shows an order containing three items, one of which is on backorder.

The image below shows an order containing three items, one of which has been cancelled.

The image below shows an order containing three items, one of which has been returned.

The screenshot below shows how the Merchant Center will display financial and fulfillment states for an order. In the Merchant Center, the Chrg column identifies the financial status of the order. The Ship column identifies the fulfillment status of the order.
Merchant Center Inbox
The Merchant Center Inbox displays the following icons in the Chrg and Ship columns:
|
Chrg column values
|
Ship column values
|
* The partial shipment icon only displays for merchants that are using line-item shipping commands.
The screenshot below shows the order details for an order containing three items. One of the three items is backordered, one has been returned and the third was cancelled. The screenshot shows that the order has been divided into two shipments.
Merchant Center Order Details
