{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "schema:MerchantReturnPolicy",
  "title": "MerchantReturnPolicy",
  "description": "A MerchantReturnPolicy provides information about product return policies associated with an [[Organization]], [[Product]], or [[Offer]].",
  "type": "object",
  "allOf": [
    {
      "description": "A utility class that serves as the umbrella for a number of 'intangible' things such as quantities, structured values, etc.",
      "$ref": "schema:Intangible"
    }
  ],
  "properties": {
    "additionalProperty": {
      "description": "A property-value pair representing an additional characteristic of the entity, e.g. a product feature or another characteristic for which there is no matching property in schema.org.\\n\\nNote: Publishers should be aware that applications designed to use specific schema.org properties (e.g. https://schema.org/width, https://schema.org/color, https://schema.org/gtin13, ...) will typically expect such data to be provided using those properties, rather than using the generic property/value mechanism.\n",
      "oneOf": [
        { "$ref": "schema:PropertyValue" },
        { "type": "array", "items": { "$ref": "schema:PropertyValue" } }
      ]
    },
    "applicableCountry": {
      "description": "A country where a particular merchant return policy applies to, for example the two-letter ISO 3166-1 alpha-2 country code.",
      "oneOf": [
        { "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }] },
        {
          "type": "array",
          "items": {
            "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }]
          }
        }
      ]
    },
    "customerRemorseReturnFees": {
      "description": "The type of return fees if the product is returned due to customer remorse.",
      "$ref": "schema:ReturnFeesEnumeration"
    },
    "customerRemorseReturnLabelSource": {
      "description": "The method (from an enumeration) by which the customer obtains a return shipping label for a product returned due to customer remorse.",
      "$ref": "schema:ReturnLabelSourceEnumeration"
    },
    "customerRemorseReturnShippingFeesAmount": {
      "description": "The amount of shipping costs if a product is returned due to customer remorse. Applicable when property [[customerRemorseReturnFees]] equals [[ReturnShippingFees]].",
      "$ref": "schema:MonetaryAmount"
    },
    "inStoreReturnsOffered": {
      "description": "Are in-store returns offered? (For more advanced return methods use the [[returnMethod]] property.)",
      "type": "boolean"
    },
    "itemCondition": {
      "description": "A predefined value from OfferItemCondition specifying the condition of the product or service, or the products or services included in the offer. Also used for product return policies to specify the condition of products accepted for returns.",
      "oneOf": [
        { "$ref": "schema:OfferItemCondition" },
        { "type": "array", "items": { "$ref": "schema:OfferItemCondition" } }
      ]
    },
    "itemDefectReturnFees": {
      "description": "The type of return fees for returns of defect products.",
      "$ref": "schema:ReturnFeesEnumeration"
    },
    "itemDefectReturnLabelSource": {
      "description": "The method (from an enumeration) by which the customer obtains a return shipping label for a defect product.",
      "$ref": "schema:ReturnLabelSourceEnumeration"
    },
    "itemDefectReturnShippingFeesAmount": {
      "description": "Amount of shipping costs for defect product returns. Applicable when property [[itemDefectReturnFees]] equals [[ReturnShippingFees]].",
      "oneOf": [
        { "$ref": "schema:MonetaryAmount" },
        { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } }
      ]
    },
    "merchantReturnDays": {
      "description": "Specifies either a fixed return date or the number of days (from the delivery date) that a product can be returned. Used when the [[returnPolicyCategory]] property is specified as [[MerchantReturnFiniteReturnWindow]].",
      "oneOf": [
        {
          "anyOf": [
            { "type": "integer" },
            { "type": "string", "format": "date" },
            { "type": "string", "format": "date-time" }
          ]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [
              { "type": "integer" },
              { "type": "string", "format": "date" },
              { "type": "string", "format": "date-time" }
            ]
          }
        }
      ]
    },
    "merchantReturnLink": {
      "description": "Specifies a Web page or service by URL, for product returns.",
      "oneOf": [
        { "type": "string", "format": "uri" },
        { "type": "array", "items": { "type": "string", "format": "uri" } }
      ]
    },
    "refundType": {
      "description": "A refund type, from an enumerated list.",
      "oneOf": [
        { "$ref": "schema:RefundTypeEnumeration" },
        { "type": "array", "items": { "$ref": "schema:RefundTypeEnumeration" } }
      ]
    },
    "restockingFee": {
      "description": "Use [[MonetaryAmount]] to specify a fixed restocking fee for product returns, or use [[Number]] to specify a percentage of the product price paid by the customer.",
      "oneOf": [
        {
          "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }]
        },
        {
          "type": "array",
          "items": {
            "anyOf": [{ "type": "number" }, { "$ref": "schema:MonetaryAmount" }]
          }
        }
      ]
    },
    "returnFees": {
      "description": "The type of return fees for purchased products (for any return reason).",
      "$ref": "schema:ReturnFeesEnumeration"
    },
    "returnLabelSource": {
      "description": "The method (from an enumeration) by which the customer obtains a return shipping label for a product returned for any reason.",
      "$ref": "schema:ReturnLabelSourceEnumeration"
    },
    "returnMethod": {
      "description": "The type of return method offered, specified from an enumeration.",
      "$ref": "schema:ReturnMethodEnumeration"
    },
    "returnPolicyCategory": {
      "description": "Specifies an applicable return policy (from an enumeration).",
      "oneOf": [
        { "$ref": "schema:MerchantReturnEnumeration" },
        {
          "type": "array",
          "items": { "$ref": "schema:MerchantReturnEnumeration" }
        }
      ]
    },
    "returnPolicyCountry": {
      "description": "The country where the product has to be sent to for returns, for example \"Ireland\" using the [[name]] property of [[Country]]. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1). Note that this can be different from the country where the product was originally shipped from or sent to.",
      "anyOf": [{ "type": "string" }, { "$ref": "schema:Country" }]
    },
    "returnPolicySeasonalOverride": {
      "description": "Seasonal override of a return policy.",
      "oneOf": [
        { "$ref": "schema:MerchantReturnPolicySeasonalOverride" },
        {
          "type": "array",
          "items": { "$ref": "schema:MerchantReturnPolicySeasonalOverride" }
        }
      ]
    },
    "returnShippingFeesAmount": {
      "description": "Amount of shipping costs for product returns (for any reason). Applicable when property [[returnFees]] equals [[ReturnShippingFees]].",
      "oneOf": [
        { "$ref": "schema:MonetaryAmount" },
        { "type": "array", "items": { "$ref": "schema:MonetaryAmount" } }
      ]
    },
    "validForMemberTier": {
      "description": "The membership program tier an Offer (or a PriceSpecification, OfferShippingDetails, or MerchantReturnPolicy under an Offer) is valid for.",
      "$ref": "schema:MemberProgramTier"
    }
  }
}
