{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-seller-central/main/json-schema/amazon-seller-central-get-rates-request-schema.json",
  "title": "GetRatesRequest",
  "description": "The request schema for the getRates operation. When the channelType is Amazon, the shipTo address is not required and will be ignored.",
  "x-generated": "2026-09-24",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amazon-seller-central-shipping-api-openapi.yml#/components/schemas/GetRatesRequest",
  "type": "object",
  "required": [
    "channelDetails",
    "packages",
    "shipFrom"
  ],
  "properties": {
    "shipTo": {
      "description": "The ship to address.",
      "$ref": "#/$defs/Address"
    },
    "shipFrom": {
      "description": "The ship from address.",
      "$ref": "#/$defs/Address"
    },
    "returnTo": {
      "description": "The return to address.",
      "$ref": "#/$defs/Address"
    },
    "shipDate": {
      "type": "string",
      "format": "date-time",
      "description": "The ship date and time (the requested pickup). This defaults to the current date and time."
    },
    "shipperInstruction": {
      "$ref": "#/$defs/ShipperInstruction",
      "description": "This field describe shipper instruction."
    },
    "packages": {
      "$ref": "#/$defs/PackageList"
    },
    "valueAddedServices": {
      "$ref": "#/$defs/ValueAddedServiceDetails"
    },
    "taxDetails": {
      "$ref": "#/$defs/TaxDetailList"
    },
    "channelDetails": {
      "$ref": "#/$defs/ChannelDetails"
    },
    "clientReferenceDetails": {
      "$ref": "#/$defs/ClientReferenceDetails"
    },
    "shipmentType": {
      "$ref": "#/$defs/ShipmentType"
    },
    "destinationAccessPointDetails": {
      "$ref": "#/$defs/AccessPointDetails"
    },
    "carrierAccounts": {
      "$ref": "#/$defs/CarrierAccounts"
    }
  },
  "$defs": {
    "AccessPointDetails": {
      "type": "object",
      "description": "AccessPointDetails object",
      "properties": {
        "accessPointId": {
          "$ref": "#/$defs/AccessPointId"
        }
      }
    },
    "AccessPointId": {
      "description": "Unique identifier for the access point",
      "type": "string"
    },
    "AccountId": {
      "type": "string",
      "description": "Identifier for the seller's carrier account."
    },
    "Address": {
      "type": "object",
      "required": [
        "addressLine1",
        "city",
        "countryCode",
        "name",
        "postalCode",
        "stateOrRegion"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the person, business or institution at the address.",
          "minLength": 1,
          "maxLength": 50
        },
        "addressLine1": {
          "type": "string",
          "description": "The first line of the address.",
          "minLength": 1,
          "maxLength": 60
        },
        "addressLine2": {
          "type": "string",
          "description": "Additional address information, if required.",
          "minLength": 1,
          "maxLength": 60
        },
        "addressLine3": {
          "type": "string",
          "description": "Additional address information, if required.",
          "minLength": 1,
          "maxLength": 60
        },
        "companyName": {
          "type": "string",
          "description": "The name of the business or institution associated with the address."
        },
        "stateOrRegion": {
          "$ref": "#/$defs/StateOrRegion"
        },
        "city": {
          "$ref": "#/$defs/City"
        },
        "countryCode": {
          "$ref": "#/$defs/CountryCode"
        },
        "postalCode": {
          "$ref": "#/$defs/PostalCode"
        },
        "email": {
          "type": "string",
          "description": "The email address of the contact associated with the address.",
          "maxLength": 64
        },
        "phoneNumber": {
          "type": "string",
          "description": "The phone number of the person, business or institution located at that address, including the country calling code.",
          "minLength": 1,
          "maxLength": 20
        },
        "geocode": {
          "$ref": "#/$defs/Geocode"
        }
      },
      "description": "The address."
    },
    "AmazonOrderDetails": {
      "type": "object",
      "required": [
        "orderId"
      ],
      "properties": {
        "orderId": {
          "type": "string",
          "description": "The Amazon order ID associated with the Amazon order fulfilled by this shipment."
        }
      },
      "description": "Amazon order information. This is required if the shipment source channel is Amazon."
    },
    "AmazonShipmentDetails": {
      "type": "object",
      "required": [
        "shipmentId"
      ],
      "properties": {
        "shipmentId": {
          "type": "string",
          "description": "This attribute is required only for a Direct Fulfillment shipment. This is the encrypted shipment ID."
        }
      },
      "description": "Amazon shipment information."
    },
    "CarrierAccount": {
      "type": "object",
      "required": [
        "carrierAccountId",
        "carrierId"
      ],
      "properties": {
        "carrierAccountId": {
          "$ref": "#/$defs/AccountId"
        },
        "carrierId": {
          "$ref": "#/$defs/CarrierId"
        }
      },
      "description": "Carrier Account details used to fetch rates."
    },
    "CarrierAccounts": {
      "type": "array",
      "description": "A list of CarrierAccounts",
      "items": {
        "$ref": "#/$defs/CarrierAccount"
      }
    },
    "CarrierId": {
      "type": "string",
      "description": "The carrier identifier for the offering, provided by the carrier."
    },
    "ChannelDetails": {
      "type": "object",
      "required": [
        "channelType"
      ],
      "properties": {
        "channelType": {
          "$ref": "#/$defs/ChannelType"
        },
        "amazonOrderDetails": {
          "$ref": "#/$defs/AmazonOrderDetails"
        },
        "amazonShipmentDetails": {
          "$ref": "#/$defs/AmazonShipmentDetails"
        }
      },
      "description": "Shipment source channel related information."
    },
    "ChannelType": {
      "type": "string",
      "description": "The shipment source channel type.",
      "enum": [
        "AMAZON",
        "EXTERNAL"
      ],
      "x-docgen-enum-table-extension": [
        {
          "value": "AMAZON",
          "description": "Indicates that the shipment originates from an Amazon order."
        },
        {
          "value": "EXTERNAL",
          "description": "Indicates that the shipment originates from a non-Amazon channel."
        }
      ]
    },
    "ChargeComponent": {
      "type": "object",
      "description": "The type and amount of a charge applied on a package.",
      "properties": {
        "amount": {
          "$ref": "#/$defs/Currency"
        },
        "chargeType": {
          "type": "string",
          "description": "The type of charge.",
          "enum": [
            "TAX",
            "DISCOUNT"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "TAX",
              "description": "A tax imposed on a package."
            },
            {
              "value": "DISCOUNT",
              "description": "A discount deducted from the cost of a package."
            }
          ]
        }
      }
    },
    "ChargeList": {
      "type": "array",
      "description": "A list of charges based on the shipping service charges applied on a package.",
      "items": {
        "$ref": "#/$defs/ChargeComponent"
      }
    },
    "City": {
      "type": "string",
      "description": "The city or town where the person, business or institution is located."
    },
    "ClientReferenceDetail": {
      "type": "object",
      "required": [
        "clientReferenceType",
        "clientReferenceId"
      ],
      "properties": {
        "clientReferenceType": {
          "type": "string",
          "description": "Client Reference type.",
          "enum": [
            "IntegratorShipperId",
            "IntegratorMerchantId"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "IntegratorShipperId",
              "description": "The unique identifier assigned to a 3P seller by the shipping integrator."
            },
            {
              "value": "IntegratorMerchantId",
              "description": "The unique identifier assigned to a 3P shipping integrator by Amazon."
            }
          ]
        },
        "clientReferenceId": {
          "type": "string",
          "description": "The Client Reference Id."
        }
      },
      "description": "Client Reference Details"
    },
    "ClientReferenceDetails": {
      "type": "array",
      "description": "Object to pass additional information about the MCI Integrator shipperType: List of ClientReferenceDetail",
      "items": {
        "$ref": "#/$defs/ClientReferenceDetail"
      }
    },
    "CollectOnDelivery": {
      "type": "object",
      "required": [
        "amount"
      ],
      "properties": {
        "amount": {
          "$ref": "#/$defs/Currency"
        }
      },
      "description": "The amount to collect on delivery."
    },
    "CountryCode": {
      "type": "string",
      "description": "The two digit country code. Follows ISO 3166-1 alpha-2 format."
    },
    "Currency": {
      "description": "The monetary value in the currency indicated, in ISO 4217 standard format.",
      "type": "object",
      "required": [
        "unit",
        "value"
      ],
      "properties": {
        "value": {
          "type": "number",
          "description": "The monetary value."
        },
        "unit": {
          "type": "string",
          "description": "The ISO 4217 format 3-character currency code.",
          "minLength": 3,
          "maxLength": 3
        }
      }
    },
    "DangerousGoodsDetails": {
      "type": "object",
      "properties": {
        "unitedNationsRegulatoryId": {
          "type": "string",
          "description": "The specific UNID of the item being shipped.",
          "pattern": "^(UN|ID|NA)[0-9]{4}$"
        },
        "transportationRegulatoryClass": {
          "type": "string",
          "description": "The specific regulatory class  of the item being shipped.",
          "pattern": "^[1-9](\\.[1-9])?$"
        },
        "packingGroup": {
          "type": "string",
          "description": "The specific packaging group of the item being shipped.",
          "enum": [
            "I",
            "II",
            "III"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "I",
              "description": "Packing group I indicates great danger."
            },
            {
              "value": "II",
              "description": "Packing group II indicates medium danger."
            },
            {
              "value": "III",
              "description": "Packing group III indicates minor danger."
            }
          ]
        },
        "packingInstruction": {
          "type": "string",
          "description": "The specific packing instruction of the item being shipped.",
          "enum": [
            "PI965_SECTION_IA",
            "PI965_SECTION_IB",
            "PI965_SECTION_II",
            "PI966_SECTION_I",
            "PI966_SECTION_II",
            "PI967_SECTION_I",
            "PI967_SECTION_II",
            "PI968_SECTION_IA",
            "PI968_SECTION_IB",
            "PI969_SECTION_I",
            "PI969_SECTION_II",
            "PI970_SECTION_I",
            "PI970_SECTION_II"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "PI965_SECTION_IA",
              "description": "Ion PI965 Section IA (LiBa)"
            },
            {
              "value": "PI965_SECTION_IB",
              "description": "Ion PI965 Section IB (LiBa)"
            },
            {
              "value": "PI965_SECTION_II",
              "description": "Ion PI965 Section II (LiBa)"
            },
            {
              "value": "PI966_SECTION_I",
              "description": "Ion PI966 Section I (LiBa with equipment)"
            },
            {
              "value": "PI966_SECTION_II",
              "description": "Ion PI966 Section II (LiBa with equipment)"
            },
            {
              "value": "PI967_SECTION_I",
              "description": "Ion PI967 Section I (LiBa in equipment)"
            },
            {
              "value": "PI967_SECTION_II",
              "description": "Ion PI967 Section II (LiBa in equipment)"
            },
            {
              "value": "PI968_SECTION_IA",
              "description": "Metal PI968 Section IA (LiBa)"
            },
            {
              "value": "PI968_SECTION_IB",
              "description": "Metal PI968 Section IB (LiBa)"
            },
            {
              "value": "PI969_SECTION_I",
              "description": "Metal PI969 Section I (LiBa with equipment)"
            },
            {
              "value": "PI969_SECTION_II",
              "description": "Metal PI969 Section II (LiBa with equipment)"
            },
            {
              "value": "PI970_SECTION_I",
              "description": "Metal PI970 Section I (LiBa in equipment)"
            },
            {
              "value": "PI970_SECTION_II",
              "description": "Metal PI970 Section II (LiBa in equipment)"
            }
          ]
        }
      },
      "description": "Details related to any dangerous goods/items that are being shipped."
    },
    "Dimensions": {
      "type": "object",
      "required": [
        "height",
        "length",
        "unit",
        "width"
      ],
      "properties": {
        "length": {
          "type": "number",
          "description": "The length of the package."
        },
        "width": {
          "type": "number",
          "description": "The width of the package."
        },
        "height": {
          "type": "number",
          "description": "The height of the package."
        },
        "unit": {
          "type": "string",
          "description": "The unit of measurement.",
          "enum": [
            "INCH",
            "CENTIMETER"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "INCH",
              "description": "The imperial unit of length equal to one twelfth of a foot."
            },
            {
              "value": "CENTIMETER",
              "description": "A metric unit of length, equal to one hundredth of a meter."
            }
          ]
        }
      },
      "description": "A set of measurements for a three-dimensional object."
    },
    "DirectFulfillmentItemIdentifiers": {
      "type": "object",
      "required": [
        "lineItemID"
      ],
      "properties": {
        "lineItemID": {
          "type": "string",
          "description": "A unique identifier for an item provided by the client for a direct fulfillment shipment. This is only populated for direct fulfillment multi-piece shipments. It is required if a vendor wants to change the configuration of the packages in which the purchase order is shipped."
        },
        "pieceNumber": {
          "type": "string",
          "description": "A unique identifier for an item provided by the client for a direct fulfillment shipment. This is only populated if a single line item has multiple pieces. Defaults to 1."
        }
      },
      "description": "Item identifiers for an item in a direct fulfillment shipment."
    },
    "Geocode": {
      "type": "object",
      "description": "Defines the latitude and longitude of the access point.",
      "properties": {
        "latitude": {
          "description": "The latitude of access point.",
          "type": "string"
        },
        "longitude": {
          "description": "The longitude of access point.",
          "type": "string"
        }
      }
    },
    "InvoiceDetails": {
      "description": "The invoice details for charges associated with the goods in the package. Only applies to certain regions.",
      "type": "object",
      "properties": {
        "invoiceNumber": {
          "type": "string",
          "description": "The invoice number of the item."
        },
        "invoiceDate": {
          "type": "string",
          "format": "date-time",
          "description": "The invoice date of the item in ISO 8061 format."
        }
      }
    },
    "Item": {
      "type": "object",
      "required": [
        "quantity"
      ],
      "properties": {
        "itemValue": {
          "$ref": "#/$defs/Currency"
        },
        "description": {
          "type": "string",
          "description": "The product description of the item."
        },
        "itemIdentifier": {
          "type": "string",
          "description": "A unique identifier for an item provided by the client."
        },
        "quantity": {
          "type": "integer",
          "description": "The number of units. This value is required."
        },
        "weight": {
          "$ref": "#/$defs/Weight"
        },
        "liquidVolume": {
          "$ref": "#/$defs/LiquidVolume"
        },
        "isHazmat": {
          "type": "boolean",
          "description": "When true, the item qualifies as hazardous materials (hazmat). Defaults to false."
        },
        "dangerousGoodsDetails": {
          "$ref": "#/$defs/DangerousGoodsDetails"
        },
        "productType": {
          "type": "string",
          "description": "The product type of the item."
        },
        "invoiceDetails": {
          "$ref": "#/$defs/InvoiceDetails"
        },
        "serialNumbers": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of unique serial numbers in an Amazon package that can be used to guarantee non-fraudulent items. The number of serial numbers in the list must be less than or equal to the quantity of items being shipped. Only applicable when channel source is Amazon."
        },
        "directFulfillmentItemIdentifiers": {
          "$ref": "#/$defs/DirectFulfillmentItemIdentifiers"
        }
      },
      "description": "An item in a package."
    },
    "ItemList": {
      "type": "array",
      "description": "A list of items.",
      "items": {
        "$ref": "#/$defs/Item"
      }
    },
    "LiquidVolume": {
      "type": "object",
      "required": [
        "unit",
        "value"
      ],
      "properties": {
        "unit": {
          "type": "string",
          "description": "The unit of measurement.",
          "enum": [
            "ML",
            "L",
            "FL_OZ",
            "GAL",
            "PT",
            "QT",
            "C"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "ML",
              "description": "Milliliter - Metric unit of volume."
            },
            {
              "value": "L",
              "description": "Liter - Metric unit of volume."
            },
            {
              "value": "FL_OZ",
              "description": "Fluid Ounce - Imperial unit of volume."
            },
            {
              "value": "GAL",
              "description": "Gallon - Imperial unit of volume."
            },
            {
              "value": "PT",
              "description": "Pint - Imperial unit of volume."
            },
            {
              "value": "QT",
              "description": "Quart - Imperial unit of volume."
            },
            {
              "value": "C",
              "description": "Cup - Imperial unit of volume."
            }
          ]
        },
        "value": {
          "type": "number",
          "description": "The measurement value."
        }
      },
      "description": "Liquid Volume."
    },
    "Package": {
      "type": "object",
      "required": [
        "dimensions",
        "insuredValue",
        "items",
        "packageClientReferenceId",
        "weight"
      ],
      "properties": {
        "dimensions": {
          "$ref": "#/$defs/Dimensions"
        },
        "weight": {
          "$ref": "#/$defs/Weight"
        },
        "insuredValue": {
          "$ref": "#/$defs/Currency"
        },
        "isHazmat": {
          "type": "boolean",
          "description": "When true, the package contains hazardous materials. Defaults to false."
        },
        "sellerDisplayName": {
          "type": "string",
          "description": "The seller name displayed on the label."
        },
        "charges": {
          "$ref": "#/$defs/ChargeList"
        },
        "packageClientReferenceId": {
          "$ref": "#/$defs/PackageClientReferenceId"
        },
        "items": {
          "$ref": "#/$defs/ItemList"
        }
      },
      "description": "A package to be shipped through a shipping service offering."
    },
    "PackageClientReferenceId": {
      "type": "string",
      "description": "A client provided unique identifier for a package being shipped. This value should be saved by the client to pass as a parameter to the getShipmentDocuments operation."
    },
    "PackageList": {
      "type": "array",
      "description": "A list of packages to be shipped through a shipping service offering.",
      "items": {
        "$ref": "#/$defs/Package"
      }
    },
    "PostalCode": {
      "type": "string",
      "description": "The postal code of that address. It contains a series of letters or digits or both, sometimes including spaces or punctuation."
    },
    "ShipmentType": {
      "type": "string",
      "description": "Shipment type.",
      "enum": [
        "FORWARD",
        "RETURNS"
      ],
      "x-docgen-enum-table-extension": [
        {
          "value": "FORWARD",
          "description": "Additional information about shipment representing package journey from origin address to destination address in the transportation/shipping request."
        },
        {
          "value": "RETURNS",
          "description": "Additional information about shipment representing package journey from destination address to origin/return address in the original transportation/shipping request."
        }
      ]
    },
    "ShipperInstruction": {
      "type": "object",
      "properties": {
        "deliveryNotes": {
          "type": "string",
          "description": "The delivery notes for the shipment",
          "maxLength": 256
        }
      },
      "description": "The shipper instruction."
    },
    "StateOrRegion": {
      "type": "string",
      "description": "The state, county or region where the person, business or institution is located."
    },
    "TaxDetail": {
      "description": "Indicates the tax specifications associated with the shipment for customs compliance purposes in certain regions.",
      "type": "object",
      "required": [
        "taxRegistrationNumber",
        "taxType"
      ],
      "properties": {
        "taxType": {
          "$ref": "#/$defs/TaxType"
        },
        "taxRegistrationNumber": {
          "description": "The shipper's tax registration number associated with the shipment for customs compliance purposes in certain regions.",
          "type": "string"
        }
      }
    },
    "TaxDetailList": {
      "type": "array",
      "description": "A list of tax detail information.",
      "items": {
        "$ref": "#/$defs/TaxDetail"
      }
    },
    "TaxType": {
      "type": "string",
      "description": "Indicates the type of tax.",
      "enum": [
        "GST"
      ],
      "x-docgen-enum-table-extension": [
        {
          "value": "GST",
          "description": "Goods and Services Tax."
        }
      ]
    },
    "ValueAddedServiceDetails": {
      "type": "object",
      "properties": {
        "collectOnDelivery": {
          "$ref": "#/$defs/CollectOnDelivery"
        }
      },
      "description": "A collection of supported value-added services."
    },
    "Weight": {
      "description": "The weight in the units indicated.",
      "type": "object",
      "required": [
        "unit",
        "value"
      ],
      "properties": {
        "unit": {
          "type": "string",
          "description": "The unit of measurement.",
          "enum": [
            "GRAM",
            "KILOGRAM",
            "OUNCE",
            "POUND"
          ],
          "x-docgen-enum-table-extension": [
            {
              "value": "GRAM",
              "description": "Metric unit of mass equal to one thousandth of a kilogram."
            },
            {
              "value": "KILOGRAM",
              "description": "Metric unit of mass."
            },
            {
              "value": "OUNCE",
              "description": "The imperial unit of weight that is one sixteenth of a pound."
            },
            {
              "value": "POUND",
              "description": "The imperial unit of weight."
            }
          ]
        },
        "value": {
          "type": "number",
          "description": "The measurement value."
        }
      }
    }
  }
}