Shippo

Shipping and logistics API

docs.goshippo.com ↗
Version
2018-02-08
OpenAPI
3.0.3
Endpoints
64
Schemas
213
Updated
3 days ago
Shipping shipping logistics ecommerce
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://api.goshippo.com

Authentication

apiKey

No endpoints found for this provider.

Schemas

object Address
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AddressBase"
    },
    {
      "required": [
        "country"
      ],
      "properties": {
        "test": {
          "type": "boolean",
          "example": false,
          "description": "Indicates whether the object has been created in test mode."
        },
        "object_id": {
          "type": "string",
          "example": "d799c2679e644279b59fe661ac8fa488",
          "description": "Unique identifier of the given Address object. \nThis ID is required to create a Shipment object."
        },
        "is_complete": {
          "type": "boolean",
          "example": true,
          "description": "Complete addresses contain all required values.<br><br>Incomplete addresses have failed one or multiple \nvalidations.<br>Incomplete Addresses are eligible for requesting rates but lack at least one required \nvalue for purchasing labels."
        },
        "object_owner": {
          "type": "string",
          "example": "shippotle@shippo.com",
          "description": "Username of the user who created the Address object."
        },
        "object_created": {
          "type": "string",
          "format": "date-time",
          "example": "2014-07-09T02:19:13.174Z",
          "description": "Date and time of Address creation."
        },
        "object_updated": {
          "type": "string",
          "format": "date-time",
          "example": "2014-07-09T02:19:13.174Z",
          "description": "Date and time of last Address update. Since you cannot update Addresses after they were created, this time \nstamp reflects the time when the Address was changed by Shippo's systems for the last time, e.g., during the \napproximation of one or more values."
        },
        "validation_results": {
          "$ref": "#/components/schemas/AddressValidationResults"
        }
      }
    }
  ]
}
object AddressBase
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "example": "94117",
      "description": "**required for purchase**<br>\nPostal code of an Address. When creating a Quote Addresses, sending a ZIP is optional but will yield more \naccurate Rates."
    },
    "city": {
      "type": "string",
      "example": "San Francisco",
      "description": "**required for purchase**<br>\nName of a city. When creating a Quote Address, sending a city is optional but will yield more accurate Rates. \nPlease bear in mind that city names may be ambiguous (there are 34 Springfields in the US). Pass in a state \nor a ZIP code (see below), if known, it will yield more accurate results."
    },
    "name": {
      "type": "string",
      "example": "Shwan Ippotle",
      "description": "**required for purchase**<br>\nFirst and Last Name of the addressee"
    },
    "email": {
      "type": "string",
      "example": "shippotle@shippo.com",
      "description": "E-mail address of the contact person, RFC3696/5321-compliant."
    },
    "phone": {
      "type": "string",
      "example": "+1 555 341 9393",
      "description": "Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This \nincreases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped.    "
    },
    "state": {
      "type": "string",
      "example": "CA",
      "description": "**required for purchase for some countries**<br>\nState/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some \ncountries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers \nonly accept two or three character state abbreviations."
    },
    "company": {
      "type": "string",
      "example": "Shippo",
      "description": "Company Name"
    },
    "country": {
      "type": "string",
      "example": "US",
      "description": "Example: `US` or `DE`. All accepted values can be found on the \n<a href=\"http://www.iso.org/\" target=\"blank\">Official ISO Website</a>.\nSending a country is always required."
    },
    "street1": {
      "type": "string",
      "example": "215 Clayton St.",
      "description": "**required for purchase**<br>\nFirst street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no)."
    },
    "street2": {
      "type": "string",
      "description": "Second street line, 35 character limit."
    },
    "street3": {
      "type": "string",
      "example": "",
      "description": "Third street line, 35 character limit. \nOnly accepted for USPS international shipments, UPS domestic and UPS international shipments."
    },
    "latitude": {
      "type": "number",
      "description": "Latitude of address"
    },
    "metadata": {
      "type": "string",
      "example": "Customer ID 123456",
      "description": "A string of up to 100 characters that can be filled with any additional information you want \nto attach to the object."
    },
    "longitude": {
      "type": "number",
      "description": "Longitude of address"
    },
    "street_no": {
      "type": "string",
      "example": "",
      "description": "Street number of the addressed building. \nThis field can be included in street1 for all carriers except for DHL Germany."
    },
    "is_residential": {
      "type": "boolean",
      "example": true
    }
  },
  "description": "Address represents the address as retrieved from the database"
}
object AddressCompleteCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AddressBase"
    },
    {
      "required": [
        "name",
        "street1",
        "city",
        "state",
        "zip",
        "country"
      ],
      "properties": {
        "validate": {
          "type": "boolean",
          "example": true
        }
      }
    }
  ]
}
object AddressCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/AddressBase"
    },
    {
      "required": [
        "country"
      ],
      "properties": {
        "validate": {
          "type": "boolean",
          "example": true,
          "description": "Set to true to validate Address object."
        }
      }
    }
  ]
}
object AddressImporter
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "example": "80331",
      "description": "Postal code of an Address."
    },
    "city": {
      "type": "string",
      "example": "München",
      "description": "Name of a city"
    },
    "name": {
      "type": "string",
      "example": "Shwan Ippotle",
      "description": "First and Last Name of the addressee"
    },
    "email": {
      "type": "string",
      "example": "shippotle@shippo.com",
      "description": "E-mail address of the contact person, RFC3696/5321-compliant."
    },
    "phone": {
      "type": "string",
      "example": "80331",
      "description": "Addresses containing a phone number allow carriers to call the recipient when delivering the Parcel. This \nincreases the probability of delivery and helps to avoid accessorial charges after a Parcel has been shipped.    "
    },
    "state": {
      "type": "string",
      "example": "CA",
      "description": "**required for purchase for some countries**<br>\nState/Province values are required for shipments from/to the US, AU, and CA. UPS requires province for some \ncountries (i.e Ireland). To receive more accurate quotes, passing this field is recommended. Most carriers \nonly accept two or three character state abbreviations."
    },
    "company": {
      "type": "string",
      "example": "Shippo",
      "description": "Company Name"
    },
    "country": {
      "type": "string",
      "example": "DE",
      "description": "Example: `US` or `DE`. All accepted values can be found on the \n<a href=\"http://www.iso.org/\" target=\"blank\">Official ISO Website</a>.\nSending a country is always required."
    },
    "street1": {
      "type": "string",
      "example": "Blumenstraße",
      "description": "First street line, 35 character limit. Usually street number and street name (except for DHL Germany, see street_no)."
    },
    "street2": {
      "type": "string",
      "description": "Second street line, 35 character limit."
    },
    "street3": {
      "type": "string",
      "example": "",
      "description": "Third street line, 35 character limit. \nOnly accepted for USPS international shipments, UPS domestic and UPS international shipments."
    },
    "street_no": {
      "type": "string",
      "example": "22",
      "description": "Street number of the addressed building. \nThis field can be included in street1 for all carriers except for DHL Germany."
    },
    "is_residential": {
      "type": "boolean",
      "example": true,
      "description": "Indicates whether the address provided is a residential address or not."
    }
  },
  "description": "Object that represents the address of the importer"
}
object AddressImporterResponse
{
  "properties": {
    "object_id": {
      "type": "string",
      "example": "7506ccbb65a34a8a9ac2cc4a89e820d2",
      "description": "ID of importer address object"
    }
  }
}
object AddressPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Address"
          }
        }
      }
    }
  ]
}
object AddressValidationResults
{
  "type": "object",
  "properties": {
    "is_valid": {
      "type": "boolean",
      "example": false
    },
    "messages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/AddressValidationResultsMessage"
      }
    }
  },
  "description": "Object that contains information regarding if an address had been validated or not. Also contains any messages \ngenerated during validation. Children keys are <code>is_valid</code>(boolean) and <code>messages</code>(array)."
}
object AddressValidationResultsMessage
{
  "type": "object",
  "properties": {
    "code": {
      "enum": [
        "verification_error",
        "unknown_street",
        "component_mismatch_error",
        "multiple_match",
        "sub_premise_number_invalid",
        "sub_premise_number_missing",
        "premise_number_invalid",
        "premise_number_missing",
        "box_number_invalid",
        "box_number_missing",
        "pmb_number_missing",
        "postal_code_change",
        "administrative_area_change",
        "locality_change",
        "dependent_locality_change",
        "street_name_change",
        "street_type_change",
        "street_directional_change",
        "sub_premise_type_change",
        "sub_premise_number_change",
        "double_dependent_locality_change",
        "subadministrative_area_change",
        "subnational_area_change",
        "po_box_change",
        "premise_type_change",
        "house_number_change",
        "organization_change",
        "extraneous_information",
        "usps_door_inaccessible",
        "administrative_area_partial",
        "city_partial",
        "street_partial",
        "building_partial",
        "subpremise_partial",
        "administrative_area_full",
        "city_full",
        "thoroughfare_full",
        "premises_full",
        "subpremise_full",
        "geocoded_street",
        "geocoded_neighborhood",
        "geocoded_community",
        "geocoded_state",
        "geocoded_rooftop",
        "geocoded_interpolated_rooftop",
        "invalid_postal_code",
        "postal_code_not_found",
        "empty_request",
        "service_error",
        "street_detail_missing",
        "Invalid City/State/Zip",
        "Default Match",
        "Unknown Street",
        "Address Not Found",
        "Non-Deliverable ZIP4",
        "Multiple Responses",
        "Invalid Dual Address",
        "Invalid State",
        "Invalid City",
        "Ambiguous Address"
      ],
      "type": "string",
      "example": "Unknown Street"
    },
    "text": {
      "type": "string",
      "example": "City, State and ZIP Code are valid, but street address is not a match."
    },
    "type": {
      "type": "string",
      "example": "address_warning"
    },
    "source": {
      "enum": [
        "Shippo Address Validator",
        "UPS"
      ],
      "type": "string",
      "example": "Shippo Address Validator"
    }
  }
}
object Alcohol
{
  "type": "object",
  "properties": {
    "recipient_type": {
      "enum": [
        "licensee",
        "consumer"
      ],
      "type": "string",
      "description": "Mandatory for Fedex only. License type of the recipient of the Alcohol Package."
    },
    "contains_alcohol": {
      "type": "boolean",
      "description": "Mandatory for Fedex and UPS. Specifies that the package contains Alcohol."
    }
  },
  "description": "Indicates that a shipment contains Alcohol (Fedex and UPS only)."
}
object AmountAndCurrencyCharged
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "string",
      "example": "5.52",
      "description": "The money amount"
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "The currency that 'amount' is in. The official ISO 4217 currency codes are used, e.g. \"USD\" or \"EUR\".\n<a href=\"http://www.xe.com/iso4217.php\" target=\"blank\">ISO 4217 Standard</a>."
    }
  },
  "description": "The amount and currency that was charged after possible currency conversion occurred."
}
object AmountAndCurrencyInvoiced
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "string",
      "example": "5.52",
      "description": "The money amount"
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "The currency that 'amount' is in. The official ISO 4217 currency codes are used, e.g. \"USD\" or \"EUR\".\n<a href=\"http://www.xe.com/iso4217.php\" target=\"blank\">ISO 4217 Standard</a>."
    }
  },
  "description": "The amount and currency."
}
object BadRequestWithDetail
{
  "type": "object",
  "properties": {
    "detail": {
      "type": "string",
      "example": "Your registration unfortunately failed due to the following UPS error: Missing or invalid ControlID."
    }
  }
}
object BadRequestWithError
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string",
      "example": "Only US shippers can create a new USPS account"
    }
  }
}
object Batch
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BatchBase"
    },
    {
      "required": [
        "object_id",
        "object_owner",
        "status",
        "object_created",
        "object_updated",
        "batch_shipments",
        "object_results",
        "label_url"
      ],
      "properties": {
        "test": {
          "type": "boolean",
          "example": false
        },
        "status": {
          "enum": [
            "VALIDATING",
            "VALID",
            "INVALID",
            "PURCHASING",
            "PURCHASED"
          ],
          "type": "string",
          "example": "VALID",
          "description": "Batches that are `VALIDATING` are being created and validated<br>\n`VALID` batches can be purchased<br>\n`INVALID` batches cannot be purchased, `INVALID` BatchShipments must be removed<br>\nBatches that are in the `PURCHASING` state are being purchased<br>\n`PURCHASED` batches are finished purchasing."
        },
        "label_url": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of URLs each pointing to a merged file of 100 labels each"
        },
        "object_id": {
          "type": "string",
          "example": "5ef63c54f5bf45d3b1f8fb37dcb1c5f4",
          "description": "Unique identifier of the given Batch object"
        },
        "object_owner": {
          "type": "string",
          "example": "shippo@shippo.com",
          "description": "Username of the user who created the Address object."
        },
        "object_created": {
          "type": "string",
          "example": "2016-01-04T00:15:44.394Z",
          "description": "Date and time of Batch creation"
        },
        "object_results": {
          "type": "object",
          "required": [
            "purchase_failed",
            "purchase_succeeded",
            "creation_failed",
            "creation_succeeded"
          ],
          "properties": {
            "creation_failed": {
              "type": "integer",
              "format": "int64",
              "example": 3
            },
            "purchase_failed": {
              "type": "integer",
              "format": "int64",
              "example": 0
            },
            "creation_succeeded": {
              "type": "integer",
              "format": "int64",
              "example": 5
            },
            "purchase_succeeded": {
              "type": "integer",
              "format": "int64",
              "example": 0
            }
          },
          "description": "An object containing the following counts:<br>`creation_succeeded`<br>`creation_failed`<br>`purchase_succeeded`<br>`purchase_failed`"
        },
        "object_updated": {
          "type": "string",
          "example": "2016-01-04T00:48:13.841Z",
          "description": "Date and time of last update to the Batch"
        },
        "batch_shipments": {
          "$ref": "#/components/schemas/BatchShipmentPaginatedList"
        }
      }
    }
  ]
}
object BatchBase
{
  "type": "object",
  "required": [
    "default_carrier_account",
    "default_servicelevel_token"
  ],
  "properties": {
    "metadata": {
      "type": "string",
      "example": "BATCH #1",
      "maxLength": 100,
      "description": "A string of up to 100 characters that can be filled with any additional information you want to attach to the object."
    },
    "label_filetype": {
      "$ref": "#/components/schemas/LabelFileTypeEnum"
    },
    "default_carrier_account": {
      "type": "string",
      "example": "078870331023437cb917f5187429b093",
      "description": "ID of the Carrier Account object to use as the default for all shipments in this Batch. \nThe carrier account can be changed on a per-shipment basis by changing the carrier_account in the \ncorresponding BatchShipment object."
    },
    "default_servicelevel_token": {
      "type": "string",
      "example": "usps_priority",
      "description": "Token of the service level to use as the default for all shipments in this Batch. \nThe servicelevel can be changed on a per-shipment basis by changing the servicelevel_token in the \ncorresponding BatchShipment object. <a href=\"#tag/Service-Levels\">Servicelevel tokens can be found here.</a>"
    }
  }
}
object BatchCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BatchBase"
    },
    {
      "required": [
        "batch_shipments"
      ],
      "properties": {
        "batch_shipments": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BatchShipmentBase"
          },
          "description": "Array of BatchShipment objects. The response keeps the same order as in the request array."
        }
      }
    }
  ]
}
object BatchShipment
{
  "allOf": [
    {
      "$ref": "#/components/schemas/BatchShipmentBase"
    },
    {
      "required": [
        "shipment",
        "object_id",
        "status"
      ],
      "properties": {
        "status": {
          "enum": [
            "INVALID",
            "VALID",
            "INCOMPLETE",
            "TRANSACTION_FAILED"
          ],
          "type": "string",
          "example": "INVALID",
          "description": "`INVALID` batch shipments cannot be purchased and will have to be removed, fixed, and added to the batch again.<br>\n`VALID` batch shipments can be purchased. <br>\nBatch shipments with the status `TRANSACTION_FAILED` were not able to be purchased and the error will be displayed on the message field<br> \n`INCOMPLETE` batch shipments have an issue with the Address and will need to be removed, fixed, and added to the batch again."
        },
        "messages": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ErrorMessage"
          },
          "description": "List of Shipment and Transaction error messages."
        },
        "object_id": {
          "type": "string",
          "example": "e11c95a6788d4ddcaa22f03175838740",
          "description": "Object ID of this batch shipment. Can be used in the remove_shipments endpoint."
        },
        "transaction": {
          "type": "string",
          "example": "4c33736a67e2450da88b38c42deef6b7",
          "description": "Object ID of the transaction object created for this batch shipment."
        }
      }
    }
  ]
}
object BatchShipmentBase
{
  "type": "object",
  "required": [
    "shipment"
  ],
  "properties": {
    "metadata": {
      "type": "string",
      "example": "SHIPMENT #1",
      "maxLength": 100,
      "description": "A string of up to 100 characters that can be filled with any additional information you want \nto attach to the object."
    },
    "shipment": {
      "$ref": "#/components/schemas/ShipmentCreateRequest"
    },
    "carrier_account": {
      "type": "string",
      "example": "a4391cd4ab974f478f55dc08b5c8e3b3",
      "description": "Object ID of the carrier account to be used for this shipment (will override batch default)"
    },
    "servicelevel_token": {
      "type": "string",
      "example": "fedex_ground",
      "description": "A token that sets the shipping method for the batch, overriding the batch default. \nServicelevel tokens can be found <a href=\"#tag/Service-Levels\">in this list</a> \nor <a href=\"#operation/ListCarrierAccounts\">at this endpoint</a>."
    }
  }
}
object BatchShipmentPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/BatchShipment"
          }
        }
      },
      "description": "Array of <a href=\"#section/Batch-Shipment\">BatchShipment</a> objects. \nThe response keeps the same order as in the request array."
    }
  ]
}
array BatchesAddShipmentsToBatchRequest
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/BatchShipmentBase"
  }
}
array BatchesRemoveShipmentsRequest
{
  "type": "array",
  "items": {
    "type": "string"
  }
}
object Billing
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "description": "ZIP code of account number to be billed (required for UPS if there is a zip on the billing account)."
    },
    "type": {
      "enum": [
        "SENDER",
        "RECIPIENT",
        "THIRD_PARTY",
        "THIRD_PARTY_CONSIGNEE",
        "COLLECT"
      ],
      "type": "string",
      "description": "Party to be billed. (Leave blank for DHL Germany.)"
    },
    "account": {
      "type": "string",
      "description": "Account number to be billed. (For DHL Germany, leave this field blank.)"
    },
    "country": {
      "type": "string",
      "format": "iso-3166",
      "description": "Country iso2 code of account number to be billed (required for UPS third party billing only)."
    },
    "participation_code": {
      "type": "string",
      "description": "2 digit code used to override your default participation code associated with your DHL Germany account."
    }
  },
  "description": "Specify billing details (UPS, FedEx, and DHL Germany only)."
}
object COD
{
  "type": "object",
  "title": "COD Specify collection on delivery details (UPS only).",
  "properties": {
    "amount": {
      "type": "string",
      "example": "5.5",
      "description": "Amount to be collected."
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "Currency for the amount to be collected. Currently only USD is supported for UPS."
    },
    "payment_method": {
      "enum": [
        "SECURED_FUNDS",
        "CASH",
        "ANY"
      ],
      "type": "string",
      "example": "CASH",
      "description": "Secured funds include money orders, certified cheques and others (see \n<a href=\"https://www.ups.com/content/us/en/shipping/time/service/value_added/cod.html\">UPS</a> for details). \nIf no payment_method inputted the value defaults to \"ANY\".)"
    }
  },
  "description": "Specify collection on delivery details (UPS only)."
}
object CarrierAccount
{
  "allOf": [
    {
      "$ref": "#/components/schemas/CarrierAccountBase"
    },
    {
      "properties": {
        "test": {
          "type": "boolean",
          "example": false,
          "description": "Indicates whether the object has been created in test mode."
        },
        "metadata": {
          "type": "string"
        },
        "object_id": {
          "type": "string",
          "example": "6aa34d5f6865448fbb1ee93636e98999",
          "description": "Unique identifier of the carrier account object."
        },
        "carrier_name": {
          "example": "USPS",
          "description": "Carrier name, see <a href=\"#tag/Carriers\">Carriers</a><br>"
        },
        "object_owner": {
          "type": "string",
          "example": "bob+22@gmail.com",
          "description": "Username of the user who created the carrier account object."
        },
        "service_levels": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CarrierAccountServiceLevel"
          }
        },
        "is_shippo_account": {
          "type": "boolean",
          "example": false
        }
      }
    }
  ]
}
object CarrierAccountBase
{
  "type": "object",
  "required": [
    "carrier",
    "account_id"
  ],
  "properties": {
    "active": {
      "type": "boolean",
      "description": "Determines whether the account is active. When creating a shipment, if no `carrier_accounts` are explicitly \npassed Shippo will query all carrier accounts that have this field set. By default, this is set to True."
    },
    "carrier": {
      "type": "string",
      "example": "usps",
      "description": "Carrier token, see <a href=\"#tag/Carriers\">Carriers</a><br>\nPlease check the <a href=\"https://docs.goshippo.com/docs/carriers/carrieraccounts/\">carrier accounts tutorial</a> page for all supported carriers."
    },
    "account_id": {
      "type": "string",
      "example": "****",
      "description": "Unique identifier of the account. Please check the <a href=\"https://docs.goshippo.com/docs/carriers/carrieraccounts/\">carrier accounts tutorial</a> \npage for the `account_id` per carrier.<br> \nTo protect account information, this field will be masked in any API response."
    },
    "parameters": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/ConnectExistingOwnAccountParameters"
        },
        {
          "$ref": "#/components/schemas/UPSConnectExistingOwnAccountParameters"
        }
      ]
    }
  }
}
object CarrierAccountCanadaPostCreateParameters
{
  "type": "object",
  "required": [
    "company",
    "phone",
    "full_name",
    "email",
    "canada_post_terms"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "hippo@shippo.com"
    },
    "phone": {
      "type": "string",
      "example": "1112223333",
      "description": "Needs to be a valid phone number and cannot be null"
    },
    "company": {
      "type": "string",
      "example": "Shippo"
    },
    "full_name": {
      "type": "string",
      "example": "Shippo Meister"
    },
    "canada_post_terms": {
      "type": "boolean",
      "description": "Whether or not the user agrees to Canada Post's terms. If passed in as false, request will fail with error 400"
    }
  }
}
object CarrierAccountCanadaPostCreateRequest
{
  "type": "object",
  "title": "Shippo Canada Post account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "canada_post"
    },
    "parameters": {
      "$ref": "#/components/schemas/CarrierAccountCanadaPostCreateParameters"
    }
  }
}
object CarrierAccountChronopostCreateRequest
{
  "type": "object",
  "title": "Shippo Chronopost account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "chronopost"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountColissimoCreateRequest
{
  "type": "object",
  "title": "Shippo Colissimo account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "colissimo"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountCorreosCreateRequest
{
  "type": "object",
  "title": "Shippo Correos account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "correos"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountDHLExpressCreateRequest
{
  "type": "object",
  "title": "Shippo DHL Express account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "dhl_express"
    },
    "parameters": {
      "$ref": "#/components/schemas/CarrierAccountDHLExpressCreateRequestParameters"
    }
  }
}
object CarrierAccountDHLExpressCreateRequestParameters
{
  "type": "object",
  "required": [
    "user_accepted_terms_and_conditions"
  ],
  "properties": {
    "user_accepted_terms_and_conditions": {
      "type": "boolean",
      "description": "Whether or not the user agrees to the DHL Express Terms and Conditions. If passed in as false, request will fail with error 400"
    }
  }
}
object CarrierAccountDPDUKCreateRequest
{
  "type": "object",
  "title": "Shippo DPD UK account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "dpd_uk"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountDeutschePostCreateRequest
{
  "type": "object",
  "title": "Shippo Deutsche Post account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "deustche_post"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountDpdDeCreateRequest
{
  "type": "object",
  "title": "Shippo DPD DE account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "dpd_de"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountFedExCreateRequest
{
  "type": "object",
  "title": "Shippo FedEx account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "fedex"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountHermesUKCreateRequest
{
  "type": "object",
  "title": "Shippo Evri UK account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "hermes_uk"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountMondialRelayCreateRequest
{
  "type": "object",
  "title": "Shippo Mondial Relay account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "mondialrelay"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CarrierAccountWithExtraInfo"
          }
        }
      }
    }
  ]
}
object CarrierAccountPosteItalianeCreateRequest
{
  "type": "object",
  "title": "Shippo Poste Italiane account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "poste_italiane"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountRegistrationStatus
{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "example": "PENDING_TERMS"
    },
    "object_owner": {
      "type": "string",
      "example": "tom@gmail.com"
    },
    "object_created": {
      "type": "string",
      "format": "date-time"
    },
    "object_updated": {
      "type": "string",
      "format": "date-time"
    },
    "carrier_account": {
      "type": "string",
      "example": "99dc410d295b4a168993cc38809cb123"
    }
  }
}
object CarrierAccountServiceLevel
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Priority Mail Express",
      "description": "Service level name, e.g. `Priority Mail` or `FedEx Ground®`. \nA service level commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties. \nThese names vary depending on the provider.<br>\nSee <a href=\"#tag/Service-Levels\">Service Levels</a>."
    },
    "token": {
      "type": "string",
      "example": "usps_priority_express",
      "description": "Service level token, e.g. `usps_priority` or `fedex_ground`.<br>\nSee <a href=\"#tag/Service-Levels\">Service Levels</a>."
    },
    "supports_return_labels": {
      "type": "boolean",
      "example": true,
      "description": "Whether or not the service level supports return labels."
    }
  },
  "description": "Contains details regarding the service level for the carrier account."
}
object CarrierAccountUPSCreateRequest
{
  "type": "object",
  "title": "Shippo UPS account",
  "required": [
    "carrier"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "ups"
    },
    "parameters": {
      "$ref": "#/components/schemas/CarrierAccountUPSCreateRequestParameters"
    }
  }
}
object CarrierAccountUPSCreateRequestParameters
{
  "type": "object",
  "required": [
    "ups_agreements",
    "billing_address_street1",
    "billing_address_city",
    "billing_address_zip",
    "billing_address_state",
    "billing_address_country_iso2",
    "pickup_address_street1",
    "pickup_address_city",
    "pickup_address_zip",
    "pickup_address_state",
    "pickup_address_country_iso2"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "hippo@shippo.com"
    },
    "phone": {
      "type": "string",
      "example": "1112223333",
      "description": "Needs to be a valid phone number and cannot be null"
    },
    "company": {
      "type": "string",
      "example": "Shippo",
      "description": "Company name. Full name is acceptable in this field if the user has no company name"
    },
    "full_name": {
      "type": "string",
      "example": "Shippo Meister"
    },
    "ups_agreements": {
      "type": "boolean",
      "description": "Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false"
    },
    "pickup_address_zip": {
      "type": "string",
      "example": "94103",
      "maxLength": 5,
      "minLength": 5,
      "description": "User's pickup address zip code."
    },
    "billing_address_zip": {
      "type": "string",
      "example": "94103",
      "maxLength": 5,
      "minLength": 5
    },
    "pickup_address_city": {
      "type": "string",
      "example": "San Francisco",
      "description": "User's pickup address city."
    },
    "billing_address_city": {
      "type": "string",
      "example": "San Francisco"
    },
    "pickup_address_state": {
      "type": "string",
      "example": "CA",
      "maxLength": 2,
      "minLength": 2,
      "description": "User's pickup address state."
    },
    "billing_address_state": {
      "type": "string",
      "example": "CA",
      "maxLength": 2,
      "minLength": 2
    },
    "pickup_address_street1": {
      "type": "string",
      "example": "731 Market St",
      "description": "User's pickup address street 1."
    },
    "pickup_address_street2": {
      "type": "string",
      "example": "STE 200",
      "description": "User's pickup street 2."
    },
    "billing_address_street1": {
      "type": "string",
      "example": "731 Market St"
    },
    "billing_address_street2": {
      "type": "string",
      "example": "STE 200",
      "description": "Empty string acceptable for billing_address_street2"
    },
    "pickup_address_country_iso2": {
      "type": "string",
      "example": "US",
      "maxLength": 2,
      "minLength": 2,
      "description": "User's pickup street 1."
    },
    "billing_address_country_iso2": {
      "type": "string",
      "example": "US",
      "maxLength": 2,
      "minLength": 2
    },
    "pickup_address_same_as_billing_address": {
      "type": "boolean",
      "example": false
    }
  }
}
object CarrierAccountUSPSCreateRequest
{
  "type": "object",
  "title": "Shippo USPS account",
  "required": [
    "carrier",
    "parameters"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "usps"
    },
    "parameters": {
      "type": "object"
    }
  }
}
object CarrierAccountWithExtraInfo
{
  "allOf": [
    {
      "$ref": "#/components/schemas/CarrierAccount"
    },
    {
      "properties": {
        "object_info": {
          "type": "object",
          "properties": {
            "authentication": {
              "type": "object",
              "properties": {
                "type": {
                  "enum": [
                    "default",
                    "oauth"
                  ],
                  "type": "string",
                  "description": "Authentication method used by this account."
                },
                "status": {
                  "enum": [
                    "disconnected",
                    "connected",
                    "authorization_pending"
                  ],
                  "type": "string",
                  "description": "Current authentication status. Possible values: 'disconnected' (authorization lost, reconnect needed), 'connected' (authorized and active), 'authorization_pending' (awaiting initial authorization flow)."
                }
              }
            }
          },
          "description": "Holds internal state relevant to users."
        }
      }
    }
  ]
}
object CarrierAccountsAddShippoAccountRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/CarrierAccountCanadaPostCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountChronopostCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountColissimoCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountCorreosCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountDeutschePostCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountDHLExpressCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountDpdDeCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountDPDUKCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountFedExCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountHermesUKCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountMondialRelayCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountPosteItalianeCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountUPSCreateRequest"
    },
    {
      "$ref": "#/components/schemas/CarrierAccountUSPSCreateRequest"
    }
  ]
}
object CarrierAccountsInitiateSignIn401Response
{
  "type": "object",
  "example": {},
  "properties": {}
}
object CarrierAccountsInitiateSignIn422Response
{
  "type": "object",
  "example": {},
  "properties": {}
}
object CarrierAccountsInitiateSignInResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object CarrierParcelTemplate
{
  "type": "object",
  "title": "CarrierParcelTemplate represents the fields of a template before saving it to the db.",
  "properties": {
    "name": {
      "type": "string",
      "example": "FedEx® Small Box (S1)",
      "description": "The name of the carrier parcel template"
    },
    "token": {
      "type": "string",
      "example": "FedEx_Box_Small_1",
      "description": "The unique string representation of the carrier parcel template"
    },
    "width": {
      "type": "string",
      "example": "10.875",
      "description": "The width of the package, in units specified by the distance_unit attribute"
    },
    "height": {
      "type": "string",
      "example": "1.5",
      "description": "The height of the package, in units specified by the distance_unit attribute"
    },
    "length": {
      "type": "string",
      "example": "12.375",
      "description": "The length of the package, in units specified by the distance_unit attribute"
    },
    "carrier": {
      "type": "string",
      "example": "FedEx",
      "description": "The name of the carrier that provides this parcel template"
    },
    "distance_unit": {
      "$ref": "#/components/schemas/DistanceUnitEnum"
    },
    "is_variable_dimensions": {
      "type": "string",
      "example": "false",
      "description": "True if the carrier parcel template allows custom dimensions, such as USPS Softpack."
    }
  }
}
array CarrierParcelTemplatesListAllCarrierParcelTemplatesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CarrierParcelTemplate"
  }
}
string CarriersEnum
{
  "enum": [
    "airterra",
    "apc_postal",
    "apg",
    "aramex",
    "asendia_us",
    "australia_post",
    "axlehire",
    "better_trucks",
    "borderguru",
    "boxberry",
    "bring",
    "canada_post",
    "cdl",
    "chronopost",
    "collect_plus",
    "correios_br",
    "correos_espana",
    "couriersplease",
    "colissimo",
    "deutsche_post",
    "dhl_benelux",
    "dhl_ecommerce",
    "dhl_express",
    "dhl_germany_c2c",
    "dhl_germany",
    "dpd_de",
    "dpd_uk",
    "estafeta",
    "fastway_australia",
    "fedex",
    "globegistics",
    "gls_us",
    "gophr",
    "gso",
    "hermes_germany_b2c",
    "hermes_uk",
    "hongkong_post",
    "lasership",
    "lso",
    "mondial_relay",
    "new_zealand_post",
    "nippon_express",
    "ontrac",
    "orangeds",
    "parcelforce",
    "parcel",
    "passport",
    "pcf",
    "poste_italiane",
    "posti",
    "purolator",
    "royal_mail",
    "rr_donnelley",
    "russian_post",
    "sendle",
    "skypostal",
    "stuart",
    "swyft",
    "uds",
    "ups",
    "usps",
    "veho",
    "x_delivery",
    "yodel"
  ],
  "type": "string",
  "description": "|Token | Carrier name|\n|:---|:---|\n| airterra | Airterra |\n| apc_postal | APC Postal|\n| apg | APG|\n| aramex | Aramex|\n| asendia_us | Asendia US|\n| australia_post | Australia Post (also used for Startrack)|\n| axlehire | Axlehire|\n| better_trucks | BetterTrucks|\n| borderguru | BorderGuru|\n| boxberry | Boxberry|\n| bring | Bring (also used for Posten Norge)|\n| canada_post | Canada Post|\n| cdl | CDL|\n| chronopost | Chronopost|\n| collect_plus | CollectPlus|\n| correios_br | CorreiosBR|\n| correos_espana | Correos España |\n| couriersplease | Couriers Please|\n| colissimo | Colissimo|\n| deutsche_post | Deutsche Post|\n| dhl_benelux | DHL Benelux|\n| dhl_ecommerce | DHL eCommerce|\n| dhl_express | DHL Express|\n| dhl_germany_c2c | DHL Germany C2C|\n| dhl_germany | DHL Germany|\n| dpd_de | DPD GERMANY|\n| dpd_uk | DPD UK|\n| estafeta | Estafeta|\n| fastway_australia | Aramex|\n| fedex | FedEx|\n| globegistics | Globegistics (now Asendia)|\n| gls_us | GLS US|\n| gophr | Gophr|\n| gso | GSO|\n| hermes_germany_b2c | Hermes Germany B2C|\n| hermes_uk | Evri UK |\n| hongkong_post | Hongkong Post|\n| lasership | LaserShip|\n| lso | LSO|\n| mondial_relay | Mondial Relay|\n| new_zealand_post | New Zealand Post (also used for Pace and CourierPost)|\n| nippon_express | Nippon Express|\n| ontrac | OnTrac|\n| orangeds | OrangeDS|\n| parcelforce | Parcelforce|\n| parcel | Parcel|\n| passport | Passport|\n| pcf | PCF|\n| poste_italiane | Poste Italiane |\n| posti | Posti|\n| purolator | Purolator|\n| royal_mail | Royal Mail|\n| rr_donnelley | ePost Global|\n| russian_post | Russian Post|\n| sendle | Sendle|\n| skypostal | SkyPostal|\n| stuart | Stuart|\n| swyft | Swyft|\n| uds | UDS (United Delivery Service)|\n| ups | UPS|\n| usps | USPS|\n| veho | Veho |\n| x_delivery | X Delivery (now Maergo)|\n| yodel | Yodel|\n"
}
object ConnectExistingOwnAccountParameters
{
  "title": "Account parameters",
  "description": "An array of additional parameters for the account, such as e.g. password or token. Please check our \n<a href=\"https://docs.goshippo.com/docs/carriers/carrieraccounts/\">carrier accounts guide</a> \nfor the parameters per carrier.\nTo protect account information, this field will be masked in any API response.\n",
  "additionalProperties": true
}
object ConnectExistingOwnAccountRequest
{
  "type": "object",
  "title": "Account parameters",
  "required": [
    "carrier",
    "account_id",
    "parameters"
  ],
  "properties": {
    "test": {
      "type": "boolean",
      "example": false
    },
    "active": {
      "type": "boolean"
    },
    "carrier": {
      "type": "string",
      "example": "fedex"
    },
    "metadata": {
      "type": "string",
      "example": "FEDEX Account"
    },
    "account_id": {
      "type": "string",
      "example": "321123"
    },
    "parameters": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/ConnectExistingOwnAccountParameters"
        },
        {
          "$ref": "#/components/schemas/UPSConnectExistingOwnAccountParameters"
        }
      ]
    }
  }
}
object ConversionAmount
{
  "type": "object",
  "properties": {
    "rate": {
      "type": "string",
      "example": "0.89",
      "description": "Currency conversion rate, relative to USD, that was used to calculate the converted amount."
    },
    "time": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time the currency conversion took place."
    },
    "amount": {
      "type": "string",
      "example": "4.91",
      "description": "The money amount after currency conversion."
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "The currency that 'amount' is in. The official ISO 4217 currency codes are used, e.g. \"USD\" or \"EUR\".\n<a href=\"http://www.xe.com/iso4217.php\" target=\"blank\">ISO 4217 Standard</a>."
    }
  },
  "description": "Invoice Item's amount after currency conversion took place."
}
object CreateNewOwnUPSAccountRequest
{
  "type": "object",
  "required": [
    "account_id",
    "parameters",
    "active"
  ],
  "properties": {
    "test": {
      "type": "boolean",
      "example": false
    },
    "active": {
      "type": "boolean"
    },
    "carrier": {
      "type": "string",
      "example": "ups"
    },
    "metadata": {
      "type": "string",
      "example": "UPS Account"
    },
    "account_id": {
      "type": "string",
      "description": "This field is required as input to the API, but is not used for UPS. Use the empty string."
    },
    "parameters": {
      "$ref": "#/components/schemas/UPSCreateNewOwnAccountParameters"
    }
  }
}
object CustomerReference
{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label for customer reference. Up to 40 characters. If \nthis is provided, reference_1 will be ignored."
    },
    "prefix": {
      "type": "string",
      "description": "Custom prefix for customer reference field (ZPL labels only). Up to 11 characters, including trailing \nspaces. Empty string indicates removal of default prefix. To use the default prefix, do not include\nthis property."
    }
  },
  "description": "Specify the reference field on the label (FedEx only)."
}
object CustomsDeclaration
{
  "allOf": [
    {
      "$ref": "#/components/schemas/CustomsDeclarationBase"
    },
    {
      "required": [
        "items"
      ],
      "properties": {
        "test": {
          "type": "boolean",
          "example": true,
          "description": "Indicates whether the object has been created in test mode."
        },
        "items": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "5087f181d1dc4b14b73fdbf636498886"
          ],
          "description": "Distinct Parcel content items as Customs Items object_ids."
        },
        "object_id": {
          "type": "string",
          "example": "e2197a54da9d470480f4f8796cc419cb",
          "description": "Unique identifier of the given object."
        },
        "object_owner": {
          "type": "string",
          "example": "shippotle@shippo.com",
          "description": "Username of the user who created the object."
        },
        "object_state": {
          "$ref": "#/components/schemas/ObjectStateEnum"
        },
        "object_created": {
          "type": "string",
          "format": "date-time",
          "example": "2014-07-17T01:01:08.306Z",
          "description": "Date and time of object creation."
        },
        "object_updated": {
          "type": "string",
          "format": "date-time",
          "example": "2014-07-17T01:01:08.306Z",
          "description": "Date and time of last object update."
        },
        "address_importer": {
          "type": "object",
          "example": "257ba08436604d2aaf069caafe7acb2a",
          "description": "Object ID of the Importer address."
        },
        "invoiced_charges": {
          "$ref": "#/components/schemas/CustomsInvoicedCharges"
        },
        "exporter_identification": {
          "$ref": "#/components/schemas/CustomsExporterIdentification"
        }
      }
    }
  ]
}
string CustomsDeclarationB13AFilingOptionEnum
{
  "enum": [
    "FILED_ELECTRONICALLY",
    "SUMMARY_REPORTING",
    "NOT_REQUIRED"
  ],
  "type": "string",
  "description": "B13A Option details are obtained by filing a B13A Canada Export Declaration via the Canadian Export Reporting System (CERS). \n<a href=\"https://www.cbsa-asfc.gc.ca/services/export/guide-eng.html\" target=\"_blank\" rel=\"noopener noreferrer\"> More information on reporting commercial exports from Canada. </a>"
}
object CustomsDeclarationBase
{
  "type": "object",
  "required": [
    "certify_signer",
    "certify",
    "non_delivery_option",
    "contents_type"
  ],
  "properties": {
    "notes": {
      "type": "string",
      "description": "Additional notes to be included in the customs declaration."
    },
    "aes_itn": {
      "type": "string",
      "description": "**required if eel_pfc is `AES_ITN`**<br>\nAES / ITN reference of the shipment."
    },
    "certify": {
      "type": "boolean",
      "example": true,
      "description": "Expresses that the certify_signer has provided all information of this customs declaration truthfully."
    },
    "eel_pfc": {
      "$ref": "#/components/schemas/CustomsDeclarationEelPfcEnum"
    },
    "invoice": {
      "type": "string",
      "example": "#123123",
      "description": "Invoice reference of the shipment."
    },
    "license": {
      "type": "string",
      "description": "License reference of the shipment."
    },
    "incoterm": {
      "$ref": "#/components/schemas/CustomsDeclarationIncotermEnum"
    },
    "metadata": {
      "type": "string",
      "example": "Order ID #123123",
      "description": "A string of up to 100 characters that can be filled with any additional information you \nwant to attach to the object."
    },
    "disclaimer": {
      "type": "string",
      "description": "Disclaimer for the shipment and customs information that have been provided."
    },
    "b13a_number": {
      "type": "string",
      "description": "**must be provided if and only if b13a_filing_option is provided**<br>\nRepresents:<br> the Proof of Report (POR) Number when b13a_filing_option is `FILED_ELECTRONICALLY`;<br> \nthe Summary ID Number when b13a_filing_option is `SUMMARY_REPORTING`;<br> \nor the Exemption Number when b13a_filing_option is `NOT_REQUIRED`."
    },
    "certificate": {
      "type": "string",
      "description": "Certificate reference of the shipment."
    },
    "contents_type": {
      "$ref": "#/components/schemas/CustomsDeclarationContentsTypeEnum"
    },
    "certify_signer": {
      "type": "string",
      "example": "Shawn Ippotle",
      "description": "Name of the person who created the customs declaration and is responsible for the validity of all \ninformation provided."
    },
    "is_vat_collected": {
      "description": "Indicates whether the shipment's destination VAT has been collected. May be required for some destinations."
    },
    "b13a_filing_option": {
      "$ref": "#/components/schemas/CustomsDeclarationB13AFilingOptionEnum"
    },
    "commercial_invoice": {
      "type": "string"
    },
    "exporter_reference": {
      "type": "string",
      "description": "Exporter reference of an export shipment."
    },
    "importer_reference": {
      "type": "string",
      "description": "Importer reference of an import shipment."
    },
    "non_delivery_option": {
      "$ref": "#/components/schemas/CustomsDeclarationNonDeliveryOptionEnum"
    },
    "contents_explanation": {
      "type": "string",
      "example": "T-Shirt purchase",
      "description": "**required if contents_type is `OTHER`**<br>\nExplanation of the type of goods of the shipment."
    }
  }
}
string CustomsDeclarationContentsTypeEnum
{
  "enum": [
    "DOCUMENTS",
    "GIFT",
    "SAMPLE",
    "MERCHANDISE",
    "HUMANITARIAN_DONATION",
    "RETURN_MERCHANDISE",
    "OTHER"
  ],
  "type": "string",
  "example": "MERCHANDISE",
  "description": "Type of goods of the shipment."
}
object CustomsDeclarationCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/CustomsDeclarationBase"
    },
    {
      "required": [
        "items"
      ],
      "properties": {
        "test": {
          "type": "boolean",
          "example": true
        },
        "items": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CustomsItemBase"
          }
        },
        "address_importer": {
          "$ref": "#/components/schemas/AddressImporter"
        }
      }
    }
  ]
}
string CustomsDeclarationEelPfcEnum
{
  "enum": [
    "NOEEI_30_37_a",
    "NOEEI_30_37_h",
    "NOEEI_30_37_f",
    "NOEEI_30_36",
    "AES_ITN"
  ],
  "type": "string",
  "example": "NOEEI_30_37_a",
  "description": "EEL / PFC type of the shipment. For most shipments from the US to CA, `NOEEI_30_36` is applicable; for most \nother shipments from the US, `NOEEI_30_37_a` is applicable."
}
string CustomsDeclarationIncotermEnum
{
  "enum": [
    "DDP",
    "DDU",
    "FCA",
    "DAP",
    "eDAP"
  ],
  "type": "string",
  "example": "DDP",
  "description": "The incoterm reference of the shipment. FCA is available for DHL Express and FedEx only. \neDAP is available for DPD UK only. DAP is available for DHL Express and DPD UK.\nIf expecting DAP for other carriers, please use DDU."
}
string CustomsDeclarationNonDeliveryOptionEnum
{
  "enum": [
    "ABANDON",
    "RETURN"
  ],
  "type": "string",
  "description": "Indicates how the carrier should proceed in case the shipment can't be delivered."
}
object CustomsDeclarationPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CustomsDeclaration"
          }
        }
      }
    }
  ]
}
object CustomsExporterIdentification
{
  "type": "object",
  "properties": {
    "tax_id": {
      "$ref": "#/components/schemas/CustomsTaxIdentification"
    },
    "eori_number": {
      "type": "string",
      "example": "PL123456790ABCDE",
      "description": "Economic Operators' Registration and Identification (EORI) number. Must start with a 2 character \ncountry code followed by a 6-17 character alphanumeric identifier (e.g. PL1234567890ABCDE).\n<a href=\"https://ec.europa.eu/taxation_customs/business/customs-procedures/general-overview/economic-operators-registration-identification-number-eori_en\">More information on EORI.</a>"
    }
  },
  "description": "Additional exporter identification that may be required to ship in certain countries"
}
object CustomsInvoicedCharges
{
  "type": "object",
  "required": [
    "currency"
  ],
  "properties": {
    "currency": {
      "type": "string",
      "format": "iso-4217",
      "description": "Currency for the invoiced charges amounts incurred on the end consumer."
    },
    "other_fees": {
      "type": "string",
      "description": "Other fees paid by the buyer."
    },
    "total_taxes": {
      "type": "string",
      "description": "Total taxes paid by the buyer."
    },
    "total_duties": {
      "type": "string",
      "description": "Total duties paid by the buyer."
    },
    "total_shipping": {
      "type": "string",
      "description": "Total shipping paid by the buyer."
    }
  },
  "description": "Additional invoiced charges to be shown on the Customs Declaration Commercial Invoice."
}
object CustomsItem
{
  "allOf": [
    {
      "$ref": "#/components/schemas/CustomsItemBase"
    },
    {
      "properties": {
        "test": {
          "type": "boolean",
          "description": "Indicates whether the object has been created in test mode."
        },
        "object_id": {
          "type": "string",
          "example": "d799c2679e644279b59fe661ac8fa488",
          "description": "Unique identifier of the given object."
        },
        "object_owner": {
          "type": "string",
          "example": "shippotle@shippo.com",
          "description": "Username of the user who created the object."
        },
        "object_state": {
          "$ref": "#/components/schemas/ObjectStateEnum"
        },
        "object_created": {
          "type": "string",
          "format": "date-time",
          "example": "2014-07-17T00:49:20.631Z",
          "description": "Date and time of object creation."
        },
        "object_updated": {
          "type": "string",
          "format": "date-time",
          "example": "2014-07-17T00:49:20.631Z",
          "description": "Date and time of last object update."
        }
      }
    }
  ]
}
object CustomsItemBase
{
  "type": "object",
  "required": [
    "description",
    "quantity",
    "net_weight",
    "mass_unit",
    "value_amount",
    "value_currency",
    "origin_country"
  ],
  "properties": {
    "metadata": {
      "type": "string",
      "example": "Order ID \"123454\"",
      "description": "A string of up to 100 characters that can be filled with any additional information you \nwant to attach to the object."
    },
    "quantity": {
      "type": "integer",
      "format": "int64",
      "example": 20,
      "description": "Quantity of this item in the shipment you send.  Must be greater than 0."
    },
    "sku_code": {
      "type": "string",
      "example": "HM-123",
      "description": "SKU code of the item, which is required by some carriers."
    },
    "mass_unit": {
      "$ref": "#/components/schemas/WeightUnitEnum"
    },
    "eccn_ear99": {
      "type": "string",
      "description": "Export Control Classification Number, required on some exports from the United States."
    },
    "net_weight": {
      "type": "string",
      "example": "5",
      "description": "Total weight of this item, i.e. quantity * weight per item."
    },
    "description": {
      "type": "string",
      "example": "T-Shirt",
      "description": "Text description of your item."
    },
    "value_amount": {
      "type": "string",
      "example": "200",
      "description": "Total value of this item, i.e. quantity * value per item."
    },
    "tariff_number": {
      "type": "string",
      "description": "The tariff number of the item."
    },
    "origin_country": {
      "type": "string",
      "description": "Country of origin of the item. Example: `US` or `DE`. \nAll accepted values can be found on the <a href=\"http://www.iso.org/\" target=\"_blank\">Official ISO Website</a>."
    },
    "value_currency": {
      "type": "string",
      "example": "USD",
      "description": "Currency used for value_amount. The <a href=\"http://www.xe.com/iso4217.php\">official ISO 4217</a> \ncurrency codes are used, e.g.  `USD` or `EUR`."
    }
  }
}
object CustomsItemPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/CustomsItem"
          }
        }
      }
    }
  ]
}
object CustomsTaxIdentification
{
  "type": "object",
  "properties": {
    "type": {
      "enum": [
        "EIN",
        "VAT",
        "IOSS",
        "ARN"
      ],
      "type": "string",
      "example": "EIN",
      "description": "Type of tax identification.\n* `EIN` - Employer Identification Number, also known as a Federal Tax Identification Number.\n* `VAT` - Value Added Tax identification number.\n* `IOSS` - Import One-Stop Shop\n* `ARN` - Australian Taxation Office Reference Number"
    },
    "number": {
      "type": "string",
      "example": "123456789",
      "description": "Tax identification number."
    }
  },
  "description": "Tax identification that may be required to ship in certain countries. Typically used to assess duties on \ngoods that are crossing a border."
}
object DangerousGoodsBiologicalMaterial
{
  "type": "object",
  "properties": {
    "contains": {
      "type": "boolean",
      "description": "Indicates if the shipment contains biological material."
    }
  },
  "description": "Container for specifying the presence of biological material."
}
object DangerousGoodsLithiumBatteries
{
  "type": "object",
  "properties": {
    "contains": {
      "type": "boolean",
      "description": "Indicates if the shipment contains lithium batteries."
    }
  },
  "description": "Container for specifying the presence of lithium batteries."
}
object DangerousGoodsObject
{
  "type": "object",
  "properties": {
    "contains": {
      "type": "boolean",
      "description": "Indicates if the shipment contains dangerous goods."
    },
    "lithium_batteries": {
      "$ref": "#/components/schemas/DangerousGoodsLithiumBatteries"
    },
    "biological_material": {
      "$ref": "#/components/schemas/DangerousGoodsBiologicalMaterial"
    }
  },
  "description": "Container for specifying the presence of dangerous materials. This is specific to USPS, and if any contents\nare provided, only certain USPS service levels will be eligible. For more information, see our\n<a href=\"https://docs.goshippo.com/docs/shipments/hazmat/\">guide on hazardous or dangerous materials shipping</a>."
}
object DefaultParcelTemplate
{
  "type": "object",
  "properties": {
    "result": {
      "$ref": "#/components/schemas/UserParcelTemplate"
    }
  }
}
object DefaultParcelTemplateUpdateRequest
{
  "type": "object",
  "properties": {
    "object_id": {
      "type": "string",
      "example": "b958d3690bb04bb8b2986724872750f5"
    }
  }
}
object DepartmentNumber
{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label for department number. Up to 40 characters."
    },
    "prefix": {
      "type": "string",
      "description": "Custom prefix for department number field (ZPL labels only). Up to 11 characters, including trailing \nspaces. Empty string indicates removal of default prefix. To use the default prefix, do not include\nthis property."
    }
  },
  "description": "Specify the department number field on the label (FedEx only)."
}
string DistanceUnitEnum
{
  "enum": [
    "cm",
    "in",
    "ft",
    "m",
    "mm",
    "yd"
  ],
  "type": "string",
  "example": "in",
  "description": "The measure unit used for length, width and height."
}
object DryIce
{
  "type": "object",
  "properties": {
    "weight": {
      "type": "string",
      "description": "Mandatory. Units must be in Kilograms. Cannot be greater than package weight."
    },
    "contains_dry_ice": {
      "type": "boolean",
      "description": "Mandatory. Specifies that the package contains Dry Ice."
    }
  },
  "description": "Specify that the package contains Dry Ice (FedEx, Veho, and UPS only)."
}
object ErrorMessage
{
  "type": "object",
  "properties": {
    "shipment": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "example": [
        {
          "address_to": [
            "This field is required."
          ]
        }
      ]
    }
  }
}
object InstantTransactionRequestBody
{
  "type": "object",
  "required": [
    "shipment",
    "carrier_account",
    "servicelevel_token"
  ],
  "properties": {
    "metadata": {
      "type": "string",
      "example": "Order ID #12345"
    },
    "shipment": {
      "$ref": "#/components/schemas/ShipmentCreateRequest"
    },
    "carrier_account": {
      "type": "string",
      "example": "b741b99f95e841639b54272834bc478c"
    },
    "label_file_type": {
      "$ref": "#/components/schemas/LabelFileTypeEnum"
    },
    "servicelevel_token": {
      "type": "string",
      "example": "usps_priority"
    }
  }
}
object Insurance
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "string",
      "example": "5.5",
      "description": "Declared value of the goods you want to insure."
    },
    "content": {
      "type": "string",
      "description": "Description of package content."
    },
    "currency": {
      "type": "string",
      "format": "iso-4217",
      "example": "USD",
      "description": "Currency for the amount value.\nCurrently only USD is supported for FedEx and UPS."
    },
    "provider": {
      "enum": [
        "FEDEX",
        "UPS",
        "ONTRAC"
      ],
      "type": "string",
      "description": "To have insurance cover provided by a carrier directly instead of Shippo's provider (XCover), set `provider` to `FEDEX`, `UPS`, or `ONTRAC`."
    }
  },
  "description": "To add 3rd party insurance powered by <a href=\"https://docs.goshippo.com/docs/shipments/shippinginsurance/\">XCover</a>, specify <br> `amount`, `content`, and `currency`. <br> Alternatively, you can choose carrier provided insurance by additionally specifying `provider` (UPS, FedEx and OnTrac only). <br><br> If you do not want to add insurance to you shipment, do not set these parameters."
}
object Invoice
{
  "type": "object",
  "properties": {
    "status": {
      "$ref": "#/components/schemas/InvoiceStatusEnum"
    },
    "object_id": {
      "type": "string",
      "example": "ec9f0d3adc9441449c85d315f0997fd5",
      "description": "Unique identifier of the given Invoice object"
    },
    "total_charged": {
      "$ref": "#/components/schemas/AmountAndCurrencyCharged"
    },
    "invoice_closed": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of when the Invoice was posted and no new Invoice Items were added. Field will be null when invoice is still in the draft status."
    },
    "invoice_number": {
      "type": "string",
      "example": 234167,
      "description": "Human readable unique identifier of the given Invoice object that is displayed in the web app."
    },
    "object_created": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of Invoice creation."
    },
    "object_updated": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of last Invoice update."
    },
    "shippo_account": {
      "type": "string",
      "example": "915d94940ea54c3a80cbfa328722f5a1",
      "description": "Unique identifier of the user who the Invoice has been issued to."
    },
    "total_invoiced": {
      "$ref": "#/components/schemas/AmountAndCurrencyInvoiced"
    },
    "invoice_paid_date": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of when the Invoice was successfully paid. Field will be null when invoice is not in the paid status."
    }
  }
}
object InvoiceItem
{
  "type": "object",
  "properties": {
    "type": {
      "$ref": "#/components/schemas/InvoiceItemTypesEnum",
      "type": "string",
      "example": "SUBSCRIPTION_PLAN_FEE"
    },
    "amount": {
      "type": "string",
      "example": "5.54",
      "description": "The money amount that the Invoice Item represents."
    },
    "invoice": {
      "type": "string",
      "example": "011044d8405e43bd8b1efe1c21f967df",
      "description": "Unique identifier of the Invoice that the Invoice Item belongs to."
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "The currency that 'amount' is in. The official ISO 4217 currency codes are used, e.g. \"USD\" or \"EUR\".\n<a href=\"http://www.xe.com/iso4217.php\" target=\"blank\">ISO 4217 Standard</a>."
    },
    "object_id": {
      "type": "string",
      "example": "ec9f0d3adc9441449c85d315f0997fd5",
      "description": "Unique identifier of the given Invoice Item object."
    },
    "description": {
      "type": "string",
      "example": "monthly subscription plan fee for 2019-08-24",
      "description": "Additional information about what the Invoice Item is for."
    },
    "transaction": {
      "type": "string",
      "example": "915d94940ea54c3a80cbfa328722f5a1",
      "description": "Unique identifier of the Transaction that the Invoice Item represents. Not all Invoice Items are linked to a transaction."
    },
    "object_created": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of Invoice Item creation."
    },
    "object_updated": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of last Invoice Item update."
    },
    "shippo_account": {
      "type": "string",
      "example": "915d94940ea54c3a80cbfa328722f5a1",
      "description": "Unique identifier of the user who the Invoice Item has been issued to."
    },
    "charge_conversion": {
      "$ref": "#/components/schemas/ConversionAmount"
    }
  }
}
object InvoiceItemPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/InvoiceItem"
          }
        }
      }
    }
  ]
}
string InvoiceItemTypesEnum
{
  "enum": [
    "LABEL_PAYMENT",
    "LABEL_SURCHARGE",
    "LABEL_REFUND",
    "ONE_OFF_CREDIT",
    "TRACK_FEE",
    "ADDRESS_VALIDATION_FEE",
    "SUBSCRIPTION_PLAN_FEE",
    "PROMO_CODE_CREDIT",
    "PREAUTH_CAPTURE",
    "LABEL_PAYMENT_ADJUSTMENT",
    "LABEL_REFUND_ADJUSTMENT"
  ],
  "type": "string",
  "description": "The type of the Invoice Item.\n|Type| Description|\n|:---|:---|\n| LABEL_PAYMENT | Invoice Item for the payment of a label. |\n| LABEL_SURCHARGE | Invoice Item for a surcharge of a label. See <a href=\"https://support.goshippo.com/hc/en-us/articles/115004734443-Understanding-Postal-Surcharges-in-Shippo\"> here </a> for more information. |\n| LABEL_REFUND | Invoice Item for a refund of a label. |\n| ONE_OFF_CREDIT | Invoice Item for credit given by Shippo. |\n| TRACK_FEE | Invoice Item for fees associated with tracking services. |\n| ADDRESS_VALIDATION_FEE | Invoice Item for fees associated with global address validation services. |\n| SUBSCRIPTION_PLAN_FEE | Invoice Item for subscription plan fees. |\n| PROMO_CODE_CREDIT | Invoice Item for promotional code related credits. |\n| PREAUTH_CAPTURE | Invoice Item for preauthorization capture. Represents a credit. See <a href=\"https://support.goshippo.com/hc/en-us/articles/4407966198171-Pre-Authorization-Charges-for-New-Accounts-in-Shippo\"> here </a> for more information. |\n| LABEL_PAYMENT_ADJUSTMENT | Invoice Item for adjustments on label purchases. |\n| LABEL_REFUND_ADJUSTMENT | Invoice Item for adjustments on label refunds. |\n"
}
object InvoiceNumber
{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label for invoice number. Up to 40 characters. If \nprovided, this will be used on the label instead of shipment.customs_declaration.invoice."
    },
    "prefix": {
      "type": "string",
      "description": "Custom prefix for invoice number field (ZPL labels only). Up to 11 characters, including trailing \nspaces. Empty string indicates removal of default prefix. To use the default prefix, do not include\nthis property."
    }
  },
  "description": "Specify the invoice number field on the label (FedEx only)."
}
object InvoicePaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Invoice"
          }
        }
      }
    }
  ]
}
string InvoiceStatusEnum
{
  "enum": [
    "DRAFT",
    "POSTED",
    "PAID",
    "UNCOLLECTIBLE",
    "VOID"
  ],
  "type": "string",
  "example": "POSTED",
  "description": "The status of the Invoice."
}
string LabelFileTypeEnum
{
  "enum": [
    "PNG",
    "PNG_2.3x7.5",
    "PDF",
    "PDF_2.3x7.5",
    "PDF_4x6",
    "PDF_4x8",
    "PDF_A4",
    "PDF_A5",
    "PDF_A6",
    "ZPLII"
  ],
  "type": "string",
  "example": "PDF_4x6",
  "description": "Print format of the <a href=\"https://docs.goshippo.com/docs/shipments/shippinglabelsizes/\">label</a>. If empty, will use the default format set from \n<a href=\"https://apps.goshippo.com/settings/labels\">the Shippo dashboard.</a>"
}
object LineItem
{
  "allOf": [
    {
      "$ref": "#/components/schemas/LineItemBase"
    },
    {
      "properties": {
        "object_id": {
          "type": "string",
          "example": "abf7d5675d744b6ea9fdb6f796b28f28",
          "description": "Unique identifier of the line item object."
        }
      }
    }
  ]
}
object LineItemBase
{
  "type": "object",
  "properties": {
    "sku": {
      "type": "string",
      "example": "HM-123",
      "description": "The stock keeping unit value of this item."
    },
    "title": {
      "type": "string",
      "example": "Hippo Magazines",
      "description": "Title of the line item."
    },
    "weight": {
      "type": "string",
      "example": "0.4",
      "description": "Total weight of this/these item(s). Instead of specifying the weight of all items, \nyou can also set the <code>total_weight</code> value of the order object."
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "Currency of the <code>total_price</code> amount."
    },
    "quantity": {
      "type": "integer",
      "format": "int64",
      "example": 20,
      "description": "The quantity of this item in this order."
    },
    "total_price": {
      "type": "string",
      "example": "12.1",
      "description": "Total price paid by the buyer for this item (or these items, if quantity > 1)."
    },
    "weight_unit": {
      "$ref": "#/components/schemas/WeightUnitEnum"
    },
    "max_ship_time": {
      "type": "string",
      "format": "date-time",
      "example": "2016-07-23T00:00:00Z",
      "description": "The date and time this item needs to be fulfilled by, i.e. by when the shipping label needs to be \ncreated and handed over to the carrier. This value is used by some platforms such as eBay to measure \na seller's handling time and performance. It will be displayed in the Shippo dashboard."
    },
    "variant_title": {
      "type": "string",
      "example": "June Edition",
      "description": "A variant is a specific variation of an item (e.g. `size M` or `color blue`). \nVariants might be exposed as a separate resource in the future too. \nCurrently the variant title is a free text field describing the variant."
    },
    "max_delivery_time": {
      "type": "string",
      "format": "date-time",
      "example": "2016-07-23T00:00:00Z",
      "description": "The date and time this item needs to be delivered by, i.e. by when the carrier delivers it to the buyer. \nThis value is used by some platforms such as eBay to measure a seller's shipping time and performance. \nIt will be displayed in the Shippo dashboard."
    },
    "manufacture_country": {
      "type": "string",
      "example": "US",
      "description": "Country the item was manufactured in. In the Shippo dashboard, this value will be used ot pre-fill the customs declaration when creating a label for this order."
    }
  }
}
object LiveRate
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Shipping Option 1",
      "description": "The name of the service group being returned"
    },
    "amount": {
      "type": "string",
      "example": "12.34",
      "description": "The value of the price for the service group, in units of currency of the sender address"
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "The ISO 4217 currency code for the price"
    },
    "amount_local": {
      "type": "string",
      "example": "15.48",
      "description": "The value of the price for the service group, in the currency of the destination address"
    },
    "currency_local": {
      "type": "string",
      "example": "CAD",
      "description": "The ISO 4217 currency code for the currency describing amount_local"
    },
    "estimated_days": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "The estimated days in transit of the rate that powers the shipping option, if available."
    }
  }
}
object LiveRateCreateRequest
{
  "type": "object",
  "required": [
    "address_to",
    "line_items"
  ],
  "properties": {
    "parcel": {
      "oneOf": [
        {
          "type": "string",
          "description": "Object ID for an existing User Parcel Template"
        },
        {
          "$ref": "#/components/schemas/Parcel"
        }
      ],
      "example": "5df144dca289442cv7a06",
      "description": "Object ID for an existing User Parcel Template OR a fully formed Parcel object."
    },
    "address_to": {
      "oneOf": [
        {
          "type": "string",
          "description": "Object ID for an existing <a href=\"#tag/Addresses\">Address</a>"
        },
        {
          "$ref": "#/components/schemas/AddressCompleteCreateRequest"
        }
      ],
      "description": "The recipient address, which includes the recipient's name, company name, street address, city, state, zip code, \ncountry, phone number, and email address (strings). Special characters should not be included in \nany address element, especially name, company, and email."
    },
    "line_items": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/LineItem"
      },
      "description": "Array of Line Item objects"
    },
    "address_from": {
      "oneOf": [
        {
          "type": "string",
          "description": "Object ID for an existing <a href=\"#tag/Addresses\">Address</a>"
        },
        {
          "$ref": "#/components/schemas/AddressCompleteCreateRequest"
        }
      ],
      "description": "The sender address, which includes your name, company name, street address, city, state, zip code, \ncountry, phone number, and email address (strings). Special characters should not be included in \nany address element, especially name, company, and email."
    }
  }
}
object LiveRatePaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "count": {
          "type": "integer",
          "format": "int64",
          "example": 123
        },
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/LiveRate"
          }
        }
      }
    }
  ]
}
object Location
{
  "type": "object",
  "required": [
    "building_location_type",
    "address"
  ],
  "properties": {
    "address": {
      "$ref": "#/components/schemas/AddressCompleteCreateRequest"
    },
    "instructions": {
      "type": "string",
      "example": "Behind screen door",
      "description": "Pickup instructions for the courier. This is a mandatory field if the building_location_type is \"Other\"."
    },
    "building_type": {
      "enum": [
        "apartment",
        "building",
        "department",
        "floor",
        "room",
        "suite"
      ],
      "type": "string",
      "example": "apartment",
      "description": "The type of building where the pickup is located."
    },
    "building_location_type": {
      "enum": [
        "Back Door",
        "Ring Bell",
        "Security Deck",
        "Shipping Dock",
        "Front Door",
        "Knock on Door",
        "In/At Mailbox",
        "Mail Room",
        "Office",
        "Other",
        "Reception",
        "Side Door"
      ],
      "type": "string",
      "example": "Front Door",
      "description": "Where your parcels will be available for pickup. \"Security Deck\" and \"Shipping Dock\" are only \nsupported for DHL Express."
    }
  },
  "description": "Location where the parcel(s) will be picked up."
}
object Manifest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ManifestBase"
    },
    {
      "required": [
        "status",
        "object_created",
        "object_updated",
        "object_id",
        "object_owner",
        "documents",
        "address_from"
      ],
      "properties": {
        "errors": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of codes and messages describing the error that occurred if any."
        },
        "status": {
          "enum": [
            "QUEUED",
            "SUCCESS",
            "ERROR"
          ],
          "type": "string",
          "example": "SUCCESS",
          "description": "Indicates the status of the manifest."
        },
        "documents": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "https://shippo-delivery.s3.amazonaws.com/0fadebf6f60c4aca95fa01bcc59c79ae.pdf?Signature=tlQU3RECwdHUQJQadwqg5bAzGFQ%3D&Expires=1402803835&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA"
          ],
          "description": "An array containing the URLs to all returned manifest documents."
        },
        "object_id": {
          "type": "string",
          "example": "adcfdddf8ec64b84ad22772bce3ea37a",
          "description": "Unique identifier of the given object."
        },
        "address_from": {
          "type": "string",
          "example": "d799c2679e644279b59fe661ac8fa488",
          "description": "ID of the Address object that should be used as pickup address for the scan form. \nThe USPS will validate this address before creating the scan form."
        },
        "object_owner": {
          "type": "string",
          "example": "shippotle@shippo.com",
          "description": "Username of the user who created the object."
        },
        "object_created": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time of object creation."
        },
        "object_updated": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time of last object update."
        }
      }
    }
  ]
}
object ManifestBase
{
  "type": "object",
  "required": [
    "carrier_account",
    "shipment_date"
  ],
  "properties": {
    "transactions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "adcfdddf8ec64b84ad22772bce3ea37a"
      ],
      "description": "IDs transactions to use. If you set this to null or not send this parameter, \nShippo will automatically assign all applicable transactions."
    },
    "shipment_date": {
      "type": "string",
      "example": "2014-05-16T23:59:59Z",
      "description": "All shipments to be submitted on this day will be closed out. \nMust be in the format `2014-01-18T00:35:03.463Z` (ISO 8601 date)."
    },
    "carrier_account": {
      "type": "string",
      "example": "adcfdddf8ec64b84ad22772bce3ea37a",
      "description": "ID of carrier account"
    }
  }
}
object ManifestCreateRequest
{
  "type": "object",
  "allOf": [
    {
      "$ref": "#/components/schemas/ManifestBase"
    },
    {
      "required": [
        "address_from"
      ],
      "properties": {
        "async": {
          "type": "boolean"
        },
        "address_from": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/AddressCreateRequest"
            },
            {
              "type": "string",
              "description": "ID of the Address object that should be used as pickup address for the scan form. \nThe USPS will validate this address before creating the scan form."
            }
          ]
        }
      }
    }
  ]
}
object ManifestErrors
{
  "properties": {
    "generic_carrier_error": {
      "type": "string",
      "description": "There is an error from the carrier that requires investigation. Please contact support with the object ID of this response."
    },
    "shipment_date_invalid": {
      "type": "string",
      "description": "The shipment date is invalid. Please update the shipment date and try again."
    },
    "shipment_date_missing": {
      "type": "string",
      "description": "The shipment date is missing. Please update the shipment date and try again."
    },
    "address_from_missing_zip": {
      "type": "string",
      "description": "The sender address is missing the zip. Please update the sender address and try again."
    },
    "manifest_no_transactions": {
      "type": "string",
      "description": "There are no shipments in the manifest. Please check that the shipment date of the shipments matches the shipment date of the manifest."
    },
    "address_from_invalid_city": {
      "type": "string",
      "description": "The sender address contains an invalid city. Please update the sender address and try again."
    },
    "address_from_invalid_zip1": {
      "type": "string",
      "description": "The sender address contains an invalid zip. Please update the sender address and try again."
    },
    "address_from_invalid_zip2": {
      "type": "string",
      "description": "The sender address contains an invalid zip. Please update the sender address and try again. You can also try removing the last 4 digits of the zip."
    },
    "address_from_missing_city": {
      "type": "string",
      "description": "The sender address is missing the city. Please update the sender address and try again."
    },
    "address_from_missing_name": {
      "type": "string",
      "description": "The sender address is missing the name. Please update the sender address and try again."
    },
    "address_from_invalid_state": {
      "type": "string",
      "description": "The sender address contains an invalid state. Please update the sender address and try again."
    },
    "address_from_missing_state": {
      "type": "string",
      "description": "The sender address is missing the state. Please update the sender address and try again."
    },
    "carrier_account_access_denied": {
      "type": "string",
      "description": "There is an issue with your carrier account. Please contact support with the information of your account manager at the carrier and the object ID of this response."
    },
    "manifest_invalid_transactions": {
      "type": "string",
      "description": "For this carrier, all shipments must be manifested on the same day that they are created regardless of shipment date."
    },
    "carrier_account_invalid_credentials": {
      "type": "string",
      "description": "The carrier account contains invalid credentials. Please update your carrier account with valid credentials."
    }
  }
}
object ManifestPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Manifest"
          }
        }
      }
    }
  ]
}
string ObjectStateEnum
{
  "enum": [
    "VALID",
    "INVALID"
  ],
  "type": "string",
  "description": "Indicates the validity of the enclosing object"
}
object Order
{
  "allOf": [
    {
      "$ref": "#/components/schemas/OrderBase"
    },
    {
      "required": [
        "to_address"
      ],
      "properties": {
        "shop_app": {
          "enum": [
            "Amazon",
            "Bigcommerce",
            "CSV_Import",
            "eBay",
            "ePages",
            "Etsy",
            "Godaddy",
            "Magento",
            "Shippo",
            "Shopify",
            "Spreecommerce",
            "StripeRelay",
            "Weebly",
            "WooCommerce"
          ],
          "type": "string",
          "example": "Shippo",
          "description": "Platform the order was created on and, if applicable, imported from. \nOrders created via the Shippo API or dashboard will have the value \"Shippo\"."
        },
        "object_id": {
          "type": "string",
          "example": "adcfdddf8ec64b84ad22772bce3ea37a",
          "description": "Unique identifier of the order object."
        },
        "line_items": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/LineItem"
          },
          "description": "Array of <a href=\"#section/Line-Item\">line item</a> objects representing the items in this order. \nAll objects will be returned expanded by default."
        },
        "to_address": {
          "$ref": "#/components/schemas/Address"
        },
        "from_address": {
          "$ref": "#/components/schemas/Address"
        },
        "object_owner": {
          "type": "string",
          "example": "shippotle@shippo.com",
          "description": "Username of the user who created the object."
        },
        "transactions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Array of <a href=\"#tag/Transactions\">transaction</a> objects representing all shipping labels purchased for this order.\nAll objects are returned expanded with a limited number of fields by default."
        }
      }
    }
  ]
}
object OrderBase
{
  "type": "object",
  "required": [
    "placed_at"
  ],
  "properties": {
    "notes": {
      "type": "string",
      "example": "This customer is a VIP",
      "description": "Custom buyer- or seller-provided notes about the order."
    },
    "weight": {
      "type": "string",
      "example": "0.4",
      "description": "Total weight of the order."
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "**Required if total_price is provided**<br>\nCurrency of the <code>total_price</code> and <code>total_tax</code> amounts."
    },
    "placed_at": {
      "type": "string",
      "example": "2016-09-23T01:28:12Z",
      "description": "Date and time when the order was placed. This datetime can be different from the datetime of the order object creation on Shippo."
    },
    "total_tax": {
      "type": "string",
      "example": "0.0",
      "description": "Total tax amount paid by the buyer for this order."
    },
    "total_price": {
      "type": "string",
      "example": "24.93",
      "description": "Total amount paid by the buyer for this order."
    },
    "weight_unit": {
      "$ref": "#/components/schemas/WeightUnitEnum"
    },
    "order_number": {
      "type": "string",
      "example": "#1068",
      "description": "An alphanumeric identifier for the order used by the seller/buyer. This identifier doesn't need to be unique."
    },
    "order_status": {
      "$ref": "#/components/schemas/OrderStatusEnum"
    },
    "shipping_cost": {
      "type": "string",
      "example": "12.83",
      "description": "Amount paid by the buyer for shipping. This amount can be different from the price the seller will actually pay for shipping."
    },
    "subtotal_price": {
      "type": "string",
      "example": "12.1"
    },
    "shipping_method": {
      "type": "string",
      "example": "USPS First Class Package",
      "description": "Shipping method (carrier + service or other free text description) chosen by the buyer. \nThis value can be different from the shipping method the seller will actually choose."
    },
    "shipping_cost_currency": {
      "type": "string",
      "example": "USD",
      "description": "**Required if shipping_cost is provided**<br>\nCurrency of the <code>shipping_cost</code> amount."
    }
  }
}
object OrderCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/OrderBase"
    },
    {
      "required": [
        "to_address"
      ],
      "properties": {
        "line_items": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/LineItemBase"
          },
          "description": "Array of <a href=\"#section/Line-Item\">line item</a> objects representing the items in this order. \nAll objects will be returned expanded by default."
        },
        "to_address": {
          "$ref": "#/components/schemas/AddressCreateRequest"
        },
        "from_address": {
          "$ref": "#/components/schemas/AddressCreateRequest"
        }
      }
    }
  ]
}
object OrderPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Order"
          }
        }
      }
    }
  ]
}
string OrderStatusEnum
{
  "enum": [
    "UNKNOWN",
    "AWAITPAY",
    "PAID",
    "REFUNDED",
    "PARTIALLY_FULFILLED",
    "SHIPPED"
  ],
  "type": "string",
  "example": "PAID",
  "description": "Current state of the order. See the <a href=\"https://docs.goshippo.com/docs/orders/orders/\">orders tutorial</a> \nfor the logic of how the status is handled."
}
object PaginatedList
{
  "type": "object",
  "properties": {
    "next": {
      "type": "string",
      "example": "baseurl?page=3&results=10"
    },
    "previous": {
      "type": "string",
      "example": "baseurl?page=1&results=10"
    }
  }
}
object Parcel
{
  "type": "object",
  "required": [
    "length",
    "width",
    "height",
    "distance_unit",
    "weight",
    "mass_unit"
  ],
  "properties": {
    "test": {
      "type": "boolean",
      "description": "Indicates whether the object has been created in test mode."
    },
    "extra": {
      "$ref": "#/components/schemas/ParcelExtra"
    },
    "width": {
      "type": "string",
      "example": "1",
      "description": "**Required if template is not specified**<br>\nWidth of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "height": {
      "type": "string",
      "example": "1",
      "description": "**Required if template is not specified**<br>\nHeight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "length": {
      "type": "string",
      "example": "1",
      "description": "**Required if template is not specified**<br>\nLength of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "weight": {
      "type": "string",
      "example": "1",
      "description": "Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "metadata": {
      "type": "string",
      "description": "A string of up to 100 characters that can be filled with any additional information you want to attach to the object."
    },
    "template": {
      "$ref": "#/components/schemas/ParcelTemplateEnumSet"
    },
    "mass_unit": {
      "$ref": "#/components/schemas/WeightUnitEnum"
    },
    "object_id": {
      "type": "string",
      "example": "adcfdddf8ec64b84ad22772bce3ea37a",
      "description": "Unique identifier of the given Parcel object. This ID is required to create a Shipment object."
    },
    "object_owner": {
      "type": "string",
      "example": "shippotle@shippo.com",
      "description": "Username of the user who created the Parcel object."
    },
    "object_state": {
      "enum": [
        "VALID"
      ],
      "type": "string",
      "example": "VALID",
      "description": "A Parcel will only be valid when all required values have been sent and validated successfully."
    },
    "distance_unit": {
      "$ref": "#/components/schemas/DistanceUnitEnum",
      "description": "The measure unit used for length, width and height. Required if template is not specified."
    },
    "object_created": {
      "type": "string",
      "format": "date-time",
      "example": "2014-07-09T02:19:13.174Z",
      "description": "Date and time of Parcel creation."
    },
    "object_updated": {
      "type": "string",
      "format": "date-time",
      "example": "2014-07-09T02:19:13.174Z",
      "description": "Date and time of last Parcel update. Since you cannot update Parcels after they were created, this time stamp reflects the time when the Parcel was changed by Shippo's systems for the last time, e.g., during sorting the dimensions given."
    }
  }
}
object ParcelCreateRequest
{
  "type": "object",
  "required": [
    "length",
    "width",
    "height",
    "distance_unit",
    "weight",
    "mass_unit"
  ],
  "properties": {
    "width": {
      "type": "string",
      "example": "1",
      "description": "**Required if template is not specified**<br>\nWidth of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "height": {
      "type": "string",
      "example": "1",
      "description": "**Required if template is not specified**<br>\nHeight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "length": {
      "type": "string",
      "example": "1",
      "description": "**Required if template is not specified**<br>\nLength of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "weight": {
      "type": "string",
      "example": "1",
      "description": "Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "metadata": {
      "type": "string",
      "example": "Customer ID 123456"
    },
    "template": {
      "$ref": "#/components/schemas/ParcelTemplateEnumSet"
    },
    "mass_unit": {
      "$ref": "#/components/schemas/WeightUnitEnum"
    },
    "distance_unit": {
      "$ref": "#/components/schemas/DistanceUnitEnum",
      "description": "The measure unit used for length, width and height. Required if template is not specified."
    }
  }
}
object ParcelExtra
{
  "type": "object",
  "properties": {
    "COD": {
      "$ref": "#/components/schemas/COD"
    },
    "insurance": {
      "$ref": "#/components/schemas/ParcelInsurance"
    },
    "reference_1": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters."
    },
    "reference_2": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters."
    }
  },
  "description": "An object holding optional extra services to be requested for each parcel in a multi-piece shipment. \nSee the <a href=\"#section/Parcel-Extras\">Parcel Extra table below</a> for all available services."
}
object ParcelInsurance
{
  "type": "object",
  "properties": {
    "amount": {
      "type": "string",
      "example": "5.5",
      "description": "Declared value of the goods you want to insure."
    },
    "content": {
      "type": "string",
      "example": "Laptop",
      "description": "Description of parcel content."
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "Currency for the amount value. Currently only USD is supported for FedEx and UPS."
    },
    "provider": {
      "enum": [
        "FEDEX",
        "UPS",
        "ONTRAC"
      ],
      "type": "string",
      "example": "UPS",
      "description": "To have insurance cover provided by a carrier directly instead of Shippo's provider (XCover), set provider to `FEDEX`, `UPS`, or `ONTRAC`."
    }
  },
  "description": "To add insurace to your parcel, specify `amount`, `content` and `currency`. <br><br>If you do not want to add insurance to you parcel, do not set these parameters."
}
object ParcelPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Parcel"
          }
        }
      }
    }
  ]
}
object ParcelRequest
{
  "type": "object",
  "required": [
    "length",
    "width",
    "height",
    "distance_unit",
    "weight",
    "mass_unit"
  ],
  "properties": {
    "test": {
      "type": "boolean",
      "description": "Indicates whether the object has been created in test mode."
    },
    "extra": {
      "$ref": "#/components/schemas/ParcelExtra"
    },
    "width": {
      "type": "string",
      "example": "1",
      "description": "Required if template is not specified. Width of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "height": {
      "type": "string",
      "example": "1",
      "description": "Required if template is not specified. Height of the parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "length": {
      "type": "string",
      "example": "1",
      "description": "Required if template is not specified. Length of the Parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "weight": {
      "type": "string",
      "example": "1",
      "description": "Weight of the parcel. Up to six digits in front and four digits after the decimal separator are accepted."
    },
    "metadata": {
      "type": "string",
      "description": "A string of up to 100 characters that can be filled with any additional information you want to attach to the object."
    },
    "template": {
      "$ref": "#/components/schemas/ParcelTemplateEnumSet"
    },
    "mass_unit": {
      "$ref": "#/components/schemas/WeightUnitEnum"
    },
    "distance_unit": {
      "$ref": "#/components/schemas/DistanceUnitEnum",
      "description": "The measure unit used for length, width and height. Required if template is not specified."
    }
  }
}
string ParcelTemplateAramexAustraliaEnum
{
  "enum": [
    "Fastway_Australia_Satchel_A2",
    "Fastway_Australia_Satchel_A3",
    "Fastway_Australia_Satchel_A4",
    "Fastway_Australia_Satchel_A5"
  ],
  "type": "string",
  "description": "|Token | Name | Dimensions|\n|:---|:---|:---|\n| Fastway_Australia_Satchel_A2 | Satchel A2 | 594.00 x 420.00 x 48.00 mm|\n| Fastway_Australia_Satchel_A3 | Satchel A3 | 420.00 x 297.00 x 64.00 mm|\n| Fastway_Australia_Satchel_A4 | Satchel A4 | 297.00 x 210.00 x 64.00 mm|\n| Fastway_Australia_Satchel_A5 | Satchel A5 | 210.00 x 148.00 x 64.00 mm|\n"
}
string ParcelTemplateCouriersPleaseEnum
{
  "enum": [
    "couriersplease_500g_satchel",
    "couriersplease_1kg_satchel",
    "couriersplease_3kg_satchel",
    "couriersplease_5kg_satchel"
  ],
  "type": "string",
  "description": "|Token | Name | Dimensions|\n|:---|:---|:---|\n| couriersplease_500g_satchel | 500g Satchel | 22.00 x 33.50 x 0.10 cm|\n| couriersplease_1kg_satchel | 1kg Satchel | 28.00 x 35.00 x 0.10 cm|\n| couriersplease_3kg_satchel | 3kg Satchel | 34.00 x 42.00 x 0.10 cm|\n| couriersplease_5kg_satchel | 5kg Satchel | 43.70 x 59.70 x 0.10 cm|\n"
}
string ParcelTemplateDHLeCommerceEnum
{
  "enum": [
    "DHLeC_Irregular",
    "DHLeC_SM_Flats"
  ],
  "type": "string",
  "description": "|Token | Name | Dimensions|\n|:---|:---|:---|\n| DHLeC_Irregular | Irregular Shipment | 10.00 x 10.00 x 10.00 in|\n| DHLeC_SM_Flats | Flats | 27.00 x 17.00 x 17.00 in|\n"
}
string ParcelTemplateDPDUKEnum
{
  "enum": [
    "DPD_UK_Express_Pak"
  ],
  "type": "string",
  "description": "|Token | Name | Dimensions|\n|:---|:---|:---|\n| DPD_UK_Express_Pak| DPD UK Express Pak | 530.00 x 400.00 x 100.00 mm|\n"
}
object ParcelTemplateEnumSet
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/ParcelTemplateFedExEnum"
    },
    {
      "$ref": "#/components/schemas/ParcelTemplateUPSEnum"
    },
    {
      "$ref": "#/components/schemas/ParcelTemplateUSPSEnum"
    },
    {
      "$ref": "#/components/schemas/ParcelTemplateDHLeCommerceEnum"
    },
    {
      "$ref": "#/components/schemas/ParcelTemplateDPDUKEnum"
    },
    {
      "$ref": "#/components/schemas/ParcelTemplateCouriersPleaseEnum"
    },
    {
      "$ref": "#/components/schemas/ParcelTemplateAramexAustraliaEnum"
    }
  ],
  "description": "If template is passed, `length`, `width`, `height`, and `distance_unit` are not required",
  "x-speakeasy-include": true
}
string ParcelTemplateFedExEnum
{
  "enum": [
    "FedEx_Box_10kg",
    "FedEx_Box_25kg",
    "FedEx_Box_Extra_Large_1",
    "FedEx_Box_Extra_Large_2",
    "FedEx_Box_Large_1",
    "FedEx_Box_Large_2",
    "FedEx_Box_Medium_1",
    "FedEx_Box_Medium_2",
    "FedEx_Box_Small_1",
    "FedEx_Box_Small_2",
    "FedEx_Envelope",
    "FedEx_Padded_Pak",
    "FedEx_Pak_1",
    "FedEx_Pak_2",
    "FedEx_Tube",
    "FedEx_XL_Pak"
  ],
  "type": "string",
  "description": "|Token | Name | Dimensions|\n|:---|:---|:---|\n| FedEx_Box_10kg | FedEx® 10kg Box | 15.81 x 12.94 x 10.19 in|\n| FedEx_Box_25kg | FedEx® 25kg Box | 54.80 x 42.10 x 33.50 in|\n| FedEx_Box_Extra_Large_1 | FedEx® Extra Large Box (X1) | 11.88 x 11.00 x 10.75 in|\n| FedEx_Box_Extra_Large_2 | FedEx® Extra Large Box (X2) | 15.75 x 14.13 x 6.00 in|\n| FedEx_Box_Large_1 | FedEx® Large Box (L1) | 17.50 x 12.38 x 3.00 in|\n| FedEx_Box_Large_2 | FedEx® Large Box (L2) | 11.25 x 8.75 x 7.75 in|\n| FedEx_Box_Medium_1 | FedEx® Medium Box (M1) | 13.25 x 11.50 x 2.38 in|\n| FedEx_Box_Medium_2 | FedEx® Medium Box (M2) | 11.25 x 8.75 x 4.38 in|\n| FedEx_Box_Small_1 | FedEx® Small Box (S1) | 12.38 x 10.88 x 1.50 in|\n| FedEx_Box_Small_2 | FedEx® Small Box (S2) | 11.25 x 8.75 x 4.38 in|\n| FedEx_Envelope | FedEx® Envelope | 12.50 x 9.50 x 0.80 in|\n| FedEx_Padded_Pak | FedEx® Padded Pak | 11.75 x 14.75 x 2.00 in|\n| FedEx_Pak_1 | FedEx® Large Pak | 15.50 x 12.00 x 0.80 in|\n| FedEx_Pak_2 | FedEx® Small Pak | 12.75 x 10.25 x 0.80 in|\n| FedEx_Tube | FedEx® Tube | 38.00 x 6.00 x 6.00 in|\n| FedEx_XL_Pak | FedEx® Extra Large Pak | 17.50 x 20.75 x 2.00 in|\n"
}
string ParcelTemplateUPSEnum
{
  "enum": [
    "UPS_Box_10kg",
    "UPS_Box_25kg",
    "UPS_Express_Box",
    "UPS_Express_Box_Large",
    "UPS_Express_Box_Medium",
    "UPS_Express_Box_Small",
    "UPS_Express_Envelope",
    "UPS_Express_Hard_Pak",
    "UPS_Express_Legal_Envelope",
    "UPS_Express_Pak",
    "UPS_Express_Tube",
    "UPS_Laboratory_Pak",
    "UPS_MI_BPM",
    "UPS_MI_BPM_Flat",
    "UPS_MI_BPM_Parcel",
    "UPS_MI_First_Class",
    "UPS_MI_Flat",
    "UPS_MI_Irregular",
    "UPS_MI_Machinable",
    "UPS_MI_MEDIA_MAIL",
    "UPS_MI_Parcel_Post",
    "UPS_MI_Priority",
    "UPS_MI_Standard_Flat",
    "UPS_Pad_Pak",
    "UPS_Pallet"
  ],
  "type": "string",
  "description": "|Token | Name | Dimensions|\n|:---|:---|:---|\n| UPS_Box_10kg | Box 10kg | 410.00 x 335.00 x 265.00 mm|\n| UPS_Box_25kg | Box 25kg | 484.00 x 433.00 x 350.00 mm|\n| UPS_Express_Box | Express Box | 460.00 x 315.00 x 95.00 mm|\n| UPS_Express_Box_Large | Express Box Large | 18.00 x 13.00 x 3.00 in|\n| UPS_Express_Box_Medium | Express Box Medium | 15.00 x 11.00 x 3.00 in|\n| UPS_Express_Box_Small | Express Box Small | 13.00 x 11.00 x 2.00 in|\n| UPS_Express_Envelope | Express Envelope | 12.50 x 9.50 x 2.00 in|\n| UPS_Express_Hard_Pak | Express Hard Pak | 14.75 x 11.50 x 2.00 in|\n| UPS_Express_Legal_Envelope | Express Legal Envelope | 15.00 x 9.50 x 2.00 in|\n| UPS_Express_Pak | Express Pak | 16.00 x 12.75 x 2.00 in|\n| UPS_Express_Tube | Express Tube | 970.00 x 190.00 x 165.00 mm|\n| UPS_Laboratory_Pak | Laboratory Pak | 17.25 x 12.75 x 2.00 in|\n| UPS_MI_BPM | BPM (Mail Innovations - Domestic &amp; International) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_BPM_Flat | BPM Flat (Mail Innovations - Domestic &amp; International) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_BPM_Parcel | BPM Parcel (Mail Innovations - Domestic &amp; International) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_First_Class | First Class (Mail Innovations - Domestic only) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_Flat | Flat (Mail Innovations - Domestic only) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_Irregular | Irregular (Mail Innovations - Domestic only) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_Machinable | Machinable (Mail Innovations - Domestic only) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_MEDIA_MAIL | Media Mail (Mail Innovations - Domestic only) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_Parcel_Post | Parcel Post (Mail Innovations - Domestic only) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_Priority | Priority (Mail Innovations - Domestic only) | 0.00 x 0.00 x 0.00 in|\n| UPS_MI_Standard_Flat | Standard Flat (Mail Innovations - Domestic only) | 0.00 x 0.00 x 0.00 in|\n| UPS_Pad_Pak | Pad Pak | 14.75 x 11.00 x 2.00 in|\n| UPS_Pallet | Pallet | 120.00 x 80.00 x 200.00 cm|\n"
}
string ParcelTemplateUSPSEnum
{
  "enum": [
    "USPS_FlatRateCardboardEnvelope",
    "USPS_FlatRateEnvelope",
    "USPS_FlatRateGiftCardEnvelope",
    "USPS_FlatRateLegalEnvelope",
    "USPS_FlatRatePaddedEnvelope",
    "USPS_FlatRateWindowEnvelope",
    "USPS_IrregularParcel",
    "USPS_LargeFlatRateBoardGameBox",
    "USPS_LargeFlatRateBox",
    "USPS_APOFlatRateBox",
    "USPS_LargeVideoFlatRateBox",
    "USPS_MediumFlatRateBox1",
    "USPS_MediumFlatRateBox2",
    "USPS_RegionalRateBoxA1",
    "USPS_RegionalRateBoxA2",
    "USPS_RegionalRateBoxB1",
    "USPS_RegionalRateBoxB2",
    "USPS_SmallFlatRateBox",
    "USPS_SmallFlatRateEnvelope",
    "USPS_SoftPack"
  ],
  "type": "string",
  "description": "|Token | Name | Dimensions|\n|:---|:---|:---|\n| USPS_FlatRateCardboardEnvelope | Flat Rate Cardboard Envelope |  12.50 x 9.50 x 0.75 in |\n| USPS_FlatRateEnvelope | Flat Rate Envelope |  12.50 x 9.50 x 0.75 in |\n| USPS_FlatRateGiftCardEnvelope | Flat Rate Gift Card Envelope |  10.00 x 7.00 x 0.75 in |\n| USPS_FlatRateLegalEnvelope | Flat Rate Legal Envelope |  15.00 x 9.50 x 0.75 in |\n| USPS_FlatRatePaddedEnvelope | Flat Rate Padded Envelope |  12.50 x 9.50 x 1.00 in |\n| USPS_FlatRateWindowEnvelope | Flat Rate Window Envelope |  10.00 x 5.00 x 0.75 in |\n| USPS_IrregularParcel | Irregular Parcel |  0.00 x 0.00 x 0.00 in |\n| USPS_LargeFlatRateBoardGameBox | Large Flat Rate Board Game Box |  24.06 x 11.88 x 3.13 in |\n| USPS_LargeFlatRateBox | Large Flat Rate Box |  12.25 x 12.25 x 6.00 in |\n| USPS_APOFlatRateBox | APO/FPO/DPO Large Flat Rate Box |  12.25 x 12.25 x 6.00 in |\n| USPS_LargeVideoFlatRateBox | Flat Rate Large Video Box (Int&#39;l only) |  9.60 x 6.40 x 2.20 in |\n| USPS_MediumFlatRateBox1 | Medium Flat Rate Box 1 |  11.25 x 8.75 x 6.00 in |\n| USPS_MediumFlatRateBox2 | Medium Flat Rate Box 2 |  14.00 x 12.00 x 3.50 in |\n| USPS_RegionalRateBoxA1 | Regional Rate Box A1 |  10.13 x 7.13 x 5.00 in |\n| USPS_RegionalRateBoxA2 | Regional Rate Box A2 |  13.06 x 11.06 x 2.50 in |\n| USPS_RegionalRateBoxB1 | Regional Rate Box B1 |  12.25 x 10.50 x 5.50 in |\n| USPS_RegionalRateBoxB2 | Regional Rate Box B2 |  16.25 x 14.50 x 3.00 in |\n| USPS_SmallFlatRateBox | Small Flat Rate Box |  8.69 x 5.44 x 1.75 in |\n| USPS_SmallFlatRateEnvelope | Small Flat Rate Envelope |  10.00 x 6.00 x 4.00 in |\n| USPS_SoftPack | Soft Pack Padded Envelope |  Length and width defined in the Parcel|\n"
}
object Pickup
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PickupBase"
    },
    {
      "properties": {
        "status": {
          "enum": [
            "PENDING",
            "CONFIRMED",
            "ERROR",
            "CANCELLED"
          ],
          "type": "string",
          "example": "CONFIRMED",
          "description": "Indicates the status of the pickup."
        },
        "is_test": {
          "type": "boolean",
          "description": "Indicates whether the object has been created in test mode."
        },
        "messages": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [],
          "description": "An array containing strings of any messages generated during validation."
        },
        "timezone": {
          "type": "string",
          "example": "US/Pacific",
          "description": "The pickup time windows will be in the time zone specified here, not UTC."
        },
        "object_id": {
          "type": "string",
          "description": "Unique identifier of the given Pickup object."
        },
        "cancel_by_time": {
          "type": "string",
          "format": "datetime",
          "example": "2020-05-09T08:00:00Z",
          "description": "The latest time to cancel a pickup. Expressed in the timezone specified in the response. \nTo cancel a pickup, you will need to contact the carrier directly. \nThe ability to cancel a pickup through Shippo may be released in future iterations."
        },
        "object_created": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time of Pickup creation."
        },
        "object_updated": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time of last Pickup update."
        },
        "confirmation_code": {
          "type": "string",
          "example": "WTC310058750",
          "description": "Pickup's confirmation code returned by the carrier. \nTo edit or cancel a pickup, you will need to contact USPS or DHL Express directly and provide your `confirmation_code`."
        },
        "confirmed_end_time": {
          "type": "string",
          "format": "datetime",
          "example": "2020-05-09T23:59:59.999Z",
          "description": "The latest that your parcels will be available for pickup, confirmed by the carrier. \nExpressed in the timezone specified in the response."
        },
        "confirmed_start_time": {
          "type": "string",
          "format": "datetime",
          "example": "2020-05-09T12:00:00Z",
          "description": "The earliest that your parcels will be ready for pickup, confirmed by the carrier. \nExpressed in the timezone specified in the response."
        }
      }
    }
  ]
}
object PickupBase
{
  "type": "object",
  "required": [
    "carrier_account",
    "location",
    "transactions",
    "requested_start_time",
    "requested_end_time"
  ],
  "properties": {
    "location": {
      "$ref": "#/components/schemas/Location"
    },
    "metadata": {
      "type": "string",
      "description": "A string of up to 100 characters that can be filled with any additional information you \nwant to attach to the object."
    },
    "transactions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "adcfdddf8ec64b84ad22772bce3ea37a"
      ],
      "description": "The transaction(s) object ID(s) for the parcel(s) that need to be picked up."
    },
    "carrier_account": {
      "type": "string",
      "example": "adcfdddf8ec64b84ad22772bce3ea37a",
      "description": "The object ID of your USPS or DHL Express carrier account. \nYou can retrieve this from your Rate requests or our <a href=\"#tag/Carrier-Accounts/\">Carrier Accounts</a> endpoint."
    },
    "requested_end_time": {
      "type": "string",
      "format": "date-time",
      "description": "The latest that you requested your parcels to be available for pickup. \nExpressed in the timezone specified in the response."
    },
    "requested_start_time": {
      "type": "string",
      "format": "date-time",
      "description": "The earliest that you requested your parcels to be ready for pickup. \nExpressed in the timezone specified in the response."
    }
  }
}
object PoNumber
{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label for PO number. Up to 40 characters. If \nthis is provided, reference_2 will be ignored."
    },
    "prefix": {
      "type": "string",
      "description": "Custom prefix for PO number field (ZPL labels only). Up to 11 characters, including trailing \nspaces. Empty string indicates removal of default prefix. To use the default prefix, do not include\nthis property."
    }
  },
  "description": "Specify the PO number field on the label (FedEx only)."
}
object Rate
{
  "type": "object",
  "required": [
    "object_created",
    "object_id",
    "object_owner",
    "shipment",
    "attributes",
    "amount",
    "currency",
    "amount_local",
    "currency_local",
    "provider",
    "servicelevel",
    "carrier_account"
  ],
  "properties": {
    "test": {
      "type": "boolean",
      "description": "Indicates whether the object has been created in test mode."
    },
    "zone": {
      "type": "string",
      "example": "1",
      "description": "The parcel's transit zone token. These tokens can vary depending on the provider."
    },
    "amount": {
      "type": "string",
      "example": "5.5",
      "description": "Final Rate price, expressed in the currency used in the sender's country."
    },
    "currency": {
      "type": "string",
      "example": "USD",
      "description": "Currency used in the sender's country, refers to `amount`. \nThe <a href=\"http://www.xe.com/iso4217.php\">official ISO 4217</a> currency codes are used, e.g. `USD` or `EUR`."
    },
    "messages": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RateMessage"
      },
      "description": "An array containing elements of the following schema: <br>\n`source`(string): the name of the carrier sending the message. <br>\n`code` (string): carrier specific identifier code for the corresponding message (not always available).<br>\n`text` (string): a publishable message containing further information (not always available)."
    },
    "provider": {
      "type": "string",
      "example": "USPS",
      "description": "Carrier offering the rate, e.g., `FedEx` or `Deutsche Post DHL`."
    },
    "shipment": {
      "type": "string",
      "example": "adcfdddf8ec64b84ad22772bce3ea37a"
    },
    "object_id": {
      "type": "string",
      "example": "adcfdddf8ec64b84ad22772bce3ea37a",
      "description": "Unique identifier of the given Rate object."
    },
    "arrives_by": {
      "type": "string",
      "example": "08:30:00",
      "description": "Predicted time the carrier will deliver the package in the destination's local time zone. In the format `HH:MM:SS`."
    },
    "attributes": {
      "type": "array",
      "items": {
        "enum": [
          "BESTVALUE",
          "CHEAPEST",
          "FASTEST"
        ],
        "type": "string"
      },
      "description": "An array containing specific attributes of this Rate in context of the entire shipment. \nAttributes can be assigned `CHEAPEST`, `FASTEST`, or `BESTVALUE`."
    },
    "amount_local": {
      "type": "string",
      "example": "5.5",
      "description": "Final Rate price, expressed in the currency used in the recipient's country."
    },
    "object_owner": {
      "type": "string",
      "example": "pp@gmail.com",
      "description": "Username of the user who created the rate object."
    },
    "servicelevel": {
      "$ref": "#/components/schemas/ServiceLevel"
    },
    "currency_local": {
      "type": "string",
      "example": "USD",
      "description": "Currency used in the recipient's country, refers to `amount_local`. \nThe <a href=\"http://www.xe.com/iso4217.php\">official ISO 4217</a> currency codes are used, e.g. `USD` or \"EUR\"."
    },
    "duration_terms": {
      "type": "string",
      "example": "Delivery in 1 to 3 business days",
      "description": "Further clarification of the transit times. \nOften, this includes notes that the transit time as given in \"days\" is only an average, not a guaranteed time."
    },
    "estimated_days": {
      "type": "integer",
      "format": "int64",
      "example": 2,
      "description": "Estimated transit time (duration) in days of the Parcel at the given servicelevel. \nPlease note that this is not binding, but only an average value as given by the provider. \nShippo is not able to guarantee any transit times."
    },
    "object_created": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of Rate creation."
    },
    "carrier_account": {
      "type": "string",
      "example": "078870331023437cb917f5187429b093",
      "description": "Object ID of the carrier account that has been used to retrieve the rate."
    },
    "provider_image_75": {
      "type": "string",
      "example": "https://cdn2.goshippo.com/providers/75/USPS.png",
      "description": "URL to the provider logo with max. dimensions of 75*75px. \nPlease refer to the provider's Logo Usage Guidelines before using the logo."
    },
    "provider_image_200": {
      "type": "string",
      "example": "https://cdn2.goshippo.com/providers/200/USPS.png",
      "description": "URL to the provider logo with max. dimensions of 200*200px. \nPlease refer to the provider's Logo Usage Guidelines before using the logo."
    },
    "included_insurance_price": {
      "type": "number",
      "example": 1.05,
      "description": "Cost to the user to insure the Rate for the requested amount of coverage, if insurance coverage was requested. \nExpressed in the currency used in the sender's country. Will be null if no insurance coverage was requested, or if insurance is requested from a non-standard insurance provider. \nPlease note this price is already included in the `amount` and `amount_local` fields on the Rate. Do not add this field to them."
    }
  }
}
object RateMessage
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "text": {
      "type": "string",
      "example": "RatedShipmentWarning: User Id and Shipper Number combination is not qualified to receive negotiated rates."
    },
    "source": {
      "type": "string",
      "example": "UPS"
    }
  }
}
object RatePaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Rate"
          }
        }
      }
    }
  ]
}
object Refund
{
  "type": "object",
  "properties": {
    "test": {
      "type": "boolean",
      "description": "Indicates whether the object has been created in test mode."
    },
    "status": {
      "enum": [
        "QUEUED",
        "PENDING",
        "SUCCESS",
        "ERROR"
      ],
      "type": "string",
      "example": "SUCCESS",
      "description": "Indicates the status of the Refund."
    },
    "object_id": {
      "type": "string",
      "example": "adcfdddf8ec64b84ad22772bce3ea37a",
      "description": "Unique identifier of the given object."
    },
    "transaction": {
      "type": "string",
      "example": "915d94940ea54c3a80cbfa328722f5a1",
      "description": "Object ID of the Transaction to be refunded."
    },
    "object_owner": {
      "type": "string",
      "example": "shippotle@shippo.com",
      "description": "Username of the user who created the object."
    },
    "object_created": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of object creation."
    },
    "object_updated": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of last object update."
    }
  }
}
object RefundPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Refund"
          }
        }
      }
    }
  ]
}
object RefundRequestBody
{
  "type": "object",
  "required": [
    "transaction"
  ],
  "properties": {
    "async": {
      "type": "boolean",
      "example": false
    },
    "transaction": {
      "type": "string",
      "example": "915d94940ea54c3a80cbfa328722f5a1"
    }
  }
}
object RmaNumber
{
  "type": "object",
  "properties": {
    "value": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label for RMA number. Up to 40 characters."
    },
    "prefix": {
      "type": "string",
      "description": "Custom prefix for RMA number field (ZPL labels only). Up to 11 characters, including trailing \nspaces. Empty string indicates removal of default prefix. To use the default prefix, do not include\nthis property."
    }
  },
  "description": "Specify the RMA number field on the label (FedEx only)."
}
object ServiceGroup
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ServiceGroupBase"
    },
    {
      "required": [
        "name",
        "description",
        "type",
        "service_levels",
        "object_id"
      ],
      "properties": {
        "is_active": {
          "type": "boolean",
          "example": true,
          "description": "True if the service group is enabled, false otherwise."
        },
        "object_id": {
          "type": "string",
          "example": "80feb1633d4a43c898f005850",
          "description": "The unique identifier of the given Service Group object."
        },
        "service_levels": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ServiceLevel"
          }
        }
      }
    }
  ]
}
object ServiceGroupAccountAndServiceLevel
{
  "type": "object",
  "properties": {
    "account_object_id": {
      "type": "string",
      "example": "80feb1633d4a43c898f0058506cfd82d",
      "description": "ID of a Carrier Account object"
    },
    "service_level_token": {
      "type": "string",
      "example": "ups_next_day_air_saver",
      "description": "Service level token, e.g. `usps_priority` or `fedex_ground`.<br>\nSee <a href=\"#tag/Service-Levels\">Service Levels</a>."
    }
  }
}
object ServiceGroupBase
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "USPS Shipping",
      "description": "Name for the service group that will be shown to customers in the response"
    },
    "type": {
      "$ref": "#/components/schemas/ServiceGroupTypeEnum"
    },
    "flat_rate": {
      "type": "string",
      "example": "5",
      "description": "String representation of an amount to be returned as the flat rate\nif 1. The service group is of type `LIVE_RATE` and no matching rates\nwere found; or 2. The service group is of type `FLAT_RATE`. Either\nintegers or decimals are accepted. Required unless type is\n`FREE_SHIPPING`"
    },
    "description": {
      "type": "string",
      "example": "USPS shipping options",
      "description": "Description for the service group"
    },
    "rate_adjustment": {
      "type": "integer",
      "format": "int64",
      "example": 15,
      "description": "The amount in percent (%) that the service group's returned rate should be adjusted. For example, if this field is set to 5 and the matched rate price is $5.00, the returned value of the service group will be $5.25. Negative integers are also accepted and will discount the rate price by the defined percentage amount."
    },
    "flat_rate_currency": {
      "type": "string",
      "example": "USD",
      "description": "required unless type is `FREE_SHIPPING`. (ISO 4217 currency)"
    },
    "free_shipping_threshold_min": {
      "type": "string",
      "example": "5",
      "description": "For service groups of type `FREE_SHIPPING`, this field must be required to configure the minimum cart total (total cost of items in the cart) for this service group to be returned for rates at checkout. Optional unless type is `FREE_SHIPPING`"
    },
    "free_shipping_threshold_currency": {
      "type": "string",
      "example": "USD",
      "description": "optional unless type is `FREE_SHIPPING`. (ISO 4217 currency)"
    }
  }
}
object ServiceGroupCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ServiceGroupBase"
    },
    {
      "properties": {
        "service_levels": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ServiceGroupAccountAndServiceLevel"
          }
        }
      }
    },
    {
      "required": [
        "name",
        "description",
        "type",
        "service_levels"
      ]
    }
  ]
}
string ServiceGroupTypeEnum
{
  "enum": [
    "LIVE_RATE",
    "FLAT_RATE",
    "FREE_SHIPPING"
  ],
  "type": "string",
  "example": "FLAT_RATE",
  "description": "The type of the service group.<br> `LIVE_RATE` - Shippo will make a rating request and return real-time rates for the shipping group, only falling back to the specified flat rate amount if no rates match a service level in the service group.<br> `FLAT_RATE` - Returns a shipping option with the specified flat rate amount.<br> `FREE_SHIPPING` - Returns a shipping option with a price of $0 only if the total cost of items exceeds the amount defined by `free_shipping_threshold_min`"
}
object ServiceGroupUpdateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ServiceGroupBase"
    },
    {
      "properties": {
        "is_active": {
          "type": "boolean",
          "example": true,
          "description": "True if the service group is enabled, false otherwise."
        },
        "object_id": {
          "type": "string",
          "example": "80feb1633d4a43c898f005850",
          "description": "The unique identifier of the given Service Group object."
        },
        "service_levels": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ServiceGroupAccountAndServiceLevel"
          }
        }
      }
    },
    {
      "required": [
        "name",
        "description",
        "type",
        "service_levels",
        "object_id",
        "is_active"
      ]
    }
  ]
}
array ServiceGroupsListAllServiceGroupsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ServiceGroup"
  }
}
object ServiceLevel
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "Priority Mail Express",
      "description": "Name of the Rate's servicelevel, e.g. `International Priority` or `Standard Post`. \nA servicelevel commonly defines the transit time of a Shipment (e.g., Express vs. Standard), along with other properties. \nThese names vary depending on the provider."
    },
    "terms": {
      "type": "string",
      "description": "Further clarification of the service."
    },
    "token": {
      "type": "string",
      "example": "usps_priority_express",
      "description": "Token of the Rate's servicelevel, e.g. `usps_priority` or `fedex_ground`. \nSee <a href=\"#tag/Service-Levels\">servicelevels</a>."
    },
    "extended_token": {
      "type": "string",
      "description": "Unique, extended version of the Service Level \"token\". \nGuaranteed to be unique across all Service Levels, and may help offer insight into the specific Service Level it describes."
    },
    "parent_servicelevel": {
      "type": "string",
      "description": "Used for some Service Levels to link to the more \"generic\" version of this Service Level - for example, \nif this Service Level is a variation specific to shipments to Europe(\"ups_saver_eu\"), the \"parent\" is \nthe fully generic version (\"ups_saver\"). Helpful when displaying Service Levels to users. Has the same \nstructure of the servicelevel - \"name\", \"token\", \"terms\", and \"extended_token\", or it is otherwise null."
    }
  },
  "description": "Contains details regarding the service level for the given rate."
}
string ServiceLevelAPCPostalEnum
{
  "enum": [
    "apc_postal_parcelconnect_expedited",
    "apc_postal_parcelconnect_priority",
    "apc_postal_parcelconnect_priority_delcon",
    "apc_postal_parcelconnect_priority_pqw",
    "apc_postal_parcelconnect_book_service",
    "apc_postal_parcelconnect_standard",
    "apc_postal_parcelconnect_epmi",
    "apc_postal_parcelconnect_epacket",
    "apc_postal_parcelconnect_epmei"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| apc_postal_parcelconnect_expedited | parcelConnect Expedited|\n| apc_postal_parcelconnect_priority | parcelConnect Priority|\n| apc_postal_parcelconnect_priority_delcon | parcelConnect Priority Delcon|\n| apc_postal_parcelconnect_priority_pqw | parcelConnect Priority PQW|\n| apc_postal_parcelconnect_book_service | parcelConnect Book Service|\n| apc_postal_parcelconnect_standard | parcelConnect Standard|\n| apc_postal_parcelconnect_epmi | parcelConnect ePMI|\n| apc_postal_parcelconnect_epacket | parcelConnect ePacket|\n| apc_postal_parcelconnect_epmei | parcelConnect ePMEI|\n"
}
string ServiceLevelAPGEnum
{
  "enum": [
    "epacket",
    "epacket_plus",
    "eparcel_premium",
    "apg_eparcel_expedited"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| epacket | ePacket|\n| epacket_plus | ePacket Plus|\n| eparcel_premium | eParcel premium|\n| apg_eparcel_expedited | eParcel Expedited|\n"
}
string ServiceLevelAirterraEnum
{
  "enum": [
    "airterra_ground",
    "airterra_postal"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| airterra_ground | GroundXC|\n| airterra_postal | FastPost|\n"
}
string ServiceLevelAramexAustraliaEnum
{
  "enum": [
    "fastway_australia_parcel",
    "fastway_australia_satchel",
    "fastway_australia_box_small",
    "fastway_australia_box_medium",
    "fastway_australia_box_large"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| fastway_australia_parcel | Parcel|\n| fastway_australia_satchel | Satchel|\n| fastway_australia_box_small | Box Small|\n| fastway_australia_box_medium | Box Medium|\n| fastway_australia_box_large | Box Large|\n"
}
string ServiceLevelAsendiaEnum
{
  "enum": [
    "asendia_us_priority_tracked",
    "asendia_us_international_express",
    "asendia_us_international_priority_airmail",
    "asendia_us_international_surface_airlift",
    "asendia_us_priority_mail_international",
    "asendia_us_priority_mail_express_international",
    "asendia_us_epacket",
    "asendia_us_other"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| asendia_us_priority_tracked | Asendia USA Priority Tracked|\n| asendia_us_international_express | Asendia USA International Express|\n| asendia_us_international_priority_airmail | Asendia USA International Priority Airmail|\n| asendia_us_international_surface_airlift | Asendia USA International Surface Air Lift|\n| asendia_us_priority_mail_international | Asendia USA Priority Mail International|\n| asendia_us_priority_mail_express_international | Asendia USA Priority Mail Express International|\n| asendia_us_epacket | Asendia USA International ePacket|\n| asendia_us_other | Asendia USA Other Services (custom)|\n"
}
string ServiceLevelAustraliaPostEnum
{
  "enum": [
    "australia_post_express_post",
    "australia_post_parcel_post",
    "australia_post_pack_and_track_international",
    "australia_post_international_airmail",
    "australia_post_express_post_international",
    "australia_post_express_courier_international",
    "australia_post_international_express",
    "australia_post_international_standard",
    "australia_post_international_economy",
    "australia_post_parcel_post_return"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| australia_post_express_post | Express Post|\n| australia_post_parcel_post | Parcel Post|\n| australia_post_pack_and_track_international | Pack and Track International|\n| australia_post_international_airmail | International Airmail|\n| australia_post_express_post_international | Express Post International|\n| australia_post_express_courier_international | Express Courier International|\n| australia_post_international_express | International Express|\n| australia_post_international_standard | International Standard|\n| australia_post_international_economy | International Economy|\n| australia_post_parcel_post_return | Parcel Post Return|\n"
}
string ServiceLevelAxleHireEnum
{
  "enum": [
    "axlehire_same_day",
    "axlehire_next_day"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| axlehire_same_day | Same Day|\n| axlehire_next_day | Next Day|\n"
}
string ServiceLevelBetterTrucksEnum
{
  "enum": [
    "better_trucks_same_day",
    "better_trucks_next_day"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| better_trucks_same_day | Same Day|\n| better_trucks_next_day | Next Day|\n"
}
string ServiceLevelCDLEnum
{
  "enum": [
    "cdl_next_day"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| cdl_next_day | Next Day|\n"
}
string ServiceLevelCanadaPostEnum
{
  "enum": [
    "canada_post_regular_parcel",
    "canada_post_expedited_parcel",
    "canada_post_priority",
    "canada_post_xpresspost",
    "canada_post_xpresspost_international",
    "canada_post_xpresspost_usa",
    "canada_post_expedited_parcel_usa",
    "canada_post_tracked_packet_usa",
    "canada_post_small_packet_usa_air",
    "canada_post_tracked_packet_international",
    "canada_post_small_packet_international_air"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| canada_post_regular_parcel | Regular Parcel|\n| canada_post_expedited_parcel | Expedited Parcel|\n| canada_post_priority | Priority|\n| canada_post_xpresspost | Xpresspost|\n| canada_post_xpresspost_international | Xpresspost International|\n| canada_post_xpresspost_usa | Xpresspost USA|\n| canada_post_expedited_parcel_usa | Expedited Parcel USA|\n| canada_post_tracked_packet_usa | Tracked Packet USA|\n| canada_post_small_packet_usa_air | Small Packet USA Air|\n| canada_post_tracked_packet_international | Tracked Packet International|\n| canada_post_small_packet_international_air | Small Package International Air|\n"
}
string ServiceLevelChronopostEnum
{
  "enum": [
    "chronopost_13",
    "chronopost_10",
    "chronopost_18",
    "chronopost_relais_fr",
    "chronopost_classic",
    "chronopost_express"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| chronopost_13 | Chrono 13|\n| chronopost_10 | Chrono 10|\n| chronopost_18| Chrono 18|\n| chronopost_relais_fr | Chrono Point Relais|\n| chronopost_classic | Chrono Classic International|\n| chronopost_express | Chrono Express International|\n"
}
string ServiceLevelColissimoEnum
{
  "enum": [
    "colissimo_home",
    "colissimo_pick_up_point",
    "colissimo_return_mainland_france"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| colissimo_home | Domicile|\n| colissimo_pick_up_point | Point Retrait|\n| colissimo_return_mainland_france | Retour France|\n"
}
string ServiceLevelCorreosEspanaEnum
{
  "enum": [
    "correos_standard_home",
    "correos_premium_home"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| correos_standard_home| Paquete Estándar|\n| correos_premium_home | Paquete Premium|\n"
}
string ServiceLevelCouriersPleaseEnum
{
  "enum": [
    "couriersplease_domestic_priority_auth_to_leave",
    "couriersplease_domestic_priority_sign_required",
    "couriersplease_gold_domestic_auth_to_leave",
    "couriersplease_gold_domestic_sign_required",
    "couriersplease_off_peak_auth_to_leave",
    "couriersplease_off_peak_sign_required",
    "couriersplease_parcel_auth_to_leave",
    "couriersplease_parcel_sign_required",
    "couriersplease_road_express",
    "couriersplease_satchel_auth_to_leave",
    "couriersplease_satchel_sign_required"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| couriersplease_domestic_priority_auth_to_leave | Domestic Priority - Authority To Leave/POPPoints|\n| couriersplease_domestic_priority_sign_required | Domestic Priority - Signature Required|\n| couriersplease_gold_domestic_auth_to_leave | Gold Domestic - Authority To Leave/POPPoints|\n| couriersplease_gold_domestic_sign_required | Gold Domestic - Signature Required|\n| couriersplease_off_peak_auth_to_leave | Off Peak - Authority To Leave/POPPoints|\n| couriersplease_off_peak_sign_required | Off Peak - Signature Required|\n| couriersplease_parcel_auth_to_leave | Parcel - Authority To Leave|\n| couriersplease_parcel_sign_required | Parcel - Signature Required|\n| couriersplease_road_express | Road Express|\n| couriersplease_satchel_auth_to_leave | Satchel - Authority To Leave|\n| couriersplease_satchel_sign_required | Satchel - Signature Required|\n"
}
string ServiceLevelDHLExpressEnum
{
  "enum": [
    "dhl_express_domestic_express_doc",
    "dhl_express_economy_select_doc",
    "dhl_express_worldwide_nondoc",
    "dhl_express_worldwide_doc",
    "dhl_express_worldwide",
    "dhl_express_worldwide_eu_doc",
    "dhl_express_break_bulk_express_doc",
    "dhl_express_express_9_00_nondoc",
    "dhl_express_economy_select_nondoc",
    "dhl_express_break_bulk_economy_doc",
    "dhl_express_express_9_00_doc",
    "dhl_express_express_10_30_doc",
    "dhl_express_express_10_30_nondoc",
    "dhl_express_express_12_00_doc",
    "dhl_express_europack_nondoc",
    "dhl_express_express_envelope_doc",
    "dhl_express_express_12_00_nondoc",
    "dhl_express_express_12_doc",
    "dhl_express_worldwide_b2c_doc",
    "dhl_express_worldwide_b2c_nondoc",
    "dhl_express_medical_express",
    "dhl_express_express_easy_nondoc"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| dhl_express_domestic_express_doc | Domestic Express Doc|\n| dhl_express_economy_select_doc | Economy Select Doc|\n| dhl_express_worldwide_nondoc | Express Worldwide Nondoc|\n| dhl_express_worldwide_doc | Express Worldwide Doc|\n| dhl_express_worldwide | Worldwide|\n| dhl_express_worldwide_eu_doc | Express Worldwide EU Doc|\n| dhl_express_break_bulk_express_doc | Break Bulk Express Doc|\n| dhl_express_express_9_00_nondoc | Express 9:00 NonDoc|\n| dhl_express_economy_select_nondoc | Economy Select NonDoc|\n| dhl_express_break_bulk_economy_doc | Break Bulk Economy Doc|\n| dhl_express_express_9_00_doc | Express 9:00 Doc|\n| dhl_express_express_10_30_doc | Express 10:30 Doc|\n| dhl_express_express_10_30_nondoc | Express 10:30 NonDoc|\n| dhl_express_express_12_00_doc | Express 12:00 Doc|\n| dhl_express_europack_nondoc | Europack NonDoc|\n| dhl_express_express_envelope_doc | Express Envelope Doc|\n| dhl_express_express_12_00_nondoc | Express 12:00 NonDoc|\n| dhl_express_express_12_doc | Domestic Express 12:00|\n| dhl_express_worldwide_b2c_doc | Express Worldwide (B2C) Doc|\n| dhl_express_worldwide_b2c_nondoc | Express Worldwide (B2C) NonDoc|\n| dhl_express_medical_express | Medical Express|\n| dhl_express_express_easy_nondoc | Express Easy NonDoc|\n"
}
string ServiceLevelDHLGermanyEnum
{
  "enum": [
    "dhl_germany_europaket",
    "dhl_germany_paket",
    "dhl_germany_paket_connect",
    "dhl_germany_paket_international",
    "dhl_germany_paket_priority",
    "dhl_germany_paket_sameday"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| dhl_germany_europaket | DHL Germany Europaket|\n| dhl_germany_paket | DHL Germany Paket|\n| dhl_germany_paket_connect | DHL Germany Paket Connect|\n| dhl_germany_paket_international | DHL Germany Paket International|\n| dhl_germany_paket_priority | DHL Germany Paket Priority|\n| dhl_germany_paket_sameday | DHL Germany Paket Sameday|\n"
}
string ServiceLevelDHLeCommerceEnum
{
  "enum": [
    "dhl_ecommerce_marketing_parcel_expedited",
    "dhl_ecommerce_globalmail_business_ipa",
    "dhl_ecommerce_parcel_international_direct",
    "dhl_ecommerce_parcels_expedited_max",
    "dhl_ecommerce_bpm_ground",
    "dhl_ecommerce_priority_expedited",
    "dhl_ecommerce_globalmail_packet_ipa",
    "dhl_ecommerce_globalmail_packet_isal",
    "dhl_ecommerce_easy_return_plus",
    "dhl_ecommerce_marketing_parcel_ground",
    "dhl_ecommerce_first_class_parcel_expedited",
    "dhl_ecommerce_globalmail_business_priority",
    "dhl_ecommerce_parcels_expedited",
    "dhl_ecommerce_globalmail_business_isal",
    "dhl_ecommerce_parcel_plus_expedited_max",
    "dhl_ecommerce_globalmail_packet_plus",
    "dhl_ecommerce_parcels_ground",
    "dhl_ecommerce_expedited",
    "dhl_ecommerce_parcel_plus_ground",
    "dhl_ecommerce_parcel_international_standard",
    "dhl_ecommerce_bpm_expedited",
    "dhl_ecommerce_parcel_international_expedited",
    "dhl_ecommerce_globalmail_packet_priority",
    "dhl_ecommerce_easy_return_light",
    "dhl_ecommerce_parcel_plus_expedited",
    "dhl_ecommerce_globalmail_business_standard",
    "dhl_ecommerce_ground",
    "dhl_ecommerce_globalmail_packet_standard"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| dhl_ecommerce_marketing_parcel_expedited | Marketing Parcel Expedited|\n| dhl_ecommerce_globalmail_business_ipa | GlobalMail Business IPA|\n| dhl_ecommerce_parcel_international_direct | Parcel International Direct|\n| dhl_ecommerce_parcels_expedited_max | Parcels Expedited Max|\n| dhl_ecommerce_bpm_ground | Bounded Printed Matter Ground|\n| dhl_ecommerce_priority_expedited | Priority Expedited|\n| dhl_ecommerce_globalmail_packet_ipa | GlobalMail Packet IPA|\n| dhl_ecommerce_globalmail_packet_isal | GlobalMail Packet ISAL|\n| dhl_ecommerce_easy_return_plus | Easy Return Plus|\n| dhl_ecommerce_marketing_parcel_ground | Marketing Parcel Ground|\n| dhl_ecommerce_first_class_parcel_expedited | First Class Parcel Expedited|\n| dhl_ecommerce_globalmail_business_priority | GlobalMail Business Priority|\n| dhl_ecommerce_parcels_expedited | Parcels Expedited|\n| dhl_ecommerce_globalmail_business_isal | GlobalMail Business ISAL|\n| dhl_ecommerce_parcel_plus_expedited_max | Parcel Plus Expedited Max|\n| dhl_ecommerce_globalmail_packet_plus | GlobalMail Packet Plus|\n| dhl_ecommerce_parcels_ground | Parcels Ground|\n| dhl_ecommerce_expedited | Expedited|\n| dhl_ecommerce_parcel_plus_ground | Parcel Plus Ground|\n| dhl_ecommerce_parcel_international_standard | Parcel International Standard|\n| dhl_ecommerce_bpm_expedited | Bounded Printed Matter Expedited|\n| dhl_ecommerce_parcel_international_expedited | Parcel International Expedited|\n| dhl_ecommerce_globalmail_packet_priority | GlobalMail Packet Priority|\n| dhl_ecommerce_easy_return_light | Easy Return Light|\n| dhl_ecommerce_parcel_plus_expedited | Parcel Plus Expedited|\n| dhl_ecommerce_globalmail_business_standard | GlobalMail Packet Standard|\n| dhl_ecommerce_ground | Ground|\n| dhl_ecommerce_globalmail_packet_standard | GlobalMail Business Standard|\n"
}
string ServiceLevelDPDDEEnum
{
  "enum": [
    "dpd_de_classic"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| dpd_de_classic | DPD Classic|\n"
}
string ServiceLevelDPDUKEnum
{
  "enum": [
    "dpd_uk_ship_to_shop",
    "dpd_uk_1030",
    "dpd_uk_1200",
    "dpd_uk_saturday",
    "dpd_uk_saturday_1030",
    "dpd_uk_saturday_1200",
    "dpd_uk_sunday",
    "dpd_uk_sunday_1030",
    "dpd_uk_sunday_1200",
    "dpd_uk_next_day",
    "dpd_uk_two_day",
    "dpd_uk_classic",
    "dpd_uk_air_classic",
    "dpd_uk_air_express",
    "dpd_uk_direct",
    "dpd_uk_direct_tracked_mail",
    "dpd_uk_pickup_returns"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| dpd_uk_ship_to_shop | Ship to shop|\n| dpd_uk_1030 | Door to door 10.30 next day|\n| dpd_uk_1200 | Door to door 12.00 next day|\n| dpd_uk_saturday | Saturday Delivery|\n| dpd_uk_saturday_1030 | Saturday Delivery 10.30|\n| dpd_uk_saturday_1200 | Saturday Delivery 12.00|\n| dpd_uk_sunday | Sunday Delivery|\n| dpd_uk_sunday_1030 | Sunday Delivery 10.30|\n| dpd_uk_sunday_1200 | Sunday Delivery 12.00|\n| dpd_uk_next_day | Next day|\n| dpd_uk_two_day | Two day|\n| dpd_uk_classic | DPD Classic|\n| dpd_uk_air_classic | DPD Air Classic|\n| dpd_uk_air_express | DPD Air Express|\n| dpd_uk_direct | DPD Direct|\n| dpd_uk_direct_tracked_mail| DPD Tracked Mail|\n| dpd_uk_pickup_returns | Pickup Returns|\n"
}
string ServiceLevelDeutschePostEnum
{
  "enum": [
    "deutsche_post_postkarte",
    "deutsche_post_standardbrief",
    "deutsche_post_kompaktbrief",
    "deutsche_post_grossbrief",
    "deutsche_post_maxibrief",
    "deutsche_post_maxibrief_plus",
    "deutsche_post_warenpost_international_xs",
    "deutsche_post_warenpost_international_s",
    "deutsche_post_warenpost_international_m",
    "deutsche_post_warenpost_international_l"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| deutsche_post_postkarte | Postkarte|\n| deutsche_post_standardbrief | Standardbrief|\n| deutsche_post_kompaktbrief | Kompaktbrief|\n| deutsche_post_grossbrief | Grossbrief|\n| deutsche_post_maxibrief | Maxibrief|\n| deutsche_post_maxibrief_plus | Maxibrief Plus|\n| deutsche_post_warenpost_international_xs | Warenpost International XS|\n| deutsche_post_warenpost_international_s | Warenpost International S|\n| deutsche_post_warenpost_international_m | Warenpost International M|\n| deutsche_post_warenpost_international_l | Warenpost International L|\n"
}
object ServiceLevelEnumSet
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/ServiceLevelUSPSEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelFedExEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelUPSEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelAirterraEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelAPCPostalEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelAsendiaEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelAustraliaPostEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelAxleHireEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelAPGEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelBetterTrucksEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelCanadaPostEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelCDLEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelChronopostEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelCouriersPleaseEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelCorreosEspanaEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelColissimoEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelPurolatorEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelDHLExpressEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelDHLeCommerceEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelDHLGermanyEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelDPDDEEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelDPDUKEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelDeutschePostEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelAramexAustraliaEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelGlobegisticsEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelGLSUSEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelLSOEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelMondialRelayEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelMaergoEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelParcelforceEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelPostItalianeEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelePostGlobalEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelRoyalMailEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelSendleEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelOnTracEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelLasershipEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelEvriUKEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelUDSEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelVehoEnum"
    },
    {
      "$ref": "#/components/schemas/ServiceLevelSwyftEnum"
    }
  ],
  "x-speakeasy-include": true
}
string ServiceLevelEvriUKEnum
{
  "enum": [
    "hermes_uk_courier_service",
    "hermes_uk_parcelshop_dropoff",
    "hermes_uk_parcelshop_dropoff_nextday",
    "hermes_uk_postable",
    "hermes_uk_postable_nextday"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| hermes_uk_courier_service | Courier Collection|\n| hermes_uk_parcelshop_dropoff | ParcelShop Drop-Off|\n| hermes_uk_parcelshop_dropoff_nextday | ParcelShop Drop-Off Next Day|\n| hermes_uk_postable | Postable|\n| hermes_uk_postable_nextday | Postable Next Day|\n"
}
string ServiceLevelFedExEnum
{
  "enum": [
    "fedex_ground",
    "fedex_home_delivery",
    "fedex_smart_post",
    "fedex_ground_economy",
    "fedex_2_day",
    "fedex_2_day_am",
    "fedex_express_saver",
    "fedex_standard_overnight",
    "fedex_priority_overnight",
    "fedex_first_overnight",
    "fedex_freight_priority",
    "fedex_next_day_freight",
    "fedex_freight_economy",
    "fedex_first_freight",
    "fedex_international_economy",
    "fedex_international_priority",
    "fedex_international_first",
    "fedex_europe_first_international_priority",
    "fedex_international_connect_plus",
    "international_economy_freight",
    "international_priority_freight"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| fedex_ground | FedEx Ground®|\n| fedex_home_delivery | FedEx Home Delivery®|\n| fedex_ground_economy | FedEx Ground® Economy|\n| fedex_2_day | FedEx 2Day®|\n| fedex_2_day_am | FedEx 2Day® A.M.|\n| fedex_express_saver | FedEx Express Saver®|\n| fedex_standard_overnight | FedEx Standard Overnight®|\n| fedex_priority_overnight | FedEx Priority Overnight®|\n| fedex_first_overnight | FedEx First Overnight®|\n| fedex_freight_priority | FedEx Freight® Priority|\n| fedex_next_day_freight | FedEx Next Day Freight|\n| fedex_freight_economy | FedEx Freight® Economy|\n| fedex_first_freight | FedEx First Freight|\n| fedex_international_economy | FedEx International Economy®|\n| fedex_international_priority | FedEx International Priority®|\n| fedex_international_first | FedEx International First®|\n| fedex_europe_first_international_priority | FedEx International First®|\n| fedex_international_connect_plus | FedEx International Connect Plus|\n| international_economy_freight | FedEx International Economy® Freight|\n| international_priority_freight | FedEx International Priority® Freight|\n"
}
string ServiceLevelGLSUSEnum
{
  "enum": [
    "gls_us_cps",
    "gls_us_eps",
    "gls_us_ess",
    "gls_us_nps",
    "gls_us_pds",
    "gls_us_sds"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| gls_us_cps | GSO Ground|\n| gls_us_eps | Early Priority Overnight|\n| gls_us_ess | Early Saturday Delivery|\n| gls_us_nps | Noon Priority Overnight|\n| gls_us_pds | Priority Overnight|\n| gls_us_sds | Saturday Delivery|\n"
}
string ServiceLevelGlobegisticsEnum
{
  "enum": [
    "globegistics_priority_mail_express_international",
    "globegistics_priority_mail_international",
    "globegistics_priority_mail_express_international_pds",
    "globegistics_priority_mail_international_pds",
    "globegistics_epacket",
    "globegistics_ecom_tracked_ddp",
    "globegistics_ecom_packet_ddp",
    "globegistics_ecom_priority_mail_international_ddp",
    "globegistics_ecom_priority_mail_express_international_ddp",
    "globegistics_ecom_extra",
    "globegistics_ecom_international_priority_airmail",
    "globegistics_ecom_international_surface_airlift"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| globegistics_priority_mail_express_international | Globegistics Priority Mail Express International|\n| globegistics_priority_mail_international | Globegistics Priority Mail International|\n| globegistics_priority_mail_express_international_pds | Globegistics Priority Mail Express International PreSort Drop Ship|\n| globegistics_priority_mail_international_pds | Globegistics Priority Mail International PreSort Drop Ship|\n| globegistics_epacket | Globegistics ePacket|\n| globegistics_ecom_tracked_ddp | Globegistics eCom Tracked DDP|\n| globegistics_ecom_packet_ddp | Globegistics eCom Packet DDP|\n| globegistics_ecom_priority_mail_international_ddp | Globegistics eCom Priority Mail International DDP|\n| globegistics_ecom_priority_mail_express_international_ddp | Globegistics eCom Priority Mail Express International DDP|\n| globegistics_ecom_extra | Globegistics eCom Extra|\n| globegistics_ecom_international_priority_airmail | Globegistics eCom International Priority Airmail|\n| globegistics_ecom_international_surface_airlift | Globegistics eCom International Surface Air Lift|\n"
}
string ServiceLevelLSOEnum
{
  "enum": [
    "lso_ground",
    "lso_economy_next_day",
    "lso_saturday_delivery",
    "lso_2nd_day",
    "lso_priority_next_day",
    "lso_early_overnight"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| lso_ground | Ground|\n| lso_economy_next_day | Economy Next Day|\n| lso_saturday_delivery | Saturday Delivery|\n| lso_2nd_day | 2nd Day|\n| lso_priority_next_day | Priority Next Day|\n| lso_early_overnight | Early Overnight|\n"
}
string ServiceLevelLasershipEnum
{
  "enum": [
    "lasership_routed_delivery"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| lasership_routed_delivery | Routed Delivery|\n"
}
string ServiceLevelMaergoEnum
{
  "enum": [
    "x_delivery_expedited"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| x_delivery_expedited | Expedited|\n"
}
string ServiceLevelMondialRelayEnum
{
  "enum": [
    "mondial_relay_pointrelais"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| mondial_relay_pointrelais | Point Relais|\n"
}
string ServiceLevelOnTracEnum
{
  "enum": [
    "ontrac_ground",
    "ontrac_sunrise_gold",
    "ontrac_sunrise"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| ontrac_ground | Ground|\n| ontrac_sunrise_gold | Sunrise Gold|\n| ontrac_sunrise | Sunrise|\n"
}
string ServiceLevelParcelforceEnum
{
  "enum": [
    "parcelforce_express48",
    "parcelforce_express24",
    "parcelforce_expressam"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| parcelforce_express48 | Express 48|\n| parcelforce_express24 | Express 24|\n| parcelforce_expressam | Express AM|\n"
}
string ServiceLevelPostItalianeEnum
{
  "enum": [
    "poste_italiane_delivery_business_express"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| poste_italiane_delivery_business_express | Poste Delivery Business Express|\n"
}
string ServiceLevelPurolatorEnum
{
  "enum": [
    "purolator_ground",
    "purolator_ground9_am",
    "purolator_ground1030_am",
    "purolator_ground_distribution",
    "purolator_ground_evening",
    "purolator_ground_us",
    "purolator_express",
    "purolator_express9_am",
    "purolator_express1030_am",
    "purolator_express_evening",
    "purolator_express_us",
    "purolator_express_us9_am",
    "purolator_express_us1030_am",
    "purolator_express_us1200",
    "purolator_express_international",
    "purolator_express_international9_am",
    "purolator_express_international1030_am",
    "purolator_express_international1200"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| purolator_ground | Ground|\n| purolator_ground9_am | Ground 9am|\n| purolator_ground1030_am | Ground 10:30am|\n| purolator_ground_distribution | Ground Distribution|\n| purolator_ground_evening | Ground Evening|\n| purolator_ground_us | Ground US|\n| purolator_express | Express|\n| purolator_express9_am | Express 9am|\n| purolator_express1030_am | Express 10am|\n| purolator_express_evening | Express Evening|\n| purolator_express_us | Express US|\n| purolator_express_us9_am | Express US 9am|\n| purolator_express_us1030_am | Express US 10:30am|\n| purolator_express_us1200 | Express US 12pm|\n| purolator_express_international | Express International|\n| purolator_express_international9_am | Express International 9am|\n| purolator_express_international1030_am | Express International 10:30am|\n| purolator_express_international1200 | Express International 12pm|\n"
}
string ServiceLevelRoyalMailEnum
{
  "enum": [
    "royal_mail_tracked_letter_boxable_24_no_signature",
    "royal_mail_tracked_letter_boxable_48_no_signature",
    "royal_mail_tracked_24_returns",
    "royal_mail_tracked_48_returns",
    "royal_mail_special_delivery_guaranteed_1pm",
    "royal_mail_special_delivery_guaranteed_9am",
    "royal_mail_24",
    "royal_mail_48",
    "royal_mail_signed_for_first_class",
    "royal_mail_signed_for_second_class",
    "royal_mail_standard_first_class",
    "royal_mail_standard_second_class",
    "royal_mail_tracked_24_no_signature",
    "royal_mail_tracked_48_no_signature",
    "royal_mail_intl_bus_mail_lrg_ltr_zone_sort_pri",
    "royal_mail_intl_bus_parcels_tracked_zone_sort",
    "royal_mail_intl_bus_parcels_tracked_country_priced",
    "royal_mail_intl_bus_parcels_tracked_signed_zone_srt",
    "royal_mail_24_flat_rate",
    "royal_mail_48_flat_rate"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| royal_mail_tracked_letter_boxable_24_no_signature | Royal Mail Tracked Letter-Boxable 24 No Signature|\n| royal_mail_tracked_letter_boxable_48_no_signature | Royal Mail Tracked Letter-Boxable 48 No Signature|\n| royal_mail_tracked_24_returns | Royal Mail Tracked Returns 24|\n| royal_mail_tracked_48_returns | Royal Mail Tracked Returns 48|\n| royal_mail_special_delivery_guaranteed_1pm | Special Delivery Guaranteed by 1pm\n| royal_mail_special_delivery_guaranteed_9am | Special Delivery Guaranteed by 9am\n| royal_mail_24 | RoyalMail 24\n| royal_mail_48 | RoyalMail 48\n| royal_mail_signed_for_first_class | Signed for First Class\n| royal_mail_signed_for_second_class | Signed for Second Class\n| royal_mail_standard_first_class | Standard First Class\n| royal_mail_standard_second_class | Standard Second Class\n| royal_mail_tracked_24_no_signature | Royal Mail Tracked 24 No Signature\n| royal_mail_tracked_48_no_signature | Royal Mail Ttacked 48 No Signature\n| royal_mail_intl_bus_mail_lrg_ltr_zone_sort_pri | International Business Mail Large Letter Zone Sort Priority\n| royal_mail_intl_bus_parcels_tracked_zone_sort | International Business Parcels Tracked Zone Sort\n| royal_mail_intl_bus_parcels_tracked_country_priced | International Business Parcels Tracked Country Priced\n| royal_mail_intl_bus_parcels_tracked_signed_zone_srt | International Business Parcels & Signed Zone Sort\n| royal_mail_24_flat_rate | Royal Mail 24 Parcel Flat Rate\n| royal_mail_48_flat_rate | Royal Mail 48 Parcel Flat Rate\n"
}
string ServiceLevelSendleEnum
{
  "enum": [
    "sendle_parcel"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| sendle_parcel | Sendle Parcel|\n"
}
string ServiceLevelSwyftEnum
{
  "enum": [
    "same_day",
    "next_day"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| same_day | Next Day|\n| next_day | Next Day|\n"
}
string ServiceLevelUDSEnum
{
  "enum": [
    "uds_next_day"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| uds_next_day | Next Day|\n"
}
string ServiceLevelUPSEnum
{
  "enum": [
    "ups_standard",
    "ups_ground",
    "ups_saver",
    "ups_3_day_select",
    "ups_second_day_air",
    "ups_second_day_air_am",
    "ups_next_day_air",
    "ups_next_day_air_saver",
    "ups_next_day_air_early_am",
    "ups_mail_innovations_bpm_flat",
    "ups_mail_innovations_bpm_parcel",
    "ups_mail_innovations_irregular",
    "ups_mail_innovations_media_mail",
    "ups_mail_innovations_parcel",
    "ups_mail_innovations_standard_flat",
    "ups_surepost",
    "ups_surepost_bound_printed_matter",
    "ups_surepost_lightweight",
    "ups_surepost_media",
    "ups_express",
    "ups_express_1200",
    "ups_express_plus",
    "ups_expedited",
    "ups_express_early",
    "ups_access_point_economy"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| ups_standard | Standard℠|\n| ups_ground | Ground|\n| ups_saver | Saver®|\n| ups_3_day_select | 3 Day Select®|\n| ups_second_day_air | 2nd Day Air®|\n| ups_second_day_air_am | 2nd Day Air® A.M.|\n| ups_next_day_air | Next Day Air®|\n| ups_next_day_air_saver | Next Day Air Saver®|\n| ups_next_day_air_early_am | Next Day Air® Early|\n| ups_mail_innovations_bpm_flat | Mail Innovations BPM Flat |\n| ups_mail_innovations_bpm_parcel | Mail Innovations BPM Parcel |\n| ups_mail_innovations_irregular | Mail Innovations Irregular |\n| ups_mail_innovations_media_mail | Mail Innovations Media Mail |\n| ups_mail_innovations_parcel | Mail Innovations Parcel |\n| ups_mail_innovations_standard_flat | Mail Innovations Standard Flat |\n| ups_surepost | Surepost|\n| ups_surepost_bound_printed_matter | SurePost® Bound Printed Matter|\n| ups_surepost_lightweight | Surepost Lightweight|\n| ups_surepost_media | SurePost® Media|\n| ups_express | Express®|\n| ups_express_1200 | Express 12:00|\n| ups_express_plus | Express Plus®|\n| ups_expedited | Expedited®|\n| ups_express_early | Express® Early|\n| ups_access_point_economy | Access Point™ Economy|\n"
}
string ServiceLevelUSPSEnum
{
  "enum": [
    "usps_priority",
    "usps_priority_express",
    "usps_media_mail",
    "usps_priority_mail_international",
    "usps_priority_mail_express_international",
    "usps_first_class_package_international_service",
    "usps_ground_advantage"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| usps_priority | Priority Mail|\n| usps_priority_express | Priority Mail Express|\n| usps_media_mail | Media Mail, only for existing Shippo customers with grandfathered Media Mail option.|\n| usps_priority_mail_international | Priority Mail International|\n| usps_priority_mail_express_international | Priority Mail Express International|\n| usps_first_class_package_international_service | First Class Package International|\n| usps_ground_advantage | Ground Advantage |\n"
}
string ServiceLevelVehoEnum
{
  "enum": [
    "veho_next_day"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| veho_next_day | Veho Next Day |\n"
}
string ServiceLevelePostGlobalEnum
{
  "enum": [
    "rr_donnelley_domestic_economy_parcel",
    "rr_donnelley_domestic_priority_parcel",
    "rr_donnelley_domestic_parcel_bpm",
    "rr_donnelley_priority_domestic_priority_parcel_bpm",
    "rr_donnelley_priority_parcel_delcon",
    "rr_donnelley_priority_parcel_nondelcon",
    "rr_donnelley_economy_parcel",
    "rr_donnelley_ipa",
    "rr_donnelley_courier",
    "rr_donnelley_isal",
    "rr_donnelley_epacket",
    "rr_donnelley_pmi",
    "rr_donnelley_emi"
  ],
  "type": "string",
  "description": "|Token | Service name|\n|:---|:---|\n| rr_donnelley_domestic_economy_parcel | Domestic Economy Parcel|\n| rr_donnelley_domestic_priority_parcel | Domestic Priority Parcel |\n| rr_donnelley_domestic_parcel_bpm | Domestic Parcel BPM|\n| rr_donnelley_priority_domestic_priority_parcel_bpm | Domestic Priority Parcel BPM|\n| rr_donnelley_priority_parcel_delcon | International Priority Parcel DelCon|\n| rr_donnelley_priority_parcel_nondelcon | International Priority Parcel NonDelcon|\n| rr_donnelley_economy_parcel | Economy Parcel Service |\n| rr_donnelley_ipa | International Priority Airmail (IPA)|\n| rr_donnelley_courier | International Courier|\n| rr_donnelley_isal | International Surface Air Lift (ISAL)|\n| rr_donnelley_epacket | e-Packet|\n| rr_donnelley_pmi | Priority Mail International|\n| rr_donnelley_emi | Express Mail International|\n"
}
object Shipment
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ShipmentBase"
    },
    {
      "required": [
        "address_to",
        "address_from",
        "parcels",
        "object_created",
        "object_updated",
        "object_id",
        "object_owner",
        "status",
        "rates",
        "carrier_accounts",
        "messages",
        "metadata"
      ],
      "properties": {
        "test": {
          "type": "boolean",
          "description": "Indicates whether the object has been created in test mode."
        },
        "rates": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Rate"
          },
          "description": "An array with all available rates. If <code>async</code> has been set to <code>false</code> in the request,\nthis will be populated with all available rates in the response. Otherwise rates will be created\nasynchronously and this array will initially be empty."
        },
        "status": {
          "enum": [
            "ERROR",
            "QUEUED",
            "SUCCESS",
            "STATUS"
          ],
          "type": "string",
          "example": "SUCCESS",
          "description": "`Waiting` shipments have been successfully submitted but not yet been processed. \n`Queued` shipments are currently being processed. \n`Success` shipments have been processed successfully, meaning that rate generation has concluded. \n`Error` does not occur currently and is reserved for future use."
        },
        "parcels": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Parcel"
          },
          "description": "List of Parcel objects to be shipped."
        },
        "messages": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "text": {
                "type": "string",
                "example": "RatedShipmentWarning: User Id and Shipper Number combination is not qualified to receive negotiated rates."
              },
              "source": {
                "type": "string",
                "example": "UPS"
              }
            }
          },
          "description": "An array containing elements of the following schema:<br>`code` (string): an identifier for the corresponding message\n(not always available)<br>`message` (string): a publishable message containing further information."
        },
        "object_id": {
          "type": "string",
          "example": "adcfdddf8ec64b84ad22772bce3ea37a",
          "description": "Unique identifier of the given Shipment object."
        },
        "address_to": {
          "$ref": "#/components/schemas/Address"
        },
        "address_from": {
          "$ref": "#/components/schemas/Address"
        },
        "object_owner": {
          "type": "string",
          "example": "pp@gmail.com",
          "description": "Username of the user who created the Shipment object."
        },
        "address_return": {
          "$ref": "#/components/schemas/Address"
        },
        "object_created": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time of Shipment creation."
        },
        "object_updated": {
          "type": "string",
          "format": "date-time",
          "description": "Date and time of last Shipment update."
        },
        "carrier_accounts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "An array of object_ids of the carrier account objects to be used for getting shipping rates for this shipment. \nIf no carrier account object_ids are set in this field, Shippo will attempt to generate rates using all the \ncarrier accounts that have the `active` field set."
        }
      },
      "description": "Shipment represents the parcel as retrieved from the database"
    }
  ]
}
object ShipmentBase
{
  "type": "object",
  "properties": {
    "extra": {
      "$ref": "#/components/schemas/ShipmentExtra"
    },
    "metadata": {
      "type": "string",
      "example": "Customer ID 123456",
      "description": "A string of up to 100 characters that can be filled with any additional information you want to attach to the object."
    },
    "shipment_date": {
      "type": "string",
      "example": "2021-03-22T12:00:00Z",
      "description": "Date the shipment will be tendered to the carrier. Must be in the format `2014-01-18T00:35:03.463Z`. \nDefaults to current date and time if no value is provided. Please note that some carriers require this value to\nbe in the future, on a working day, or similar."
    },
    "customs_declaration": {
      "type": "string",
      "example": "adcfdddf8ec64b84ad22772bce3ea37a",
      "description": "ID of the Customs Declarations object for an international shipment."
    }
  }
}
object ShipmentCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/ShipmentBase"
    },
    {
      "required": [
        "address_to",
        "address_from",
        "parcels"
      ],
      "properties": {
        "async": {
          "type": "boolean"
        },
        "parcels": {
          "type": "array",
          "items": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ParcelCreateRequest"
              },
              {
                "type": "string",
                "description": "<a href=\"#tag/Parcel\">Parcel</a> `object_id` of a previously created parcel."
              }
            ]
          }
        },
        "address_to": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/AddressCreateRequest"
            },
            {
              "type": "string",
              "description": "<a href=\"#tag/Addresses\">Address</a> `object_id` of a previously created address."
            }
          ]
        },
        "address_from": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/AddressCreateRequest"
            },
            {
              "type": "string",
              "description": "<a href=\"#tag/Addresses\">Address</a> `object_id` of a previously created address."
            }
          ]
        },
        "address_return": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/AddressCreateRequest"
            },
            {
              "type": "string",
              "description": "<a href=\"#tag/Addresses\">Address</a> `object_id` of a previously created address."
            }
          ]
        },
        "carrier_accounts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "example": [
            "065a4a8c10d24a34ab932163a1b87f52",
            "73f706f4bdb94b54a337563840ce52b0"
          ],
          "description": "List of <a href=\"#tag/Carrier-Accounts/\">Carrier Accounts</a> `object_id`s used to filter \nthe returned rates.  If set, only rates from these carriers will be returned."
        }
      }
    }
  ]
}
object ShipmentExtra
{
  "type": "object",
  "properties": {
    "COD": {
      "$ref": "#/components/schemas/COD"
    },
    "alcohol": {
      "$ref": "#/components/schemas/Alcohol"
    },
    "billing": {
      "$ref": "#/components/schemas/Billing"
    },
    "dry_ice": {
      "$ref": "#/components/schemas/DryIce"
    },
    "premium": {
      "type": "boolean",
      "description": "Add premium service to a shipment (DHL Germany international shipments only)."
    },
    "insurance": {
      "$ref": "#/components/schemas/Insurance"
    },
    "is_return": {
      "type": "boolean",
      "description": "This field specifies if it is a scan-based return shipment. See the <a href=\"https://docs.goshippo.com/docs/shipments/returns/\">Create a return shipment</a> section for more details."
    },
    "po_number": {
      "$ref": "#/components/schemas/PoNumber"
    },
    "rma_number": {
      "$ref": "#/components/schemas/RmaNumber"
    },
    "dept_number": {
      "$ref": "#/components/schemas/DepartmentNumber"
    },
    "reference_1": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters."
    },
    "reference_2": {
      "type": "string",
      "description": "Optional text to be printed on the shipping label if supported by carrier. Up to 50 characters. For DHL eCommerce, this field can be used for billing reference."
    },
    "carbon_neutral": {
      "type": "boolean",
      "description": "Request carbon offsets by passing true (UPS only)."
    },
    "carrier_hub_id": {
      "type": "string",
      "description": "Identifies the carrier injection site."
    },
    "container_type": {
      "type": "string",
      "description": "Specify container type."
    },
    "invoice_number": {
      "$ref": "#/components/schemas/InvoiceNumber"
    },
    "customer_branch": {
      "type": "string",
      "description": "Specify customer branch (Lasership only)."
    },
    "dangerous_goods": {
      "$ref": "#/components/schemas/DangerousGoodsObject"
    },
    "lasership_attrs": {
      "enum": [
        "TwoPersonDelivery",
        "Explosive",
        "Alcohol",
        "Hazmat",
        "ControlledSubstance",
        "Refrigerated",
        "DryIce",
        "Perishable",
        "NoRTS"
      ],
      "type": "string",
      "description": "Specify Lasership Attributes (Lasership only). Multiple options accepted."
    },
    "qr_code_requested": {
      "type": "boolean",
      "description": "Request a QR code for a given transaction when creating a shipping label (USPS domestic and Evri UK only)."
    },
    "saturday_delivery": {
      "type": "boolean",
      "description": "Marks shipment as to be delivered on a Saturday."
    },
    "authority_to_leave": {
      "type": "boolean",
      "description": "Request `true` to give carrier permission to leave the parcel in a safe place if no one answers the \ndoor (where supported). When set to `false`, if no one is available to receive the item, the parcel \nwill not be left (*surcharges may be applicable)."
    },
    "critical_pull_time": {
      "type": "string",
      "description": "Carrier arrival time to pickup packages from the fulfillment center. \nUTC format: `%Y-%m-%dT%H:%M:%SZ`"
    },
    "customer_reference": {
      "$ref": "#/components/schemas/CustomerReference"
    },
    "fulfillment_center": {
      "type": "string",
      "description": "The fulfilment center where the package originates from."
    },
    "return_service_type": {
      "enum": [
        "PRINT_AND_MAIL",
        "ATTEMPT_1",
        "ATTEMPT_3",
        "ELECTRONIC_LABEL"
      ],
      "type": "string",
      "description": "Request additional return option for return shipments (UPS only)."
    },
    "dangerous_goods_code": {
      "enum": [
        "01",
        "02",
        "03",
        "04",
        "05",
        "06",
        "07",
        "08",
        "09"
      ],
      "type": "string",
      "description": "Dangerous Goods Code (DHL eCommerce only). See <a href=\"https://api-legacy.dhlecs.com/docs/v2/appendix.html#dangerous-goods\">Category Codes</a>"
    },
    "request_retail_rates": {
      "type": "boolean",
      "description": "Returns retail rates instead of account-based rates (UPS and FedEx only)."
    },
    "ancillary_endorsement": {
      "enum": [
        "FORWARDING_SERVICE_REQUESTED",
        "RETURN_SERVICE_REQUESTED"
      ],
      "type": "string",
      "description": "Specify an ancillary service endorsement to provide the USPS with instructions on how to handle undeliverable-as-addressed pieces (DHL eCommerce only)."
    },
    "delivery_instructions": {
      "type": "string",
      "description": "Specify delivery instructions. Up to 500 characters. (FedEx and OnTrac only)."
    },
    "signature_confirmation": {
      "enum": [
        "STANDARD",
        "ADULT",
        "CERTIFIED",
        "INDIRECT",
        "CARRIER_CONFIRMATION"
      ],
      "type": "string",
      "description": "Request standard or adult signature confirmation. You can alternatively request Certified Mail (USPS only) \nor Indirect signature (FedEx only) or Carrier Confirmation (Deutsche Post only)."
    },
    "carrier_hub_travel_time": {
      "type": "integer",
      "description": "Travel time in hours from fulfillment center to carrier injection site."
    },
    "lasership_declared_value": {
      "type": "string",
      "description": "Declared value (Lasership only). Defaults to `50.00`."
    },
    "bypass_address_validation": {
      "type": "boolean",
      "description": "Bypasses address validation (USPS, UPS, & LaserShip only)."
    },
    "preferred_delivery_timeframe": {
      "enum": [
        "10001200",
        "12001400",
        "14001600",
        "16001800",
        "18002000",
        "19002100"
      ],
      "type": "string",
      "description": "Required for DHL Germany Paket Sameday. Designates a desired timeframe for delivery. Format is `HHMMHHMM`"
    }
  },
  "description": "An object holding optional extra services to be requested."
}
object ShipmentPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Shipment"
          }
        }
      }
    }
  ]
}
object ShippoAccount
{
  "type": "object",
  "required": [
    "first_name",
    "last_name",
    "email",
    "company_name"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "hippo@shippo.com"
    },
    "last_name": {
      "type": "string",
      "example": "Meister"
    },
    "object_id": {
      "type": "string",
      "example": "adcfdddf8ec64b84ad22772bce3ea37a"
    },
    "first_name": {
      "type": "string",
      "example": "Shippo"
    },
    "company_name": {
      "type": "string",
      "example": "Acme"
    },
    "object_created": {
      "type": "string",
      "format": "date-time"
    },
    "object_updated": {
      "type": "string",
      "format": "date-time"
    }
  }
}
object ShippoAccountPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ShippoAccount"
          }
        }
      }
    }
  ]
}
object ShippoAccountUpdateRequest
{
  "type": "object",
  "title": "ShippoAccountUpdateRequest represents the fields of a shippo account before saving it to the db.",
  "required": [
    "first_name",
    "last_name",
    "email",
    "company_name"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "hippo@shippo.com"
    },
    "last_name": {
      "type": "string",
      "example": "Meister"
    },
    "first_name": {
      "type": "string",
      "example": "Shippo"
    },
    "company_name": {
      "type": "string",
      "example": "Acme"
    }
  }
}
object Track
{
  "type": "object",
  "required": [
    "carrier",
    "tracking_number",
    "address_from",
    "servicelevel",
    "tracking_history",
    "messages"
  ],
  "properties": {
    "eta": {
      "type": "string",
      "format": "date-time",
      "description": "The estimated time of arrival according to the carrier, this might be updated by carriers during the life of the shipment."
    },
    "carrier": {
      "type": "string",
      "example": "usps",
      "description": "Name of the carrier of the shipment to track. See <a href=\"#tag/Carriers\">Carriers</a>."
    },
    "messages": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "metadata": {
      "type": "string",
      "example": "Order 000123",
      "description": "A string of up to 100 characters that can be filled with any additional information you want to attach to the object."
    },
    "address_to": {
      "$ref": "#/components/schemas/TrackingStatusLocationBase"
    },
    "transaction": {
      "type": "string",
      "description": "The <code>object_id</code> of the transaction associated with this tracking object. \nThis field is visible only to the object owner of the transaction."
    },
    "address_from": {
      "$ref": "#/components/schemas/TrackingStatusLocationBase"
    },
    "original_eta": {
      "type": "string",
      "format": "date-time",
      "example": "2021-07-23T00:00:00Z",
      "description": "The estimated time of arrival according to the carrier at the time the shipment first entered the system."
    },
    "servicelevel": {
      "$ref": "#/components/schemas/ServiceLevel"
    },
    "tracking_number": {
      "type": "string",
      "example": "9205590164917312751089",
      "description": "Tracking number to track."
    },
    "tracking_status": {
      "$ref": "#/components/schemas/TrackingStatus"
    },
    "tracking_history": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/TrackingStatus"
      },
      "description": "A list of tracking events, following the same structure as <code>tracking_status</code>. \nIt contains a full history of all tracking statuses, starting with the earlier tracking event first."
    }
  }
}
object TrackingStatus
{
  "type": "object",
  "required": [
    "object_created",
    "object_updated",
    "object_id",
    "status",
    "status_details",
    "status_date",
    "location"
  ],
  "properties": {
    "status": {
      "$ref": "#/components/schemas/TrackingStatusEnum"
    },
    "location": {
      "$ref": "#/components/schemas/TrackingStatusLocationBase"
    },
    "object_id": {
      "type": "string"
    },
    "substatus": {
      "$ref": "#/components/schemas/TrackingStatusSubstatus"
    },
    "status_date": {
      "type": "string",
      "format": "date-time",
      "example": "2016-07-23T00:00:00Z",
      "description": "Date and time when the carrier scanned this tracking event. This is displayed in UTC."
    },
    "object_created": {
      "type": "string",
      "format": "date-time"
    },
    "object_updated": {
      "type": "string",
      "format": "date-time"
    },
    "status_details": {
      "type": "string",
      "example": "Your shipment has been delivered at the destination mailbox.",
      "description": "The human-readable description of the status."
    }
  },
  "description": "The latest tracking information of this shipment."
}
string TrackingStatusEnum
{
  "enum": [
    "UNKNOWN",
    "PRE_TRANSIT",
    "TRANSIT",
    "DELIVERED",
    "RETURNED",
    "FAILURE"
  ],
  "type": "string",
  "example": "DELIVERED",
  "description": "Indicates the high level status of the shipment."
}
object TrackingStatusLocationBase
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "example": "89101"
    },
    "city": {
      "type": "string",
      "example": "Las Vegas"
    },
    "state": {
      "type": "string",
      "example": "NV"
    },
    "country": {
      "type": "string",
      "example": "US"
    }
  }
}
object TrackingStatusSubstatus
{
  "type": "object",
  "required": [
    "code",
    "text",
    "action_required"
  ],
  "properties": {
    "code": {
      "type": "string",
      "example": "information_received",
      "description": "A code that represents the substatus of the shipment. See the <a href=\"https://docs.goshippo.com/docs/tracking/tracking/#event-definitions\">Event Definitions</a> for more information."
    },
    "text": {
      "type": "string",
      "example": "Information about the package received.",
      "description": "A human-readable description of the substatus. See the <a href=\"https://docs.goshippo.com/docs/tracking/tracking/#event-definitions\">Event Definitions</a> for more information."
    },
    "action_required": {
      "type": "boolean",
      "description": "Indicates whether the substatus requires action from the shipper or recipient to complete delivery."
    }
  },
  "description": "A finer-grained classification of the tracking event."
}
object TracksRequest
{
  "type": "object",
  "required": [
    "carrier",
    "tracking_number"
  ],
  "properties": {
    "carrier": {
      "type": "string",
      "example": "usps",
      "description": "Name of the carrier of the shipment to track."
    },
    "metadata": {
      "type": "string",
      "example": "Order 000123",
      "description": "A string of up to 100 characters that can be filled with any additional information you want to attach to the object."
    },
    "tracking_number": {
      "type": "string",
      "example": "9205590164917312751089",
      "description": "Tracking number to track."
    }
  }
}
object Transaction
{
  "type": "object",
  "properties": {
    "eta": {
      "type": "string",
      "description": "The estimated time of arrival according to the carrier."
    },
    "rate": {
      "type": "string",
      "example": "ec9f0d3adc9441449c85d315f0997fd5",
      "description": "ID of the Rate object for which a Label has to be obtained. \nPlease note that only rates that are not older than 7 days can be purchased in order to ensure up-to-date pricing."
    },
    "test": {
      "type": "boolean",
      "description": "Indicates whether the object has been created in test mode."
    },
    "status": {
      "$ref": "#/components/schemas/TransactionStatusEnum"
    },
    "messages": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "example": [],
      "description": "An array containing elements of the following schema:<br>\n`code` (string): an identifier for the corresponding message (not always available)<br>\n`message` (string): a publishable message containing further information."
    },
    "metadata": {
      "type": "string",
      "description": "A string of up to 100 characters that can be filled with any additional information you want to \nattach to the object."
    },
    "label_url": {
      "type": "string",
      "example": "https://shippo-delivery.s3.amazonaws.com/70ae8117ee1749e393f249d5b77c45e0.pdf?Signature=vDw1ltcyGveVR1OQoUDdzC43BY8%3D&Expires=1437093830&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA",
      "description": "A URL pointing directly to the label in the format you've set in your settings. \nA value will only be returned if the Transactions has been processed successfully."
    },
    "object_id": {
      "type": "string",
      "example": "915d94940ea54c3a80cbfa328722f5a1",
      "description": "Unique identifier of the given Transaction object."
    },
    "qr_code_url": {
      "type": "string",
      "example": "https://shippo-delivery.s3.amazonaws.com/96_qr_code.pdf?Signature=PEdWrp0mFWAGwJp7FW3b%2FeA2eyY%3D&Expires=1385930652&AWSAccessKeyId=AKIAJTHP3LLFMYAWALIA",
      "description": "A URL pointing directly to the QR code in PNG format. \nA value will only be returned if requested using qr_code_requested flag and the carrier provides such an option."
    },
    "object_owner": {
      "type": "string",
      "example": "shippotle@shippo.com",
      "description": "Username of the user who created the Transaction object."
    },
    "object_state": {
      "$ref": "#/components/schemas/ObjectStateEnum"
    },
    "object_created": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of Transaction creation."
    },
    "object_updated": {
      "type": "string",
      "format": "date-time",
      "description": "Date and time of last Transaction update."
    },
    "label_file_type": {
      "$ref": "#/components/schemas/LabelFileTypeEnum"
    },
    "tracking_number": {
      "type": "string",
      "example": "9499907123456123456781",
      "description": "The carrier-specific tracking number that can be used to track the Shipment. \nA value will only be returned if the Rate is for a trackable Shipment and if the Transactions has been processed successfully."
    },
    "tracking_status": {
      "$ref": "#/components/schemas/TrackingStatusEnum"
    },
    "tracking_url_provider": {
      "type": "string",
      "example": "https://tools.usps.com/go/TrackConfirmAction_input?origTrackNum=9499907123456123456781",
      "description": "A link to track this item on the carrier-provided tracking website. \nA value will only be returned if tracking is available and the carrier provides such a service."
    },
    "commercial_invoice_url": {
      "type": "string",
      "description": "A URL pointing to the commercial invoice as a 8.5x11 inch PDF file. \nA value will only be returned if the Transactions has been processed successfully and if the shipment is international."
    }
  }
}
object TransactionCreateRequest
{
  "type": "object",
  "required": [
    "rate"
  ],
  "properties": {
    "rate": {
      "type": "string",
      "example": "ec9f0d3adc9441449c85d315f0997fd5"
    },
    "async": {
      "type": "boolean",
      "example": false
    },
    "metadata": {
      "type": "string",
      "example": "Order ID #12345"
    },
    "label_file_type": {
      "$ref": "#/components/schemas/LabelFileTypeEnum"
    }
  }
}
object TransactionPaginatedList
{
  "allOf": [
    {
      "$ref": "#/components/schemas/PaginatedList"
    },
    {
      "properties": {
        "results": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/Transaction"
          }
        }
      }
    }
  ]
}
string TransactionStatusEnum
{
  "enum": [
    "WAITING",
    "QUEUED",
    "SUCCESS",
    "ERROR",
    "REFUNDED",
    "REFUNDPENDING",
    "REFUNDREJECTED"
  ],
  "type": "string",
  "example": "SUCCESS",
  "description": "Indicates the status of the Transaction."
}
object TransactionsCreateShippingLabelRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/TransactionCreateRequest"
    },
    {
      "$ref": "#/components/schemas/InstantTransactionRequestBody"
    }
  ]
}
object UPSConnectExistingOwnAccountParameters
{
  "type": "object",
  "title": "UPS account parameters",
  "required": [
    "ups_agreements",
    "account_number",
    "title",
    "company",
    "full_name",
    "phone",
    "billing_address_street1",
    "billing_address_city",
    "billing_address_zip",
    "billing_address_state",
    "billing_address_country_iso2",
    "collec_zip",
    "collec_country_iso2",
    "has_invoice",
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "hippo@shippo.com"
    },
    "phone": {
      "type": "string",
      "example": "1112223333"
    },
    "title": {
      "type": "string",
      "example": "Manager",
      "description": "User's title, e.g. including but not limited to Manager, Doctor, Artist, Engineer, Mr, Ms, Mrs, Mx"
    },
    "company": {
      "type": "string",
      "example": "Shippo",
      "description": "Company name. Full name is acceptable in this field if the user has no company name"
    },
    "full_name": {
      "type": "string",
      "example": "Shippo Meister"
    },
    "collec_zip": {
      "type": "string",
      "example": "94103",
      "maxLength": 5,
      "minLength": 5,
      "description": "Zip code of the collection/pickup address"
    },
    "has_invoice": {
      "type": "boolean",
      "description": "true if user has been issued a UPS invoice within the past 90 days for the US or Canada; and 45 days for any other countries. User can use data from any of the last 3 invoices"
    },
    "invoice_date": {
      "type": "string",
      "example": "20210529",
      "description": "Only required if has_invoice is true. Date the invoice was issued. yyyymmdd format"
    },
    "currency_code": {
      "type": "string",
      "example": "USD",
      "maxLength": 3,
      "minLength": 3,
      "description": "Only required if has_invoice is true. 3-letter currency code associated with invoice_value"
    },
    "invoice_value": {
      "type": "string",
      "example": "11.23",
      "description": "Only required if has_invoice is true. Max 16 digits before decimal and 2 digits after decimal"
    },
    "account_number": {
      "type": "string",
      "example": "94567e",
      "description": "The UPS account number"
    },
    "invoice_number": {
      "type": "string",
      "example": "1112234",
      "maxLength": 15,
      "minLength": 1
    },
    "ups_agreements": {
      "type": "boolean",
      "description": "Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false"
    },
    "aia_country_iso2": {
      "type": "string",
      "example": "US",
      "description": "Only required if has_invoice is true. Country associated with the account that issued the invoice"
    },
    "invoice_controlid": {
      "type": "string",
      "example": "1234",
      "maxLength": 4,
      "minLength": 4,
      "description": "Only required if aia_country_iso2 is US and has_invoice is true."
    },
    "billing_address_zip": {
      "type": "string",
      "example": "94103",
      "maxLength": 5,
      "minLength": 5
    },
    "collec_country_iso2": {
      "type": "string",
      "example": "US",
      "maxLength": 2,
      "minLength": 2
    },
    "billing_address_city": {
      "type": "string",
      "example": "San Francisco"
    },
    "billing_address_state": {
      "type": "string",
      "example": "CA",
      "maxLength": 2,
      "minLength": 2
    },
    "billing_address_street1": {
      "type": "string",
      "example": "731 Market St"
    },
    "billing_address_street2": {
      "type": "string",
      "example": "STE 200",
      "description": "Empty string acceptable for billing_address_street2"
    },
    "billing_address_country_iso2": {
      "type": "string",
      "example": "US",
      "maxLength": 2,
      "minLength": 2
    }
  },
  "description": "An array of additional parameters for the account, such as e.g. password or token.\nPlease check the <a href=\"https://docs.goshippo.com/docs/carriers/carrieraccounts/\">carrier accounts tutorial</a> page for the parameters per carrier.<br> \nTo protect account information, this field will be masked in any API response."
}
object UPSCreateNewOwnAccountParameters
{
  "type": "object",
  "required": [
    "ups_agreements",
    "email",
    "full_name",
    "company",
    "phone",
    "billing_address_street1",
    "billing_address_city",
    "billing_address_zip",
    "billing_address_state",
    "billing_address_country_iso2",
    "pickup_address_same_as_billing_address"
  ],
  "properties": {
    "email": {
      "type": "string",
      "example": "hippo@shippo.com"
    },
    "phone": {
      "type": "string",
      "example": "1112223333"
    },
    "company": {
      "type": "string",
      "example": "Shippo",
      "description": "Company name. Full name is acceptable in this field if the user has no company name"
    },
    "full_name": {
      "type": "string",
      "example": "Shippo Meister"
    },
    "ups_agreements": {
      "type": "boolean",
      "description": "Whether the user agrees to the UPS terms and conditions or not. Error 400 will be returned if passed in as false"
    },
    "pickup_address_zip": {
      "type": "string",
      "example": "94103",
      "maxLength": 5,
      "minLength": 5,
      "description": "User's pickup address zip code. Only required if pickup_address_same_as_billing_address is false"
    },
    "billing_address_zip": {
      "type": "string",
      "example": "94103",
      "maxLength": 5,
      "minLength": 5
    },
    "pickup_address_city": {
      "type": "string",
      "example": "San Francisco",
      "description": "User's pickup address city. Only required if pickup_address_same_as_billing_address is false"
    },
    "billing_address_city": {
      "type": "string",
      "example": "San Francisco"
    },
    "pickup_address_state": {
      "type": "string",
      "example": "CA",
      "maxLength": 2,
      "minLength": 2,
      "description": "User's pickup address state. Only required if pickup_address_same_as_billing_address is false"
    },
    "billing_address_state": {
      "type": "string",
      "example": "CA",
      "maxLength": 2,
      "minLength": 2
    },
    "pickup_address_street1": {
      "type": "string",
      "example": "731 Market St",
      "description": "User's pickup address street 1. Only required if pickup_address_same_as_billing_address is false"
    },
    "pickup_address_street2": {
      "type": "string",
      "example": "STE 200",
      "description": "User's pickup street 2. Only used if pickup_address_same_as_billing_address is false, empty string acceptable"
    },
    "billing_address_street1": {
      "type": "string",
      "example": "731 Market St"
    },
    "billing_address_street2": {
      "type": "string",
      "example": "STE 200",
      "description": "Empty string acceptable for billing_address_street2"
    },
    "pickup_address_country_iso2": {
      "type": "string",
      "example": "US",
      "maxLength": 2,
      "minLength": 2,
      "description": "User's pickup street 1. Only required if pickup_address_same_as_billing_address is false"
    },
    "billing_address_country_iso2": {
      "type": "string",
      "example": "US",
      "maxLength": 2,
      "minLength": 2
    },
    "pickup_address_same_as_billing_address": {
      "type": "boolean",
      "example": false
    }
  }
}
object UserParcelTemplate
{
  "allOf": [
    {
      "$ref": "#/components/schemas/UserParcelTemplateBase"
    },
    {
      "title": "The fields of a parcel template before saving it to the db.",
      "properties": {
        "template": {
          "$ref": "#/components/schemas/CarrierParcelTemplate"
        },
        "object_id": {
          "type": "string",
          "example": "b958d3690bb04bb8b2986724872750f5",
          "description": "Unique identifier of the given User Parcel Template object"
        },
        "object_owner": {
          "type": "string",
          "example": "shippotle@shippo.com",
          "description": "Username of the user who created the User Parcel Template object"
        },
        "object_created": {
          "type": "string",
          "format": "date-time",
          "example": "2013-12-11T19:38:09.729Z",
          "description": "Date and time of User Parcel Template creation"
        },
        "object_updated": {
          "type": "string",
          "format": "date-time",
          "example": "2013-12-12T19:38:09.729Z",
          "description": "Date and time of last update on User Parcel Template"
        }
      }
    }
  ]
}
object UserParcelTemplateBase
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "example": "My Custom Template",
      "description": "The name of the User Parcel Template"
    },
    "width": {
      "type": "string",
      "example": "8",
      "description": "The width of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty."
    },
    "height": {
      "type": "string",
      "example": "6",
      "description": "The height of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty."
    },
    "length": {
      "type": "string",
      "example": "10",
      "description": "The length of the package, in units specified by the `distance_unit` attribute. Required, but if using a preset carrier template then this field must be empty."
    },
    "weight": {
      "type": "string",
      "example": "12",
      "description": "The weight of the package, in units specified by the weight_unit attribute."
    },
    "weight_unit": {
      "$ref": "#/components/schemas/WeightUnitEnum"
    },
    "distance_unit": {
      "$ref": "#/components/schemas/DistanceUnitEnum",
      "description": "The measure unit used for length, width and height. Required, but if using a preset carrier template then this field must be empty."
    }
  }
}
object UserParcelTemplateCreateRequest
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/UserParcelTemplateWithCarrierTemplateCreateRequest"
    },
    {
      "$ref": "#/components/schemas/UserParcelTemplateWithoutCarrierTemplateCreateRequest"
    }
  ]
}
object UserParcelTemplateUpdateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/UserParcelTemplateBase"
    },
    {
      "required": [
        "name",
        "length",
        "width",
        "height",
        "distance_unit"
      ]
    }
  ]
}
object UserParcelTemplateWithCarrierTemplateCreateRequest
{
  "type": "object",
  "title": "A request to create or update a new parcel template.",
  "properties": {
    "weight": {
      "type": "string",
      "example": "12",
      "description": "The weight of the package, in units specified by the weight_unit attribute."
    },
    "template": {
      "type": "string",
      "description": "The object representing the carrier parcel template"
    },
    "weight_unit": {
      "$ref": "#/components/schemas/WeightUnitEnum"
    }
  }
}
object UserParcelTemplateWithoutCarrierTemplateCreateRequest
{
  "allOf": [
    {
      "$ref": "#/components/schemas/UserParcelTemplateBase"
    },
    {
      "title": "A request to create or update a new parcel template.",
      "required": [
        "name",
        "length",
        "width",
        "height",
        "distance_unit"
      ]
    }
  ]
}
array UserParcelTemplatesListAllResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/UserParcelTemplate"
  }
}
string WeightUnitEnum
{
  "enum": [
    "g",
    "kg",
    "lb",
    "oz"
  ],
  "type": "string",
  "example": "lb",
  "description": "The unit used for weight."
}