The
[`shippingsettings`](https://developers.google.com/shopping-content/reference/rest/v2.1/shippingsettings)
resource lets you retrieve and update the shipping settings of your multi-client
account (MCA) and all sub-accounts associated with it.

MCAs are usually used by integrators, aggregators, and channel partners who
manage online stores and API services for multiple merchants. Merchants who have
multiple online stores or brands which are sold on separate websites may also
choose to have sub-accounts under a single MCA.

> [!NOTE]
> **Note:** The `shippingsettings` resource doesn't work for shipping settings created through [account-linking or by manual upload of order tracking
> history](https://support.google.com/merchants/answer/10165931). Those shipping settings won't be returned, modified, or deleted by calls to this endpoint.

Google can update the estimated delivery time for some products automatically.
See [Enable automatic
improvements](https://developers.google.com/shopping-content/guides/automatic-improvements) for more details.

## shippingsettings.list

The `shippingsettings.list` call returns all shipping resource information of
an account or all sub-accounts if dealing with an MCA account.

Example URL For `shippingsettings.list` method:

    GET https://shoppingcontent.googleapis.com/content/v2.1/merchantId/shippingsettings

The following is a sample JSON response showing the shipping settings for
sub-accounts `1111` and `2222` of an MCA account:

    {
     "kind": "content#shippingsettingsListResponse",
     "resources": [
      {
       "accountId": "1111",
       "services": [
        {
         "name": "Standard Shipping",
         "active": true,
         "deliveryCountry": "US",
         "currency": "USD",
         "deliveryTime": {
          "minHandlingTimeInDays": 0,
          "maxHandlingTimeInDays": 1,
          "transitTimeTable": {
           "postalCodeGroupNames": [
            "Region1",
            "Region2",
            "all other locations"
           ],
           "transitTimeLabels": [
            "all other labels"
           ],
           "rows": [
            {
             "values": [
              {
               "minTransitTimeInDays": 1,
               "maxTransitTimeInDays": 2
              }
             ]
            },
            {
             "values": [
              {
               "minTransitTimeInDays": 2,
               "maxTransitTimeInDays": 3
              }
             ]
            },
            {
             "values": [
              {
               "minTransitTimeInDays": 3,
               "maxTransitTimeInDays": 5
              }
             ]
            }
           ]
          }
         },
         "rateGroups": [
          {
           "singleValue": {
            "flatRate": {
             "value": "0",
             "currency": "USD"
            }
           },
           "name": "Standard Shipping"
          }
         ],
         "eligibility": "All scenarios"
        },
        {
         "name": "Expedited",
         "active": true,
         "deliveryCountry": "US",
         "currency": "USD",
         "deliveryTime": {
          "minTransitTimeInDays": 2,
          "maxTransitTimeInDays": 2,
          "minHandlingTimeInDays": 0,
          "maxHandlingTimeInDays": 1
         },
         "rateGroups": [
          {
           "singleValue": {
            "flatRate": {
             "value": "9.99",
             "currency": "USD"
            }
           },
           "name": "Expedited"
          }
         ],
         "eligibility": "All scenarios"
        }
       ],
       "postalCodeGroups": [
        {
         "name": "Region1",
         "country": "US",
         "postalCodeRanges": [
          {
           "postalCodeRangeBegin": "94035",
           "postalCodeRangeEnd": "94070"
          }
         ]
        },
        {
         "name": "Region2",
         "country": "US",
         "postalCodeRanges": [
          {
           "postalCodeRangeBegin": "94071",
           "postalCodeRangeEnd": "94082"
          }
         ]
        }
       ]
      },
      {
       "accountId": "2222",
       "services": [
        {
         "name": "FedEx",
         "active": true,
         "deliveryCountry": "US",
         "currency": "USD",
         "deliveryTime": {
          "minTransitTimeInDays": 4,
          "maxTransitTimeInDays": 6,
          "minHandlingTimeInDays": 0,
          "maxHandlingTimeInDays": 0
         },
         "rateGroups": [
          {
           "singleValue": {
            "flatRate": {
             "value": "5.99",
             "currency": "USD"
            }
           },
           "name": "All products"
          }
         ],
         "eligibility": "All scenarios except Shopping Actions"
        },
        {
         "name": "GSA Shipping - Free Ship Over $49.99",
         "active": true,
         "deliveryCountry": "US",
         "currency": "USD",
         "deliveryTime": {
          "minTransitTimeInDays": 3,
          "maxTransitTimeInDays": 7,
          "minHandlingTimeInDays": 1,
          "maxHandlingTimeInDays": 2
         },
         "rateGroups": [
          {
           "mainTable": {
            "rowHeaders": {
             "prices": [
              {
               "value": "49.99",
               "currency": "USD"
              },
              {
               "value": "infinity",
               "currency": "USD"
              }
             ]
            },
            "rows": [
             {
              "cells": [
               {
                "flatRate": {
                 "value": "6.99",
                 "currency": "USD"
                }
               }
              ]
             },
             {
              "cells": [
               {
                "flatRate": {
                 "value": "0",
                 "currency": "USD"
                }
               }
              ]
             }
            ]
           },
           "name": "Free Ship Over $49.99"
          }
         ],
         "eligibility": "Shopping Actions"
        }
       ]
      }
     ]
    }

## shippingsettings.get

The `shippingsettings.get` call allows an MCA account to get shipping
settings information for a single sub-account, or a standalone account to get
its own account status information.

Use the following call in order to get the shipping settings
information, where the `merchantId` is the MCA account number, and `accountId`
is its sub-account. If the Merchant Center account is not a multi-client account,
`shippingsettings.get` can still return shipping settings information. In this
case, use the same Merchant Center account number for both `merchantId` and
`accountId` parameters.

    GET https://shoppingcontent.googleapis.com/content/v2.1/merchantId/shippingsettings/accountId

The following is a sample JSON response for a sub-account that has a `Standard`
and `Expedited` shipping service configured from the MCA account used for the
`list` call:

    {
     "accountId": "1111",
     "services": [
      {
       "name": "Standard Shipping",
       "active": true,
       "deliveryCountry": "US",
       "currency": "USD",
       "deliveryTime": {
        "minHandlingTimeInDays": 0,
        "maxHandlingTimeInDays": 1,
        "transitTimeTable": {
         "postalCodeGroupNames": [
          "Region1",
          "Region2",
          "all other locations"
         ],
         "transitTimeLabels": [
          "all other labels"
         ],
         "rows": [
          {
           "values": [
            {
             "minTransitTimeInDays": 1,
             "maxTransitTimeInDays": 2
            }
           ]
          },
          {
           "values": [
            {
             "minTransitTimeInDays": 2,
             "maxTransitTimeInDays": 3
            }
           ]
          },
          {
           "values": [
            {
             "minTransitTimeInDays": 3,
             "maxTransitTimeInDays": 5
            }
           ]
          }
         ]
        }
       },
       "rateGroups": [
        {
         "singleValue": {
          "flatRate": {
           "value": "0",
           "currency": "USD"
          }
         },
         "name": "Standard Shipping"
        }
       ],
       "eligibility": "All scenarios"
      },
      {
       "name": "Expedited",
       "active": true,
       "deliveryCountry": "US",
       "currency": "USD",
       "deliveryTime": {
        "minTransitTimeInDays": 2,
        "maxTransitTimeInDays": 2,
        "minHandlingTimeInDays": 0,
        "maxHandlingTimeInDays": 1
       },
       "rateGroups": [
        {
         "singleValue": {
          "flatRate": {
           "value": "9.99",
           "currency": "USD"
          }
         },
         "name": "Expedited"
        }
       ],
       "eligibility": "All scenarios"
      }
     ],
     "postalCodeGroups": [
      {
       "name": "Region1",
       "country": "US",
       "postalCodeRanges": [
        {
         "postalCodeRangeBegin": "94035",
         "postalCodeRangeEnd": "94070"
        }
       ]
      },
      {
       "name": "Region2",
       "country": "US",
       "postalCodeRanges": [
        {
         "postalCodeRangeBegin": "94071",
         "postalCodeRangeEnd": "94082"
        }
       ]
      }
     ]
    }

## shippingsettings.update

The `shippingsettings.update` call allows an MCA account to update the
shipping settings information for a single sub-account or a standalone account.

    PUT https://shoppingcontent.googleapis.com/content/v2.1/merchantId/shippingsettings/accountId

The following is a sample JSON request body to update the `maxTransitTimeInDays`
to `7` for Shipping Service `GSA Shipping - Free Ship Over $49.99` for
sub-account with account ID `2222` within the MCA merchange ID of `10`.

> [!IMPORTANT]
> **Important:** The `update` request body should contain the full resource body of the [Shipping Settings
> resource](https://developers.google.com/shopping-content/reference/rest/v2.1/shippingsettings) even if you are just updating a single attribute, as any `NULL` or missing values in the request body results in the existing values to be nulled.

    {
    ...
        "services": [
          {
            "name": "FedEx",
            "active": true,
            "deliveryCountry": "US",
            "currency": "USD",
            "deliveryTime": {
              "minTransitTimeInDays": 4,
              "maxTransitTimeInDays": 6,
              "minHandlingTimeInDays": 0,
              "maxHandlingTimeInDays": 0
            },
            "rateGroups": [
              {
                "singleValue": {
                  "flatRate": {
                    "value": "5.99",
                    "currency": "USD"
                  }
                },
                "name": "All products"
              }
            ],
            "eligibility": "All scenarios except Shopping Actions"
          },
          {
            "name": "GSA Shipping - Free Ship Over $49.99",
            "active": true,
            "deliveryCountry": "US",
            "currency": "USD",
            "deliveryTime": {
              "minTransitTimeInDays": 3,
              "maxTransitTimeInDays": 7,
              "minHandlingTimeInDays": 1,
              "maxHandlingTimeInDays": 2
            },
            "rateGroups": [
              {
                "mainTable": {
                  "rowHeaders": {
                    "prices": [
                      {
                        "value": "49.99",
                        "currency": "USD"
                      },
                      {
                        "value": "infinity",
                        "currency": "USD"
                      }
                    ]
                  },
                  "rows": [
                    {
                      "cells": [
                        {
                          "flatRate": {
                            "value": "6.99",
                            "currency": "USD"
                          }
                        }
                      ]
                    },
                    {
                      "cells": [
                        {
                          "flatRate": {
                            "value": "0",
                            "currency": "USD"
                          }
                        }
                      ]
                    }
                  ]
                },
                "name": "Free Ship Over $49.99"
              }
            ],
            "eligibility": "Shopping Actions"
          }
        ]
      }
    }

The following is a sample JSON response body:

    {
     "accountId": "2222",
     "services": [
      {
       "name": "FedEx",
       "active": true,
       "deliveryCountry": "US",
       "currency": "USD",
       "deliveryTime": {
        "minTransitTimeInDays": 4,
        "maxTransitTimeInDays": 6,
        "minHandlingTimeInDays": 0,
        "maxHandlingTimeInDays": 0
       },
       "rateGroups": [
        {
         "singleValue": {
          "flatRate": {
           "value": "5.99",
           "currency": "USD"
          }
         },
         "name": "All products"
        }
       ],
       "eligibility": "All scenarios except Shopping Actions"
      },
      {
       "name": "GSA Shipping - Free Ship Over $49.99",
       "active": true,
       "deliveryCountry": "US",
       "currency": "USD",
       "deliveryTime": {
        "minTransitTimeInDays": 3,
        "maxTransitTimeInDays": 7,
        "minHandlingTimeInDays": 1,
        "maxHandlingTimeInDays": 2
       },
       "rateGroups": [
        {
         "mainTable": {
          "rowHeaders": {
           "prices": [
            {
             "value": "49.99",
             "currency": "USD"
            },
            {
             "value": "infinity",
             "currency": "USD"
            }
           ]
          },
          "rows": [
           {
            "cells": [
             {
              "flatRate": {
               "value": "6.99",
               "currency": "USD"
              }
             }
            ]
           },
           {
            "cells": [
             {
              "flatRate": {
               "value": "0",
               "currency": "USD"
              }
             }
            ]
           }
          ]
         },
         "name": "Free Ship Over $49.99"
        }
       ],
       "eligibility": "Shopping Actions"
      }
     ]
    }

## shippingsettings.custombatch

The `shippingsettings.custombatch` call retrieves or updates shipping settings
information for multiple sub-accounts of a multi-client account.

The JSON request includes the `merchantId` of the MCA account number, the
`accountId` of the sub-account, a unique `batchId`, and the `method` set to
`get` to retrieve the shipping settings and `update` to modify the shipping
settings.

    POST https://shoppingcontent.googleapis.com/content/v2.1/shippingsettings/batch

The following sample JSON request body has two parts:

1. The `batchId=1` used to retrieve shipping settings for account ID `1111`.
2. The `batchId=2`, used to update the `maxTransitTimeInDays` to `8` for Shipping Service `GSA Shipping - Free Ship Over $49.99`. (This setting was changed from `7` for account ID `2222` shown in the prior response body example for `shippingsettings.update`).

    {
      "entries": [
        {
          "accountId": 1111,
          "merchantId": 10,
          "method": "get",
          "batchId": 1
        },
        {
          "accountId": 2222,
          "merchantId": 10,
          "method": "update",
          "batchId": 2,
          "shippingSettings": {
            "services": [
              {
                "name": "FedEx",
                "active": true,
                "deliveryCountry": "US",
                "currency": "USD",
                "deliveryTime": {
                  "minTransitTimeInDays": 4,
                  "maxTransitTimeInDays": 5,
                  "minHandlingTimeInDays": 0,
                  "maxHandlingTimeInDays": 0
                },
                "rateGroups": [
                  {
                    "singleValue": {
                      "flatRate": {
                        "value": "5.99",
                        "currency": "USD"
                      }
                    },
                    "name": "All products"
                  }
                ],
                "eligibility": "All scenarios except Shopping Actions"
              },
              {
                "name": "GSA Shipping - Free Ship Over $49.99",
                "active": true,
                "deliveryCountry": "US",
                "currency": "USD",
                "deliveryTime": {
                  "minTransitTimeInDays": 3,
                  "maxTransitTimeInDays": 8,
                  "minHandlingTimeInDays": 1,
                  "maxHandlingTimeInDays": 2
                },
                "rateGroups": [
                  {
                    "mainTable": {
                      "rowHeaders": {
                        "prices": [
                          {
                            "value": "49.99",
                            "currency": "USD"
                          },
                          {
                            "value": "infinity",
                            "currency": "USD"
                          }
                        ]
                      },
                      "rows": [
                        {
                          "cells": [
                            {
                              "flatRate": {
                                "value": "6.99",
                                "currency": "USD"
                              }
                            }
                          ]
                        },
                        {
                          "cells": [
                            {
                              "flatRate": {
                                "value": "0",
                                "currency": "USD"
                              }
                            }
                          ]
                        }
                      ]
                    },
                    "name": "Free Ship Over $49.99"
                  }
                ],
                "eligibility": "Shopping Actions"
              }
            ]
          }
        }
      ]
    }

The following is a sample JSON response body:

    {
     "kind": "content#shippingsettingsCustomBatchResponse",
     "entries": [
      {
       "kind": "content#shippingsettingsCustomBatchResponseEntry",
       "batchId": 1,
       "shippingSettings": {
        "accountId": "1111",
        "services": [
         {
          "name": "Standard Shipping",
          "active": true,
          "deliveryCountry": "US",
          "currency": "USD",
          "deliveryTime": {
           "minHandlingTimeInDays": 0,
           "maxHandlingTimeInDays": 1,
           "transitTimeTable": {
            "postalCodeGroupNames": [
             "Region1",
             "Region2",
             "all other locations"
            ],
            "transitTimeLabels": [
             "all other labels"
            ],
            "rows": [
             {
              "values": [
               {
                "minTransitTimeInDays": 1,
                "maxTransitTimeInDays": 2
               }
              ]
             },
             {
              "values": [
               {
                "minTransitTimeInDays": 2,
                "maxTransitTimeInDays": 3
               }
              ]
             },
             {
              "values": [
               {
                "minTransitTimeInDays": 3,
                "maxTransitTimeInDays": 5
               }
              ]
             }
            ]
           }
          },
          "rateGroups": [
           {
            "singleValue": {
             "flatRate": {
              "value": "0",
              "currency": "USD"
             }
            },
            "name": "Standard Shipping"
           }
          ],
          "eligibility": "All scenarios"
         },
         {
          "name": "Expedited",
          "active": true,
          "deliveryCountry": "US",
          "currency": "USD",
          "deliveryTime": {
           "minTransitTimeInDays": 2,
           "maxTransitTimeInDays": 2,
           "minHandlingTimeInDays": 0,
           "maxHandlingTimeInDays": 1
          },
          "rateGroups": [
           {
            "singleValue": {
             "flatRate": {
              "value": "9.99",
              "currency": "USD"
             }
            },
            "name": "Expedited"
           }
          ],
          "eligibility": "All scenarios"
         }
        ],
        "postalCodeGroups": [
         {
          "name": "Region1",
          "country": "US",
          "postalCodeRanges": [
           {
            "postalCodeRangeBegin": "94035",
            "postalCodeRangeEnd": "94070"
           }
          ]
         },
         {
          "name": "Region2",
          "country": "US",
          "postalCodeRanges": [
           {
            "postalCodeRangeBegin": "94071",
            "postalCodeRangeEnd": "94082"
           }
          ]
         }
        ]
       }
      },
      {
       "kind": "content#shippingsettingsCustomBatchResponseEntry",
       "batchId": 2,
       "shippingSettings": {
        "accountId": "2222",
        "services": [
         {
          "name": "FedEx",
          "active": true,
          "deliveryCountry": "US",
          "currency": "USD",
          "deliveryTime": {
           "minTransitTimeInDays": 4,
           "maxTransitTimeInDays": 5,
           "minHandlingTimeInDays": 0,
           "maxHandlingTimeInDays": 0
          },
          "rateGroups": [
           {
            "singleValue": {
             "flatRate": {
              "value": "5.99",
              "currency": "USD"
             }
            },
            "name": "All products"
           }
          ],
          "eligibility": "All scenarios except Shopping Actions"
         },
         {
          "name": "GSA Shipping - Free Ship Over $49.99",
          "active": true,
          "deliveryCountry": "US",
          "currency": "USD",
          "deliveryTime": {
           "minTransitTimeInDays": 3,
           "maxTransitTimeInDays": 8,
           "minHandlingTimeInDays": 1,
           "maxHandlingTimeInDays": 2
          },
          "rateGroups": [
           {
            "mainTable": {
             "rowHeaders": {
              "prices": [
               {
                "value": "49.99",
                "currency": "USD"
               },
               {
                "value": "infinity",
                "currency": "USD"
               }
              ]
             },
             "rows": [
              {
               "cells": [
                {
                 "flatRate": {
                  "value": "6.99",
                  "currency": "USD"
                 }
                }
               ]
              },
              {
               "cells": [
                {
                 "flatRate": {
                  "value": "0",
                  "currency": "USD"
                 }
                }
               ]
              }
             ]
            },
            "name": "Free Ship Over $49.99"
           }
          ],
          "eligibility": "Shopping Actions"
         }
        ]
       }
      }
     ]
    }

## shippingsettings.getsupportedcarriers

The `shippingsettings.getsupportedcarriers` call allows an MCA account
or a standalone account to get its supported carriers.

    GET https://shoppingcontent.googleapis.com/content/v2.1/merchantId/supportedCarriers

The following is a sample JSON response body:

    {
     "kind": "content#shippingsettingsGetSupportedCarriersResponse",
     "carriers": [
      {
       "name": "FedEx",
       "country": "US",
       "services": [
        "Ground",
        "Home Delivery",
        "Express Saver",
        "First Overnight",
        "Priority Overnight",
        "Standard Overnight",
        "2Day"
       ]
      },
      {
       "name": "UPS",
       "country": "US",
       "services": [
        "2nd Day Air",
        "2nd Day Air AM",
        "3 Day Select",
        "Ground",
        "Next Day Air",
        "Next Day Air Early AM",
        "Next Day Air Saver"
       ]
      },
      {
       "name": "USPS",
       "country": "US",
       "services": [
        "Priority Mail Express",
        "Media Mail",
        "Retail Ground",
        "Priority Mail",
        "First Class Package Service Retail",
        "First Class Package Service Commercial Base"
       ]
      },
      {
       "name": "Australia Post",
       "country": "AU",
       "services": [
        "Regular Parcel",
        "Express Post"
       ]
      },
      {
       "name": "TNT",
       "country": "AU",
       "services": [
        "Road Express",
        "Overnight Express"
       ]
      },
      {
       "name": "TOLL",
       "country": "AU",
       "services": [
        "Road Delivery",
        "Overnight Priority"
       ]
      },
      {
       "name": "DHL",
       "country": "DE",
       "services": [
        "Paket",
        "Päckchen"
       ]
      },
      {
       "name": "DPD",
       "country": "DE",
       "services": [
        "Express 12",
        "Express",
        "Classic Parcel"
       ]
      },
      {
       "name": "Hermes",
       "country": "DE",
       "services": [
        "Päckchen",
        "Paketklasse S",
        "Paketklasse M",
        "Paketklasse L"
       ]
      },
      {
       "name": "UPS",
       "country": "DE",
       "services": [
        "Express",
        "Express Saver",
        "Standard"
       ]
      },
      {
       "name": "DHL UK",
       "country": "GB",
       "services": [
        "Express",
        "Express 12"
       ]
      },
      {
       "name": "DPD UK",
       "country": "GB",
       "services": [
        "Express 12",
        "Express Next Day",
        "Standard Parcel 12",
        "Standard Parcel Next Day",
        "Standard Parcel Two Day"
       ]
      },
      {
       "name": "RMG",
       "country": "GB",
       "services": [
        "1st Class Small Parcel",
        "1st Class Medium Parcel",
        "2nd Class Small Parcel",
        "2nd Class Medium Parcel"
       ]
      },
      {
       "name": "TNT UK",
       "country": "GB",
       "services": [
        "Express",
        "Express 10",
        "Express 12"
       ]
      },
      {
       "name": "UPS UK",
       "country": "GB",
       "services": [
        "Express",
        "Express Saver",
        "Standard"
       ]
      },
      {
       "name": "Yodel",
       "country": "GB",
       "services": [
        "B2C 48HR",
        "B2C 72HR",
        "B2C Packet"
       ]
      }
     ]
    }

## shippingsettings.getsupportedholidays

The `shippingsettings.getsupportedholidays` call allows an MCA account
or a standalone account to retrieve supported holidays.

    GET https://shoppingcontent.googleapis.com/content/v2.1/merchantId/supportedHolidays

The following is a sample JSON response:

    {
     "kind": "content#shippingsettingsGetSupportedHolidaysResponse",
     "holidays": [
      {
       "id": "FR_Christmas_2019-12-25",
       "countryCode": "FR",
       "type": "Christmas",
       "date": "2019-12-25",
       "deliveryGuaranteeDate": "2019-12-24",
       "deliveryGuaranteeHour": "18"
      },
      {
       "id": "US_Easter_2019-04-21",
       "countryCode": "US",
       "type": "Easter",
       "date": "2019-04-21",
       "deliveryGuaranteeDate": "2019-04-20",
       "deliveryGuaranteeHour": "18"
      },
      {
       "id": "US_Mother's Day_2019-05-12",
       "countryCode": "US",
       "type": "Mother's Day",
       "date": "2019-05-12",
       "deliveryGuaranteeDate": "2019-05-11",
       "deliveryGuaranteeHour": "18"
      },
      {
       "id": "US_Father's Day_2019-06-16",
       "countryCode": "US",
       "type": "Father's Day",
       "date": "2019-06-16",
       "deliveryGuaranteeDate": "2019-06-15",
       "deliveryGuaranteeHour": "18"
      },
      {
       "id": "US_Independence Day (USA)_2019-07-04",
       "countryCode": "US",
       "type": "Independence Day (USA)",
       "date": "2019-07-04",
       "deliveryGuaranteeDate": "2019-07-03",
       "deliveryGuaranteeHour": "18"
      },
      {
       "id": "US_Halloween_2019-10-31",
       "countryCode": "US",
       "type": "Halloween",
       "date": "2019-10-31",
       "deliveryGuaranteeDate": "2019-10-30",
       "deliveryGuaranteeHour": "18"
      },
      {
       "id": "US_Thanksgiving_2019-11-28",
       "countryCode": "US",
       "type": "Thanksgiving",
       "date": "2019-11-28",
       "deliveryGuaranteeDate": "2019-11-27",
       "deliveryGuaranteeHour": "18"
      },
      {
       "id": "US_Christmas_2019-12-25",
       "countryCode": "US",
       "type": "Christmas",
       "date": "2019-12-25",
       "deliveryGuaranteeDate": "2019-12-24",
       "deliveryGuaranteeHour": "18"
      }
     ]
    }

## Set postal code groups

While it is convenient to build regions in Merchant Center, use the Content API
to maintain accounts with multiple regions that frequently change.

The [Shipping Settings service](https://developers.google.com/shopping-content/reference/rest/v2.1/shippingsettings)
allows you to set, get, and update shipping settings and regions. In the API,
regions are called `postalCodeGroups`.

    "postalCodeGroups": [
      {
        "name": "string,
        "country": string,
        "postalCodeRanges": [
          {
            "postalCodeRangeBegin": string,
            "postalCodeRangeEnd": string
          }
        ]
      }
    ]

As in the UI, `postalCodeGroups` is a simple list of postal codes, postal code
ranges, postal code prefixes, or prefix ranges.

Since regions are retrieved and set together with shipping settings, only
filling the `postalCodeGroups` through the existing
[Shipping Settings
resource](https://developers.google.com/shopping-content/reference/rest/v2.1/shippingsettings)
deletes shipping services.

The right way of setting regions through the API is as follows:

1. Make a `get` call to retrieve all shipping services and `postalCodeGroups` (regions).
2. Copy the shipping services from the `get` call to the `update` call.
3. Remove the following entry from the request body if you do not use transit
   time labels in your shipping service:

       "transitTimeLabels": [
           "all other labels"
       ],

4. Populate the regions in the `postalCodeGroups` section for the `update` call.

5. Make the `update` call with both the shipping services and `postalCodeGroups`
   sections populated.

The following is a sample `update` call request body from first `get` example
used above with `postalCodeGroups` for Region 1 updated from `94035` to `94036`:

    {
      "services": [
        {
          "name": "Standard Shipping",
          "active": true,
          "deliveryCountry": "US",
          "currency": "USD",
          "deliveryTime": {
            "minHandlingTimeInDays": 0,
            "maxHandlingTimeInDays": 1,
            "transitTimeTable": {
              "postalCodeGroupNames": [
                "Region1",
                "Region2",
                "all other locations"
              ],
              "rows": [
                {
                  "values": [
                    {
                      "minTransitTimeInDays": 1,
                      "maxTransitTimeInDays": 2
                    }
                  ]
                },
                {
                  "values": [
                    {
                      "minTransitTimeInDays": 2,
                      "maxTransitTimeInDays": 3
                    }
                  ]
                },
                {
                  "values": [
                    {
                      "minTransitTimeInDays": 3,
                      "maxTransitTimeInDays": 5
                    }
                  ]
                }
              ]
            }
          },
          "rateGroups": [
            {
              "singleValue": {
                "flatRate": {
                  "value": "0",
                  "currency": "USD"
                }
              },
              "name": "Standard Shipping"
            }
          ],
          "eligibility": "All scenarios"
        },
        {
          "name": "Expedited",
          "active": true,
          "deliveryCountry": "US",
          "currency": "USD",
          "deliveryTime": {
            "minTransitTimeInDays": 2,
            "maxTransitTimeInDays": 2,
            "minHandlingTimeInDays": 0,
            "maxHandlingTimeInDays": 1
          },
          "rateGroups": [
            {
              "singleValue": {
                "flatRate": {
                  "value": "9.99",
                  "currency": "USD"
                }
              },
              "name": "Expedited"
            }
          ],
          "eligibility": "All scenarios"
        }
      ],
      "postalCodeGroups": [
        {
          "name": "Region1",
          "country": "US",
          "postalCodeRanges": [
            {
              "postalCodeRangeBegin": "94036",
              "postalCodeRangeEnd": "94070"
            }
          ]
        },
        {
          "name": "Region2",
          "country": "US",
          "postalCodeRanges": [
            {
              "postalCodeRangeBegin": "94071",
              "postalCodeRangeEnd": "94082"
            }
          ]
        }
      ]
    }

The following is a sample JSON response:

    {
     "accountId": "1111",
     "services": [
      {
       "name": "Standard Shipping",
       "active": true,
       "deliveryCountry": "US",
       "currency": "USD",
       "deliveryTime": {
        "minHandlingTimeInDays": 0,
        "maxHandlingTimeInDays": 1,
        "transitTimeTable": {
         "postalCodeGroupNames": [
          "Region1",
          "Region2",
          "all other locations"
         ],
         "rows": [
          {
           "values": [
            {
             "minTransitTimeInDays": 1,
             "maxTransitTimeInDays": 2
            }
           ]
          },
          {
           "values": [
            {
             "minTransitTimeInDays": 2,
             "maxTransitTimeInDays": 3
            }
           ]
          },
          {
           "values": [
            {
             "minTransitTimeInDays": 3,
             "maxTransitTimeInDays": 5
            }
           ]
          }
         ]
        }
       },
       "rateGroups": [
        {
         "singleValue": {
          "flatRate": {
           "value": "0",
           "currency": "USD"
          }
         },
         "name": "Standard Shipping"
        }
       ],
       "eligibility": "All scenarios"
      },
      {
       "name": "Expedited",
       "active": true,
       "deliveryCountry": "US",
       "currency": "USD",
       "deliveryTime": {
        "minTransitTimeInDays": 2,
        "maxTransitTimeInDays": 2,
        "minHandlingTimeInDays": 0,
        "maxHandlingTimeInDays": 1
       },
       "rateGroups": [
        {
         "singleValue": {
          "flatRate": {
           "value": "9.99",
           "currency": "USD"
          }
         },
         "name": "Expedited"
        }
       ],
       "eligibility": "All scenarios"
      }
     ],
     "postalCodeGroups": [
      {
       "name": "Region1",
       "country": "US",
       "postalCodeRanges": [
        {
         "postalCodeRangeBegin": "94036",
         "postalCodeRangeEnd": "94070"
        }
       ]
      },
      {
       "name": "Region2",
       "country": "US",
       "postalCodeRanges": [
        {
         "postalCodeRangeBegin": "94071",
         "postalCodeRangeEnd": "94082"
        }
       ]
      }
     ]
    }

## Use pickup/collection points

For more information on pickup/collection-point orders, including how they
differ from home delivery orders, and what pickup-specific information needs to
be processed, see the
[Pickup/collection points](https://developers.google.com/shopping-content/guides/using-pickup) guide.

## Same day delivery

You can use the Content API for Shopping to configure same day delivery shipping services if you have [local
inventory](https://developers.google.com/shopping-content/guides/products/local-inventory).

Same day delivery shipping services have `local_delivery` as their `shipmentType`. All `local_delivery` shipping services are considered same day deliveries at this time. You can't change the `deliveryTime` information for local deliveries.

Use
[`shippingsettings.update`](https://developers.google.com/shopping-content/reference/rest/v2.1/shippingsettings/update)
to set up same day delivery for your local inventory products.

Here's a sample request body that adds a same day delivery service to all stores
for your account:

Update all values in the following sample before using it in your implementation.

```
{
   "accountId":"accountId",
   "services":[
      {
         "name": "Local Delivery",
         "active":true,
         "shipmentType":"local_delivery",
         "deliveryCountry":"US",
         "currency":"USD",
         "rateGroups":[
            {
               "singleValue":{
                  "flatRate":{
                     "value":"0",
                     "currency":"USD"
                  }
               }
            }
         ],
         "eligibility":"All scenarios",
         "storeConfig":{
            "storeServiceType":"all stores",
            "storeCodes":[
               
            ],
            "cutoffConfig":{
               "storeCloseOffsetHours":2,
               "no_delivery_post_cutoff":true
            },
            "serviceRadius":{
               "value":4,
               "unit":"Miles"
            }
         }
      }
   ]
}
```

## Next day delivery

Orders placed after your same day delivery cutoff time are scheduled for next
day delivery by default. To turn off next day delivery, set
`no_delivery_post_cutoff` to `true`. If you turn off next day delivery, your
shipping services are only visible before the cutoff time each day.

Next day delivery is available only when the `shipmentType` is `local_delivery`.

## Testing

Since all items are in production, care should be taken to avoid changing
anything important on items that are live, specifically with the `update()`
method as this is the only one that changes existing values.