# MerchantReturnPolicy: Your Return Policy in Schema.org

> What MerchantReturnPolicy is, which properties Google asks for, where it goes (organization or offer), what overrides what and how to check it in your store.

URL: https://clione.ai/glossary/merchantreturnpolicy/
Lang: en

Your store already has a [return policy](/glossary/return-policy/): a page with deadlines, conditions and who pays return shipping. MerchantReturnPolicy is that same policy written in [structured data](/glossary/structured-data/), with a closed vocabulary a machine can read without interpreting sentences. It is a [Schema.org](/glossary/schema-org/) type. **It does not replace your returns page: it summarizes the policy for a search engine.** It matters because, according to Google, with this markup Search can show your return policy next to your products and in knowledge panels.[^google-return-policy]

## How it works

Schema.org defines MerchantReturnPolicy as the information about product return policies associated with an organization, a product or an offer.[^schema-org-mrp] Google simplifies those three options into two levels. **The store's general policy goes on the organization node**, with the `hasMerchantReturnPolicy` property, and Google recommends putting it on a single page of your site that describes your return policy: there is no need to repeat it on all of them. **A specific product's goes on its offer**, only when that product has different terms, and it supports fewer properties than the organization's.[^google-return-policy] The [Organization](/glossary/organization-schema/) entry shows where the general one hangs, and the [Offer](/glossary/offer-schema/) entry, where a product's goes.

That split is recent. Google has supported the policy at the organization level since June 11, 2024; on June 10, 2025 it gave it a documentation page of its own; and on July 11, 2025 it clarified that an offer's policy supports only some of the properties and that the general policy has to go on the organization node.[^google-updates]

For Google there are two ways to meet the requirements. The first is to give the country where the policy applies (`applicableCountry`, as a two-letter code, up to 50 countries) and its type (`returnPolicyCategory`), which has three values: limited window (`MerchantReturnFiniteReturnWindow`, which also requires `merchantReturnDays`, the days since delivery), returns not permitted (`MerchantReturnNotPermitted`) and unlimited window (`MerchantReturnUnlimitedWindow`). The second is to give only the link to the page that describes the policy, with `merchantReturnLink`, whether it is yours or that of a service that handles your returns.[^google-return-policy]

The rest are recommended, and they are what make the markup useful:[^google-return-policy]

| Property                                            | What it says                                                            | Values                                                                                                                                                                                       |
| --------------------------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `returnMethod`                                      | How the item is returned                                                | By mail, in store or at a drop-off point                                                                                                                                                     |
| `returnFees`                                        | Who pays for the return                                                 | Free (`FreeReturn`), an amount the store charges (`ReturnShippingFees`, with `returnShippingFeesAmount`) or the customer arranges and pays for shipping (`ReturnFeesCustomerResponsibility`) |
| `refundType`                                        | What the customer receives                                              | Full refund, exchange for the same product or store credit                                                                                                                                   |
| `itemCondition`                                     | What condition is accepted                                              | New, used, damaged or refurbished                                                                                                                                                            |
| `returnPolicyCountry`                               | Where the return is shipped                                             | A country, which may not be the one the original order shipped from                                                                                                                          |
| `customerRemorseReturnFees`, `itemDefectReturnFees` | Who pays if the customer changes their mind, and who if it is defective | The same values as `returnFees`                                                                                                                                                              |

There is also a restocking fee (`restockingFee`) and seasonal exceptions (`returnPolicySeasonalOverride`), for example a different window over the holidays.[^google-return-policy]

What surprises most is the order of preference. Google combines several sources and applies the strongest: first the Content API for Shopping, then the returns settings in [Google Merchant Center](/glossary/google-merchant-center/) or [Search Console](/glossary/google-search-console/), then the product's markup and, last, the organization's. **If you have markup and also configure returns in Search Console, Google uses only what is in Search Console.**[^google-return-policy] Between the two kinds of markup, if you give both, the product's wins.[^google-merchant-listing]

## In a store

What matters for the markup is that **it says the same as your page, and your page says what your store really does**.

**Fictional example.** An invented US store publishes this policy: 30 days from delivery, return by mail, the customer pays return shipping unless the product arrives defective, and a full refund. Shirts embroidered with initials cannot be returned. Here is how it translates:

| What the page says                            | Property                                     | Value                                                                                                         |
| --------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| "We sell in the United States and Canada"     | `applicableCountry`                          | `["US", "CA"]`                                                                                                |
| "30 days from delivery"                       | `returnPolicyCategory`, `merchantReturnDays` | `MerchantReturnFiniteReturnWindow`, `30` |
| "Return by mail"                              | `returnMethod`                               | `ReturnByMail`                                                                                                |
| "Return shipping is on you"                   | `returnFees`                                 | `ReturnFeesCustomerResponsibility`                                                                            |
| "If it arrives defective, the return is free" | `itemDefectReturnFees`                       | `FreeReturn`                                                                                                  |
| "We give you your full amount back"           | `refundType`                                 | `FullRefund`                                                                                                  |

```json
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://www.example.com/#organization",
  "name": "Calella",
  "hasMerchantReturnPolicy": {
    "@type": "MerchantReturnPolicy",
    "applicableCountry": ["US", "CA"],
    "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
    "merchantReturnDays": 30,
    "returnMethod": "https://schema.org/ReturnByMail",
    "returnFees": "https://schema.org/ReturnFeesCustomerResponsibility",
    "itemDefectReturnFees": "https://schema.org/FreeReturn",
    "refundType": "https://schema.org/FullRefund"
  }
}
```

The embroidered shirt carries its own policy on its offer with `MerchantReturnNotPermitted`, which beats the general one for that product.[^google-merchant-listing] And if one day the store configures its returns in Search Console, this markup stops being what Google uses.[^google-return-policy]


Believing the markup on the site is in charge. For Google it is the weakest source: the Merchant Center or Search Console configuration beats the product's markup, and that beats the organization's.[^google-return-policy] If you change the return window on your page and in your markup but have another figure configured in Search Console, what Google uses is what is in Search Console.


## How to check it

1. **Search for `hasMerchantReturnPolicy` in the source code** of the page where your organization node lives, and note the country, the policy type and the days.[^google-return-policy]
2. **Compare it with your returns page, sentence by sentence**: the window, who pays return shipping and the refund type have to match.
3. **Look for policies inside the offers on your product pages.** Each one has to correspond to a product with different terms, because it beats the general one.[^google-merchant-listing]
4. **See whether you have returns configured in Merchant Center or Search Console.** If you do, those are what Google uses and that is where they have to be kept up to date.[^google-return-policy]
5. **Check which [rich results](/glossary/rich-results/) Google detects**: run the URL through the [Rich Results Test](/glossary/rich-results-test/) and see what it finds and with which errors or warnings.[^google-return-policy]

## Related concept: return policy

The return policy is the document: what you promise the customer, with its fine print and its exceptions. MerchantReturnPolicy is its summary in a vocabulary of closed values. **The policy is written for people; the markup translates it into values a machine can compare.** The order never flips: first the policy is decided and published, and then you mark up exactly what it says. The [return policy](/glossary/return-policy/) has its own entry.

To keep going, the [structured data reading path](/learn/structured-data/) orders the rest of the terms, and the [OfferShippingDetails](/glossary/offershippingdetails/) entry does the same for shipping.
