openapi: 3.0.0
servers:
  - url: https://api.shipengine.com
info:
  contact:
    email: sales@shipengine.com
    name: ShipEngine Sales & Support
    url: https://www.shipengine.com/contact/
    x-phone: 1-512-856-5379
  description: |
    ShipEngine's easy-to-use REST API lets you manage all of your shipping needs without worrying about the complexities of different carrier APIs and protocols. We handle all the heavy lifting so you can focus on providing a first-class shipping experience for your customers at the best possible prices.

    Each of ShipEngine's features can be used by itself or in conjunction with each other to build powerful shipping functionality into your application or service.

    ## Getting Started
    If you're new to REST APIs then be sure to read our [introduction to REST](https://www.shipengine.com/docs/rest/) to understand the basics.  Learn how to [authenticate yourself to ShipEngine](https://www.shipengine.com/docs/auth/), and then use our [sandbox environment](https://www.shipengine.com/docs/sandbox/) to kick the tires and get familiar with our API. If you run into any problems, then be sure to check the [error handling guide](https://www.shipengine.com/docs/errors/) for tips.

    Here are some step-by-step **tutorials** to get you started:

      - [Learn how to create your first shipping label](https://www.shipengine.com/docs/labels/create-a-label/)
      - [Calculate shipping costs and compare rates across carriers](https://www.shipengine.com/docs/rates/)
      - [Track packages on-demand or in real time](https://www.shipengine.com/docs/tracking/)
      - [Validate mailing addresses anywhere on Earth](https://www.shipengine.com/docs/addresses/validation/)


    ## Shipping Labels for Every Major Carrier
    ShipEngine makes it easy to [create shipping labels for any carrier](https://www.shipengine.com/docs/labels/create-a-label/) and [download them](https://www.shipengine.com/docs/labels/downloading/) in a [variety of file formats](https://www.shipengine.com/docs/labels/formats/). You can even customize labels with your own [messages](https://www.shipengine.com/docs/labels/messages/) and [images](https://www.shipengine.com/docs/labels/branding/).


    ## Real-Time Package Tracking
    With ShipEngine you can [get the current status of a package](https://www.shipengine.com/docs/tracking/) or [subscribe to real-time tracking updates](https://www.shipengine.com/docs/tracking/webhooks/) via webhooks. You can also create [custimized tracking pages](https://www.shipengine.com/docs/tracking/branded-tracking-page/) with your own branding so your customers will always know where their package is.


    ## Compare Shipping Costs Across Carriers
    Make sure you ship as cost-effectively as possible by [comparing rates across carriers](https://www.shipengine.com/docs/rates/get-shipment-rates/) using the ShipEngine Rates API. Or if you don't know the full shipment details yet, then you can [get rate estimates](https://www.shipengine.com/docs/rates/estimate/) with limited address info.


    ## Worldwide Address Validation
    ShipEngine supports [address validation](https://www.shipengine.com/docs/addresses/validation/) for virtually [every country on Earth](https://www.shipengine.com/docs/addresses/validation/countries/), including the United States, Canada, Great Britain, Australia, Germany, France, Norway, Spain, Sweden, Israel, Italy, and over 160 others.
  termsOfService: https://www.shipengine.com/terms-of-service/
  title: ShipEngine API
  version: 1.1.202304191404
  x-apisguru-categories:
    - transport
  x-logo:
    altText: ShipEngine logo
    backgroundColor: "#FFFFFF"
    url: https://www.shipengine.com/wp-content/themes/shipengine/assets/img/logo.svg
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/ShipEngine/shipengine-openapi/master/openapi.yaml
      version: "3.0"
  x-providerName: shipengine.com
externalDocs:
  description: |
    ShipEngine's documentation is designed to help you start shipping as quickly as possible. With easy-to-follow tutorials, detailed reference docs, and ready-made recipes for common use cases, you'll see real results in no time at all.
  url: https://www.shipengine.com/docs/
security:
  - api_key: []
tags:
  - description: |
      For additional information about the ShipEngine account. 
    name: account
    x-displayName: Account
  - description: |
      No matter your shipping volume, failed deliveries and address change surcharges cut into your bottom line and damage perception with customers. Our address validation services ensure your packages make it to the right place the first time. [Learn how to leverage our address validation services here.](https://www.shipengine.com/docs/addresses/validation/)

      ShipEngine supports address validation for virtually every country on Earth, including the United States, Canada, Great Britain, Australia, Germany, France, Norway, Spain, Sweden, Israel, Italy, and over 160 others.
    externalDocs:
      description: |
        Address validation ensures accurate addresses and can lead to reduced shipping costs by preventing address correction surcharges. ShipEngine cross references multiple databases to validate addresses and identify potential deliverability issues.
      url: https://www.shipengine.com/docs/addresses/validation/
    name: addresses
    x-displayName: Addresses
  - description: |
      batches
    name: batches
    x-displayName: Batches
  - description: |
      carrier accounts
    name: carrier_accounts
    x-displayName: Carrier Accounts
  - description: |
      carriers
    name: carriers
    x-displayName: Carriers
  - description: |
      downloads
    name: downloads
    x-displayName: Downloads
  - description: |
      insurance
    name: insurance
    x-displayName: Insurance
  - description: |
      Print shipping labels for any of the top global carriers in minutes—instead of weeks. Simply [connect your existing carrier accounts](https://www.shipengine.com/docs/carriers/setup/) in the API dashboard, and then [begin creating labels](https://www.shipengine.com/docs/shipping/use-a-carrier-service/).
    externalDocs:
      description: Follow this quick start guide to create your first shipping label with ShipEngine
      url: https://www.shipengine.com/docs/labels/create-a-label/
    name: labels
    x-displayName: Labels
  - description: |
      manifests
    name: manifests
    x-displayName: Manifests
  - description: Scheduled package pickups
    name: package_pickups
    x-displayName: Package Pickups
  - description: |
      custom package types
    name: package_types
    x-displayName: Package Types
  - description: |
      Make sure you ship as cost-effectively as possible by [quickly comparing rates](https://www.shipengine.com/docs/rates/) using the ShipEngine Rates API. As long as you have the carrier connected to your account, you'll be able to see and compare different rates and services.
    externalDocs:
      description: |
        This quick start guide shows you how to get shipping rates for multiple carriers so you can choose the fastest, cheapest, or most reliable option.
      url: https://www.shipengine.com/docs/rates/
    name: rates
    x-displayName: Rates
  - name: service_points
    x-displayName: Service Points
  - description: |
      Shipments are at the center of the ShipEngine API.  A shipment is the first step in [creating a shipping label](https://www.shipengine.com/docs/labels/create-a-label/), or [creating a manifest](https://www.shipengine.com/docs/shipping/manifests/).  It's also essential for [getting shipping rates](https://www.shipengine.com/docs/rates/).
    externalDocs:
      description: |
        Learn about the shipment object model concept, and how to persist and re-use shipment data inside ShipEngine.
      url: https://www.shipengine.com/docs/shipping/create-a-shipment/
    name: shipments
    x-displayName: Shipments
  - description: |
      tags
    name: tags
    x-displayName: Tags
  - name: tokens
    x-displayName: Tokens
  - description: |
      [Track packages](https://www.shipengine.com/docs/tracking/) across any of our 20+ supported carrier accounts and create tracking events to keep your customers up-to-date. Easily integrate real-time tracking information for shipments into your app, email, or SMS.
    externalDocs:
      description: Learn how to use ShipEngine to track any package with a carrier and a tracking number
      url: https://www.shipengine.com/docs/tracking/
    name: tracking
    x-displayName: Tracking
  - description: |
      warehouses
    name: warehouses
    x-displayName: Warehouses
  - description: |
      [Webhooks](https://www.shipengine.com/docs/tracking/webhooks/) are a powerful feature of ShipEngine that can save you from sending repeated polling requests to check on the state of something.  With webhooks, ShipEngine will automatically contact your servers when the stage changes.  This can include [parcel tracking](https://www.shipengine.com/docs/tracking/) events, notification of the completion of a [batch operation](https://www.shipengine.com/docs/labels/bulk/),  or new [salses orders](https://www.shipengine.com/docs/orders/).
    externalDocs:
      description: Learn how to setup webhooks and start listening to ShipEngine events.
      url: https://www.shipengine.com/docs/tracking/webhooks/
    name: webhooks
    x-displayName: Webhooks
paths:
  /v1/account/settings:
    description: ShipEngine Account settings
    get:
      description: List all account settings for the ShipEngine account
      operationId: list_account_settings
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_account_settings_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Account Settings
      tags:
        - account
    summary: Account settings
  /v1/account/settings/images:
    description: ShipEngine Account images
    get:
      description: List all account images for the ShipEngine account
      operationId: list_account_images
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_account_settings_images_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Account Images
      tags:
        - account
    post:
      description: Create an Account Image
      operationId: create_account_image
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_account_settings_image_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_account_settings_images_response_body"
          description: The requested object creation was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create an Account Image
      tags:
        - account
    summary: Account settings images
  "/v1/account/settings/images/{label_image_id}":
    delete:
      description: Delete Account Image By Id
      operationId: delete_account_image_by_id
      parameters:
        - description: Label Image Id
          in: path
          name: label_image_id
          required: true
          schema:
            $ref: "#/components/schemas/image_id"
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Delete Account Image By Id
      tags:
        - account
    description: ShipEngine Account images
    get:
      description: Retrieve information for an account image.
      operationId: get_account_settings_images_by_id
      parameters:
        - description: Label Image Id
          in: path
          name: label_image_id
          required: true
          schema:
            $ref: "#/components/schemas/image_id"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_account_settings_images_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Account Image By ID
      tags:
        - account
    put:
      description: Update information for an account image.
      operationId: update_account_settings_images_by_id
      parameters:
        - description: Label Image Id
          in: path
          name: label_image_id
          required: true
          schema:
            $ref: "#/components/schemas/image_id"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/update_account_settings_image_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update Account Image By ID
      tags:
        - account
    summary: Account settings images
  /v1/addresses/recognize:
    description: |
      Data often enters your system as unstructured text (for example: emails, SMS messages, support tickets, or other documents). ShipEngine's address-recognition API helps you extract meaningful address data (e.g. recipient name, address line 1, line 2, city, postal code) from this unstructured text.
    put:
      description: |
        The address-recognition API makes it easy for you to extract address data from unstructured text, including the recipient name, line 1, line 2, city, postal code, and more.

        Data often enters your system as unstructured text (for example: emails, SMS messages, support tickets, or other documents). ShipEngine's address-recognition API helps you extract meaningful, structured data from this unstructured text. The parsed address data is returned in the same structure that's used for other ShipEngine APIs, such as address validation, rate quotes, and shipping labels.

        > **Note:** Address recognition is currently supported for the United States, Canada, Australia, New Zealand, the United Kingdom, and Ireland.
      operationId: parse_address
      requestBody:
        content:
          application/json:
            examples:
              some_known_fields:
                description: |
                  You can optionally provide an `address` object containing any already-known values. For example, you may already know the recipient's name, city, and country, and only want to parse the street address into separate lines.
                summary: Some known fields
                value:
                  address:
                    address_residential_indicator: yes
                    country_code: US
                  text: Margie McMiller at 3800 North Lamar suite 200 in austin, tx.  The zip code there is 78652.
              text_only:
                description: |
                  This is the simplest way to call the address-recognition API. Just pass the text to be parsed and nothing else.
                summary: Text only
                value:
                  text: Margie McMiller at 3800 North Lamar suite 200 in austin, tx.  The zip code there is 78652.
            schema:
              $ref: "#/components/schemas/parse_address_request_body"
        description: |
          The only required field is `text`, which is the text to be parsed. You can optionally also provide an `address` containing already-known values. For example, you may already know the recipient's name, city, and country, and only want to parse the street address into separate lines.
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                some_known_fields:
                  description: |
                    This response is shows that the address-recognition API was able to recognize all the address entities in the text.  Notice that the `country_code` and `address_residential_indicator` fields are populated with the values that were provided in the request.
                  value:
                    address:
                      address_line1: 3800 North Lamar
                      address_line2: Suite 200
                      address_residential_indicator: yes
                      city_locality: Austin
                      country_code: US
                      name: Margie McMiller
                      postal_code: 78652
                      state_province: TX
                    entities:
                      - end_index: 14
                        result:
                          value: Margie McMiller
                        score: 0.9519646137063122
                        start_index: 0
                        text: Margie McMiller
                        type: person
                      - end_index: 34
                        result:
                          line: 1
                          value: 3800 North Lamar
                        score: 0.9805313966503588
                        start_index: 19
                        text: 3800 North Lamar
                        type: address_line
                      - end_index: 22
                        result:
                          type: cardinal
                          value: 3800
                        score: 0.9805313966503588
                        start_index: 19
                        text: 3800
                        type: number
                      - end_index: 44
                        result:
                          line: 2
                          value: Suite 200
                        score: 1
                        start_index: 36
                        text: suite 200
                        type: address_line
                      - end_index: 44
                        result:
                          type: cardinal
                          value: 200
                        score: 0.9805313966503588
                        start_index: 42
                        text: 200
                        type: number
                      - end_index: 54
                        result:
                          value: Austin
                        score: 0.9805313966503588
                        start_index: 49
                        text: austin
                        type: city_locality
                      - end_index: 58
                        result:
                          name: Texas
                          value: TX
                        score: 0.6082904353940255
                        start_index: 57
                        text: tx
                        type: state_province
                      - end_index: 88
                        result:
                          value: 78652
                        score: 0.9519646137063122
                        start_index: 84
                        text: 78652
                        type: postal_code
                    score: 0.9122137426845613
                text_only:
                  description: |
                    This response shows that the address-recognition API was able to recognize all the address entities in the text.  Notice that the `country_code` is not populated and the `address_residential_indicator` is "unknown", since neither of these fields was included in the text.
                  value:
                    address:
                      address_line1: 3800 North Lamar
                      address_line2: Suite 200
                      address_residential_indicator: unknown
                      city_locality: Austin
                      name: Margie McMiller
                      postal_code: 78652
                      state_province: TX
                    entities:
                      - end_index: 14
                        result:
                          value: Margie McMiller
                        score: 0.9519646137063122
                        start_index: 0
                        text: Margie McMiller
                        type: person
                      - end_index: 34
                        result:
                          line: 1
                          value: 3800 North Lamar
                        score: 0.9805313966503588
                        start_index: 19
                        text: 3800 North Lamar
                        type: address_line
                      - end_index: 22
                        result:
                          type: cardinal
                          value: 3800
                        score: 0.9805313966503588
                        start_index: 19
                        text: 3800
                        type: number
                      - end_index: 44
                        result:
                          line: 2
                          value: Suite 200
                        score: 1
                        start_index: 36
                        text: suite 200
                        type: address_line
                      - end_index: 44
                        result:
                          type: cardinal
                          value: 200
                        score: 0.9805313966503588
                        start_index: 42
                        text: 200
                        type: number
                      - end_index: 54
                        result:
                          value: Austin
                        score: 0.9805313966503588
                        start_index: 49
                        text: austin
                        type: city_locality
                      - end_index: 58
                        result:
                          name: Texas
                          value: TX
                        score: 0.6082904353940255
                        start_index: 57
                        text: tx
                        type: state_province
                      - end_index: 88
                        result:
                          value: 78652
                        score: 0.9519646137063122
                        start_index: 84
                        text: 78652
                        type: postal_code
                    score: 0.9122137426845613
              schema:
                $ref: "#/components/schemas/parse_address_response_body"
          description: |
            Returns the parsed address, as well as a confidence score and a list of all the entities that were recognized in the text.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Parse an address
      tags:
        - addresses
    summary: Parse an address
  /v1/addresses/validate:
    description: |
      Address validation ensures accurate addresses and can lead to reduced shipping costs by preventing address correction surcharges.
      ShipEngine cross references multiple databases to validate addresses and identify potential deliverability issues.
    post:
      description: |
        Address validation ensures accurate addresses and can lead to reduced shipping costs by preventing address correction surcharges.
        ShipEngine cross references multiple databases to validate addresses and identify potential deliverability issues.
      operationId: validate_address
      requestBody:
        content:
          application/json:
            examples:
              all_known_fields_request:
                description: A call that returns a status of `verified`.
                summary: All Known Fields
                value:
                  - address_line1: 500 South Buena Vista Street
                    city_locality: Burbank
                    company_name: The Walt Disney Company
                    country_code: US
                    name: Mickey and Minnie Mouse
                    phone: 714-781-4565
                    postal_code: 91521
                    state_province: CA
            schema:
              $ref: "#/components/schemas/validate_address_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                all_known_fields:
                  description: A response for a `verified` status call.
                  summary: All Known Fields
                  value:
                    - matched_address:
                        address_line1: 500 S BUENA VISTA ST
                        address_line2: null
                        address_line3: null
                        address_residential_indicator: no
                        city_locality: BURBANK
                        company_name: THE WALT DISNEY COMPANY
                        country_code: US
                        name: MICKEY AND MINNIE MOUSE
                        phone: 714-781-4565
                        postal_code: 91521-0007
                        state_province: CA
                      messages: []
                      original_address:
                        address_line1: 500 South Buena Vista Street
                        address_line2: null
                        address_line3: null
                        address_residential_indicator: unknown
                        city_locality: Burbank
                        company_name: The Walt Disney Company
                        country_code: US
                        name: Mickey and Minnie Mouse
                        phone: 714-781-4565
                        postal_code: 91521
                        state_province: CA
                      status: verified
                empty_fields:
                  description: A response for an `unverified` API Call with error message
                  summary: Empty Fields
                  value:
                    - matched_address: null
                      messages:
                        - code: a1001
                          detail_code: unsupported_country
                          message: country_code is not currently a supported country please check the documentation for acceptable 2-letter country codes.
                          type: error
                      original_address:
                        address_line1: null
                        address_line2: null
                        address_line3: null
                        address_residential_indicator: unknown
                        city_locality: null
                        company_name: null
                        country_code: null
                        name: null
                        phone: null
                        postal_code: null
                        state_province: null
                      status: unverified
              schema:
                $ref: "#/components/schemas/validate_address_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Validate An Address
      tags:
        - addresses
    summary: Address Validation
  /v1/batches:
    description: |
      Batches are an advanced feature of ShipEngine designed for users who need to generate hundreds or thousands of labels at a time.
      When ShipEngine generates labels it relies on many carriers, their services, their dependencies, and a number of other variables
      to fulfill your requests; those requests can take a few minutes for us to get back to you.
    get:
      description: List Batches associated with your Shipengine account
      operationId: list_batches
      parameters:
        - in: query
          name: status
          required: false
          schema:
            $ref: "#/components/schemas/batch_status"
        - description: |
            Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
          example: 2
          in: query
          name: page
          required: false
          schema:
            default: 1
            format: int32
            minimum: 1
            type: integer
        - description: The number of results to return per response.
          example: 50
          in: query
          name: page_size
          required: false
          schema:
            default: 25
            format: int32
            minimum: 1
            type: integer
        - description: Controls the sort order of the query.
          in: query
          name: sort_dir
          required: false
          schema:
            allOf:
              - $ref: "#/components/schemas/sort_dir"
            default: desc
        - description: Batch Number
          in: query
          name: batch_number
          required: false
          schema:
            type: string
        - in: query
          name: sort_by
          required: false
          schema:
            $ref: "#/components/schemas/batches_sort_by"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_batches_response_body"
          description: The request was a success.
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Batches
      tags:
        - batches
    post:
      description: Create a Batch
      operationId: create_batch
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_batch_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_batch_response_body"
          description: The requested object creation was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create A Batch
      tags:
        - batches
    summary: Batches
  "/v1/batches/external_batch_id/{external_batch_id}":
    description: Retrive a batch from an external batch ID
    get:
      description: Get Batch By External ID
      operationId: get_batch_by_external_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_batch_by_external_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Batch By External ID
      tags:
        - batches
    parameters:
      - example: 13553d7f-3c87-4771-bae1-c49bacef11cb
        in: path
        name: external_batch_id
        required: true
        schema:
          type: string
    summary: External Batch ID
  "/v1/batches/{batch_id}":
    delete:
      description: Delete Batch By Id
      operationId: delete_batch
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Delete Batch By Id
      tags:
        - batches
    description: Check the status of your batch by retrieving it with a Batch ID.
    get:
      description: Get Batch By ID
      operationId: get_batch_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_batch_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Batch By ID
      tags:
        - batches
    parameters:
      - description: Batch ID
        in: path
        name: batch_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Update Batch By Id
      operationId: update_batch
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update Batch By Id
      tags:
        - batches
    summary: Batch By ID
  "/v1/batches/{batch_id}/add":
    description: |
      You can check your balance for a particular carrier by calling [List Carriers](https://www.shipengine.com/docs/reference/list-carriers/) endpoint.
      For any carrier account where requires_funded_amount is true, you can add funds.
    parameters:
      - description: Batch ID
        in: path
        name: batch_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    post:
      description: Add a Shipment or Rate to a Batch
      operationId: add_to_batch
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/add_to_batch_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Add to a Batch
      tags:
        - batches
    summary: Add Funds to a Carrier
  "/v1/batches/{batch_id}/errors":
    description: |
      Error handling in batches are handled differently than in a single synchronous request.
      You must retrieve the status of your batch by [getting a batch](https://www.shipengine.com/docs/reference/get-batch-by-id/) and getting an overview of the statuses or you can list errors directly here below to get detailed information about the errors.
    get:
      description: |
        Error handling in batches are handled differently than in a single synchronous request.
        You must retrieve the status of your batch by [getting a batch](https://www.shipengine.com/docs/reference/get-batch-by-id/) and getting an overview of the statuses or you can list errors directly here below to get detailed information about the errors.
      operationId: list_batch_errors
      parameters:
        - description: |
            Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
          example: 2
          in: query
          name: page
          required: false
          schema:
            default: 1
            format: int32
            minimum: 1
            type: integer
        - in: query
          name: pagesize
          required: false
          schema:
            format: int32
            minimum: 1
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_batch_errors_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Batch Errors
      tags:
        - batches
    parameters:
      - description: Batch ID
        in: path
        name: batch_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Batch Errors
  "/v1/batches/{batch_id}/process/labels":
    description: Process Batch ID Labels
    parameters:
      - description: Batch ID
        in: path
        name: batch_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    post:
      description: Process Batch ID Labels
      operationId: process_batch
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/process_batch_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Process Batch ID Labels
      tags:
        - batches
    summary: Process Batch ID Labels
  "/v1/batches/{batch_id}/remove":
    description: Remove a list of shipments from a batch
    parameters:
      - description: Batch ID
        in: path
        name: batch_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    post:
      description: Remove a shipment or rate from a batch
      operationId: remove_from_batch
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/remove_from_batch_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Remove From Batch
      tags:
        - batches
    summary: Remove Batch By ID
  /v1/carriers:
    description: |
      Carriers are a company or individual that specializes in transporting freight from one destination to another.
      Shipengine allows you to easily integrate with multiple carriers so you can chose the shipping option that is right for you.
    get:
      description: List all carriers that have been added to this account
      operationId: list_carriers
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_carriers_response_body"
          description: The request was a success.
        "207":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_carriers_response_body"
          description: The request was a partial success. It contains results, as well as errors.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Carriers
      tags:
        - carriers
    summary: Carriers
  "/v1/carriers/{carrier_id}":
    description: Perform actions and get information on individual carriers connected with your account.
    get:
      description: Retrive carrier info by ID
      operationId: get_carrier_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_carrier_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Carrier By ID
      tags:
        - carriers
    parameters:
      - description: Carrier ID
        example: se-28529731
        in: path
        name: carrier_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Individual carriers
  "/v1/carriers/{carrier_id}/add_funds":
    description: All carriers require that funds to be attached to an account to ensure payment for the various services they provide to their customers.
    parameters:
      - description: Carrier ID
        example: se-28529731
        in: path
        name: carrier_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Add Funds To A Carrier
      operationId: add_funds_to_carrier
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/add_funds_to_carrier_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/add_funds_to_carrier_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Add Funds To Carrier
      tags:
        - carriers
    summary: Carrier Funds
  "/v1/carriers/{carrier_id}/options":
    description: Carriers support various options for particular shipments. Ex. (non-machinable, is_alcohol, fragile, etc)
    get:
      description: Get a list of the options available for the carrier
      operationId: get_carrier_options
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_carrier_options_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Carrier Options
      tags:
        - carriers
    parameters:
      - description: Carrier ID
        example: se-28529731
        in: path
        name: carrier_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Carrier Options
  "/v1/carriers/{carrier_id}/packages":
    description: |
      Carriers support many different package types, Shipengine supports retrieving all available package so that
      you can best determine what is right for your particular shipment.
    get:
      description: List the package types associated with the carrier
      operationId: list_carrier_package_types
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_carrier_package_types_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Carrier Package Types
      tags:
        - carriers
    parameters:
      - description: Carrier ID
        example: se-28529731
        in: path
        name: carrier_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Carrier Packages
  "/v1/carriers/{carrier_id}/services":
    description: |
      Carrier services usually refer to the various shipping options that a carrier provides to its customers.
      Ex. Priority mail, overnight, international
    get:
      description: List the services associated with the carrier ID
      operationId: list_carrier_services
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_carrier_services_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Carrier Services
      tags:
        - carriers
    parameters:
      - description: Carrier ID
        example: se-28529731
        in: path
        name: carrier_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Carrier Services
  "/v1/connections/carriers/{carrier_name}":
    description: Carrier connections
    parameters:
      - description: The carrier name, such as `stamps_com`, `ups`, `fedex`, or `dhl_express`.
        example: dhl_express
        in: path
        name: carrier_name
        required: true
        schema:
          $ref: "#/components/schemas/carrier_name"
    post:
      description: Connect a carrier account
      operationId: connect_carrier
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/connect_carrier_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/connect_carrier_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Connect a carrier account
      tags:
        - carrier_accounts
    summary: Carrier connections
  "/v1/connections/carriers/{carrier_name}/{carrier_id}":
    delete:
      description: Disconnect a carrier
      operationId: disconnect_carrier
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Disconnect a carrier
      tags:
        - carrier_accounts
    description: Disconnect a carrier
    parameters:
      - description: The carrier name, such as `stamps_com`, `ups`, `fedex`, or `dhl_express`.
        example: dhl_express
        in: path
        name: carrier_name
        required: true
        schema:
          $ref: "#/components/schemas/carrier_name"
      - description: Carrier ID
        example: se-28529731
        in: path
        name: carrier_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Disconnect a carrier
  "/v1/connections/carriers/{carrier_name}/{carrier_id}/settings":
    description: Carrier settings
    get:
      description: Get carrier settings
      operationId: get_carrier_settings
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_carrier_settings_response_body"
          description: The request was a success.
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get carrier settings
      tags:
        - carrier_accounts
    parameters:
      - description: The carrier name, such as `ups`, `fedex`, or `dhl_express`.
        example: dhl_express
        in: path
        name: carrier_name
        required: true
        schema:
          $ref: "#/components/schemas/carrier_name_with_settings"
      - description: Carrier ID
        example: se-28529731
        in: path
        name: carrier_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Update carrier settings
      operationId: update_carrier_settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/update_carrier_settings_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update carrier settings
      tags:
        - carrier_accounts
    summary: Carrier settings
  /v1/connections/insurance/shipsurance:
    delete:
      description: Disconnect a Shipsurance Account
      operationId: disconnect_insurer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/disconnect_insurer_response_body"
          description: The request was a success
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Disconnect a Shipsurance Account
      tags:
        - insurance
    description: Shipsurance Connection
    post:
      description: Connect a Shipsurance Account
      operationId: connect_insurer
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/connect_insurer_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/connect_insurer_response_body"
          description: The request was a success
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Connect a Shipsurance Account
      tags:
        - insurance
    summary: Shipsurance Connection
  "/v1/downloads/{dir}/{subdir}/{filename}":
    description: |
      This endpoint is used to download forms that are generated in the various pdf, png, zpl formats
      such as labels and batches
    get:
      description: Get File
      operationId: download_file
      parameters:
        - in: query
          name: download
          required: false
          schema:
            type: string
        - in: query
          name: rotation
          required: false
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            application/pdf:
              schema:
                $ref: "#/components/schemas/download_file_pdf_response_body"
            application/zpl:
              schema:
                $ref: "#/components/schemas/download_file_zpl_response_body"
            image/png:
              schema:
                $ref: "#/components/schemas/download_file_png_response_body"
          description: The request was a success
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Download File
      tags:
        - downloads
    parameters:
      - in: path
        name: subdir
        required: true
        schema:
          type: string
      - in: path
        name: filename
        required: true
        schema:
          type: string
      - in: path
        name: dir
        required: true
        schema:
          type: string
    summary: File Download
  /v1/environment/webhooks:
    description: |
      ShipEngine exposes asynchronous operations for long running operations such as batch labels and rates.
      Webhooks allow the ShipEngine servers to contact your servers when an operation changes state, such as a batch label creation completion.
    get:
      description: List all webhooks currently enabled for the account.
      operationId: list_webhooks
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_webhooks_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Webhooks
      tags:
        - webhooks
    post:
      description: Create a webook for specific events in the environment.
      operationId: create_webhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_webhook_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_webhook_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "409":
          $ref: "#/components/responses/409_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create a Webhook
      tags:
        - webhooks
    summary: Webhooks
  "/v1/environment/webhooks/{webhook_id}":
    delete:
      description: Delete a webhook
      operationId: delete_webhook
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Delete Webhook By ID
      tags:
        - webhooks
    description: Retrieve, update, and delete information for individual webhooks
    get:
      description: Retrieve individual webhook by an ID
      operationId: get_webhook_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_webhook_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Webhook By ID
      tags:
        - webhooks
    parameters:
      - description: Webhook ID
        in: path
        name: webhook_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Update the webhook url property
      operationId: update_webhook
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/update_webhook_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update a Webhook
      tags:
        - webhooks
    summary: Webhook
  /v1/insurance/shipsurance/add_funds:
    description: |
      [Shipsurance](https://www.shipsurance.com/) is a shipping insurance company offering coverage for shipments sent via the major shipping carriers worldwide.
    patch:
      description: |
        You may need to auto fund your account from time to time. For example, if you don't normally ship items over $100,
        and may want to add funds to insurance rather than keeping the account funded.
      operationId: add_funds_to_insurance
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/add_funds_to_insurance_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/add_funds_to_insurance_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Add Funds To Insurance
      tags:
        - insurance
    summary: Shipsurance
  /v1/insurance/shipsurance/balance:
    description: |
      [Shipsurance](https://www.shipsurance.com/) is a shipping insurance company offering coverage for shipments sent via the major shipping carriers worldwide.
    get:
      description: Retrieve the balance of your Shipsurance account.
      operationId: get_insurance_balance
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_insurance_balance_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Insurance Funds Balance
      tags:
        - insurance
    summary: Shipsurance
  /v1/labels:
    description: |
      Print shipping labels for any of the top global carriers in minutes—instead of weeks. Simply [connect your existing carrier accounts](https://www.shipengine.com/docs/carriers/setup/)
      in the API dashboard, and then [begin creating labels](https://www.shipengine.com/docs/shipping/use-a-carrier-service/).
    get:
      description: |
        This endpoint returns a list of labels that you've [created](https://www.shipengine.com/docs/labels/create-a-label/). You can optionally filter the results as well as control their sort order and the number of results returned at a time.

        By default, all labels are returned, 25 at a time, starting with the most recently created ones.  You can combine multiple filter options to narrow-down the results.  For example, if you only want to get your UPS labels for your east coast warehouse you could query by both `warehouse_id` and `carrier_id`
      operationId: list_labels
      parameters:
        - description: Only return labels that are currently in the specified status
          in: query
          name: label_status
          required: false
          schema:
            $ref: "#/components/schemas/label_status"
        - description: Only return labels for a specific [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/)
          example: usps_first_class_mail
          in: query
          name: service_code
          required: false
          schema:
            $ref: "#/components/schemas/service_code"
        - description: Only return labels for a specific [carrier account](https://www.shipengine.com/docs/carriers/setup/)
          in: query
          name: carrier_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: Only return labels with a specific tracking number
          example: "9405511899223197428490"
          in: query
          name: tracking_number
          required: false
          schema:
            minLength: 1
            type: string
        - description: Only return labels that were created in a specific [batch](https://www.shipengine.com/docs/labels/bulk/)
          in: query
          name: batch_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: Rate ID
          in: query
          name: rate_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: Shipment ID
          in: query
          name: shipment_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: Only return labels that originate from a specific [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/)
          in: query
          name: warehouse_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: Only return labels that were created on or after a specific date/time
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_start
          required: false
          schema:
            format: date-time
            type: string
        - description: Only return labels that were created on or before a specific date/time
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_end
          required: false
          schema:
            format: date-time
            type: string
        - description: |
            Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
          example: 2
          in: query
          name: page
          required: false
          schema:
            default: 1
            format: int32
            minimum: 1
            type: integer
        - description: The number of results to return per response.
          example: 50
          in: query
          name: page_size
          required: false
          schema:
            default: 25
            format: int32
            minimum: 1
            type: integer
        - description: Controls the sort order of the query.
          in: query
          name: sort_dir
          required: false
          schema:
            allOf:
              - $ref: "#/components/schemas/sort_dir"
            default: desc
        - description: Controls which field the query is sorted by.
          in: query
          name: sort_by
          required: false
          schema:
            default: created_at
            enum:
              - modified_at
              - created_at
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_labels_response_body"
          description: |
            The response includes a `labels` array containing a page of results (as determined by the `page_size` query parameter).  It also includes other useful information, such as the total number of labels that match the query criteria, the number of pages of results, and the URLs of the first, last, next, and previous pages of results.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List labels
      tags:
        - labels
    post:
      description: Purchase and print a label for shipment
      operationId: create_label
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_label_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_label_response_body"
          description: The requested object creation was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Purchase Label
      tags:
        - labels
    summary: Print shipping labels
  "/v1/labels/external_shipment_id/{external_shipment_id}":
    description: Find a label using the external shipment id
    get:
      description: |
        Find a label by using the external shipment id that was used during label creation
      operationId: get_label_by_external_shipment_id
      parameters:
        - example: url
          in: query
          name: label_download_type
          required: false
          schema:
            $ref: "#/components/schemas/label_download_type"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_label_by_external_shipment_id_response_body"
          description: The requested object creation was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Label By External Shipment ID
      tags:
        - labels
    parameters:
      - example: 0bcb569d-1727-4ff9-ab49-b2fec0cee5ae
        in: path
        name: external_shipment_id
        required: true
        schema:
          type: string
    summary: Get Label By External Shipment ID
  "/v1/labels/rates/{rate_id}":
    description: Purchase a label using a `rate_id` that has been previously generated while looking at various rates for a particular shipment.
    parameters:
      - description: Rate ID
        in: path
        name: rate_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    post:
      description: |
        When retrieving rates for shipments using the `/rates` endpoint, the returned information contains a `rate_id` property that can be used
        to generate a label without having to refill in the shipment information repeatedly.
      operationId: create_label_from_rate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_label_from_rate_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_label_from_rate_response_body"
          description: The requested object creation was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Purchase Label with Rate ID
      tags:
        - labels
    summary: Use a rate to purchase a label
  "/v1/labels/shipment/{shipment_id}":
    description: |
      Purchase a label using a shipment ID that has already been created with the desired address and
      package info.
    parameters:
      - description: Shipment ID
        in: path
        name: shipment_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    post:
      description: |
        Purchase a label using a shipment ID that has already been created with the desired address and
        package info.
      operationId: create_label_from_shipment
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_label_from_shipment_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_label_from_shipment_response_body"
          description: The requested object creation was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Purchase Label with Shipment ID
      tags:
        - labels
    summary: Purchase label using shipment ID
  "/v1/labels/{label_id}":
    description: Retrieve information for individual labels.
    get:
      description: Retrieve information for individual labels.
      operationId: get_label_by_id
      parameters:
        - example: url
          in: query
          name: label_download_type
          required: false
          schema:
            $ref: "#/components/schemas/label_download_type"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_label_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Label By ID
      tags:
        - labels
    parameters:
      - description: Label ID
        in: path
        name: label_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Label
  "/v1/labels/{label_id}/return":
    parameters:
      - description: Label ID
        in: path
        name: label_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    post:
      description: Create a return label
      operationId: create_return_label
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_return_label_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_return_label_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create a return label
      tags:
        - labels
    summary: Return labels
  "/v1/labels/{label_id}/track":
    description: Carriers will provide tracking information so the status of your shipment can be monitored
    get:
      description: Retrieve the label's tracking information
      operationId: get_tracking_log_from_label
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_tracking_log_from_label_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Label Tracking Information
      tags:
        - labels
    parameters:
      - description: Label ID
        in: path
        name: label_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Tracking a Label
  "/v1/labels/{label_id}/void":
    description: |
      Some carriers charge for creating a label upon purchase vs upon use. The Shipengine API allows you
      to void a label to get a refund.
    parameters:
      - description: Label ID
        in: path
        name: label_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Void a label by ID to get a refund.
      operationId: void_label
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/void_label_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Void a Label By ID
      tags:
        - labels
    summary: Label Voiding
  /v1/manifests:
    description: |
      Many manifests are sent electronically to the carrier when you create a label, and
      often physical manifests are not necessary. Carriers receive the package details, shipping date,
      and other information that help them plan your package's delivery when you create a label.

      However, some providers, like USPS require manifests when shipping large numbers of packages. Think about how long it would take for a delivery driver to arrive, pick up 100 packages, and individually scan each of them.

      A manifest exists so the carrier can scan the manifest and check in all the packages being shipped.
    get:
      description: Similar to querying shipments, we allow you to query manifests since there will likely be a large number over a long period of time.
      operationId: list_manifests
      parameters:
        - description: Warehouse ID
          in: query
          name: warehouse_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: ship date start range
          example: 2018-09-23T15:00:00.000Z
          in: query
          name: ship_date_start
          required: false
          schema:
            format: date-time
            type: string
        - description: ship date end range
          example: 2018-09-23T15:00:00.000Z
          in: query
          name: ship_date_end
          required: false
          schema:
            format: date-time
            type: string
        - description: Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_start
          required: false
          schema:
            format: date-time
            type: string
        - description: Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_end
          required: false
          schema:
            format: date-time
            type: string
        - description: Carrier ID
          in: query
          name: carrier_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: |
            Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
          example: 2
          in: query
          name: page
          required: false
          schema:
            default: 1
            format: int32
            minimum: 1
            type: integer
        - description: The number of results to return per response.
          example: 50
          in: query
          name: page_size
          required: false
          schema:
            default: 25
            format: int32
            minimum: 1
            type: integer
        - explode: true
          in: query
          name: label_ids
          required: false
          schema:
            description: Array of label ids
            items:
              description: A string that uniquely identifies a ShipEngine resource, such as a carrier, label, shipment, etc.
              example: se-28529731
              maxLength: 25
              minLength: 1
              pattern: ^se(-[a-z0-9]+)+$
              title: se_id
              type: string
            type: array
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_manifests_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Manifests
      tags:
        - manifests
    post:
      description: |
        Each ShipEngine manifest is created for a specific warehouse, so you'll need to provide the warehouse_id
        rather than the ship_from address. You can create a warehouse for each location that you want to create manifests for.
      operationId: create_manifest
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_manifest_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_manifest_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create Manifest
      tags:
        - manifests
    summary: Manifests
  "/v1/manifests/requests/{manifest_request_id}":
    description: Manifest Request ID
    get:
      description: Get Manifest Request By Id
      operationId: get_manifest_request_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_manifest_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Manifest Request By Id
      tags:
        - manifests
    parameters:
      - description: The Manifest Request Id
        in: path
        name: manifest_request_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Manifest Request ID
  "/v1/manifests/{manifest_id}":
    description: Manifest ID
    get:
      description: Get Manifest By Id
      operationId: get_manifest_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_manifest_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Manifest By Id
      tags:
        - manifests
    parameters:
      - description: The Manifest Id
        in: path
        name: manifest_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Manifest ID
  /v1/packages:
    description: |
      Sometimes the default package types that carriers provide aren't enough and you need to create your own. That's where
      the `/packages` endpoint becomes useful. Create, manage, and delete custom package types to suit your specific needs.
    get:
      description: List the custom package types associated with the account
      operationId: list_package_types
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_package_types_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Custom Package Types
      tags:
        - package_types
    post:
      description: Create a custom package type to better assist in getting accurate rate estimates
      operationId: create_package_type
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_package_type_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_package_type_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create Custom Package Type
      tags:
        - package_types
    summary: Packages
  "/v1/packages/{package_id}":
    delete:
      description: Delete a custom package using the ID
      operationId: delete_package_type
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Delete A Custom Package By ID
      tags:
        - package_types
    description: Create, edit, and delete individual custom packages.
    get:
      description: Get Custom Package Type by ID
      operationId: get_package_type_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_package_type_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Custom Package Type By ID
      tags:
        - package_types
    parameters:
      - description: Package ID
        in: path
        name: package_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Update the custom package type object by ID
      operationId: update_package_type
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/update_package_type_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update Custom Package Type By ID
      tags:
        - package_types
    summary: Package
  /v1/pickups:
    description: |
      Scheduled package pickups
    get:
      description: List all pickups that have been scheduled for this carrier
      operationId: list_scheduled_pickups
      parameters:
        - description: Carrier ID
          in: query
          name: carrier_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: Warehouse ID
          in: query
          name: warehouse_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: Only return scheduled pickups that were created on or after a specific date/time
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_start
          required: false
          schema:
            format: date-time
            type: string
        - description: Only return scheduled pickups that were created on or before a specific date/time
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_end
          required: false
          schema:
            format: date-time
            type: string
        - description: |
            Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
          example: 2
          in: query
          name: page
          required: false
          schema:
            default: 1
            format: int32
            minimum: 1
            type: integer
        - description: The number of results to return per response.
          example: 50
          in: query
          name: page_size
          required: false
          schema:
            default: 25
            format: int32
            minimum: 1
            type: integer
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_pickups_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Scheduled Pickups
      tags:
        - package_pickups
    post:
      description: Schedule a package pickup with a carrier
      operationId: schedule_pickup
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/schedule_pickup_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/schedule_pickup_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Schedule a Pickup
      tags:
        - package_pickups
    summary: Scheduled Pickups
  "/v1/pickups/{pickup_id}":
    delete:
      description: Delete a previously-scheduled pickup by ID
      operationId: delete_scheduled_pickup
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/delete_pickup_by_id_response_body"
          description: |
            Return the `pickup_id` of the scheduled pickup that was successfully deleted
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Delete a Scheduled Pickup
      tags:
        - package_pickups
    description: |
      A package pickup that has been scheduled with a carrier
    get:
      description: Get Pickup By ID
      operationId: get_pickup_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_pickup_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Pickup By ID
      tags:
        - package_pickups
    parameters:
      - in: path
        name: pickup_id
        required: true
        schema:
          $ref: "#/components/schemas/pickup_resource_id"
    summary: Scheduled Pickup
  /v1/rates:
    description: Get the various rates for a set of carriers
    post:
      description: |
        It's not uncommon that you want to give your customer the choice between whether they want to ship the fastest, cheapest, or the most trusted route. Most companies don't solely ship things using a single shipping option;
        so we provide functionality to show you all your options!
      operationId: calculate_rates
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/calculate_rates_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/calculate_rates_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Shipping Rates
      tags:
        - rates
    summary: Rates
  /v1/rates/bulk:
    description: Get specific rates for large groups of shipments
    post:
      description: Get Bulk Shipment Rates
      operationId: compare_bulk_rates
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/compare_bulk_rates_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/compare_bulk_rates_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Bulk Rates
      tags:
        - rates
    summary: Bulk Rates
  /v1/rates/estimate:
    description: Show rate estimations between carriers with basic information.
    post:
      description: Get Rate Estimates
      operationId: estimate_rates
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/estimate_rates_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/estimate_rates_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Estimate Rates
      tags:
        - rates
    summary: Rate Estimates
  "/v1/rates/{rate_id}":
    description: Get Individual rate information.
    get:
      description: Retrieve a previously queried rate by its ID
      operationId: get_rate_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_rate_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Rate By ID
      tags:
        - rates
    parameters:
      - description: Rate ID
        in: path
        name: rate_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Rate
  /v1/service_points/list:
    post:
      description: List carrier service points by location
      operationId: service_points_list
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/get_service_points_request"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_service_points_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Service Points
      tags:
        - service_points
    summary: Service Points
  "/v1/service_points/{carrier_code}/{country_code}/{service_point_id}":
    get:
      description: Returns a carrier service point by using the service_point_id
      operationId: service_points_get_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_service_point_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Service Point By ID
      tags:
        - service_points
    parameters:
      - description: Carrier code
        example: stamps_com
        in: path
        name: carrier_code
        required: true
        schema:
          minLength: 1
          type: string
      - description: |
          A two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1)
        example: CA
        in: path
        name: country_code
        required: true
        schema:
          maxLength: 2
          minLength: 2
          type: string
      - example: "614940"
        in: path
        name: service_point_id
        required: true
        schema:
          type: string
    summary: Service Points
  /v1/shipments:
    description: |
      Shipments are the gatekeeper to more advanced functionality inside ShipEngine. When you create a shipment, we respond with a shipment_id that is a unique identifier inside of ShipEngine.
      Additionally, we realize that you may have your own identifier, you can set this by setting the `external_shipment_id` field in the request body.
    get:
      description: Get list of Shipments
      operationId: list_shipments
      parameters:
        - in: query
          name: shipment_status
          required: false
          schema:
            $ref: "#/components/schemas/shipment_status"
        - description: Batch ID
          in: query
          name: batch_id
          required: false
          schema:
            $ref: "#/components/schemas/se_id"
        - description: Search for shipments based on the custom tag added to the shipment object
          example: Letters_to_santa
          in: query
          name: tag
          required: false
          schema:
            minLength: 1
            type: string
        - description: Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_start
          required: false
          schema:
            format: date-time
            type: string
        - description: Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_end
          required: false
          schema:
            format: date-time
            type: string
        - description: Used to create a filter for when a resource was modified (ex. A shipment that was modified after a certain time)
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: modified_at_start
          required: false
          schema:
            format: date-time
            type: string
        - description: Used to create a filter for when a resource was modified (ex. A shipment that was modified before a certain time)
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: modified_at_end
          required: false
          schema:
            format: date-time
            type: string
        - description: |
            Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
          example: 2
          in: query
          name: page
          required: false
          schema:
            default: 1
            format: int32
            minimum: 1
            type: integer
        - description: The number of results to return per response.
          example: 50
          in: query
          name: page_size
          required: false
          schema:
            default: 25
            format: int32
            minimum: 1
            type: integer
        - description: Sales Order ID
          in: query
          name: sales_order_id
          required: false
          schema:
            type: string
        - description: Controls the sort order of the query.
          in: query
          name: sort_dir
          required: false
          schema:
            allOf:
              - $ref: "#/components/schemas/sort_dir"
            default: desc
        - example: modified_at
          in: query
          name: sort_by
          required: false
          schema:
            $ref: "#/components/schemas/shipments_sort_by"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_shipments_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Shipments
      tags:
        - shipments
    post:
      description: Create one or multiple shipments.
      operationId: create_shipments
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_shipments_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_shipments_response_body"
          description: The requested object creation was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create Shipments
      tags:
        - shipments
    summary: Shipments
  "/v1/shipments/external_shipment_id/{external_shipment_id}":
    description: |
      When a shipment object is created with a custom shipment ID, you can query it using this endpoint
    get:
      description: Query Shipments created using your own custom ID convention using this endpint
      operationId: get_shipment_by_external_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_shipment_by_external_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Shipment By External ID
      tags:
        - shipments
    parameters:
      - example: 0bcb569d-1727-4ff9-ab49-b2fec0cee5ae
        in: path
        name: external_shipment_id
        required: true
        schema:
          type: string
    summary: External Shipment ID
  /v1/shipments/recognize:
    description: |
      Data often enters your system as unstructured text (for example: emails, SMS messages, support tickets, or other documents). ShipEngine's shipment-recognition API helps you extract meaningful shipping data (people's names, addresses, package weights and dimensions, insurance and delivery requirements, etc.) from this unstructured text.
    put:
      description: |
        The shipment-recognition API makes it easy for you to extract shipping data from unstructured text, including people's names, addresses, package weights and dimensions, insurance and delivery requirements, and more.

        Data often enters your system as unstructured text (for example: emails, SMS messages, support tickets, or other documents). ShipEngine's shipment-recognition API helps you extract meaningful, structured data from this unstructured text. The parsed shipment data is returned in the same structure that's used for other ShipEngine APIs, so you can easily use the parsed data to create a shipping label.

        > **Note:** Shipment recognition is currently supported for the United States, Canada, Australia, New Zealand, the United Kingdom, and Ireland.
      operationId: parse_shipment
      requestBody:
        content:
          application/json:
            examples:
              some_known_fields:
                description: |
                  You can optionally provide a `shipment` object containing any already-known values. For example, you probably already know the `ship_from` address, and you may also already know what carrier and service you want to use.
                summary: Some known fields
                value:
                  shipment:
                    service_code: usps_first_class_mail
                    ship_from:
                      address_line1: 587 Shotwell St.
                      address_line2: Suite 201
                      address_residential_indicator: yes
                      city_locality: San Francisco
                      company_name: My Awesome Store
                      country_code: US
                      phone: 555-555-5555
                      postal_code: 94110
                      state_province: CA
                  text: |
                    I have a 4oz package that's 5x10x14in, and I need to ship it to Margie McMiller at 3800 North Lamar suite 200 in austin, tx 78652. Please send it via USPS first class and require an adult signature. It also needs to be insured for $400.
              text_only:
                description: |
                  This is the simplest way to call the shipment-recognition API. Just pass the text to be parsed and nothing else.
                summary: Text only
                value:
                  text: |
                    I have a 4oz package that's 5x10x14in, and I need to ship it to Margie McMiller at 3800 North Lamar suite 200 in austin, tx 78652. Please send it via USPS first class and require an adult signature. It also needs to be insured for $400.
            schema:
              $ref: "#/components/schemas/parse_shipment_request_body"
        description: |
          The only required field is `text`, which is the text to be parsed. You can optionally also provide a `shipment` containing any already-known values. For example, you probably already know the `ship_from` address, and you may also already know what carrier and service you want to use.
        required: true
      responses:
        "200":
          content:
            application/json:
              examples:
                some_known_fields:
                  description: |
                    This response is shows that the shipment-recognition API was able to recognize all the shipping entities in the text.  Notice that the `ship_from` and `service_code` fields are populated with the values that were provided in the request.
                  value:
                    entities:
                      - end_index: 11
                        result:
                          unit: ounce
                          value: 4
                        score: 0.9805313966503588
                        start_index: 9
                        text: 4oz
                        type: weight
                      - end_index: 36
                        result:
                          height: 14
                          length: 5
                          unit: inch
                          width: 10
                        score: 1
                        start_index: 28
                        text: 5x10x14in
                        type: dimensions
                      - end_index: 36
                        result:
                          unit: inch
                          value: 14
                        score: 0.9805313966503588
                        start_index: 33
                        text: 14in
                        type: dimension
                      - end_index: 196
                        result:
                          address_line1: 3800 North Lamar
                          address_line2: Suite 200
                          city_locality: Austin
                          company_name: Adult Signature
                          direction: to
                          name: Margie McMiller
                          postal_code: 78652
                          state_province: TX
                        score: 0.9281558837267101
                        start_index: 61
                        text: to Margie McMiller at 3800 North Lamar suite 200 in austin, tx 78652. Please send it via USPS first class and require an adult signature
                        type: address
                      - end_index: 78
                        result:
                          value: Margie McMiller
                        score: 0.9519646137063122
                        start_index: 64
                        text: Margie McMiller
                        type: person
                      - end_index: 98
                        result:
                          line: 1
                          value: 3800 North Lamar
                        score: 0.9805313966503588
                        start_index: 83
                        text: 3800 North Lamar
                        type: address_line
                      - end_index: 86
                        result:
                          type: cardinal
                          value: 3800
                        score: 0.9805313966503588
                        start_index: 83
                        text: 3800
                        type: number
                      - end_index: 108
                        result:
                          line: 2
                          value: Suite 200
                        score: 1
                        start_index: 100
                        text: suite 200
                        type: address_line
                      - end_index: 111
                        result:
                          unit: inch
                          value: 200
                        score: 0.4792571878834418
                        start_index: 106
                        text: 200 in
                        type: dimension
                      - end_index: 118
                        result:
                          value: Austin
                        score: 0.9805313966503588
                        start_index: 113
                        text: austin
                        type: city_locality
                      - end_index: 122
                        result:
                          name: Texas
                          value: TX
                        score: 0.6082904353940255
                        start_index: 121
                        text: tx
                        type: state_province
                      - end_index: 128
                        result:
                          value: 78652
                        score: 0.9519646137063122
                        start_index: 124
                        text: 78652
                        type: postal_code
                      - end_index: 153
                        result:
                          name: Stamps.com
                          value: se-118608
                        score: 0.9519646137063122
                        start_index: 150
                        text: USPS
                        type: carrier
                      - end_index: 165
                        result:
                          name: USPS First Class Mail
                          value: usps_first_class_mail
                        score: 0.6082904353940255
                        start_index: 155
                        text: first class
                        type: service
                      - end_index: 159
                        result:
                          type: ordinal
                          value: 1
                        score: 0.9805313966503588
                        start_index: 155
                        text: first
                        type: number
                      - end_index: 196
                        result:
                          value: Adult Signature
                        score: 0.9519646137063122
                        start_index: 182
                        text: adult signature
                        type: company
                      - end_index: 196
                        result:
                          name: Adult Signature
                          value: adult_signature
                        score: 0.8530163983409642
                        start_index: 182
                        text: adult signature
                        type: delivery_confirmation
                      - end_index: 234
                        result:
                          unit: USD
                          value: 400
                        score: 0.8530163983409642
                        start_index: 219
                        text: insured for $400
                        type: insurance
                      - end_index: 234
                        result:
                          unit: USD
                          value: 400
                        score: 1
                        start_index: 231
                        text: $400
                        type: insured_value
                    score: 0.9031369611169101
                    shipment:
                      carrier_id: se-118608
                      confirmation: adult_signature
                      packages:
                        - dimensions:
                            height: 14
                            length: 5
                            unit: inch
                            width: 10
                          insured_value:
                            amount: 400
                            currency: USD
                          weight:
                            unit: ounce
                            value: 4
                      service_code: usps_first_class_mail
                      ship_from:
                        address_line1: 587 Shotwell St.
                        address_line2: Suite 201
                        address_residential_indicator: yes
                        city_locality: San Francisco
                        company_name: My Awesome Store
                        country_code: US
                        phone: 555-555-5555
                        postal_code: 94110
                        state_province: CA
                      ship_to:
                        address_line1: 3800 North Lamar
                        address_line2: Suite 200
                        address_residential_indicator: unknown
                        city_locality: Austin
                        company_name: Adult Signature
                        name: Margie McMiller
                        postal_code: 78652
                        state_province: TX
                text_only:
                  description: |
                    This response shows that the shipment-recognition API was able to recognize all the shipping entities in the text.  Notice that the `ship_from` field is not populated, since it wasn't included in the request or in the parsed text.
                  value:
                    entities:
                      - end_index: 11
                        result:
                          unit: ounce
                          value: 4
                        score: 0.9805313966503588
                        start_index: 9
                        text: 4oz
                        type: weight
                      - end_index: 36
                        result:
                          height: 14
                          length: 5
                          unit: inch
                          width: 10
                        score: 1
                        start_index: 28
                        text: 5x10x14in
                        type: dimensions
                      - end_index: 36
                        result:
                          unit: inch
                          value: 14
                        score: 0.9805313966503588
                        start_index: 33
                        text: 14in
                        type: dimension
                      - end_index: 196
                        result:
                          address_line1: 3800 North Lamar
                          address_line2: Suite 200
                          city_locality: Austin
                          company_name: Adult Signature
                          direction: to
                          name: Margie McMiller
                          postal_code: 78652
                          state_province: TX
                        score: 0.9281558837267101
                        start_index: 61
                        text: to Margie McMiller at 3800 North Lamar suite 200 in austin, tx 78652. Please send it via USPS first class and require an adult signature
                        type: address
                      - end_index: 78
                        result:
                          value: Margie McMiller
                        score: 0.9519646137063122
                        start_index: 64
                        text: Margie McMiller
                        type: person
                      - end_index: 98
                        result:
                          line: 1
                          value: 3800 North Lamar
                        score: 0.9805313966503588
                        start_index: 83
                        text: 3800 North Lamar
                        type: address_line
                      - end_index: 86
                        result:
                          type: cardinal
                          value: 3800
                        score: 0.9805313966503588
                        start_index: 83
                        text: 3800
                        type: number
                      - end_index: 108
                        result:
                          line: 2
                          value: Suite 200
                        score: 1
                        start_index: 100
                        text: suite 200
                        type: address_line
                      - end_index: 111
                        result:
                          unit: inch
                          value: 200
                        score: 0.4792571878834418
                        start_index: 106
                        text: 200 in
                        type: dimension
                      - end_index: 118
                        result:
                          value: Austin
                        score: 0.9805313966503588
                        start_index: 113
                        text: austin
                        type: city_locality
                      - end_index: 122
                        result:
                          name: Texas
                          value: TX
                        score: 0.6082904353940255
                        start_index: 121
                        text: tx
                        type: state_province
                      - end_index: 128
                        result:
                          value: 78652
                        score: 0.9519646137063122
                        start_index: 124
                        text: 78652
                        type: postal_code
                      - end_index: 153
                        result:
                          name: Stamps.com
                          value: se-118608
                        score: 0.9519646137063122
                        start_index: 150
                        text: USPS
                        type: carrier
                      - end_index: 165
                        result:
                          name: USPS First Class Mail
                          value: usps_first_class_mail
                        score: 0.6082904353940255
                        start_index: 155
                        text: first class
                        type: service
                      - end_index: 159
                        result:
                          type: ordinal
                          value: 1
                        score: 0.9805313966503588
                        start_index: 155
                        text: first
                        type: number
                      - end_index: 196
                        result:
                          value: Adult Signature
                        score: 0.9519646137063122
                        start_index: 182
                        text: adult signature
                        type: company
                      - end_index: 196
                        result:
                          name: Adult Signature
                          value: adult_signature
                        score: 0.8530163983409642
                        start_index: 182
                        text: adult signature
                        type: delivery_confirmation
                      - end_index: 234
                        result:
                          unit: USD
                          value: 400
                        score: 0.8530163983409642
                        start_index: 219
                        text: insured for $400
                        type: insurance
                      - end_index: 234
                        result:
                          unit: USD
                          value: 400
                        score: 1
                        start_index: 231
                        text: $400
                        type: insured_value
                    score: 0.9031369611169101
                    shipment:
                      carrier_id: se-118608
                      confirmation: adult_signature
                      packages:
                        - dimensions:
                            height: 14
                            length: 5
                            unit: inch
                            width: 10
                          insured_value:
                            amount: 400
                            currency: USD
                          weight:
                            unit: ounce
                            value: 4
                      service_code: usps_first_class_mail
                      ship_to:
                        address_line1: 3800 North Lamar
                        address_line2: Suite 200
                        address_residential_indicator: unknown
                        city_locality: Austin
                        company_name: Adult Signature
                        name: Margie McMiller
                        postal_code: 78652
                        state_province: TX
              schema:
                $ref: "#/components/schemas/parse_shipment_response_body"
          description: |
            Returns the parsed shipment, as well as a confidence score and a list of all the shipping entities that were recognized in the text.
        "400":
          $ref: "#/components/responses/400_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Parse shipping info
      tags:
        - shipments
    summary: Parse shipping info
  "/v1/shipments/{shipment_id}":
    description: Retrieve and Update and individual shipment based on its ID
    get:
      description: Get an individual shipment based on its ID
      operationId: get_shipment_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_shipment_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Shipment By ID
      tags:
        - shipments
    parameters:
      - description: Shipment ID
        in: path
        name: shipment_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Update a shipment object based on its ID
      operationId: update_shipment
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/update_shipment_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/update_shipment_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update Shipment By ID
      tags:
        - shipments
    summary: Get and Update Shipment
  "/v1/shipments/{shipment_id}/cancel":
    description: Cancel a Shipment
    parameters:
      - description: Shipment ID
        in: path
        name: shipment_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: |
        Mark a shipment cancelled, if it is no longer needed or being used by your organized. Any label associated with the shipment needs to be voided first
        An example use case would be if a batch label creation job is going to run at a set time and only queries `pending` shipments. Marking a shipment as cancelled
        would remove it from this process
      operationId: cancel_shipments
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Cancel a Shipment
      tags:
        - shipments
    summary: Cancel Shipment
  "/v1/shipments/{shipment_id}/rates":
    description: |
      Once a shipment is complete with the desired shipping information, you can then search for rates available
      based on the carriers associated with your account
    get:
      description: Get Rates for the shipment information associated with the shipment ID
      operationId: list_shipment_rates
      parameters:
        - description: Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
          example: 2019-03-12T19:24:13.657Z
          in: query
          name: created_at_start
          required: false
          schema:
            format: date-time
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_shipment_rates_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Shipment Rates
      tags:
        - shipments
    parameters:
      - description: Shipment ID
        in: path
        name: shipment_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    summary: Shipment Rates
  "/v1/shipments/{shipment_id}/tags/{tag_name}":
    delete:
      description: Remove an existing tag from the Shipment object
      operationId: untag_shipment
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Remove Tag from Shipment
      tags:
        - shipments
    description: |
      Tags associated with the shipment object to be used to organize and query shipment items.
    parameters:
      - description: Shipment ID
        in: path
        name: shipment_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
      - in: path
        name: tag_name
        required: true
        schema:
          $ref: "#/components/schemas/tag_name"
    post:
      description: Add a tag to the shipment object
      operationId: tag_shipment
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/tag_shipment_response_body"
          description: The requested object creation was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Add Tag to Shipment
      tags:
        - shipments
    summary: Shipment Tags
  /v1/tags:
    description: |
      Tags are simple text-based flags or identifiers. Tags can be used as a simple label,
      such as Guaranteed_Overnight or Fragile so shipments can be easily [queried later](https://www.shipengine.com/docs/reference/list-shipments/).
    get:
      description: Get a list of all tags associated with an account.
      operationId: list_tags
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_tags_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Tags
      tags:
        - tags
    summary: Tags
  "/v1/tags/{tag_name}":
    delete:
      description: Delete a tag that is no longer needed
      operationId: delete_tag
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Delete Tag
      tags:
        - tags
    description: Create and delete tags
    parameters:
      - in: path
        name: tag_name
        required: true
        schema:
          $ref: "#/components/schemas/tag_name"
    post:
      description: Create a new Tag for customizing how you track your shipments
      operationId: create_tag
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_tag_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create a New Tag
      tags:
        - tags
    summary: Tag
  "/v1/tags/{tag_name}/{new_tag_name}":
    description: Update tag name
    parameters:
      - in: path
        name: tag_name
        required: true
        schema:
          $ref: "#/components/schemas/tag_name"
      - in: path
        name: new_tag_name
        required: true
        schema:
          $ref: "#/components/schemas/tag_name"
    put:
      description: Change a tag name while still keeping the relevant shipments attached to it
      operationId: rename_tag
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update Tag Name
      tags:
        - tags
    summary: Tag
  /v1/tokens/ephemeral:
    post:
      description: This endpoint returns a token that can be passed to an application for authorized access.  The lifetime of this token is 10 seconds.
      operationId: tokens_get_ephemeral_token
      parameters:
        - description: Include a redirect url to the application formatted with the ephemeral token.
          in: query
          name: redirect
          required: false
          schema:
            $ref: "#/components/schemas/redirect"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/tokens_get_ephemeral_token_response_body.yaml"
          description: OK
      summary: Get Ephemeral Token
      tags:
        - tokens
  /v1/tracking:
    description: If you generate your labels through ShipEngine, then you can subscribe to real-time tracking events for free!
    get:
      description: Retrieve package tracking information
      operationId: get_tracking_log
      parameters:
        - description: Carrier code used to retrieve tracking information
          example: stamps_com
          in: query
          name: carrier_code
          required: false
          schema:
            minLength: 1
            type: string
        - description: The tracking number associated with a shipment
          example: "9405511899223197428490"
          in: query
          name: tracking_number
          required: false
          schema:
            minLength: 1
            type: string
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_tracking_log_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Tracking Information
      tags:
        - tracking
    summary: Tracking a Package
  /v1/tracking/start:
    description: |
      Allows you to subscribe to tracking updates for a package. You specify the carrier_code and tracking_number of the package,
      and receive notifications via webhooks whenever the shipping status changes.
    post:
      description: |
        Allows you to subscribe to tracking updates for a package. You specify the carrier_code and tracking_number of the package,
        and receive notifications via webhooks whenever the shipping status changes.
      operationId: start_tracking
      parameters:
        - description: Carrier code used to retrieve tracking information
          example: stamps_com
          in: query
          name: carrier_code
          required: false
          schema:
            minLength: 1
            type: string
        - description: The tracking number associated with a shipment
          example: "9405511899223197428490"
          in: query
          name: tracking_number
          required: false
          schema:
            minLength: 1
            type: string
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Start Tracking a Package
      tags:
        - tracking
    summary: Start Tracking a Package
  /v1/tracking/stop:
    description: Unsubscribe from tracking updates for a package.
    post:
      description: Unsubscribe from tracking updates for a package.
      operationId: stop_tracking
      parameters:
        - description: Carrier code used to retrieve tracking information
          example: stamps_com
          in: query
          name: carrier_code
          required: false
          schema:
            minLength: 1
            type: string
        - description: The tracking number associated with a shipment
          example: "9405511899223197428490"
          in: query
          name: tracking_number
          required: false
          schema:
            minLength: 1
            type: string
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Stop Tracking a Package
      tags:
        - tracking
    summary: Stop Tracking a Package
  /v1/warehouses:
    description: |
      You likely have one or more warehouse locations that you frequently ship from, in which case it would be annoying to have to specify the
      ship_from and return_to addresses on every shipment. The solution is to [Create a Warehouse](https://www.shipengine.com/docs/reference/create-warehouse/), then you can simply pass the warehouse_id instead.
    get:
      description: Retrieve a list of warehouses associated with this account.
      operationId: list_warehouses
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/list_warehouses_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: List Warehouses
      tags:
        - warehouses
    post:
      description: |
        Create a warehouse location that you can use to create shipping items by simply passing in the generated warehouse id.
        If the return address is not supplied in the request body then it is assumed that the origin address is the return address as well
      operationId: create_warehouse
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/create_warehouse_request_body"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/create_warehouse_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Create Warehouse
      tags:
        - warehouses
    summary: Warehouses
  "/v1/warehouses/{warehouse_id}":
    delete:
      description: Delete a warehouse by ID
      operationId: delete_warehouse
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Delete Warehouse By ID
      tags:
        - warehouses
    description: |
      You likely have one or more warehouse locations that you frequently ship from, in which case it would be annoying to have to specify the
      ship_from and return_to addresses on every shipment. The solution is to [Create a Warehouse](https://www.shipengine.com/docs/reference/create-warehouse/), then you can simply pass the warehouse_id instead.
    get:
      description: Retrieve warehouse data based on the warehouse ID
      operationId: get_warehouse_by_id
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/get_warehouse_by_id_response_body"
          description: The request was a success.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Get Warehouse By Id
      tags:
        - warehouses
    parameters:
      - description: Warehouse ID
        in: path
        name: warehouse_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Update Warehouse object information
      operationId: update_warehouse
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/update_warehouse_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update Warehouse By Id
      tags:
        - warehouses
    summary: Warehouse
  "/v1/warehouses/{warehouse_id}/settings":
    description: Warehouse settings
    parameters:
      - description: Warehouse ID
        in: path
        name: warehouse_id
        required: true
        schema:
          $ref: "#/components/schemas/se_id"
    put:
      description: Update Warehouse settings object information
      operationId: update_warehouse_settings
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/update_warehouse_settings_request_body"
        required: true
      responses:
        "204":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/empty_response_body"
            text/plain:
              schema:
                $ref: "#/components/schemas/empty_response_body"
          description: The request was successful.
        "400":
          $ref: "#/components/responses/400_error_response"
        "404":
          $ref: "#/components/responses/404_error_response"
        "500":
          $ref: "#/components/responses/500_error_response"
      summary: Update Warehouse Settings
      tags:
        - warehouses
    summary: Warehouse settings
components:
  responses:
    400_error_response:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/error_response_body"
      description: The request contained errors.
    404_error_response:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/error_response_body"
      description: The specified resource does not exist.
    409_error_response:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/error_response_body"
      description: The request conflicts with an existing resource.
    500_error_response:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/error_response_body"
      description: |
        An error occurred on ShipEngine's side.

        > This error will automatically be reported to our engineers.
  schemas:
    account_settings:
      additionalProperties: false
      description: A ShipEngine account settings response body
      properties:
        default_label_layout:
          allOf:
            - $ref: "#/components/schemas/default_label_layout"
      title: account_settings
      type: object
    account_settings_images:
      additionalProperties: false
      description: A ShipEngine account images body
      properties:
        created_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time that the image was created in ShipEngine.
          readOnly: true
        image_content_type:
          allOf:
            - description: The image type
              enum:
                - image/png
                - image/jpeg
              type: string
          description: |
            The file type of the image. 
        image_data:
          description: |
            A base64 encoded string representation of the image.
          example: iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAAXNSR0IArs4c6QAAAiVJREFUSEu91j3IeVEcB/CvSTIoBrFSikEZMdjsjExeUspgUEp5SUpeshrIgEFJJmWwMZHJQGHDhJSXTPfpnH/8ebzd56HnN93u7ZzP/f1+55x7Ob1ejxEKheByufh0HI9HrFYrcKbTKUMu5HI5BALBx5zNZoPxeAySAGc2mzF8Pp/e+BR0Ash8u93uHyKVSnH54J2Mvs8zn8//I6RO70L3xt8g70CPXvAu8hvoWQUeIj+BXpX4KcIGegWQOV4izyA2AGvkHsQW+BFyCUkkEiwWC9Ybl1W5Ls8ZMoAABCIbmE3cINFoFMFgEEajEeVyGSKRCJ1OB3q9ns5nMpmQTCaxXq9/l8loNEKj0YDX66UACYvFQq9brRYcDgdUKhU9RD/SEwLm83lEIhGUSiX0+33E4/GrU5otRMs1mUyYbDYLu90OhUJBMzhlZbPZ4Pf7odFo4HQ6b1rABqJIvV5nttstLc0pSIn2+z0tTy6XQ6FQoI/a7TZ0Ot0V9gqiiMFgYKrVKm0yieVyCZ/PB6vVSpF0Ok2zJHEqIY/HYw1RxOfzMYlE4jwoEAhAJpPBbDZf9eBwOCCVSsHtdp9f6FJ6egorlUqmVqvRfjSbTXS7XXg8nptP8Svk0RF01ROtVguSUTgchlgsPpeOZBaLxTAcDlEsFpHJZPC9XM8yoshgMGBCoRBdQWTCU7hcLjohWb5kM6rValQqlfMKfLbbb77xf/K38hf/XV9ilOpnLqvnogAAAABJRU5ErkJggg==
          type: string
        is_default:
          description: |
            Indicates whether this image is set as default.
          example: false
          type: boolean
        label_image_id:
          allOf:
            - $ref: "#/components/schemas/image_id"
          description: |
            A string that uniquely identifies the image. This ID is generated by ShipEngine when the image is uploaded.
          readOnly: true
        modified_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time that the image was modified in ShipEngine.
          readOnly: true
        name:
          description: |
            A human readable name for the image.
          example: My logo
          maxLength: 50
          minLength: 1
          type: string
      title: account_settings_images
      type: object
    add_funds_to_carrier_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/monetary_value"
      description: An add funds to carrier request body
      title: add_funds_to_carrier_request_body
      type: object
    add_funds_to_carrier_response_body:
      additionalProperties: false
      description: The current balance of the requested carrier account
      properties:
        balance:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: The current balance of the account
          readOnly: true
      required:
        - balance
      title: add_funds_to_carrier_response_body
      type: object
    add_funds_to_insurance_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/monetary_value"
      description: An add funds to insurance request body
      title: add_funds_to_insurance_request_body
      type: object
    add_funds_to_insurance_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/monetary_value"
      description: Add funds to insurance response body
      title: add_funds_to_insurance_response_body
      type: object
    add_to_batch_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/modify_batch"
      description: An add to batch request body
      title: add_to_batch_request_body
      type: object
    address:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/partial_address"
      description: |
        Any residential or business mailing address, anywhere in the world.

        > **Note:** Either `name` or `company_name` must be set. Both may be specified, if relevant.
      required:
        - name
        - phone
        - address_line1
        - city_locality
        - state_province
        - postal_code
        - country_code
        - address_residential_indicator
      title: address
      type: object
    address_residential_indicator:
      description: Indicates whether an address is residential.
      enum:
        - unknown
        - yes
        - no
      title: address_residential_indicator
      type: string
    address_to_validate:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/partial_address"
      description: |
        Any residential or business mailing address, anywhere in the world.
      required:
        - address_line1
        - city_locality
        - state_province
        - country_code
      title: address_to_validate
      type: object
    address_validating_shipment:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/validate_shipment_fields"
        - $ref: "#/components/schemas/partial_shipment"
      description: An address validating shipment
      required:
        - shipment_id
        - carrier_id
        - service_code
        - ship_to
        - ship_from
      title: address_validating_shipment
      type: object
    address_validation_code:
      description: The error codes that can be returned by the address validation API
      enum:
        - a1000
        - a1001
        - a1002
        - a1003
        - a1004
        - a1005
        - a1006
        - a1007
        - a1008
        - r1000
        - r1001
        - r1002
        - r1003
      title: address_validation_code
      type: string
    address_validation_detail_code:
      description: The detailed error codes that can be returned by the address validation API
      enum:
        - unsupported_country
        - non_supported_country
        - minimum_postal_code_verification_failed
        - street_does_not_match_unique_street_name
        - multiple_directionals
        - multiple_matches
        - suite_not_valid
        - suite_missing
        - incompatible_paired_labels
        - invalid_house_number
        - missing_house_number
        - invalid_box_number
        - invalid_charge_event
        - missing_box_number
        - missing_cmra_or_private_mail_box_number
        - suite_has_no_secondaries
        - postal_code_changed_or_added
        - state_province_changed_or_added
        - city_locality_changed_or_added
        - urbanization_changed
        - street_name_spelling_changed_or_added
        - street_name_type_changed_or_added
        - street_direction_changed_or_added
        - suite_type_changed_or_added
        - suite_unit_number_changed_or_added
        - double_dependent_locality_changed_or_added
        - subadministrative_area_changed_or_added
        - subnational_area_changed_or_added
        - po_box_changed_or_added
        - premise_type_changed_or_added
        - house_number_changed
        - organization_changed_or_added
        - partially_verified_to_state_level
        - partially_verified_to_city_level
        - partially_verified_to_street_level
        - partially_verified_to_premise_level
        - verified_to_state_level
        - verified_to_city_level
        - verified_to_street_level
        - verified_to_premise_level
        - verified_to_suite_level
        - coded_to_street_lavel
        - coded_to_neighborhood_level
        - coded_to_community_level
        - coded_to_state_level
        - coded_to_rooftop_level
        - coded_to_rooftop_interpolation_level
        - name_max_length_exceeded
        - phone_max_length_exceeded
        - company_name_max_length_exceeded
        - line1_min_max_length
        - line2_max_length_exceeded
        - line3_max_length_exceeded
        - city_locality_max_length_exceeded
        - state_province_max_length_exceeded
        - invalid_postal_code
        - country_invalid_length
        - address_not_found
      title: address_validation_detail_code
      type: string
    address_validation_message_type:
      description: The different types of messages that can be returned by the address validation API
      enum:
        - error
        - warning
        - info
      title: address_validation_message_type
      type: string
    address_validation_result:
      additionalProperties: false
      description: An address validation result
      properties:
        matched_address:
          allOf:
            - $ref: "#/components/schemas/address"
          description: The matched address found by the Shipengine API
          nullable: true
          readOnly: true
        messages:
          default: []
          description: The list of messages that were generated during the address validation request.
          items:
            $ref: "#/components/schemas/response_message"
          readOnly: true
          type: array
        original_address:
          allOf:
            - $ref: "#/components/schemas/address"
          description: The original address that was sent for validation
        status:
          allOf:
            - $ref: "#/components/schemas/address_validation_status"
      required:
        - status
        - original_address
        - matched_address
        - messages
      title: address_validation_result
      type: object
    address_validation_status:
      description: The possible address validation status values
      enum:
        - unverified
        - verified
        - warning
        - error
      title: address_validation_status
      type: string
    advanced_shipment_options:
      additionalProperties: false
      description: Advanced shipment options
      properties:
        bill_to_account:
          default: null
          description: |
            This field is used to [bill shipping costs to a third party](https://www.shipengine.com/docs/shipping/bill-to-third-party/).  This field must be used in conjunction with the `bill_to_country_code`, `bill_to_party`, and `bill_to_postal_code` fields.
          nullable: true
          type: string
        bill_to_country_code:
          allOf:
            - $ref: "#/components/schemas/country_code"
          default: null
          description: |
            The two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1) of the third-party that is responsible for shipping costs.
          nullable: true
        bill_to_party:
          allOf:
            - $ref: "#/components/schemas/bill_to_party"
          default: null
          description: |
            Indicates whether to bill shipping costs to the recipient or to a third-party.  When billing to a third-party, the `bill_to_account`, `bill_to_country_code`, and `bill_to_postal_code` fields must also be set.
          nullable: true
        bill_to_postal_code:
          default: null
          description: |
            The postal code of the third-party that is responsible for shipping costs.
          nullable: true
          type: string
        collect_on_delivery:
          $ref: "#/components/schemas/collect_on_delivery"
        contains_alcohol:
          default: false
          description: Indicates that the shipment contains alcohol.
          type: boolean
        custom_field1:
          default: null
          description: |
            An arbitrary field that can be used to store information about the shipment.
          maxLength: 100
          nullable: true
          type: string
        custom_field2:
          default: null
          description: |
            An arbitrary field that can be used to store information about the shipment.
          maxLength: 100
          nullable: true
          type: string
        custom_field3:
          default: null
          description: |
            An arbitrary field that can be used to store information about the shipment.
          maxLength: 100
          nullable: true
          type: string
        delivered_duty_paid:
          default: false
          description: |
            Indicates that the shipper is paying the international delivery duties for this shipment.  This option is supported by UPS, FedEx, and DHL Express.
          type: boolean
        dry_ice:
          default: false
          description: Indicates if the shipment contain dry ice
          type: boolean
        dry_ice_weight:
          allOf:
            - $ref: "#/components/schemas/weight"
          description: The weight of the dry ice in the shipment
          nullable: true
        fedex_freight:
          description: Provide details for the Fedex freight service
          properties:
            booking_confirmation:
              type: string
            shipper_load_and_count:
              type: string
          type: object
        freight_class:
          default: null
          description: |
            The National Motor Freight Traffic Association [freight class](http://www.nmfta.org/pages/nmfc?AspxAutoDetectCookieSupport=1), such as "77.5", "110", or "250".
          example: 77.5
          nullable: true
          type: string
        non_machinable:
          default: false
          description: |
            Indicates that the package cannot be processed automatically because it is too large or irregularly shaped. This is primarily for USPS shipments.  See [Section 1.2 of the USPS parcel standards](https://pe.usps.com/text/dmm300/101.htm#ep1047495) for details.
          type: boolean
        origin_type:
          allOf:
            - $ref: "#/components/schemas/origin_type"
          default: null
          nullable: true
        saturday_delivery:
          default: false
          description: Enables Saturday delivery, if supported by the carrier.
          type: boolean
        shipper_release:
          default: null
          nullable: true
          type: boolean
        third_party_consignee:
          default: false
          description: Third Party Consignee option is a value-added service that allows the shipper to supply goods without commercial invoices being attached
          type: boolean
        use_ups_ground_freight_pricing:
          default: null
          description: |
            Whether to use [UPS Ground Freight pricing](https://www.shipengine.com/docs/shipping/ups-ground-freight/).  If enabled, then a `freight_class` must also be specified.
          nullable: true
          type: boolean
      title: advanced_shipment_options
      type: object
    alternative_identifier:
      additionalProperties: false
      description: |
        Additional information some carriers may provide by which to identify a given label in their system. 
      properties:
        type:
          description: |
            The type of alternative_identifier that corresponds to the value.
          example: last_mile_tracking_number
          minLength: 1
          type: string
        value:
          description: |
            The value of the alternative_identifier.
          example: "12345678912345678912"
          minLength: 1
          type: string
      title: alternative_identifier
      type: object
    ancillary_service_endorsement:
      description: |
        [Ancillary service endorsements](https://pe.usps.com/text/qsg300/Q507.htm) are used by mailers to request an addressee's new address and to provide the carrier with instructions on how to handle packages that are undeliverable as addressed.

        | Ancillary Service Endorsement  | Description
        |--------------------------------|-----------------------------------------------------
        | `none`                         | No ancillary service is requested. Depending on the carrier servive, the package may be forwarded, returned, or discarded.
        | `return_service_requested`     | The package is returned to the sender. If possible, notification of the new address is is included with the returned package.
        | `forwarding_service_requested` | Forward the package to the new address, if possible; otherwise, return it to the sender.
        | `address_service_requested`    | Forward the package to the new address, if possible; otherwise, return it to the sender. This is similar to `forwarding_service_requested`, but different restrictions and charges may apply.
        | `change_service_requested`     | The package is discarded. If possible, notification of the new address is sent to the sender.
        | `leave_if_no_response`         |
      enum:
        - none
        - return_service_requested
        - forwarding_service_requested
        - address_service_requested
        - change_service_requested
        - leave_if_no_response
      title: ancillary_service_endorsement
      type: string
    batch:
      additionalProperties: false
      description: |
        Batches are an advanced feature of ShipEngine designed for users who need to generate hundreds or
        thousands of labels at a time.
      properties:
        batch_errors_url:
          allOf:
            - $ref: "#/components/schemas/optional_link"
          description: Link to batch errors endpoint
          readOnly: true
        batch_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the batch
          readOnly: true
        batch_labels_url:
          allOf:
            - $ref: "#/components/schemas/optional_link"
          description: Link to batch labels query
        batch_notes:
          default: ""
          description: Custom notes you can add for each created batch
          example: Batch for morning shipment
          nullable: true
          readOnly: true
          type: string
        batch_number:
          description: The batch number.
          minLength: 0
          readOnly: true
          type: string
        batch_shipments_url:
          allOf:
            - $ref: "#/components/schemas/optional_link"
          description: The batch shipments endpoint
        completed:
          description: The number of labels generated in the batch
          example: 1
          format: int32
          minimum: 0
          readOnly: true
          type: integer
        count:
          description: The total of errors, warnings, and completed properties
          example: 2
          format: int32
          minimum: 0
          readOnly: true
          type: integer
        created_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time the batch was created in ShipEngine
          readOnly: true
        errors:
          description: The number of errors that occurred while generating the batch
          example: 2
          format: int32
          minimum: 0
          readOnly: true
          type: integer
        external_batch_id:
          description: A string that uniquely identifies the external batch
          minLength: 0
          nullable: true
          readOnly: true
          type: string
        form_download:
          allOf:
            - $ref: "#/components/schemas/optional_link"
          description: The form download for any customs that are needed
          readOnly: true
        forms:
          description: The number of forms for customs that are available for download
          example: 3
          format: int32
          minimum: 0
          readOnly: true
          type: integer
        label_download:
          allOf:
            - $ref: "#/components/schemas/label_download"
          description: The label download for the batch
          readOnly: true
        label_format:
          allOf:
            - $ref: "#/components/schemas/label_format"
          default: pdf
          readOnly: true
        label_layout:
          allOf:
            - $ref: "#/components/schemas/label_layout"
          default: 4x6
          description: label layout
          readOnly: true
        processed_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time the batch was processed in ShipEngine
          nullable: true
          readOnly: true
        status:
          allOf:
            - $ref: "#/components/schemas/batch_status"
          readOnly: true
        warnings:
          description: The number of warnings that occurred while generating the batch
          example: 1
          format: int32
          minimum: 0
          readOnly: true
          type: integer
      required:
        - label_layout
        - label_format
        - batch_id
        - batch_number
        - external_batch_id
        - batch_notes
        - created_at
        - processed_at
        - errors
        - warnings
        - completed
        - forms
        - count
        - batch_shipments_url
        - batch_labels_url
        - batch_errors_url
        - label_download
        - form_download
        - status
      title: batch
      type: object
    batch_response_error:
      additionalProperties: false
      description: A batch response error
      properties:
        error:
          description: Error message associated with the shipment.
          example: Recipient address has not been verified.
          minLength: 1
          readOnly: true
          type: string
        external_shipment_id:
          description: An external shipment id associated with the shipment
          readOnly: true
          type: string
        shipment_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the shipment
          readOnly: true
      title: batch_response_error
      type: object
    batch_status:
      description: The possible batch status values
      enum:
        - open
        - queued
        - processing
        - completed
        - completed_with_errors
        - archived
        - notifying
        - invalid
      title: batch_status
      type: string
    batches_sort_by:
      description: The possible batches sort by values
      enum:
        - ship_date
        - processed_at
        - created_at
      title: batches_sort_by
      type: string
    bill_to_party:
      description: The possible bill to party values
      enum:
        - recipient
        - third_party
      title: bill_to_party
      type: string
    bulk_rate:
      additionalProperties: false
      description: A bulk rate
      properties:
        created_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          format: date-time
          readOnly: true
          type: string
        errors:
          description: An array of errors that were returned while retrieving the bulk rate
          items:
            allOf:
              - $ref: "#/components/schemas/error"
            description: An error that occurred while retrieving the bulk rate
            readOnly: true
          readOnly: true
          type: array
        rate_request_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the rate request
          readOnly: true
        shipment_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the shipment
          readOnly: true
        status:
          allOf:
            - $ref: "#/components/schemas/rate_response_status"
          readOnly: true
      required:
        - rate_request_id
        - shipment_id
        - created_at
        - status
        - errors
      title: bulk_rate
      type: object
    calculate_rates_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/rate_request_options"
      description: A rate shipment request body
      oneOf:
        - $ref: "#/components/schemas/shipment_id_request"
        - $ref: "#/components/schemas/shipment_request"
      required:
        - shipment_id
        - shipment
      title: calculate_rates_request_body
      type: object
    calculate_rates_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/partial_shipment"
        - $ref: "#/components/schemas/rate_response"
      description: A rate shipment response body
      required:
        - rate_response
        - shipment_id
        - ship_date
        - created_at
        - modified_at
        - shipment_status
        - return_to
        - confirmation
        - customs
        - advanced_options
        - insurance_provider
        - tags
        - packages
        - total_weight
      title: calculate_rates_response_body
      type: object
    carrier:
      additionalProperties: false
      description: |
        A carrier object that represents a provider such as UPS, USPS, DHL, etc
        that has been tied to the current account.
      properties:
        account_number:
          description: The account number that the carrier is connected to.
          example: account_570827
          minLength: 1
          readOnly: true
          type: string
        balance:
          description: Current available balance
          example: 3799.52
          format: double
          minimum: 0
          readOnly: true
          type: number
        carrier_code:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the carrier.
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the carrier.
          readOnly: true
        friendly_name:
          description: Screen readable name
          example: Stamps.com
          minLength: 1
          readOnly: true
          type: string
        has_multi_package_supporting_services:
          description: Carrier supports multiple packages per shipment
          readOnly: true
          type: boolean
        nickname:
          description: Nickname given to the account when initially setting up the carrier.
          example: ShipEngine Account - Stamps.com
          minLength: 1
          readOnly: true
          type: string
        options:
          description: A list of options that are available to that carrier
          items:
            allOf:
              - $ref: "#/components/schemas/carrier_advanced_option"
            readOnly: true
          readOnly: true
          type: array
        packages:
          description: A list of package types that are supported by the carrier
          items:
            allOf:
              - $ref: "#/components/schemas/package_type"
            readOnly: true
          readOnly: true
          type: array
        primary:
          description: Is this the primary carrier that is used by default when no carrier is specified in label/shipment creation
          readOnly: true
          type: boolean
        requires_funded_amount:
          description: Indicates whether the carrier requires funding to use its services
          readOnly: true
          type: boolean
        services:
          description: A list of services that are offered by the carrier
          items:
            allOf:
              - $ref: "#/components/schemas/service"
            readOnly: true
          readOnly: true
          type: array
        supports_label_messages:
          description: The carrier supports adding custom label messages to an order.
          readOnly: true
          type: boolean
      title: carrier
      type: object
    carrier_advanced_option:
      additionalProperties: false
      description: Advanced options that are specific to the carrier
      properties:
        default_value:
          description: Default value of option
          example: false
          minLength: 1
          readOnly: true
          type: string
        description:
          description: Description of option
          minLength: 0
          readOnly: true
          type: string
        name:
          description: Name of advanced option
          example: contains_alcohol
          minLength: 1
          readOnly: true
          type: string
      title: carrier_advanced_option
      type: object
    carrier_code:
      description: |
        A [shipping carrier](https://www.shipengine.com/docs/carriers/setup/), such as `fedex`, `dhl_express`, `stamps_com`, etc.
      example: dhl_express
      pattern: ^[a-z0-9]+(_[a-z0-9]+)*$
      title: carrier_code
      type: string
    carrier_name:
      description: The shipping carriers that are supported by ShipEngine
      enum:
        - access_worldwide
        - amazon_buy_shipping
        - amazon_shipping_uk
        - apc
        - asendia
        - australia_post
        - canada_post
        - dhl_ecommerce
        - dhl_express
        - dhl_express_au
        - dhl_express_ca
        - dhl_express_uk
        - dpd
        - endicia
        - fedex
        - fedex_uk
        - firstmile
        - imex
        - newgistics
        - ontrac
        - purolator_canada
        - royal_mail
        - rr_donnelley
        - seko
        - sendle
        - stamps_com
        - ups
      title: carrier_name
      type: string
    carrier_name_with_settings:
      description: The shipping carriers for which ShipEngine supports carrier settings
      enum:
        - dhl_express
        - fedex
        - newgistics
        - ups
      title: carrier_name_with_settings
      type: string
    collect_on_delivery:
      description: Defer payment until package is delivered, instead of when it is ordered.
      properties:
        payment_amount:
          $ref: "#/components/schemas/payment_amount"
        payment_type:
          allOf:
            - $ref: "#/components/schemas/collect_on_delivery_payment_type"
      title: collect_on_delivery
      type: object
    collect_on_delivery_payment_type:
      description: Types of payment that are supported
      enum:
        - any
        - cash
        - cash_equivalent
        - none
      title: collect_on_delivery_payment_type
      type: string
    compare_bulk_rates_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/rate_request_rate_options"
      description: A rate shipments request body
      oneOf:
        - $ref: "#/components/schemas/rate_request_by_shipment_ids"
        - $ref: "#/components/schemas/rate_request_by_shipments"
      required:
        - rate_options
      title: compare_bulk_rates_request_body
      type: object
    compare_bulk_rates_response_body:
      description: A bulk rate response body
      items:
        $ref: "#/components/schemas/bulk_rate"
      title: compare_bulk_rates_response_body
      type: array
    connect_access_worldwide_request_body:
      additionalProperties: false
      description: An Access Worldwide account information request body
      properties:
        nickname:
          description: The nickname associated with the carrier connection
          example: Stamps.com
          minLength: 1
          type: string
        password:
          description: Access Worldwide Password
          minLength: 1
          type: string
        username:
          description: Access Worldwide Username
          minLength: 1
          type: string
      required:
        - nickname
        - username
        - password
      title: connect_access_worldwide_request_body
      type: object
    connect_amazon_buy_shipping_request_body:
      additionalProperties: false
      description: An Amazon account information request body
      properties:
        email:
          allOf:
            - $ref: "#/components/schemas/email"
        merchant_seller_id:
          minLength: 1
          type: string
        mws_auth_token:
          minLength: 1
          type: string
        nickname:
          description: Nickname to be associated with the account connection
          example: Test Amazon Buy Shipping
          minLength: 1
          type: string
      required:
        - nickname
        - merchant_seller_id
        - email
        - mws_auth_token
      title: connect_amazon_buy_shipping_request_body
      type: object
    connect_amazon_shipping_uk:
      additionalProperties: false
      description: An Amazon Shipping UK account information request body
      properties:
        auth_code:
          description: Amazon UK Shipping auth code.
          minLength: 1
          type: string
        nickname:
          description: The nickname associated with the carrier connection
          example: Stamps.com
          minLength: 1
          type: string
      required:
        - nickname
        - auth_code
      title: connect_amazon_shipping_uk
      type: object
    connect_apc_request_body:
      additionalProperties: false
      description: An APC account information request body
      properties:
        nickname:
          description: The nickname for the APC account
          example: APC carrier account
          minLength: 1
          type: string
        password:
          description: The password for the APC account
          example: 12345
          minLength: 1
          type: string
        username:
          description: The username for the APC account
          example: john_doe
          minLength: 1
          type: string
      required:
        - nickname
        - username
        - password
      title: connect_apc_request_body
      type: object
    connect_asendia_request_body:
      additionalProperties: false
      description: An Asendia account information request body
      properties:
        account_number:
          description: Asendia account number
          minLength: 1
          type: string
        ftp_password:
          description: FTP password
          minLength: 1
          type: string
        ftp_username:
          description: FTP username
          minLength: 1
          type: string
        nickname:
          description: The nickname of the Asendia account
          example: Asendia account
          minLength: 1
          type: string
      required:
        - nickname
        - account_number
        - ftp_username
        - ftp_password
      title: connect_asendia_request_body
      type: object
    connect_australia_post_request_body:
      additionalProperties: false
      description: An Australia Post account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        api_key:
          description: API key
          minLength: 1
          type: string
        api_secret:
          description: API secret
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
      required:
        - account_number
        - api_key
        - api_secret
        - nickname
      title: connect_australia_post_request_body
      type: object
    connect_canada_post_request_body:
      additionalProperties: false
      description: A Canada Post account information request body
      properties:
        account_number:
          description: Canada Post Account Number
          minLength: 1
          type: string
        api_key:
          description: Canada Post Account API Key
          minLength: 1
          type: string
        api_secret:
          description: Canada Post Account API Secret
          minLength: 1
          type: string
        contract_id:
          description: Canada Post Account Contract ID
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
      required:
        - nickname
        - api_key
        - api_secret
        - account_number
        - contract_id
      title: connect_canada_post_request_body
      type: object
    connect_carrier_request_body:
      oneOf:
        - $ref: "#/components/schemas/connect_access_worldwide_request_body"
        - $ref: "#/components/schemas/connect_amazon_buy_shipping_request_body"
        - $ref: "#/components/schemas/connect_amazon_shipping_uk"
        - $ref: "#/components/schemas/connect_apc_request_body"
        - $ref: "#/components/schemas/connect_asendia_request_body"
        - $ref: "#/components/schemas/connect_australia_post_request_body"
        - $ref: "#/components/schemas/connect_canada_post_request_body"
        - $ref: "#/components/schemas/connect_dhl_ecommerce_request_body"
        - $ref: "#/components/schemas/connect_dhl_express_request_body"
        - $ref: "#/components/schemas/connect_dhl_express_au_request_body"
        - $ref: "#/components/schemas/connect_dhl_express_ca_request_body"
        - $ref: "#/components/schemas/connect_dhl_express_uk_request_body"
        - $ref: "#/components/schemas/connect_dpd_request_body"
        - $ref: "#/components/schemas/connect_endicia_request_body"
        - $ref: "#/components/schemas/connect_fedex_request_body"
        - $ref: "#/components/schemas/connect_fedex_uk_request_body"
        - $ref: "#/components/schemas/connect_firstmile_request_body"
        - $ref: "#/components/schemas/connect_imex_request_body"
        - $ref: "#/components/schemas/connect_newgistics_request_body"
        - $ref: "#/components/schemas/connect_ontrac_request_body"
        - $ref: "#/components/schemas/connect_purolator_request_body"
        - $ref: "#/components/schemas/connect_royal_mail_request_body"
        - $ref: "#/components/schemas/connect_rr_donnelley_request_body"
        - $ref: "#/components/schemas/connect_seko_request_body"
        - $ref: "#/components/schemas/connect_sendle_request_body"
        - $ref: "#/components/schemas/connect_stamps_request_body"
        - $ref: "#/components/schemas/connect_ups_request_body"
      title: connect_carrier_request_body
    connect_carrier_response_body:
      additionalProperties: false
      description: A connect account response body
      properties:
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the carrier
      required:
        - carrier_id
      title: connect_carrier_response_body
      type: object
    connect_dhl_ecommerce_request_body:
      additionalProperties: false
      description: A DHL Ecommerce account information request body
      properties:
        account_number:
          deprecated: true
          description: Account number
          minLength: 1
          type: string
        ancillary_endorsement:
          allOf:
            - $ref: "#/components/schemas/ancillary_service_endorsement"
        api_key:
          description: |
            The DHL E-Commerce API key. This field is optional, but if not set you will not be able to get rates for this account.
          minLength: 1
          type: string
        api_secret:
          description: |
            The DHL E-Commerce API secret. This field is optional, but if not set you will not be able to get rates for this account.
          minLength: 1
          type: string
        client_id:
          description: The client id
          minLength: 1
          type: string
        distribution_center:
          description: The distribution center
          minLength: 1
          type: string
        ftp_password:
          deprecated: true
          description: FTP password
          minLength: 1
          type: string
        ftp_username:
          deprecated: true
          description: FTP username
          minLength: 1
          type: string
        nickname:
          description: A nickname to help you identify this account
          minLength: 1
          type: string
        password:
          description: The account password
          minLength: 1
          type: string
        pickup_number:
          description: The pickup number
          minLength: 1
          type: string
        registration_id:
          type: string
        software_name:
          type: string
        sold_to:
          description: Sold To field
          type: string
        username:
          description: The account username
          minLength: 1
          type: string
      required:
        - nickname
        - client_id
        - username
        - password
        - pickup_number
        - distribution_center
      title: connect_dhl_ecommerce_request_body
      type: object
    connect_dhl_express_au_request_body:
      additionalProperties: false
      description: A DHL Express AU account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
      required:
        - nickname
        - account_number
      title: connect_dhl_express_au_request_body
      type: object
    connect_dhl_express_ca_request_body:
      additionalProperties: false
      description: A DHL Express CA account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
      required:
        - nickname
        - account_number
      title: connect_dhl_express_ca_request_body
      type: object
    connect_dhl_express_request_body:
      additionalProperties: false
      description: A DHL express account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        country_code:
          allOf:
            - $ref: "#/components/schemas/country_code"
        nickname:
          description: Nickname
          minLength: 1
          type: string
        password:
          description: Required if site id is provided
          minLength: 1
          type: string
        site_id:
          description: Required if password is provided
          minLength: 1
          type: string
      required:
        - nickname
        - account_number
      title: connect_dhl_express_request_body
      type: object
    connect_dhl_express_uk_request_body:
      additionalProperties: false
      description: A DHL Express UK account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
        password:
          description: Password
          minLength: 1
          type: string
        site_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the site
      required:
        - account_number
        - site_id
        - password
        - nickname
      title: connect_dhl_express_uk_request_body
      type: object
    connect_dpd_request_body:
      additionalProperties: false
      description: A DPD account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
        password:
          description: Password
          minLength: 1
          type: string
      required:
        - account_number
        - password
        - nickname
      title: connect_dpd_request_body
      type: object
    connect_endicia_request_body:
      additionalProperties: false
      description: An Endicia account information request body
      properties:
        account:
          description: Account
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
        passphrase:
          description: Passphrase
          minLength: 1
          type: string
      required:
        - nickname
        - account
        - passphrase
      title: connect_endicia_request_body
      type: object
    connect_fedex_request_body:
      additionalProperties: false
      description: A Fedex account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        address1:
          description: Address
          minLength: 1
          type: string
        address2:
          description: Address
          minLength: 1
          type: string
        agree_to_eula:
          description: Boolean signaling agreement to the Fedex End User License Agreement
          type: boolean
        city:
          description: The city
          minLength: 1
          type: string
        company:
          description: The company
          minLength: 1
          type: string
        country_code:
          description: Country code
          minLength: 1
          type: string
        email:
          allOf:
            - $ref: "#/components/schemas/email"
          description: The email address
        first_name:
          description: First name
          minLength: 1
          type: string
        last_name:
          description: Last name
          minLength: 1
          type: string
        meter_number:
          description: Meter number
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
        phone:
          description: Phone number
          minLength: 1
          type: string
        postal_code:
          description: Postal Code
          minLength: 1
          type: string
        state:
          description: State
          minLength: 1
          type: string
      required:
        - account_number
        - address1
        - city
        - country_code
        - email
        - first_name
        - last_name
        - phone
        - postal_code
        - state
        - nickname
        - agree_to_eula
      title: connect_fedex_request_body
      type: object
    connect_fedex_uk_request_body:
      additionalProperties: false
      description: A Fedex UK account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        address1:
          description: Address
          minLength: 1
          type: string
        address2:
          description: Address
          minLength: 1
          type: string
        agree_to_eula:
          description: Boolean signaling agreement to the Fedex End User License Agreement
          type: boolean
        city:
          description: The city
          minLength: 1
          type: string
        company:
          description: The company
          minLength: 1
          type: string
        country_code:
          description: Country code
          minLength: 1
          type: string
        email:
          allOf:
            - $ref: "#/components/schemas/email"
          description: The email address
        first_name:
          description: First name
          minLength: 1
          type: string
        last_name:
          description: Last name
          minLength: 1
          type: string
        meter_number:
          description: Meter number
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
        phone:
          description: Phone number
          minLength: 1
          type: string
        postal_code:
          description: Postal Code
          minLength: 1
          type: string
        state:
          description: State
          minLength: 1
          type: string
      required:
        - account_number
        - address1
        - city
        - country_code
        - email
        - first_name
        - last_name
        - phone
        - postal_code
        - state
        - nickname
        - agree_to_eula
      title: connect_fedex_uk_request_body
      type: object
    connect_firstmile_request_body:
      additionalProperties: false
      description: A First Mile account information request body
      properties:
        mailer_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the mailer
        nickname:
          description: Nickname
          minLength: 1
          type: string
        password:
          description: Password
          minLength: 1
          type: string
        profile_name:
          description: Profile name
          minLength: 1
          type: string
      required:
        - nickname
        - mailer_id
        - password
      title: connect_firstmile_request_body
      type: object
    connect_imex_request_body:
      additionalProperties: false
      description: An Imex account information request body
      properties:
        nickname:
          description: Nickname
          minLength: 1
          type: string
        password:
          description: Password
          minLength: 1
          type: string
        username:
          description: Username
          minLength: 1
          type: string
      required:
        - nickname
        - username
        - password
      title: connect_imex_request_body
      type: object
    connect_insurer_request_body:
      additionalProperties: false
      description: A create shipsurance connection request body
      properties:
        email:
          allOf:
            - $ref: "#/components/schemas/email"
        policy_id:
          minLength: 1
          type: string
      required:
        - email
        - policy_id
      title: connect_insurer_request_body
      type: object
    connect_insurer_response_body:
      title: connect_insurer_response_body
      type: object
    connect_newgistics_request_body:
      additionalProperties: false
      description: A Newgistics account information request body
      properties:
        induction_site:
          description: Induction site
          minLength: 1
          type: string
        mailer_id:
          description: Mailer id
          format: int32
          minimum: 0
          type: integer
        merchant_id:
          description: Merchant id
          format: int32
          minimum: 0
          type: integer
        nickname:
          description: Nickname
          minLength: 1
          type: string
      required:
        - induction_site
        - nickname
      title: connect_newgistics_request_body
      type: object
    connect_ontrac_request_body:
      additionalProperties: false
      description: An Ontrac account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
        password:
          description: Password
          minLength: 1
          type: string
      required:
        - nickname
        - account_number
        - password
      title: connect_ontrac_request_body
      type: object
    connect_purolator_request_body:
      additionalProperties: false
      description: A Purolator account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        activation_key:
          description: Activation key
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
      required:
        - account_number
        - activation_key
        - nickname
      title: connect_purolator_request_body
      type: object
    connect_royal_mail_request_body:
      additionalProperties: false
      description: A Royal Mail account information request body
      properties:
        account_number:
          description: Account number
          minLength: 1
          type: string
        city:
          description: City
          minLength: 1
          type: string
        company_name:
          description: Company name
          minLength: 1
          type: string
        contact_name:
          description: Contact name
          minLength: 1
          type: string
        email:
          allOf:
            - $ref: "#/components/schemas/email"
          description: The email address
        nickname:
          description: Nickname
          minLength: 1
          type: string
        oba_email:
          allOf:
            - $ref: "#/components/schemas/email"
          description: The oba email address
        phone:
          description: Phone
          minLength: 1
          type: string
        postal_code:
          description: Postal code
          minLength: 1
          type: string
        street_line1:
          description: Street line1
          minLength: 1
          type: string
        street_line2:
          description: Street line2
          minLength: 1
          type: string
        street_line3:
          description: Street line3
          minLength: 1
          type: string
      required:
        - account_number
        - contact_name
        - city
        - postal_code
        - nickname
      title: connect_royal_mail_request_body
      type: object
    connect_rr_donnelley_request_body:
      additionalProperties: false
      description: A RR Donnelley account information request body
      properties:
        nickname:
          description: Nickname
          minLength: 1
          type: string
        password:
          description: Password
          minLength: 1
          type: string
        username:
          description: Username
          minLength: 1
          type: string
      required:
        - nickname
        - username
        - password
      title: connect_rr_donnelley_request_body
      type: object
    connect_seko_request_body:
      additionalProperties: false
      description: A SEKO account information request body
      properties:
        access_key:
          description: Seko Account Access Key
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
      required:
        - nickname
        - access_key
      title: connect_seko_request_body
      type: object
    connect_sendle_request_body:
      additionalProperties: false
      description: A Sendle account information request body
      properties:
        api_key:
          description: API key
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
        sendle_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the sendle
      required:
        - nickname
        - sendle_id
        - api_key
      title: connect_sendle_request_body
      type: object
    connect_stamps_request_body:
      additionalProperties: false
      description: A Stamps account information request body
      properties:
        nickname:
          description: Nickname
          minLength: 1
          type: string
        password:
          description: Password
          minLength: 1
          type: string
        username:
          description: Username
          minLength: 1
          type: string
      required:
        - nickname
        - username
        - password
      title: connect_stamps_request_body
      type: object
    connect_ups_request_body:
      additionalProperties: false
      description: A UPS account information request body
      properties:
        account_country_code:
          description: Account country code
          minLength: 1
          type: string
        account_number:
          description: Account number
          minLength: 1
          type: string
        account_postal_code:
          description: Account postal code
          minLength: 1
          type: string
        address1:
          description: Address Line 1
          minLength: 1
          type: string
        address2:
          description: Address Line 2
          minLength: 1
          type: string
        agree_to_technology_agreement:
          description: The Agreement to the [UPS Technology Agreement](https://www.ups.com/assets/resources/media/UTA_with_EUR.pdf)
          type: boolean
        city:
          description: City
          minLength: 1
          type: string
        company:
          description: Company
          minLength: 1
          type: string
        country_code:
          description: Country code
          minLength: 1
          type: string
        email:
          allOf:
            - $ref: "#/components/schemas/email"
          description: The email address
        first_name:
          description: First name
          minLength: 1
          type: string
        invoice:
          allOf:
            - $ref: "#/components/schemas/ups_invoice"
          description: The UPS invoice
        invoice_amount:
          description: The invoice amount
          format: double
          type: number
        invoice_currency_code:
          description: The invoice currency code
          type: string
        last_name:
          description: Last name
          minLength: 1
          type: string
        nickname:
          description: Nickname
          minLength: 1
          type: string
        phone:
          description: Phone
          minLength: 1
          type: string
        postal_code:
          description: Postal code
          minLength: 1
          type: string
        state:
          description: State
          minLength: 1
          type: string
        title:
          description: Title
          minLength: 1
          type: string
      required:
        - nickname
        - account_number
        - account_country_code
        - account_postal_code
        - first_name
        - last_name
        - company
        - address1
        - city
        - state
        - postal_code
        - country_code
        - email
        - phone
        - agree_to_technology_agreement
      title: connect_ups_request_body
      type: object
    contact_details:
      properties:
        email:
          allOf:
            - $ref: "#/components/schemas/email"
        name:
          minLength: 1
          type: string
        phone:
          description: Phone number associated
          minLength: 7
          type: string
      required:
        - name
        - email
        - phone
      title: contact_details
      type: object
    country_code:
      description: |
        A two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1)
      example: CA
      maxLength: 2
      minLength: 2
      title: country_code
      type: string
    create_account_settings_image_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/account_settings_images"
      description: A ShipEngine account settings images request body
      required:
        - name
        - image_content_type
        - image_data
      title: create_account_settings_image_request_body
      type: object
    create_and_validate_shipment:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/partial_shipment"
        - $ref: "#/components/schemas/create_shipment_response_body_fields"
      description: A create and validate shipment resource
      title: create_and_validate_shipment
      type: object
    create_batch_request_body:
      additionalProperties: false
      description: A create batch request body
      properties:
        batch_notes:
          description: Add custom messages for a particular batch
          example: This is my batch
          minLength: 1
          type: string
        external_batch_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the external batch
        rate_ids:
          description: Array of rate IDs used in the batch
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            minLength: 1
            type: string
          type: array
        shipment_ids:
          description: Array of shipment IDs used in the batch
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
          type: array
      title: create_batch_request_body
      type: object
    create_batch_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/batch"
      description: A create batch response body
      title: create_batch_response_body
      type: object
    create_label_from_rate_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/purchase_label_without_shipment"
      description: A purchase label without shipment request body
      title: create_label_from_rate_request_body
      type: object
    create_label_from_rate_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/label"
      description: A create label from rate response body
      title: create_label_from_rate_response_body
      type: object
    create_label_from_shipment_request_body:
      additionalProperties: false
      description: A purchase label without shipment request body
      properties:
        display_scheme:
          allOf:
            - $ref: "#/components/schemas/display_scheme"
          default: label
          description: The display format that the label should be shown in.
        label_download_type:
          allOf:
            - $ref: "#/components/schemas/label_download_type"
        label_format:
          allOf:
            - $ref: "#/components/schemas/label_format"
          default: pdf
        label_layout:
          allOf:
            - $ref: "#/components/schemas/label_layout"
          default: 4x6
        validate_address:
          allOf:
            - $ref: "#/components/schemas/validate_address"
      title: create_label_from_shipment_request_body
      type: object
    create_label_from_shipment_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/label"
      description: A create label from shipment response body
      title: create_label_from_shipment_response_body
      type: object
    create_label_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/label"
      description: A purchase label request body
      properties:
        ship_from_service_point_id:
          description: A unique identifier for a carrier drop off point where a merchant plans to deliver packages. This will take precedence over a shipment's ship from address.
          example: "614940"
          nullable: true
          type: string
        ship_to_service_point_id:
          description: A unique identifier for a carrier service point where the shipment will be delivered by the carrier. This will take precedence over a shipment's ship to address.
          example: "614940"
          nullable: true
          type: string
      required:
        - shipment
      title: create_label_request_body
      type: object
    create_label_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/label"
      description: A create label response body
      required:
        - label_id
        - status
        - shipment_id
        - ship_date
        - created_at
        - shipment_cost
        - insurance_cost
        - tracking_number
        - is_international
        - batch_id
        - carrier_id
        - service_code
        - voided
        - voided_at
        - label_image_id
        - label_format
        - label_layout
        - trackable
        - carrier_code
        - tracking_status
        - label_download
        - form_download
        - insurance_claim
        - packages
        - is_return_label
        - rma_number
        - charge_event
        - package_code
        - display_scheme
      title: create_label_response_body
      type: object
    create_manifest_by_object_request_body:
      additionalProperties: false
      description: A create manifest request body
      properties:
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the carrier
        excluded_label_ids:
          description: The list of label ids to exclude from the manifest
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: Label Id that will be excluded from the manifest
          type: array
        label_ids:
          description: The list of label ids to include for the manifest
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: Label Id that will be included for the manifest
          type: array
        ship_date:
          description: The ship date that the shipment will be sent out on
          example: 2018-09-23T15:00:00.000Z
          format: date-time
          minLength: 1
          type: string
        warehouse_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the warehouse
      required:
        - carrier_id
        - warehouse_id
        - ship_date
      title: create_manifest_by_object_request_body
      type: object
    create_manifest_label_ids_request_body:
      additionalProperties: false
      description: A create manifest request body
      properties:
        label_ids:
          description: The list of label ids to include in the manifest
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: Label Id that will be included in the manifest
          type: array
      required:
        - label_ids
      title: create_manifest_label_ids_request_body
      type: object
    create_manifest_request_body:
      oneOf:
        - $ref: "#/components/schemas/create_manifest_by_object_request_body"
        - $ref: "#/components/schemas/create_manifest_label_ids_request_body"
      title: create_manifest_request_body
    create_manifest_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/manifests"
        - $ref: "#/components/schemas/manifests_requests"
        - $ref: "#/components/schemas/deprecated_manifest"
        - $ref: "#/components/schemas/error_with_label_id_response_body"
      description: A create manifest response body
      required:
        - manifest_id
        - form_id
        - created_at
        - ship_date
        - shipments
        - warehouse_id
        - submission_id
        - carrier_id
        - manifest_download
      title: create_manifest_response_body
      type: object
    create_package_type_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/package_type"
      description: A create package type request body
      title: create_package_type_request_body
      type: object
    create_package_type_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/package_type"
      description: A create package type response body
      title: create_package_type_response_body
      type: object
    create_return_label_request_body:
      additionalProperties: false
      description: A create return label request body
      properties:
        charge_event:
          allOf:
            - $ref: "#/components/schemas/label_charge_event"
          description: |
            The label charge event.
        display_scheme:
          allOf:
            - $ref: "#/components/schemas/display_scheme"
          default: label
          description: The display format that the label should be shown in.
        label_download_type:
          allOf:
            - $ref: "#/components/schemas/label_download_type"
          default: url
          writeOnly: true
        label_format:
          allOf:
            - $ref: "#/components/schemas/label_format"
          default: pdf
          description: |
            The file format that you want the label to be in.  We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
        label_image_id:
          allOf:
            - $ref: "#/components/schemas/image_id"
          description: The label image resource that was used to create a custom label image.
          nullable: true
        label_layout:
          allOf:
            - $ref: "#/components/schemas/label_layout"
          default: 4x6
          description: |
            The layout (size) that you want the label to be in.  The `label_format` determines which sizes are allowed.  `4x6` is supported for all label formats, whereas `letter` (8.5" x 11") is only supported for `pdf` format.
      title: create_return_label_request_body
      type: object
    create_return_label_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/label"
      description: A create return label response body
      title: create_return_label_response_body
      type: object
    create_shipment_response_body_fields:
      properties:
        address_validation:
          allOf:
            - $ref: "#/components/schemas/address_validation_result"
          description: The address validation
        errors:
          deprecated: true
          description: An array of errors that occurred while creating shipment.
          items:
            description: An error that occurred while creating a shipment.
            example: Parameter value '100000000.00' is out of range.
            minLength: 1
            type: string
          readOnly: true
          type: array
      title: create_shipment_response_body_fields
      type: object
    create_shipments_request_body:
      additionalProperties: false
      description: A create shipments request body
      properties:
        shipments:
          description: An array of shipments to be created.
          items:
            allOf:
              - $ref: "#/components/schemas/address_validating_shipment"
          minItems: 1
          type: array
      required:
        - shipments
      title: create_shipments_request_body
      type: object
    create_shipments_response_body:
      additionalProperties: false
      description: A create shipments response body
      properties:
        has_errors:
          default: false
          description: Indicates if errors occured while creating the shipments
          type: boolean
        shipments:
          description: An array of shipments that were created.
          items:
            allOf:
              - $ref: "#/components/schemas/create_and_validate_shipment"
            description: The shipment that was created.
          type: array
      required:
        - has_errors
        - shipments
      title: create_shipments_response_body
      type: object
    create_tag_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/tag"
      description: Response body for creating tags
      title: create_tag_response_body
      type: object
    create_warehouse_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/warehouse"
      description: A create warehouse request body
      required:
        - name
        - origin_address
      title: create_warehouse_request_body
      type: object
    create_warehouse_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/warehouse"
      description: A create warehouse response body
      required:
        - warehouse_id
        - name
        - created_at
        - origin_address
        - return_address
      title: create_warehouse_response_body
      type: object
    create_webhook_request_body:
      additionalProperties: false
      description: A create webhook request body
      properties:
        event:
          allOf:
            - $ref: "#/components/schemas/webhook_event"
        url:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The url that the webhook sends the request to
          example: https://[YOUR ENDPOINT ID].x.requestbin.com
      required:
        - event
        - url
      title: create_webhook_request_body
      type: object
    create_webhook_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/webhook"
      description: A webhook response body
      required:
        - webhook_id
        - url
        - event
      title: create_webhook_response_body
      type: object
    currency:
      description: |
        The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html
      title: currency
      type: string
    customs_item:
      additionalProperties: false
      description: The customs declaration for a single item in the shipment.
      properties:
        country_of_origin:
          allOf:
            - $ref: "#/components/schemas/country_code"
          default: null
          description: |
            The two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1) where this item originated
          nullable: true
        customs_item_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the customs item
          readOnly: true
        description:
          default: null
          description: A description of the item
          maxLength: 100
          nullable: true
          type: string
        harmonized_tariff_code:
          default: null
          description: The [Harmonized Tariff Code](https://en.wikipedia.org/wiki/Harmonized_System) of this item.
          example: 3926.1
          nullable: true
          type: string
        quantity:
          default: 0
          description: The quantity of this item in the shipment.
          format: int32
          minimum: 0
          type: integer
        sku:
          description: The SKU (Stock Keeping Unit) of the customs item
          nullable: true
          type: string
        sku_description:
          description: Description of the Custom Item's SKU
          nullable: true
          type: string
        unit_of_measure:
          nullable: true
          type: string
        value:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: The declared customs value of each item
        weight:
          allOf:
            - $ref: "#/components/schemas/weight"
          description: The item weight
      required:
        - customs_item_id
      title: customs_item
      type: object
    date:
      description: |
        An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date, but not a specific time.  The value _may_ contain a time component, but it will be set to `00:00:00` UTC by ShipEngine.
      example: 2018-09-23T00:00:00.000Z
      format: date-time
      pattern: ^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[-+]\d{2}:\d{2}))?$
      title: date
      type: string
    date_time:
      description: |
        An [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) string that represents a date and time.
      example: 2018-09-23T15:00:00.000Z
      format: date-time
      pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[-+]\d{2}:\d{2})$
      title: date_time
      type: string
    default_label_layout:
      description: The possible default label layout values
      enum:
        - 4x6
        - Letter
      title: default_label_layout
      type: string
    delete_pickup_by_id_response_body:
      allOf:
        - $ref: "#/components/schemas/error_response_body"
        - $ref: "#/components/schemas/delete_scheduled_pickup_response_body"
      title: delete_pickup_by_id_response_body
    delete_scheduled_pickup_response_body:
      additionalProperties: false
      description: A delete scheduled pickup response body
      properties:
        pickup_id:
          allOf:
            - $ref: "#/components/schemas/pickup_resource_id"
      required:
        - pickup_id
      title: delete_scheduled_pickup_response_body
      type: object
    delivery_confirmation:
      description: The possible delivery confirmation values
      enum:
        - none
        - delivery
        - signature
        - adult_signature
        - direct_signature
        - delivery_mailed
        - verbal_confirmation
      title: delivery_confirmation
      type: string
    deprecated_manifest:
      additionalProperties: false
      description: Deprecated manifest resource
      properties:
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          deprecated: true
          description: A string that uniquely identifies the carrier
        created_at:
          deprecated: true
          description: The date-time that the manifest was created
          example: 2019-07-12T13:37:39.050Z
          format: date-time
          minLength: 1
          type: string
        form_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          deprecated: true
          description: A string that uniquely identifies the form
        label_ids:
          deprecated: true
          description: An array of the label ids used in this manifest.
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
          readOnly: true
          type: array
        manifest_download:
          allOf:
            - $ref: "#/components/schemas/manifest_download"
          deprecated: true
        manifest_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          deprecated: true
          description: A string that uniquely identifies the manifest
        ship_date:
          deprecated: true
          description: The date-time that the manifests shipments will be picked up
          example: 2019-07-12T13:37:39.050Z
          format: date-time
          minLength: 1
          type: string
        shipments:
          deprecated: true
          description: The number of shipments that are included in this manifest
          example: 100
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        submission_id:
          deprecated: true
          description: A string that uniquely identifies the submission
          example: "9475711899564878915476"
          minLength: 1
          type: string
        warehouse_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          deprecated: true
          description: A string that uniquely identifies the warehouse
      title: deprecated_manifest
      type: object
    dhl_express_account_settings:
      additionalProperties: false
      description: A DHL Express account settings
      properties:
        is_primary_account:
          description: Indicates if this is primary account
          type: boolean
        nickname:
          description: Account nickname
          minLength: 1
          type: string
        should_hide_account_number_on_archive_doc:
          description: Indicates if the account number should be hidden on the archive documentation
          type: boolean
      title: dhl_express_account_settings
      type: object
    dhl_express_settings_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/dhl_express_account_settings"
      description: A DHL Express response body
      title: dhl_express_settings_response_body
      type: object
    dimension_unit:
      description: The dimension units that are supported by ShipEngine.
      enum:
        - inch
        - centimeter
      title: dimension_unit
      type: string
    dimensions:
      additionalProperties: false
      description: The dimensions of a package
      properties:
        height:
          default: 0
          description: The length of the package, in the specified unit
          format: double
          minimum: 0
          type: number
        length:
          default: 0
          description: The length of the package, in the specified unit
          format: double
          minimum: 0
          type: number
        unit:
          allOf:
            - $ref: "#/components/schemas/dimension_unit"
          default: inch
        width:
          default: 0
          description: The width of the package, in the specified unit
          format: double
          minimum: 0
          type: number
      required:
        - unit
        - length
        - width
        - height
      title: dimensions
      type: object
    disconnect_insurer_response_body:
      title: disconnect_insurer_response_body
      type: object
    display_scheme:
      description: The display format that the label should be shown in.
      enum:
        - label
        - qr_code
        - label_and_qr_code
      title: display_scheme
      type: string
    download_file_pdf_response_body:
      format: binary
      title: download_file_pdf_response_body
      type: string
    download_file_png_response_body:
      format: binary
      title: download_file_png_response_body
      type: string
    download_file_zpl_response_body:
      format: binary
      title: download_file_zpl_response_body
      type: string
    email:
      description: An email address.
      example: john.doe@example.com
      format: email
      minLength: 1
      title: email
      type: string
    empty_response_body:
      maxLength: 0
      minLength: 0
      title: empty_response_body
      type: string
    error:
      additionalProperties: false
      description: |
        The error structure that gets returned with almost all failed API calls
      properties:
        error_code:
          allOf:
            - $ref: "#/components/schemas/error_code"
        error_source:
          allOf:
            - $ref: "#/components/schemas/error_source"
        error_type:
          allOf:
            - $ref: "#/components/schemas/error_type"
        message:
          description: An error message associated with the failed API call
          example: Body of request cannot be null.
          minLength: 1
          readOnly: true
          type: string
      required:
        - error_source
        - error_type
        - error_code
        - message
      title: error
      type: object
    error_code:
      description: The error code specified for the failed API Call
      enum:
        - auto_fund_not_supported
        - batch_cannot_be_modified
        - carrier_conflict
        - carrier_disconnected
        - carrier_not_connected
        - carrier_not_supported
        - confirmation_not_supported
        - default_warehouse_cannot_be_deleted
        - field_conflict
        - field_value_required
        - forbidden
        - identifier_conflict
        - identifiers_must_match
        - insufficient_funds
        - invalid_address
        - invalid_billing_plan
        - invalid_field_value
        - invalid_identifier
        - invalid_status
        - invalid_string_length
        - label_images_not_supported
        - meter_failure
        - order_source_not_active
        - rate_limit_exceeded
        - refresh_not_supported
        - request_body_required
        - return_label_not_supported
        - settings_not_supported
        - subscription_inactive
        - terms_not_accepted
        - tracking_not_supported
        - trial_expired
        - unauthorized
        - unknown
        - unspecified
        - verification_failure
        - warehouse_conflict
        - webhook_event_type_conflict
      title: error_code
      type: string
    error_response_body:
      additionalProperties: false
      description: An error response body
      properties:
        errors:
          description: The errors associated with the failed API call
          items:
            allOf:
              - $ref: "#/components/schemas/error"
          readOnly: true
          type: array
        request_id:
          allOf:
            - $ref: "#/components/schemas/uuid"
          description: |
            A UUID that uniquely identifies the request id.
            This can be given to the support team to help debug non-trivial issues that may occur
      required:
        - request_id
        - errors
      title: error_response_body
      type: object
    error_source:
      description: |
        The source of the error, as indicated by the name this informs us if the API call failed because of the
        carrier, the order source, or the ShipEngine API itself.
      enum:
        - carrier
        - order_source
        - shipengine
      title: error_source
      type: string
    error_type:
      description: |
        The type of error
      enum:
        - account_status
        - business_rules
        - validation
        - security
        - system
        - integrations
      title: error_type
      type: string
    error_with_label_id_response_body:
      additionalProperties: false
      description: An error response body
      properties:
        errors:
          description: The errors associated with the failed API call
          items:
            allOf:
              - $ref: "#/components/schemas/error"
          readOnly: true
          type: array
        request_id:
          allOf:
            - $ref: "#/components/schemas/uuid"
          description: |
            A UUID that uniquely identifies the request id.
            This can be given to the support team to help debug non-trivial issues that may occur
      required:
        - request_id
        - errors
      title: error_with_label_id_response_body
      type: object
    estimate_rates_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/rate_estimate_options"
      description: A rate estimate request body
      oneOf:
        - $ref: "#/components/schemas/rate_estimate_by_carrier_id"
        - $ref: "#/components/schemas/rate_estimate_by_carrier_ids"
      required:
        - from_country_code
        - from_postal_code
        - from_city_locality
        - from_state_province
        - to_country_code
        - to_postal_code
        - to_city_locality
        - to_state_province
        - weight
        - ship_date
      title: estimate_rates_request_body
      type: object
    estimate_rates_response_body:
      description: A rate estimate response body
      items:
        allOf:
          - $ref: "#/components/schemas/rate_estimate"
      title: estimate_rates_response_body
      type: array
    fedex_account_settings:
      additionalProperties: false
      description: A Fedex account settings request body
      properties:
        is_primary_account:
          type: boolean
        letterhead_image:
          type: string
        nickname:
          description: Account nickname
          minLength: 1
          type: string
        pickup_type:
          allOf:
            - $ref: "#/components/schemas/fedex_pickup_type"
        signature_image:
          type: string
        smart_post_endorsement:
          allOf:
            - $ref: "#/components/schemas/ancillary_service_endorsement"
        smart_post_hub:
          allOf:
            - $ref: "#/components/schemas/smart_post_hub"
      title: fedex_account_settings
      type: object
    fedex_account_settings_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/fedex_account_settings"
      description: A Fedex account settings request body
      title: fedex_account_settings_request_body
      type: object
    fedex_pickup_type:
      description: |
        Determines how FedEx will pickup your packages

        |Pickup Type               |Description
        |--------------------------|-----------------------------------------
        |`none`                    | Not specified
        |`regular_pickup`          | You already have a daily pickup scheduled with FedEx
        |`request_courier`         | You will call FedEx to request a courier
        |`drop_box`                | You will drop-off packages in a FedEx drop box
        |`business_service_center` | You will drop-off packages at an authorized FedEx business service center
        |`station`                 | You will drop-off the package at a FedEx Station
      enum:
        - none
        - regular_pickup
        - request_courier
        - drop_box
        - business_service_center
        - station
      title: fedex_pickup_type
      type: string
    fedex_settings_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/fedex_account_settings_request_body"
      description: A Fedex settings response body
      title: fedex_settings_response_body
      type: object
    get_account_settings_images_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/account_settings_images"
      description: A get account images by id response body
      title: get_account_settings_images_response_body
      type: object
    get_account_settings_response_body:
      allOf:
        - $ref: "#/components/schemas/list_account_settings_body"
      title: get_account_settings_response_body
    get_batch_by_external_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/batch"
      description: A get batch by external id response body
      title: get_batch_by_external_id_response_body
      type: object
    get_batch_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/batch"
      description: A get batch by id response body
      title: get_batch_by_id_response_body
      type: object
    get_carrier_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/carrier"
      description: A get carrier by id response body
      title: get_carrier_by_id_response_body
      type: object
    get_carrier_options_response_body:
      additionalProperties: false
      description: A carrier list options response body
      properties:
        options:
          description: AN array of carrier options
          items:
            allOf:
              - $ref: "#/components/schemas/carrier_advanced_option"
            description: Carrer options
            readOnly: true
          readOnly: true
          type: array
      title: get_carrier_options_response_body
      type: object
    get_carrier_settings_response_body:
      oneOf:
        - $ref: "#/components/schemas/dhl_express_settings_response_body"
        - $ref: "#/components/schemas/fedex_settings_response_body"
        - $ref: "#/components/schemas/ups_settings_response_body"
      title: get_carrier_settings_response_body
    get_carriers_response_body:
      allOf:
        - $ref: "#/components/schemas/list_carriers_response_body"
        - $ref: "#/components/schemas/error_response_body"
      title: get_carriers_response_body
    get_insurance_balance_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/monetary_value"
      description: A get insurance balance response body
      title: get_insurance_balance_response_body
      type: object
    get_label_by_external_shipment_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/label"
      description: A get label by external shipment id response body
      title: get_label_by_external_shipment_id_response_body
      type: object
    get_label_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/label"
      description: A get label by id response body
      title: get_label_by_id_response_body
      type: object
    get_manifest_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/manifest"
      description: A get manifest by id response body
      required:
        - manifest_id
        - form_id
        - created_at
        - ship_date
        - shipments
        - warehouse_id
        - submission_id
        - carrier_id
        - manifest_download
        - label_ids
      title: get_manifest_by_id_response_body
      type: object
    get_package_type_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/package_type"
      description: A get package type by id response body
      title: get_package_type_by_id_response_body
      type: object
    get_pickup_by_id_response_body:
      allOf:
        - $ref: "#/components/schemas/pickup_response_body"
        - $ref: "#/components/schemas/error_response_body"
      title: get_pickup_by_id_response_body
    get_pickups_response_body:
      allOf:
        - $ref: "#/components/schemas/list_pickup_response_body"
        - $ref: "#/components/schemas/error_response_body"
      title: get_pickups_response_body
    get_rate_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/rate"
      description: A rate response body
      required:
        - rates
        - invalid_rates
        - rate_request_id
        - shipment_id
        - created_at
        - status
        - errors
      title: get_rate_by_id_response_body
      type: object
    get_service_point_by_id_response_body:
      description: A get service point by ID response body
      properties:
        service_point:
          properties:
            address_line1:
              example: PLACE DU CANADA
              type: string
            carrier_code:
              example: chronopost
              type: string
            city_locality:
              example: TRUN
              type: string
            company_name:
              example: My fancy company name
              type: string
            country_code:
              example: FR
              type: string
            features:
              items:
                enum:
                  - drop_off_point
                  - pickup_point
                  - print_services
                  - after_hours_locker
                  - after_hours_dropbox
                type: string
              type: array
            hours_of_operation:
              properties:
                friday:
                  items:
                    properties:
                      close:
                        example: 12:00
                        type: string
                      open:
                        example: 09:15
                        type: string
                    type: object
                  type: array
                monday:
                  items:
                    properties:
                      close:
                        example: 12:00
                        type: string
                      open:
                        example: 09:15
                        type: string
                    type: object
                  type: array
                saturday:
                  items:
                    properties:
                      close:
                        example: 12:00
                        type: string
                      open:
                        example: 09:15
                        type: string
                    type: object
                  type: array
                sunday:
                  items:
                    properties:
                      close:
                        example: 12:00
                        type: string
                      open:
                        example: 09:15
                        type: string
                    type: object
                  type: array
                thursday:
                  items:
                    properties:
                      close:
                        example: 12:00
                        type: string
                      open:
                        example: 09:15
                        type: string
                    type: object
                  type: array
                tuesday:
                  items:
                    properties:
                      close:
                        example: 12:00
                        type: string
                      open:
                        example: 09:15
                        type: string
                    type: object
                  type: array
                wednesday:
                  items:
                    properties:
                      close:
                        example: 12:00
                        type: string
                      open:
                        example: 09:15
                        type: string
                    type: object
                  type: array
              type: object
            lat:
              example: 48.842608
              format: double
              type: number
            long:
              example: 0.032875
              format: double
              type: number
            phone_number:
              example: 555-555-5555
              type: string
            postal_code:
              example: "61160"
              type: string
            service_codes:
              items:
                type: string
              type: array
            service_point_id:
              example: "614940"
              type: string
            state_province:
              example: TRUN
              type: string
            type:
              default: pudo
              enum:
                - pudo
                - locker
              type: string
          type: object
      title: get_service_point_by_id_response_body
      type: object
    get_service_points_request:
      oneOf:
        - $ref: "#/components/schemas/get_service_points_request_body"
      title: get_service_points_request
    get_service_points_request_body:
      description: A get service points request body. Caller must provide exactly one of address_query, address, or lat / long pair.
      properties:
        address:
          description: Structured address to search by.
          properties:
            address_line1:
              type: string
            address_line2:
              type: string
            address_line3:
              type: string
            city_locality:
              type: string
            country_code:
              type: string
            postal_code:
              type: string
            state_province:
              type: string
          required:
            - country_code
          type: object
        address_query:
          description: Unstructured text to search for service points by.
          example: 177A Bleecker Street New York
          type: string
        lat:
          description: The latitude of the point. Represented as signed degrees. Required if long is provided. http://www.geomidpoint.com/latlon.html
          example: 48.874518928233094
          format: double
          type: number
        long:
          description: The longitude of the point. Represented as signed degrees. Required if lat is provided. http://www.geomidpoint.com/latlon.html
          example: 2.3591775711639404
          format: double
          type: number
        max_results:
          description: The maximum number of service points to return
          example: 25
          format: int32
          type: integer
        providers:
          description: An array of shipping service providers and service codes
          items:
            properties:
              carrier_id:
                description: Uniquely identifies a carrier connection
                example: se-123456
                type: string
              service_code:
                items:
                  description: Uniquely identifies a shipping service
                  example: chronoclassic
                  type: string
                type: array
            type: object
          type: array
        radius:
          description: Search radius in kilometers
          example: 500
          format: int32
          type: integer
      required:
        - providers
      title: get_service_points_request_body
      type: object
    get_shipment_by_external_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/shipment"
      description: A get shipment by external id response body
      title: get_shipment_by_external_id_response_body
      type: object
    get_shipment_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/shipment"
      description: A get shipment by id response body
      title: get_shipment_by_id_response_body
      type: object
    get_tracking_log_from_label_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/tracking_information"
      description: A get tracking log from label response body
      required:
        - tracking_number
        - status_code
        - carrier_status_code
        - estimated_delivery_date
        - events
      title: get_tracking_log_from_label_response_body
      type: object
    get_tracking_log_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/tracking_information"
      description: A get tracking log response body
      required:
        - tracking_number
        - tracking_url
        - status_code
        - carrier_code
        - carrier_id
        - carrier_detail_code
        - carrier_status_code
        - estimated_delivery_date
        - events
      title: get_tracking_log_response_body
      type: object
    get_warehouse_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/warehouse"
      description: A get warehouse by id response body
      required:
        - warehouse_id
        - name
        - created_at
        - origin_address
        - return_address
      title: get_warehouse_by_id_response_body
      type: object
    get_webhook_by_id_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/webhook"
      description: A get webhook id response body
      required:
        - webhook_id
        - url
        - event
      title: get_webhook_by_id_response_body
      type: object
    identifier_type:
      description: |
        Determines how FedEx will pickup your packages

        |Pickup Type    | Description
        |---------------|-----------------------------------------
        |`vat`          | The tax identifier is a Value Added Tax.
        |`eori`         | The tax identifier is an Economic Operators Registration and Identification Number (EORI).
        |`ssn`          | The tax identifier is a Social Security Number.
        |`ein`          | The tax identifier is an Employer Identification Number (EIN).
        |`tin`          | The tax identifier is a Tax Identification Number (TIN).
        |`ioss`         | The tax identifier is an Import One-Stop Shop (IOSS).
        |`pan`          | The tax identifier is a Permanent Account Number (PAN).
        |`voec`         | The tax identifier is a Norwegian VAT On E-Commerce(VOEC).
      enum:
        - vat
        - eori
        - ssn
        - ein
        - tin
        - ioss
        - pan
        - voec
      title: identifier_type
      type: string
    image_id:
      description: Used to identify an image resource.
      example: img_DtBXupDBxREpHnwEXhTfgK
      minLength: 4
      title: image_id
      type: string
    insurance_provider:
      description: The possible insurance provider values
      enum:
        - none
        - shipsurance
        - carrier
        - third_party
      title: insurance_provider
      type: string
    international_shipment_options:
      additionalProperties: false
      description: Options for international shipments, such as customs declarations.
      properties:
        contents:
          allOf:
            - $ref: "#/components/schemas/package_contents"
          default: merchandise
          description: The type of contents in this shipment.  This may impact import duties or customs treatment.
        customs_items:
          default: []
          description: Customs declarations for each item in the shipment.
          items:
            $ref: "#/components/schemas/customs_item"
          minItems: 0
          type: array
        non_delivery:
          allOf:
            - $ref: "#/components/schemas/non_delivery"
          default: return_to_sender
          description: Indicates what to do if a package is unable to be delivered.
      required:
        - contents
        - non_delivery
      title: international_shipment_options
      type: object
    label:
      additionalProperties: false
      description: |
        A label represents the physical sticker that you affix to a package to ship it.  ShipEngine makes it easy for you to [create labels](https://www.shipengine.com/docs/labels/create-a-label/) and then download them in PDF, PNG, or ZPL format so you can print them.
      properties:
        alternative_identifiers:
          description: |
            Additional information some carriers may provide by which to identify a given label in their system. 
          items:
            $ref: "#/components/schemas/alternative_identifier"
          nullable: true
          readOnly: true
          type: array
        batch_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: |
            If this label was created as part of a [batch](https://www.shipengine.com/docs/labels/bulk/), then this is the unique ID of that batch.
          readOnly: true
        carrier_code:
          allOf:
            - $ref: "#/components/schemas/carrier_code"
          description: |
            The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc.
          readOnly: true
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: |
            The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label
          readOnly: true
        charge_event:
          allOf:
            - $ref: "#/components/schemas/label_charge_event"
          description: |
            The label charge event.
        created_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time that the label was created in ShipEngine.
          readOnly: true
        display_scheme:
          allOf:
            - $ref: "#/components/schemas/display_scheme"
          default: label
          description: The display format that the label should be shown in.
        form_download:
          allOf:
            - $ref: "#/components/schemas/link"
          description: |
            The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any.  Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
          nullable: true
          readOnly: true
        insurance_claim:
          allOf:
            - $ref: "#/components/schemas/link"
          description: |
            The link to submit an insurance claim for the shipment.  This field is null if the shipment is not insured or if the insurance provider does not support online claim submission.
          nullable: true
          readOnly: true
        insurance_cost:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: |
            The insurance cost for this package.  Add this to the `shipment_cost` field to get the total cost.
          readOnly: true
        is_international:
          description: |
            Indicates whether this is an international shipment.  That is, the originating country and destination country are different.
          readOnly: true
          type: boolean
        is_return_label:
          description: |
            Indicates whether this is a return label.  You may also want to set the `rma_number` so you know what is being returned.
          type: boolean
        label_download:
          allOf:
            - $ref: "#/components/schemas/label_download"
          readOnly: true
        label_download_type:
          allOf:
            - $ref: "#/components/schemas/label_download_type"
          default: url
          writeOnly: true
        label_format:
          allOf:
            - $ref: "#/components/schemas/label_format"
          default: pdf
          description: |
            The file format that you want the label to be in.  We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
        label_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: |
            A string that uniquely identifies the label. This ID is generated by ShipEngine when the label is created.
          readOnly: true
        label_image_id:
          allOf:
            - $ref: "#/components/schemas/image_id"
          description: The label image resource that was used to create a custom label image.
          nullable: true
        label_layout:
          allOf:
            - $ref: "#/components/schemas/label_layout"
          default: 4x6
          description: |
            The layout (size) that you want the label to be in.  The `label_format` determines which sizes are allowed.  `4x6` is supported for all label formats, whereas `letter` (8.5" x 11") is only supported for `pdf` format.
        outbound_label_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: |
            The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is
            required by some carriers.
          writeOnly: true
        package_code:
          allOf:
            - $ref: "#/components/schemas/package_code"
          description: |
            The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc.  The code `package` indicates a custom or unknown package type.
          readOnly: true
        packages:
          description: |
            The label's package(s).

            > **Note:** Some carriers only allow one package per label.  If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned.
          items:
            $ref: "#/components/schemas/package"
          readOnly: true
          type: array
        rma_number:
          description: |
            An optional Return Merchandise Authorization number.  This field is useful for return labels.  You can set it to any string value.
          nullable: true
          type: string
        service_code:
          allOf:
            - $ref: "#/components/schemas/service_code"
          description: |
            The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc.
          readOnly: true
        ship_date:
          allOf:
            - $ref: "#/components/schemas/date"
          description: |
            The date that the package was (or will be) shippped.  ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.
          readOnly: true
        shipment:
          allOf:
            - $ref: "#/components/schemas/shipment"
          description: The shipment information used to generate the label
          writeOnly: true
        shipment_cost:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: |
            The cost of shipping, delivery confirmation, and other carrier charges.  This amount **does not** include insurance costs.
          readOnly: true
        shipment_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: |
            The shipment that this label is for.  ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/)
          readOnly: true
        status:
          allOf:
            - $ref: "#/components/schemas/label_status"
          readOnly: true
        test_label:
          default: false
          deprecated: true
          description: Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
          type: boolean
          writeOnly: true
        trackable:
          description: |
            Indicates whether the shipment is trackable, in which case the `tracking_status` field will reflect the current status and each package will have a `tracking_number`.
          readOnly: true
          type: boolean
        tracking_number:
          description: The tracking number for the package. Tracking number formats vary across carriers.
          example: "782758401696"
          minLength: 1
          readOnly: true
          type: string
        tracking_status:
          allOf:
            - $ref: "#/components/schemas/tracking_status"
          description: The current status of the package, such as `in_transit` or `delivered`
          readOnly: true
        validate_address:
          allOf:
            - $ref: "#/components/schemas/validate_address"
          default: validate_and_clean
          writeOnly: true
        voided:
          description: |
            Indicates whether the label has been [voided](https://www.shipengine.com/docs/labels/voiding/)
          readOnly: true
          type: boolean
        voided_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: |
            The date and time that the label was [voided](https://www.shipengine.com/docs/labels/voiding/), or `null` if the label has not been voided
          nullable: true
          readOnly: true
      title: label
      type: object
    label_charge_event:
      description: Determines when the user's account will be charged for the label.
      enum:
        - carrier_default
        - on_creation
        - on_carrier_acceptance
      title: label_charge_event
      type: string
    label_download:
      additionalProperties: false
      description: |
        Reference to the various downloadable file formats for the generated label
      properties:
        href:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The URL of the linked resource, if any
        pdf:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The URL for the pdf generated label
        png:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The URL for the png generated label
        zpl:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The URL for the zpl generated label
      title: label_download
      type: object
    label_download_type:
      description: |
        There are two different ways to [download a label](https://www.shipengine.com/docs/labels/downloading/):

        |Label Download Type | Description
        |--------------------|------------------------------
        |`url`               |You will receive a URL, which you can use to download the label in a separate request. The URL will remain valid for 90 days.<br><br>This is the default if `label_download_type` is unspecified.
        |`inline`            |You will receive the Base64-encoded label as part of the response. No need for a second request to download the label.
      enum:
        - url
        - inline
      title: label_download_type
      type: string
    label_format:
      description: |
        The possible file formats in which shipping labels can be downloaded.  We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.

        |Label Format  | Supported Carriers
        |--------------|-----------------------------------
        |`pdf`         | All carriers
        |`png`         | `fedex` <br> `stamps_com` <br> `ups` <br> `usps`
        |`zpl`         | `access_worldwide` <br> `apc` <br> `asendia` <br> `dhl_global_mail` <br> `dhl_express` <br> `dhl_express_australia` <br> `dhl_express_canada` <br> `dhl_express_worldwide` <br> `dhl_express_uk` <br> `dpd` <br> `endicia` <br> `fedex` <br> `fedex_uk` <br> `firstmile` <br> `imex` <br> `newgistics` <br> `ontrac` <br> `rr_donnelley` <br> `stamps_com` <br> `ups` <br> `usps`
      enum:
        - pdf
        - png
        - zpl
      title: label_format
      type: string
    label_layout:
      description: |
        The available layouts (sizes) in which shipping labels can be downloaded.  The label format determines which sizes are supported.  `4x6` is supported for all label formats, whereas `letter` (8.5" x 11") is only supported for `pdf` format.
      enum:
        - 4x6
        - letter
      title: label_layout
      type: string
    label_messages:
      additionalProperties: false
      description: |
        Custom messages to print on the shipping label for the package.  These are typically used to print invoice numbers, product numbers, or other internal reference numbers.  Not all carriers support label messages. The number of lines and the maximum length of each line also varies by carrier.

        |Carrier            |Max lines |Max line length
        |-------------------|----------|--------------------
        |USPS (Stamps.com)  |3         |60
        |FedEx              |3         |35 for the first line. 30 for additional lines.
        |UPS                |2         |35
        |OnTrac             |2         |25
      properties:
        reference1:
          default: null
          description: |
            The first line of the custom label message.  Some carriers may prefix this line with something like "REF", "Reference", "Trx Ref No.", etc.
          nullable: true
          type: string
        reference2:
          default: null
          description: |
            The second line of the custom label message.  Some carriers may prefix this line with something like "INV", "Reference 2", "Trx Ref No.", etc.
          nullable: true
          type: string
        reference3:
          default: null
          description: |
            The third line of the custom label message.  Some carriers may prefix this line with something like "PO", "Reference 3", etc.
          nullable: true
          type: string
      required:
        - reference1
        - reference2
        - reference3
      title: label_messages
      type: object
    label_status:
      description: |
        The possible statuses that a [shipping label](https://www.shipengine.com/docs/labels/create-a-label/) can be in.

        |Status       |Description
        |:------------|:-----------------------------------------------------
        |`processing` |When labels are created in a [batch](https://www.shipengine.com/docs/labels/bulk/), it may take a few minutes for all of the labels in the batch to be created.  During this period, they will be in `processing` status.
        |`completed`  |The label was successfully created
        |`error`      |The label could not be created due to an error, such as an invalid delivery address
        |`voided`     |The label has been [voided](https://www.shipengine.com/docs/labels/voiding/)
      enum:
        - processing
        - completed
        - error
        - voided
      title: label_status
      type: string
    link:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/optional_link"
      description: A link to a related resource
      required:
        - href
      title: link
      type: object
    list_account_images_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/paged_list_response_body"
      description: A list account images response body
      properties:
        images:
          description: Image List
          items:
            allOf:
              - additionalProperties: false
                description: A ShipEngine account images body
                properties:
                  created_at:
                    allOf:
                      - $ref: "#/components/schemas/date_time"
                    description: The date and time that the image was created in ShipEngine.
                    readOnly: true
                  image_content_type:
                    allOf:
                      - description: The image type
                        enum:
                          - image/png
                          - image/jpeg
                        type: string
                    description: |
                      The file type of the image. 
                  image_data:
                    description: |
                      A base64 encoded string representation of the image.
                    example: iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAAXNSR0IArs4c6QAAAiVJREFUSEu91j3IeVEcB/CvSTIoBrFSikEZMdjsjExeUspgUEp5SUpeshrIgEFJJmWwMZHJQGHDhJSXTPfpnH/8ebzd56HnN93u7ZzP/f1+55x7Ob1ejxEKheByufh0HI9HrFYrcKbTKUMu5HI5BALBx5zNZoPxeAySAGc2mzF8Pp/e+BR0Ash8u93uHyKVSnH54J2Mvs8zn8//I6RO70L3xt8g70CPXvAu8hvoWQUeIj+BXpX4KcIGegWQOV4izyA2AGvkHsQW+BFyCUkkEiwWC9Ybl1W5Ls8ZMoAABCIbmE3cINFoFMFgEEajEeVyGSKRCJ1OB3q9ns5nMpmQTCaxXq9/l8loNEKj0YDX66UACYvFQq9brRYcDgdUKhU9RD/SEwLm83lEIhGUSiX0+33E4/GrU5otRMs1mUyYbDYLu90OhUJBMzhlZbPZ4Pf7odFo4HQ6b1rABqJIvV5nttstLc0pSIn2+z0tTy6XQ6FQoI/a7TZ0Ot0V9gqiiMFgYKrVKm0yieVyCZ/PB6vVSpF0Ok2zJHEqIY/HYw1RxOfzMYlE4jwoEAhAJpPBbDZf9eBwOCCVSsHtdp9f6FJ6egorlUqmVqvRfjSbTXS7XXg8nptP8Svk0RF01ROtVguSUTgchlgsPpeOZBaLxTAcDlEsFpHJZPC9XM8yoshgMGBCoRBdQWTCU7hcLjohWb5kM6rValQqlfMKfLbbb77xf/K38hf/XV9ilOpnLqvnogAAAABJRU5ErkJggg==
                    type: string
                  is_default:
                    description: |
                      Indicates whether this image is set as default.
                    example: false
                    type: boolean
                  label_image_id:
                    allOf:
                      - $ref: "#/components/schemas/image_id"
                    description: |
                      A string that uniquely identifies the image. This ID is generated by ShipEngine when the image is uploaded.
                    readOnly: true
                  modified_at:
                    allOf:
                      - $ref: "#/components/schemas/date_time"
                    description: The date and time that the image was modified in ShipEngine.
                    readOnly: true
                  name:
                    description: |
                      A human readable name for the image.
                    example: My logo
                    maxLength: 50
                    minLength: 1
                    type: string
                title: account_settings_images
                type: object
            description: Image
          minItems: 0
          readOnly: true
          type: array
      required:
        - images
      title: list_account_images_response_body
      type: object
    list_account_settings_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/account_settings"
      description: An account settings list response body
      title: list_account_settings_body
      type: object
    list_account_settings_images_response_body:
      allOf:
        - $ref: "#/components/schemas/list_account_images_response_body"
      title: list_account_settings_images_response_body
    list_batch_errors_response_body:
      additionalProperties: false
      description: A batch errors response body
      properties:
        errors:
          default: []
          description: The errors currently associated with the batch
          items:
            $ref: "#/components/schemas/batch_response_error"
          readOnly: true
          type: array
        links:
          allOf:
            - $ref: "#/components/schemas/pagination_link"
          readOnly: true
      required:
        - errors
        - links
      title: list_batch_errors_response_body
      type: object
    list_batches_response_body:
      additionalProperties: false
      description: A list batch response body
      properties:
        batches:
          description: Batch List
          items:
            allOf:
              - $ref: "#/components/schemas/batch"
            description: Batch
          minItems: 0
          readOnly: true
          type: array
        links:
          allOf:
            - $ref: "#/components/schemas/pagination_link"
          readOnly: true
        page:
          description: The page that is currently being read
          example: 1
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        pages:
          description: The total number of batch pages the API call returned
          example: 10
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        total:
          description: The total number of batches the API call returned
          example: 10
          format: int64
          minimum: 0
          readOnly: true
          type: integer
      required:
        - batches
        - total
        - page
        - pages
        - links
      title: list_batches_response_body
      type: object
    list_carrier_package_types_response_body:
      additionalProperties: false
      description: A list carrier package types response body
      properties:
        packages:
          description: An array of custom package types
          items:
            allOf:
              - $ref: "#/components/schemas/package_type"
            description: Custom Package Type items
            readOnly: true
          readOnly: true
          type: array
      title: list_carrier_package_types_response_body
      type: object
    list_carrier_services_response_body:
      additionalProperties: false
      description: A carrier list services response body
      properties:
        services:
          description: An array of services associated with the carrier
          items:
            allOf:
              - $ref: "#/components/schemas/service"
            description: A carrier service
            readOnly: true
          readOnly: true
          type: array
      title: list_carrier_services_response_body
      type: object
    list_carriers_response_body:
      additionalProperties: false
      description: A carrier list response body
      properties:
        carriers:
          description: The carrier response body
          items:
            allOf:
              - $ref: "#/components/schemas/carrier"
            readOnly: true
          readOnly: true
          type: array
      required:
        - carriers
      title: list_carriers_response_body
      type: object
    list_labels_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/paged_list_response_body"
      description: A list label response body
      properties:
        labels:
          description: |
            The labels that matched the query criteria.  If no matching labels were found, then this array is empty; otherwise, it contains one page of results.  The last page of results may have fewer labels than the `page_size`.
          items:
            additionalProperties: false
            description: |
              A label represents the physical sticker that you affix to a package to ship it.  ShipEngine makes it easy for you to [create labels](https://www.shipengine.com/docs/labels/create-a-label/) and then download them in PDF, PNG, or ZPL format so you can print them.
            properties:
              alternative_identifiers:
                description: |
                  Additional information some carriers may provide by which to identify a given label in their system. 
                items:
                  $ref: "#/components/schemas/alternative_identifier"
                nullable: true
                readOnly: true
                type: array
              batch_id:
                allOf:
                  - $ref: "#/components/schemas/se_id"
                description: |
                  If this label was created as part of a [batch](https://www.shipengine.com/docs/labels/bulk/), then this is the unique ID of that batch.
                readOnly: true
              carrier_code:
                allOf:
                  - $ref: "#/components/schemas/carrier_code"
                description: |
                  The [shipping carrier](https://www.shipengine.com/docs/carriers/setup/) who will ship the package, such as `fedex`, `dhl_express`, `stamps_com`, etc.
                readOnly: true
              carrier_id:
                allOf:
                  - $ref: "#/components/schemas/se_id"
                description: |
                  The unique ID of the [carrier account](https://www.shipengine.com/docs/carriers/setup/) that was used to create this label
                readOnly: true
              charge_event:
                allOf:
                  - $ref: "#/components/schemas/label_charge_event"
                description: |
                  The label charge event.
              created_at:
                allOf:
                  - $ref: "#/components/schemas/date_time"
                description: The date and time that the label was created in ShipEngine.
                readOnly: true
              display_scheme:
                allOf:
                  - $ref: "#/components/schemas/display_scheme"
                default: label
                description: The display format that the label should be shown in.
              form_download:
                allOf:
                  - $ref: "#/components/schemas/link"
                description: |
                  The link to download the customs form (a.k.a. commercial invoice) for this shipment, if any.  Forms are in PDF format. This field is null if the shipment does not require a customs form, or if the carrier does not support it.
                nullable: true
                readOnly: true
              insurance_claim:
                allOf:
                  - $ref: "#/components/schemas/link"
                description: |
                  The link to submit an insurance claim for the shipment.  This field is null if the shipment is not insured or if the insurance provider does not support online claim submission.
                nullable: true
                readOnly: true
              insurance_cost:
                allOf:
                  - $ref: "#/components/schemas/monetary_value"
                description: |
                  The insurance cost for this package.  Add this to the `shipment_cost` field to get the total cost.
                readOnly: true
              is_international:
                description: |
                  Indicates whether this is an international shipment.  That is, the originating country and destination country are different.
                readOnly: true
                type: boolean
              is_return_label:
                description: |
                  Indicates whether this is a return label.  You may also want to set the `rma_number` so you know what is being returned.
                type: boolean
              label_download:
                allOf:
                  - $ref: "#/components/schemas/label_download"
                readOnly: true
              label_download_type:
                allOf:
                  - $ref: "#/components/schemas/label_download_type"
                default: url
                writeOnly: true
              label_format:
                allOf:
                  - $ref: "#/components/schemas/label_format"
                default: pdf
                description: |
                  The file format that you want the label to be in.  We recommend `pdf` format because it is supported by all carriers, whereas some carriers do not support the `png` or `zpl` formats.
              label_id:
                allOf:
                  - $ref: "#/components/schemas/se_id"
                description: |
                  A string that uniquely identifies the label. This ID is generated by ShipEngine when the label is created.
                readOnly: true
              label_image_id:
                allOf:
                  - $ref: "#/components/schemas/image_id"
                description: The label image resource that was used to create a custom label image.
                nullable: true
              label_layout:
                allOf:
                  - $ref: "#/components/schemas/label_layout"
                default: 4x6
                description: |
                  The layout (size) that you want the label to be in.  The `label_format` determines which sizes are allowed.  `4x6` is supported for all label formats, whereas `letter` (8.5" x 11") is only supported for `pdf` format.
              outbound_label_id:
                allOf:
                  - $ref: "#/components/schemas/se_id"
                description: |
                  The `label_id` of the original (outgoing) label that the return label is for. This associates the two labels together, which is
                  required by some carriers.
                writeOnly: true
              package_code:
                allOf:
                  - $ref: "#/components/schemas/package_code"
                description: |
                  The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc.  The code `package` indicates a custom or unknown package type.
                readOnly: true
              packages:
                description: |
                  The label's package(s).

                  > **Note:** Some carriers only allow one package per label.  If you attempt to create a multi-package label for a carrier that doesn't allow it, an error will be returned.
                items:
                  $ref: "#/components/schemas/package"
                readOnly: true
                type: array
              rma_number:
                description: |
                  An optional Return Merchandise Authorization number.  This field is useful for return labels.  You can set it to any string value.
                nullable: true
                type: string
              service_code:
                allOf:
                  - $ref: "#/components/schemas/service_code"
                description: |
                  The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc.
                readOnly: true
              ship_date:
                allOf:
                  - $ref: "#/components/schemas/date"
                description: |
                  The date that the package was (or will be) shippped.  ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.
                readOnly: true
              shipment:
                allOf:
                  - $ref: "#/components/schemas/shipment"
                description: The shipment information used to generate the label
                writeOnly: true
              shipment_cost:
                allOf:
                  - $ref: "#/components/schemas/monetary_value"
                description: |
                  The cost of shipping, delivery confirmation, and other carrier charges.  This amount **does not** include insurance costs.
                readOnly: true
              shipment_id:
                allOf:
                  - $ref: "#/components/schemas/se_id"
                description: |
                  The shipment that this label is for.  ShipEngine can create a shipment for you automatically when you [create a label](https://www.shipengine.com/docs/labels/create-a-label/), or you can [create your own shipment](https://www.shipengine.com/docs/shipping/create-a-shipment/) and then [use it to print a label](https://www.shipengine.com/docs/labels/create-from-shipment/)
                readOnly: true
              status:
                allOf:
                  - $ref: "#/components/schemas/label_status"
                readOnly: true
              test_label:
                default: false
                deprecated: true
                description: Indicate if this label is being used only for testing purposes. If true, then no charge will be added to your account.
                type: boolean
                writeOnly: true
              trackable:
                description: |
                  Indicates whether the shipment is trackable, in which case the `tracking_status` field will reflect the current status and each package will have a `tracking_number`.
                readOnly: true
                type: boolean
              tracking_number:
                description: The tracking number for the package. Tracking number formats vary across carriers.
                example: "782758401696"
                minLength: 1
                readOnly: true
                type: string
              tracking_status:
                allOf:
                  - $ref: "#/components/schemas/tracking_status"
                description: The current status of the package, such as `in_transit` or `delivered`
                readOnly: true
              validate_address:
                allOf:
                  - $ref: "#/components/schemas/validate_address"
                default: validate_and_clean
                writeOnly: true
              voided:
                description: |
                  Indicates whether the label has been [voided](https://www.shipengine.com/docs/labels/voiding/)
                readOnly: true
                type: boolean
              voided_at:
                allOf:
                  - $ref: "#/components/schemas/date_time"
                description: |
                  The date and time that the label was [voided](https://www.shipengine.com/docs/labels/voiding/), or `null` if the label has not been voided
                nullable: true
                readOnly: true
            title: label
            type: object
          minItems: 0
          type: array
      required:
        - labels
      title: list_labels_response_body
      type: object
    list_manifests_response_body:
      additionalProperties: false
      description: A list manifests response body
      properties:
        links:
          allOf:
            - $ref: "#/components/schemas/pagination_link"
          description: Helpful links to other pages of results
          readOnly: true
        manifests:
          default: []
          description: The list of available manifests
          items:
            allOf:
              - $ref: "#/components/schemas/manifest"
            description: A single manifest
            readOnly: true
          readOnly: true
          type: array
        page:
          description: Current page of the list manifests results
          example: 3
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        pages:
          description: Total number of pages for list manifests results
          example: 4
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        total:
          description: The total number of manifests returned
          example: 3
          format: int64
          minimum: 0
          readOnly: true
          type: integer
      required:
        - manifests
        - total
        - page
        - pages
        - links
      title: list_manifests_response_body
      type: object
    list_package_types_response_body:
      additionalProperties: false
      description: A list package types response body
      properties:
        packages:
          description: An array of custom package types
          items:
            allOf:
              - $ref: "#/components/schemas/package_type"
            description: Custom Package Types items
            readOnly: true
          readOnly: true
          type: array
      title: list_package_types_response_body
      type: object
    list_pickup_response_body:
      additionalProperties: false
      description: A list pickup response body
      properties:
        links:
          allOf:
            - $ref: "#/components/schemas/pagination_link"
          description: Helpful links to other pages of results
          readOnly: true
        page:
          description: Current page of the list pickups results
          example: 3
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        pages:
          description: Total number of pages for list pickups results
          example: 4
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        pickups:
          description: An array of pickups associated with the user's account.
          items:
            allOf:
              - $ref: "#/components/schemas/pickup"
          type: array
        total:
          description: The total number of pickups returned
          example: 3
          format: int64
          minimum: 0
          readOnly: true
          type: integer
      required:
        - pickups
        - total
        - page
        - pages
        - links
      title: list_pickup_response_body
      type: object
    list_service_points_response_body:
      description: A list service points response body
      properties:
        errors:
          description: The errors associated with the failed API call
          items:
            allOf:
              - $ref: "#/components/schemas/error"
          readOnly: true
          type: array
        lat:
          example: 48.842608
          format: double
          type: number
        long:
          example: 0.032875
          format: double
          type: number
        service_points:
          items:
            properties:
              address_line1:
                example: PLACE DU CANADA
                type: string
              carrier_code:
                example: chronopost
                type: string
              city_locality:
                example: TRUN
                type: string
              company_name:
                example: My fancy company name
                type: string
              country_code:
                example: FR
                type: string
              distance_in_meters:
                example: 728.9959308847579
                format: double
                type: number
              features:
                items:
                  enum:
                    - drop_off_point
                    - pickup_point
                    - print_services
                    - after_hours_locker
                    - after_hours_dropbox
                  type: string
                type: array
              hours_of_operation:
                properties:
                  friday:
                    items:
                      properties:
                        close:
                          example: 12:00
                          type: string
                        open:
                          example: 09:15
                          type: string
                      type: object
                    type: array
                  monday:
                    items:
                      properties:
                        close:
                          example: 12:00
                          type: string
                        open:
                          example: 09:15
                          type: string
                      type: object
                    type: array
                  saturday:
                    items:
                      properties:
                        close:
                          example: 12:00
                          type: string
                        open:
                          example: 09:15
                          type: string
                      type: object
                    type: array
                  sunday:
                    items:
                      properties:
                        close:
                          example: 12:00
                          type: string
                        open:
                          example: 09:15
                          type: string
                      type: object
                    type: array
                  thursday:
                    items:
                      properties:
                        close:
                          example: 12:00
                          type: string
                        open:
                          example: 09:15
                          type: string
                      type: object
                    type: array
                  tuesday:
                    items:
                      properties:
                        close:
                          example: 12:00
                          type: string
                        open:
                          example: 09:15
                          type: string
                      type: object
                    type: array
                  wednesday:
                    items:
                      properties:
                        close:
                          example: 12:00
                          type: string
                        open:
                          example: 09:15
                          type: string
                      type: object
                    type: array
                type: object
              lat:
                example: 48.842608
                format: double
                type: number
              long:
                example: 0.032875
                format: double
                type: number
              phone_number:
                example: 555-555-5555
                type: string
              postal_code:
                example: "61160"
                type: string
              service_codes:
                items:
                  example: chronoclassic
                  type: string
                type: array
              service_point_id:
                example: "614940"
                type: string
              state_province:
                example: TRUN
                type: string
              type:
                default: pudo
                enum:
                  - pudo
                  - locker
                type: string
            type: object
          type: array
      title: list_service_points_response_body
      type: object
    list_shipment_rates_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/rates_information"
      description: A list shipment rates response body
      required:
        - rates
        - invalid_rates
        - rate_request_id
        - shipment_id
        - created_at
        - status
        - errors
      title: list_shipment_rates_response_body
      type: object
    list_shipments_response_body:
      additionalProperties: false
      description: A list shipment response body
      properties:
        links:
          allOf:
            - $ref: "#/components/schemas/pagination_link"
          readOnly: true
        page:
          example: ????
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        pages:
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        shipments:
          description: The list of shipments returned by the api call
          items:
            allOf:
              - $ref: "#/components/schemas/shipment"
            description: A shipment object
            readOnly: true
          readOnly: true
          type: array
        total:
          description: Total number of shipments returned by the api call
          example: 1990
          format: int64
          minimum: 0
          readOnly: true
          type: integer
      required:
        - shipments
        - total
        - page
        - pages
        - links
      title: list_shipments_response_body
      type: object
    list_tags_response_body:
      additionalProperties: false
      description: Response body from a successful GET /tags API call
      properties:
        tags:
          description: The array of tags returned by the API call
          items:
            allOf:
              - $ref: "#/components/schemas/tag"
          type: array
      title: list_tags_response_body
      type: object
    list_warehouses_response_body:
      additionalProperties: false
      description: A warehouse list response body
      properties:
        warehouses:
          description: The array of warehouses returned by the API call
          items:
            allOf:
              - $ref: "#/components/schemas/warehouse"
            readOnly: true
          readOnly: true
          type: array
      required:
        - warehouses
      title: list_warehouses_response_body
      type: object
    list_webhooks_response_body:
      description: A webhook list response body
      items:
        allOf:
          - $ref: "#/components/schemas/webhook"
        description: The webhook list response body
      title: list_webhooks_response_body
      type: array
    manifest:
      additionalProperties: false
      description: |
        Used for combining packages into one scannable form that a carrier can use when picking up a large 
        number of shipments
      properties:
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the carrier
          readOnly: true
        created_at:
          description: The date-time that the manifest was created
          example: 2019-07-12T13:37:39.050Z
          format: date-time
          minLength: 1
          readOnly: true
          type: string
        form_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the form
          readOnly: true
        label_ids:
          description: An array of the label ids used in this manifest.
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
          readOnly: true
          type: array
        manifest_download:
          allOf:
            - $ref: "#/components/schemas/manifest_download"
          readOnly: true
        manifest_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the manifest
          readOnly: true
        ship_date:
          description: The date-time that the manifests shipments will be picked up
          example: 2019-07-12T13:37:39.050Z
          format: date-time
          minLength: 1
          readOnly: true
          type: string
        shipments:
          description: The number of shipments that are included in this manifest
          example: 100
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        submission_id:
          description: A string that uniquely identifies the submission
          example: "9475711899564878915476"
          minLength: 1
          readOnly: true
          type: string
        warehouse_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the warehouse
          readOnly: true
      title: manifest
      type: object
    manifest_download:
      additionalProperties: false
      description: Object containing the href link to download the manifest file
      properties:
        href:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The URL of the linked resource, if any
      title: manifest_download
      type: object
    manifest_request:
      additionalProperties: false
      description: A reference to the manifest request
      properties:
        manifest_request_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies a manifest request
          readOnly: true
        status:
          allOf:
            - $ref: "#/components/schemas/manifest_request_status"
      title: manifest_request
      type: object
    manifest_request_status:
      description: The possible statuses of a manifest request
      enum:
        - in_progress
        - completed
      title: manifest_request_status
      type: string
    manifests:
      additionalProperties: false
      description: An array of manifest resources
      properties:
        manifests:
          description: Resulting Manifests
          items:
            $ref: "#/components/schemas/manifest"
          type: array
      title: manifests
      type: object
    manifests_requests:
      additionalProperties: false
      description: An array of manifest requests
      properties:
        manifest_requests:
          description: Resulting manifest requests with statuses
          items:
            $ref: "#/components/schemas/manifest_request"
          type: array
      title: manifests_requests
      type: object
    modify_batch:
      additionalProperties: false
      description: A modify batch object
      properties:
        rate_ids:
          description: Array of Rate IDs to be modifed on the batch
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: The Rate ID to be modified on the batch
          type: array
        shipment_ids:
          description: The Shipment Ids to be modified on the batch
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: The Shipment ID to be modified on the batch
          type: array
      title: modify_batch
      type: object
    monetary_value:
      additionalProperties: false
      description: |
        A monetary value, such as the price of a shipping label, the insured value of a package, or an account balance.
      properties:
        amount:
          description: The monetary amount, in the specified currency.
          format: double
          minimum: 0
          type: number
        currency:
          allOf:
            - $ref: "#/components/schemas/currency"
      required:
        - currency
        - amount
      title: monetary_value
      type: object
    non_delivery:
      description: The possible non delivery values
      enum:
        - return_to_sender
        - treat_as_abandoned
      title: non_delivery
      type: string
    normalized_entity:
      additionalProperties: true
      description: |
        The normalized value of the entity.

        Most entity results have a `value` field, which is the normalized value of the entity.  For example, if the substring "john doe" was recognized as a "person" entity, then the value might be normalized to have proper capitalization (e.g. "John Doe").  Or if the substring "ft worth" was recognized as a "city" entity, then the value might be normalized to "Fort Worth".

        Some entities have other information in addition to, or instead of a `value`.  For example, a "dimensions" entity will have separate fields for `length`, `width`, `height`, and `unit`.
      properties: {}
      title: normalized_entity
      type: object
    optional_link:
      additionalProperties: false
      description: A link to a related resource, or an empty object if there is no resource to link to
      properties:
        href:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The URL of the linked resource, if any
        type:
          description: The type of resource, or the type of relationship to the parent resource
          minLength: 1
          type: string
      title: optional_link
      type: object
    order_source_name:
      description: The order sources that are supported by ShipEngine
      enum:
        - amazon_ca
        - amazon_us
        - brightpearl
        - channel_advisor
        - cratejoy
        - ebay
        - etsy
        - jane
        - groupon_goods
        - magento
        - paypal
        - seller_active
        - shopify
        - stitch_labs
        - squarespace
        - three_dcart
        - tophatter
        - walmart
        - woo_commerce
        - volusion
      title: order_source_name
      type: string
    origin_type:
      description: Indicates if the package will be picked up or dropped off by the carrier
      enum:
        - pickup
        - drop_off
      title: origin_type
      type: string
    package:
      additionalProperties: false
      description: |
        A package associated with a [shipping label](https://www.shipengine.com/docs/labels/create-a-label/)
      properties:
        content_description:
          description: |
            A short description of the package content. Required for shipments moving to, from, and through Mexico.
          example: Hand knitted wool socks
          maxLength: 35
          minLength: 1
          nullable: true
          type: string
        dimensions:
          allOf:
            - $ref: "#/components/schemas/dimensions"
          description: The package dimensions
        external_package_id:
          description: An external package id.
          minLength: 1
          type: string
        form_download:
          allOf:
            - $ref: "#/components/schemas/optional_link"
          description: The form download for any customs that are needed
          readOnly: true
        insured_value:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          default:
            - amount: 0
              currency: usd
          description: |
            The insured value of the package.  Requires the `insurance_provider` field of the shipment to be set.
        label_download:
          allOf:
            - $ref: "#/components/schemas/label_download"
          description: The label download for the package
          readOnly: true
        label_messages:
          allOf:
            - $ref: "#/components/schemas/label_messages"
        package_code:
          allOf:
            - $ref: "#/components/schemas/package_code"
          description: |
            The [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc.  The code `package` indicates a custom or unknown package type.
        package_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies this [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/)
        sequence:
          description: Package sequence
          format: int32
          readOnly: true
          type: integer
        tracking_number:
          allOf:
            - $ref: "#/components/schemas/tracking_number"
          description: |
            The tracking number for the package.  The format depends on the carrier.
          readOnly: true
        weight:
          allOf:
            - $ref: "#/components/schemas/weight"
          description: The package weight
      required:
        - weight
      title: package
      type: object
    package_code:
      description: |
        A [package type](https://www.shipengine.com/docs/reference/list-carrier-packages/), such as `thick_envelope`, `small_flat_rate_box`, `large_package`, etc.  Use the code `package` for custom or unknown package types.
      example: small_flat_rate_box
      pattern: ^[a-z0-9]+(_[a-z0-9]+)*$
      title: package_code
      type: string
    package_contents:
      description: The possible package contents values
      enum:
        - merchandise
        - documents
        - gift
        - returned_goods
        - sample
      title: package_contents
      type: string
    package_type:
      additionalProperties: false
      description: A package type that a carrier supports for shipment.
      properties:
        description:
          description: Provides a helpful description for the custom package.
          example: Packaging for laptops
          nullable: true
          type: string
        dimensions:
          allOf:
            - $ref: "#/components/schemas/dimensions"
          description: The custom dimensions for the package.
        name:
          example: laptop_box
          minLength: 1
          type: string
        package_code:
          allOf:
            - $ref: "#/components/schemas/package_code"
        package_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the package.
      required:
        - name
        - package_code
      title: package_type
      type: object
    paged_list_response_body:
      additionalProperties: true
      description: |
        Many ShipEngine endpoints return a paged list of items.  In addition to the returned items, these responses also include information about the total number of items, the number of pages of results, and URLs of other pages of results.
      properties:
        links:
          allOf:
            - $ref: "#/components/schemas/pagination_link"
        page:
          description: The current page number of results.  For example, if there are 80 results, and the page size is 25, then `page` could be 1, 2, 3, or 4.  The first three pages would contain 25 items each, and the fourth page would contain the five remaining items.
          example: 1
          minimum: 1
          type: integer
        pages:
          description: The total number of pages of results.  For example, if there are 80 results, and the page size is 25, then `pages` would be 4.  The first three pages would contain 25 items each, and the fourth page would contain the five remaining items.  If there are no results, then `pages` will be zero.
          example: 4
          minimum: 0
          type: integer
        total:
          description: The total number of items across all pages of results
          example: 2750
          minimum: 0
          type: integer
      required:
        - total
        - page
        - pages
        - links
      title: paged_list_response_body
      type: object
    pagination_link:
      additionalProperties: false
      description: Helpful links to other pages of results
      properties:
        first:
          allOf:
            - $ref: "#/components/schemas/link"
          description: |
            The link to the first page of results.  This object will _always_ have an `href` field. If there are no results, then the first page will contain an empty array of items.
        last:
          allOf:
            - $ref: "#/components/schemas/link"
          description: |
            The link to the final page of results.  This object will _always_ have an `href` field. If there are no results, then the final page will contain an empty array of items.
        next:
          allOf:
            - $ref: "#/components/schemas/optional_link"
          description: |
            The link to the next page of results.  The `href` field will only be set when the `page` is less than `pages`.
        prev:
          allOf:
            - $ref: "#/components/schemas/optional_link"
          description: |
            The link to the previous page of results.  The `href` field will only be set when the `page` is 2 or greater.
      required:
        - first
        - last
        - prev
        - next
      title: pagination_link
      type: object
    parse_address_request_body:
      additionalProperties: false
      description: |
        The only required field is `text`, which is the text to be parsed. You can optionally also provide an `address` containing already-known values. For example, you may already know the recipient's name, city, and country, and only want to parse the street address into separate lines.
      properties:
        address:
          allOf:
            - $ref: "#/components/schemas/partial_address"
          description: |
            You can optionally provide any already-known address values. For example, you may already know the recipient's name, city, and country, and only want to parse the street address into separate lines.
        text:
          description: The unstructured text that contains address-related entities
          example: Margie McMiller at 3800 North Lamar suite 200 in austin, tx.  The zip code there is 78652.
          minLength: 1
          type: string
      required:
        - text
      title: parse_address_request_body
      type: object
    parse_address_response_body:
      additionalProperties: false
      description: |
        The parsed address, as well as a confidence score and a list of all the entities that were recognized in the text.
      properties:
        address:
          allOf:
            - $ref: "#/components/schemas/partial_address"
          description: |
            The parsed address.  This address may not be complete, depending on how much information was included in the text and how confident the API is about each recognized entity.

            > **Note:** The address-recognition API does not currently perform any validation of the parsed address, so we recommend that you use the [address-validation API](https://www.shipengine.com/docs/addresses/validation/) to ensure that the address is correct.
        entities:
          description: |
            All of the entities that were recognized in the text. An "entity" is a single piece of data, such as a city, a postal code, or an address line.  Each entity includes the original text and the parsed value.
          items:
            $ref: "#/components/schemas/recognized_entity"
          minItems: 0
          type: array
        score:
          description: |
            A confidence score between zero and one that indicates how certain the API is that it understood the text.
          format: double
          maximum: 1
          minimum: 0
          type: number
      required:
        - score
        - address
        - entities
      title: parse_address_response_body
      type: object
    parse_shipment_request_body:
      additionalProperties: false
      description: |
        The only required field is `text`, which is the text to be parsed. You can optionally also provide a `shipment` containing any already-known values. For example, you probably already know the `ship_from` address, and you may also already know what carrier and service you want to use.
      properties:
        shipment:
          allOf:
            - $ref: "#/components/schemas/partial_shipment"
          description: |
            You can optionally provide a `shipment` object containing any already-known values. For example, you probably already know the `ship_from` address, and you may also already know what carrier and service you want to use.
        text:
          description: The unstructured text that contains shipping-related entities
          example: |
            I have a 4oz package that's 5x10x14in, and I need to ship it to Margie McMiller at 3800 North Lamar suite 200 in austin, tx 78652. Please send it via USPS first class and require an adult signature. It also needs to be insured for $400.
          minLength: 1
          type: string
      required:
        - text
      title: parse_shipment_request_body
      type: object
    parse_shipment_response_body:
      additionalProperties: false
      description: |
        The parsed shipment, as well as a confidence score and a list of all the shipping entities that were recognized in the text.
      properties:
        entities:
          description: |
            All of the entities that were recognized in the text. An "entity" is a single piece of data, such as a city, a postal code, a carrier name, or a package weight.  Each entity includes the original text and the parsed value.
          items:
            $ref: "#/components/schemas/recognized_entity"
          minItems: 0
          type: array
        score:
          description: |
            A confidence score between zero and one that indicates how certain the API is that it understood the text.
          format: double
          maximum: 1
          minimum: 0
          type: number
        shipment:
          allOf:
            - $ref: "#/components/schemas/partial_shipment"
          description: |
            The parsed shipment.  This shipment may not be complete, depending on how much information was included in the text and how confident the API is about each recognized entity.

            > **Note:** The shipment-recognition API does not currently perform any validation of the parsed addresses, so we recommend that you use the [address-validation API](https://www.shipengine.com/docs/addresses/validation/) to ensure that the addresses are correct.
      required:
        - score
        - shipment
        - entities
      title: parse_shipment_response_body
      type: object
    partial_address:
      additionalProperties: false
      description: A complete or partial mailing address.
      properties:
        address_line1:
          description: |
            The first line of the street address.  For some addresses, this may be the only line.  Other addresses may require 2 or 3 lines.
          example: 1999 Bishop Grandin Blvd.
          minLength: 1
          type: string
        address_line2:
          description: |
            The second line of the street address.  For some addresses, this line may not be needed.
          example: Unit 408
          minLength: 1
          nullable: true
          type: string
        address_line3:
          description: |
            The third line of the street address.  For some addresses, this line may not be needed.
          example: "Building #7"
          minLength: 1
          nullable: true
          type: string
        address_residential_indicator:
          allOf:
            - $ref: "#/components/schemas/address_residential_indicator"
          default: unknown
          description: Indicates whether this is a residential address.
          example: no
        city_locality:
          description: The name of the city or locality
          example: Winnipeg
          minLength: 1
          type: string
        company_name:
          description: |
            If this is a business address, then the company name should be specified here.
          example: The Home Depot
          minLength: 1
          nullable: true
          type: string
        country_code:
          allOf:
            - $ref: "#/components/schemas/country_code"
          description: |
            The two-letter [ISO 3166-1 country code](https://en.wikipedia.org/wiki/ISO_3166-1)
        email:
          description: |
            Email for the address owner.
          example: example@example.com
          nullable: true
          type: string
        name:
          description: |
            The name of a contact person at this address.  This field may be set instead of - or in addition to - the `company_name` field.
          example: John Doe
          minLength: 1
          type: string
        phone:
          description: |
            The phone number of a contact person at this address.  The format of this phone number varies depending on the country.
          example: +1 204-253-9411 ext. 123
          minLength: 1
          type: string
        postal_code:
          allOf:
            - $ref: "#/components/schemas/postal_code"
        state_province:
          description: |
            The state or province.  For some countries (including the U.S.) only abbreviations are allowed.  Other countries allow the full name or abbreviation.
          example: Manitoba
          minLength: 1
          type: string
      title: partial_address
      type: object
    partial_shipment:
      additionalProperties: false
      description: |
        The information necessary to ship a package, such as the origin, the destination, the carrier service, and the package dimensions and weight.
      properties:
        advanced_options:
          allOf:
            - $ref: "#/components/schemas/advanced_shipment_options"
          description: Advanced shipment options.  These are entirely optional.
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: The carrier account that is billed for the shipping charges
        confirmation:
          allOf:
            - $ref: "#/components/schemas/delivery_confirmation"
          default: none
          description: The type of delivery confirmation that is required for this shipment.
        created_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time that the shipment was created in ShipEngine.
          readOnly: true
        customs:
          allOf:
            - $ref: "#/components/schemas/international_shipment_options"
          default: null
          description: |
            Customs information.  This is usually only needed for international shipments.
          nullable: true
        external_order_id:
          description: ID that the Order Source assigned
          nullable: true
          type: string
        external_shipment_id:
          description: |
            A unique user-defined key to identify a shipment.  This can be used to retrieve the shipment.

            > **Warning:** The `external_shipment_id` is limited to 50 characters. Any additional characters will be truncated.
          maxLength: 50
          nullable: true
          type: string
        insurance_provider:
          allOf:
            - $ref: "#/components/schemas/insurance_provider"
          default: none
          description: |
            The insurance provider to use for any insured packages in the shipment.
        is_return:
          default: false
          description: |
            An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.
          nullable: true
          type: boolean
        items:
          default: []
          description: |
            Describe the packages included in this shipment as related to potential metadata that was imported from
            external order sources
          items:
            allOf:
              - $ref: "#/components/schemas/shipment_item"
          type: array
        modified_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time that the shipment was created or last modified.
          readOnly: true
        order_source_code:
          allOf:
            - $ref: "#/components/schemas/order_source_name"
        origin_type:
          allOf:
            - $ref: "#/components/schemas/origin_type"
          description: Indicates if the package will be picked up or dropped off by the carrier
          nullable: true
        packages:
          description: |
            The packages in the shipment.

            > **Note:** Some carriers only allow one package per shipment.  If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.
          items:
            allOf:
              - $ref: "#/components/schemas/package"
          minItems: 1
          type: array
        return_to:
          allOf:
            - $ref: "#/components/schemas/shipping_address"
          description: |
            The return address for this shipment.  Defaults to the `ship_from` address.
        service_code:
          allOf:
            - $ref: "#/components/schemas/service_code"
          description: |
            The [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/) used to ship the package, such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc.
        ship_date:
          allOf:
            - $ref: "#/components/schemas/date"
          description: |
            The date that the shipment was (or will be) shippped.  ShipEngine will take the day of week into consideration. For example, if the carrier does not operate on Sundays, then a package that would have shipped on Sunday will ship on Monday instead.
        ship_from:
          allOf:
            - $ref: "#/components/schemas/shipping_address"
          description: |
            The shipment's origin address. If you frequently ship from the same location, consider [creating a warehouse](https://www.shipengine.com/docs/reference/create-warehouse/).  Then you can simply specify the `warehouse_id` rather than the complete address each time.
        ship_to:
          allOf:
            - $ref: "#/components/schemas/shipping_address"
          description: The recipient's mailing address
        shipment_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the shipment
          readOnly: true
        shipment_number:
          description: |
            A non-unique user-defined number used to identify a shipment.  If undefined, this will match the external_shipment_id of the shipment.

            > **Warning:** The `shipment_number` is limited to 50 characters. Any additional characters will be truncated.
          maxLength: 50
          nullable: true
          type: string
        shipment_status:
          allOf:
            - $ref: "#/components/schemas/shipment_status"
          default: pending
          description: The current status of the shipment
          readOnly: true
        tags:
          default: []
          description: |
            Arbitrary tags associated with this shipment.  Tags can be used to categorize shipments, and shipments can be queried by their tags.
          items:
            allOf:
              - $ref: "#/components/schemas/tag"
          minItems: 0
          readOnly: true
          type: array
        tax_identifiers:
          items:
            allOf:
              - $ref: "#/components/schemas/tax_identifier"
          nullable: true
          type: array
        total_weight:
          allOf:
            - $ref: "#/components/schemas/weight"
          description: The combined weight of all packages in the shipment
          readOnly: true
        warehouse_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          default: null
          description: |
            The [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/) that the shipment is being shipped from.  Either `warehouse_id` or `ship_from` must be specified.
          nullable: true
      title: partial_shipment
      type: object
    partial_shipping_address:
      additionalProperties: false
      description: A complete or partial mailing address.
      properties:
        instructions:
          description: |
            Additional text about how to handle the shipment at this address.
          minLength: 1
          nullable: true
          type: string
      title: partial_shipping_address
      type: object
    payment_amount:
      properties:
        amount:
          format: double
          minimum: 0
          type: number
        currency:
          allOf:
            - $ref: "#/components/schemas/currency"
      title: payment_amount
      type: object
    pickup:
      additionalProperties: false
      description: |
        The information necessary to schedule a package pickup
      properties:
        cancelled_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time that the pickup was cancelled in ShipEngine.
          readOnly: true
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: The carrier_id associated with the pickup
          readOnly: true
        confirmation_number:
          description: The carrier confirmation number for the scheduled pickup.
          example: 292513CL4A3
          nullable: true
          readOnly: true
          type: string
        contact_details:
          $ref: "#/components/schemas/contact_details"
        created_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The date and time that the pickup was created in ShipEngine.
          readOnly: true
        label_ids:
          description: Label IDs that will be included in the pickup request
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: Label ID that will be included in the pickup request
          type: array
        pickup_address:
          allOf:
            - $ref: "#/components/schemas/address"
          readOnly: true
        pickup_id:
          allOf:
            - $ref: "#/components/schemas/pickup_resource_id"
          readOnly: true
        pickup_notes:
          description: Used by some carriers to give special instructions for a package pickup
          minLength: 0
          type: string
        pickup_window:
          $ref: "#/components/schemas/pickup_window"
        pickup_windows:
          description: |
            An array of available pickup windows. Carriers can return multiple times that they will pickup packages.
          items:
            allOf:
              - $ref: "#/components/schemas/pickup_windows"
          readOnly: true
          type: array
        warehouse_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: The warehouse_id associated with the pickup
          readOnly: true
      title: pickup
      type: object
    pickup_resource_id:
      description: Pickup Resource ID
      example: pik_3YcKU5zdtJuCqoeNwyqqbW
      minLength: 4
      title: pickup_resource_id
      type: string
    pickup_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/pickup"
      description: A pickup response body
      required:
        - pickup
        - pickup_id
        - label_ids
        - created_at
        - carrier_id
        - warehouse_id
        - pickup_address
        - contact_details
        - notes
        - pickup_window
        - confirmation_number
      title: pickup_response_body
      type: object
    pickup_window:
      description: The desired time range for the package pickup.
      properties:
        end_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
        start_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
      required:
        - start_at
        - end_at
      title: pickup_window
      type: object
      writeOnly: true
    pickup_windows:
      properties:
        end_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
        start_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
      title: pickup_windows
      type: object
    postal_code:
      description: postal code
      example: 78756-3717
      minLength: 1
      title: postal_code
      type: string
    process_batch_request_body:
      additionalProperties: false
      description: A process batch request body
      properties:
        display_scheme:
          allOf:
            - $ref: "#/components/schemas/display_scheme"
          default: label
          description: The display format that the label should be shown in.
        label_format:
          allOf:
            - $ref: "#/components/schemas/label_format"
          default: pdf
        label_layout:
          allOf:
            - $ref: "#/components/schemas/label_layout"
          default: 4x6
          type: string
        ship_date:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: The Ship date the batch is being processed for
      title: process_batch_request_body
      type: object
    purchase_label_without_shipment:
      additionalProperties: false
      description: A purchase label without shipment resource
      properties:
        display_scheme:
          allOf:
            - $ref: "#/components/schemas/display_scheme"
          default: label
          description: The display format that the label should be shown in.
        label_download_type:
          allOf:
            - $ref: "#/components/schemas/label_download_type"
        label_format:
          allOf:
            - $ref: "#/components/schemas/label_format"
          default: pdf
        label_layout:
          allOf:
            - $ref: "#/components/schemas/label_layout"
          default: 4x6
        validate_address:
          allOf:
            - $ref: "#/components/schemas/validate_address"
      title: purchase_label_without_shipment
      type: object
    rate:
      additionalProperties: false
      description: A rate
      properties:
        carrier_code:
          description: carrier code
          minLength: 1
          readOnly: true
          type: string
        carrier_delivery_days:
          description: The carrier delivery days
          minLength: 1
          readOnly: true
          type: string
        carrier_friendly_name:
          description: carrier friendly name
          minLength: 1
          readOnly: true
          type: string
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the carrier
          readOnly: true
        carrier_nickname:
          description: carrier nickname
          minLength: 1
          readOnly: true
          type: string
        confirmation_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: The confirmation amount
          readOnly: true
        delivery_days:
          description: |
            The number of days estimated for delivery, this will show the _actual_ delivery
            time if for example, the package gets shipped on a Friday
          example: 5
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        error_messages:
          description: The error messages
          items:
            description: error message
            minLength: 0
            readOnly: true
            type: string
          minItems: 0
          readOnly: true
          type: array
        estimated_delivery_date:
          allOf:
            - $ref: "#/components/schemas/date"
          readOnly: true
        guaranteed_service:
          description: Indicates if the rate is guaranteed.
          readOnly: true
          type: boolean
        insurance_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: The insurance amount
          readOnly: true
        negotiated_rate:
          description: Indicates if the rates been negotiated
          readOnly: true
          type: boolean
        other_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: Any other charges associated with this rate
          readOnly: true
        package_type:
          description: package type that this rate was estimated for
          example: package
          minLength: 1
          nullable: true
          readOnly: true
          type: string
        rate_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the rate
          readOnly: true
        rate_type:
          allOf:
            - $ref: "#/components/schemas/rate_type"
          readOnly: true
        service_code:
          description: service code for the rate
          minLength: 1
          readOnly: true
          type: string
        service_type:
          description: service type
          minLength: 1
          readOnly: true
          type: string
        ship_date:
          description: ship date
          format: date-time
          minLength: 1
          readOnly: true
          type: string
        shipping_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: The shipping amount
          readOnly: true
        tax_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: Tariff and additional taxes associated with an international shipment.
          readOnly: true
        trackable:
          description: Indicates if rate is trackable
          readOnly: true
          type: boolean
        validation_status:
          allOf:
            - $ref: "#/components/schemas/validation_status"
          readOnly: true
        warning_messages:
          description: The warning messages
          items:
            description: warning message
            minLength: 0
            readOnly: true
            type: string
          minItems: 0
          readOnly: true
          type: array
        zone:
          description: |
            Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of
            custom zones that vary depending upon the ship_to and ship_from location
          example: 6
          format: int32
          minimum: 0
          nullable: true
          readOnly: true
          type: integer
      required:
        - rate_id
        - rate_type
        - carrier_id
        - shipping_amount
        - insurance_amount
        - confirmation_amount
        - other_amount
        - zone
        - package_type
        - guaranteed_service
        - negotiated_rate
        - service_type
        - service_code
        - trackable
        - carrier_code
        - carrier_nickname
        - carrier_friendly_name
        - validation_status
        - warning_messages
        - error_messages
      title: rate
      type: object
    rate_estimate:
      additionalProperties: false
      description: A rate estimate
      properties:
        carrier_code:
          description: carrier code
          minLength: 1
          readOnly: true
          type: string
        carrier_delivery_days:
          description: The carrier delivery days
          minLength: 1
          readOnly: true
          type: string
        carrier_friendly_name:
          description: carrier friendly name
          minLength: 1
          readOnly: true
          type: string
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the carrier
          readOnly: true
        carrier_nickname:
          description: carrier nickname
          minLength: 1
          readOnly: true
          type: string
        confirmation_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: The confirmation amount
          readOnly: true
        delivery_days:
          description: |
            The number of days estimated for delivery, this will show the _actual_ delivery
            time if for example, the package gets shipped on a Friday
          example: 5
          format: int32
          minimum: 1
          readOnly: true
          type: integer
        error_messages:
          description: The error messages
          items:
            description: error message
            minLength: 0
            readOnly: true
            type: string
          minItems: 0
          readOnly: true
          type: array
        estimated_delivery_date:
          allOf:
            - $ref: "#/components/schemas/date"
          readOnly: true
        guaranteed_service:
          description: Indicates if the rate is guaranteed.
          readOnly: true
          type: boolean
        insurance_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: The insurance amount
          readOnly: true
        negotiated_rate:
          description: Indicates if the rates been negotiated
          readOnly: true
          type: boolean
        other_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: Any other charges associated with this rate
          readOnly: true
        package_type:
          description: package type that this rate was estimated for
          example: package
          minLength: 1
          nullable: true
          readOnly: true
          type: string
        rate_type:
          allOf:
            - $ref: "#/components/schemas/rate_type"
          readOnly: true
        service_code:
          description: service code for the rate
          minLength: 1
          readOnly: true
          type: string
        service_type:
          description: service type
          minLength: 1
          readOnly: true
          type: string
        ship_date:
          description: ship date
          format: date-time
          minLength: 1
          readOnly: true
          type: string
        shipping_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: The shipping amount
          readOnly: true
        tax_amount:
          allOf:
            - $ref: "#/components/schemas/monetary_value"
          description: Tariff and additional taxes associated with an international shipment.
          readOnly: true
        trackable:
          description: Indicates if rate is trackable
          readOnly: true
          type: boolean
        validation_status:
          allOf:
            - $ref: "#/components/schemas/validation_status"
          readOnly: true
        warning_messages:
          description: The warning messages
          items:
            description: warning message
            minLength: 0
            readOnly: true
            type: string
          minItems: 0
          readOnly: true
          type: array
        zone:
          description: |
            Certain carriers base [their rates](https://blog.stamps.com/2017/09/08/usps-postal-zones/) off of
            custom zones that vary depending upon the ship_to and ship_from location
          example: 6
          format: int32
          minimum: 0
          nullable: true
          readOnly: true
          type: integer
      required:
        - rate_type
        - carrier_id
        - shipping_amount
        - insurance_amount
        - confirmation_amount
        - other_amount
        - zone
        - package_type
        - guaranteed_service
        - negotiated_rate
        - service_type
        - service_code
        - trackable
        - carrier_code
        - carrier_nickname
        - carrier_friendly_name
        - validation_status
        - warning_messages
        - error_messages
      title: rate_estimate
      type: object
    rate_estimate_by_carrier_id:
      properties:
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          deprecated: true
          description: A string that uniquely identifies the carrier
      title: rate_estimate_by_carrier_id
      type: object
    rate_estimate_by_carrier_ids:
      properties:
        carrier_ids:
          description: Array of Carrier Ids
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: carrier id
            type: string
          minItems: 1
          type: array
      title: rate_estimate_by_carrier_ids
      type: object
    rate_estimate_options:
      properties:
        address_residential_indicator:
          allOf:
            - $ref: "#/components/schemas/address_residential_indicator"
        confirmation:
          allOf:
            - $ref: "#/components/schemas/delivery_confirmation"
        dimensions:
          allOf:
            - $ref: "#/components/schemas/dimensions"
          description: The dimensions of the package
        from_city_locality:
          description: from postal code
          example: Austin
          minLength: 1
          type: string
        from_country_code:
          allOf:
            - $ref: "#/components/schemas/country_code"
        from_postal_code:
          allOf:
            - $ref: "#/components/schemas/postal_code"
        from_state_province:
          description: From state province
          example: Austin
          minLength: 1
          type: string
        ship_date:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: ship date
          type: string
        to_city_locality:
          description: The city locality the package is being shipped to
          example: Austin
          minLength: 1
          type: string
        to_country_code:
          allOf:
            - $ref: "#/components/schemas/country_code"
        to_postal_code:
          allOf:
            - $ref: "#/components/schemas/postal_code"
        to_state_province:
          description: To state province
          example: Houston
          minLength: 1
          type: string
        weight:
          allOf:
            - $ref: "#/components/schemas/weight"
          description: The weight of the package
      title: rate_estimate_options
      type: object
    rate_request_body:
      additionalProperties: false
      description: A rate request body
      properties:
        calculate_tax_amount:
          description: Calculate the duties and tariffs for cross border shipments.
          type: boolean
        carrier_ids:
          description: Array of carrier ids to get rates for
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: carrier ids
          minItems: 1
          type: array
        is_return:
          description: Indicate if it's a return shipment
          type: boolean
        package_types:
          items:
            minLength: 1
            type: string
          type: array
        preferred_currency:
          allOf:
            - $ref: "#/components/schemas/currency"
        service_codes:
          items:
            description: Item Service Codes
            minLength: 1
            type: string
          type: array
      required:
        - carrier_ids
      title: rate_request_body
      type: object
    rate_request_by_shipment_ids:
      properties:
        shipment_ids:
          description: The array of shipment IDs
          items:
            allOf:
              - $ref: "#/components/schemas/se_id"
            description: shipment ids
          type: array
      required:
        - shipment_ids
      title: rate_request_by_shipment_ids
      type: object
    rate_request_by_shipments:
      properties:
        shipments:
          description: The array of shipments to get bulk rate estimates for
          items:
            allOf:
              - $ref: "#/components/schemas/address_validating_shipment"
            description: The shipment to get a bulk rate estimate for
          minItems: 1
          type: array
      required:
        - shipments
      title: rate_request_by_shipments
      type: object
    rate_request_options:
      properties:
        rate_options:
          allOf:
            - $ref: "#/components/schemas/rate_request_body"
          description: The rate options
      title: rate_request_options
      type: object
    rate_request_rate_options:
      properties:
        rate_options:
          allOf:
            - $ref: "#/components/schemas/rate_request_body"
          description: The rate options
      title: rate_request_rate_options
      type: object
    rate_response:
      additionalProperties: false
      properties:
        rate_response:
          allOf:
            - $ref: "#/components/schemas/rates_information"
          description: The rates response
      title: rate_response
      type: object
    rate_response_status:
      description: The possible rate response status values
      enum:
        - working
        - completed
        - partial
        - error
      title: rate_response_status
      type: string
    rate_type:
      description: The possible rate type values
      enum:
        - check
        - shipment
      title: rate_type
      type: string
    rates_information:
      additionalProperties: false
      description: A rates information resource
      properties:
        created_at:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: When the rate was created
          format: date-time
          type: string
        errors:
          items:
            allOf:
              - $ref: "#/components/schemas/error"
          type: array
        invalid_rates:
          default: []
          description: An array of invalid shipment rates
          items:
            allOf:
              - $ref: "#/components/schemas/rate"
            description: Invalid Shipment Rate
            readOnly: true
          readOnly: true
          type: array
        rate_request_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the rate request
          readOnly: true
        rates:
          description: An array of shipment rates
          items:
            allOf:
              - $ref: "#/components/schemas/rate"
            description: Shipment Rates
            readOnly: true
          readOnly: true
          type: array
        shipment_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the shipment
          readOnly: true
        status:
          allOf:
            - $ref: "#/components/schemas/rate_response_status"
          readOnly: true
      title: rates_information
      type: object
    recognized_entity:
      additionalProperties: false
      description: |
        An entity is a single piece of data that was recognized in unstructured text.  For example, a city, a postal code, package dimensions, insured value, etc.  Each entity includes the original text and the parsed value.
      properties:
        end_index:
          description: The index of the last character of this entity within the original text
          minimum: 0
          type: integer
        result:
          $ref: "#/components/schemas/normalized_entity"
        score:
          description: |
            A confidence score between zero and one that indicates how certain the API is that it correctly recognized this entity
          format: double
          maximum: 1
          minimum: 0
          type: number
        start_index:
          description: The index of the first character of this entity within the original text
          minimum: 0
          type: integer
        text:
          description: The substring from the original text that was recognized as this entity
          minLength: 1
          type: string
        type:
          description: The Entity type (e.g. "weight", "person", "address_line1", etc.)
          minLength: 1
          type: string
      required:
        - type
        - score
        - text
        - start_index
        - end_index
      title: recognized_entity
      type: object
    redirect:
      description: The resource to return a redirect URL to.
      enum:
        - shipengine-dashboard
      title: redirect
      type: string
    remove_from_batch_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/modify_batch"
      description: A modify batch request body
      title: remove_from_batch_request_body
      type: object
    response_message:
      additionalProperties: false
      description: A response message that displays when additional info is needed for an address validation request.
      properties:
        code:
          allOf:
            - $ref: "#/components/schemas/address_validation_code"
          readOnly: true
        detail_code:
          allOf:
            - $ref: "#/components/schemas/address_validation_detail_code"
          nullable: true
        message:
          description: Message explaining the address validation error
          example: Invalid Postal Code
          minLength: 1
          readOnly: true
          type: string
        type:
          allOf:
            - $ref: "#/components/schemas/address_validation_message_type"
          readOnly: true
      required:
        - code
        - message
        - type
        - detail_code
      title: response_message
      type: object
    schedule_pickup_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/pickup"
      description: A schedule pickup request body
      required:
        - contact_details
        - label_ids
        - pickup_window
      title: schedule_pickup_request_body
      type: object
    schedule_pickup_response_body:
      allOf:
        - $ref: "#/components/schemas/pickup"
        - $ref: "#/components/schemas/error_response_body"
      title: schedule_pickup_response_body
    se_id:
      description: A string that uniquely identifies a ShipEngine resource, such as a carrier, label, shipment, etc.
      example: se-28529731
      maxLength: 25
      minLength: 1
      pattern: ^se(-[a-z0-9]+)+$
      title: se_id
      type: string
    service:
      additionalProperties: false
      description: A service offered by the carrier
      properties:
        carrier_code:
          allOf:
            - $ref: "#/components/schemas/se_id"
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the carrier
          readOnly: true
        domestic:
          description: Supports domestic shipping
          readOnly: true
          type: boolean
        international:
          description: Supports international shipping.
          readOnly: true
          type: boolean
        is_multi_package_supported:
          description: Carrier supports multiple packages per shipment
          readOnly: true
          type: boolean
        name:
          description: User friendly service name
          example: USPS First Class Mail
          minLength: 1
          readOnly: true
          type: string
        service_code:
          description: service code
          example: usps_media_mail
          minLength: 1
          readOnly: true
          type: string
      title: service
      type: object
    service_code:
      description: |
        A [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/), such as `fedex_ground`, `usps_first_class_mail`, `flat_rate_envelope`, etc.
      example: usps_first_class_mail
      pattern: ^[a-z0-9]+(_[a-z0-9-]+)* ?$
      title: service_code
      type: string
    shipment:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/partial_shipment"
      description: |
        The information necessary to ship a package, such as the origin, the destination, the carrier service, and the package dimensions and weight.

        > **Note:** Either `ship_from` or `warehouse_id` must be set.
      required:
        - shipment_id
        - carrier_id
        - service_code
        - ship_date
        - created_at
        - modified_at
        - shipment_status
        - ship_to
        - ship_from
        - warehouse_id
        - return_to
        - confirmation
        - customs
        - advanced_options
        - insurance_provider
        - tags
        - packages
        - total_weight
      title: shipment
      type: object
    shipment_id_request:
      properties:
        shipment_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the shipment
      title: shipment_id_request
      type: object
    shipment_item:
      additionalProperties: false
      description: A shipment item
      properties:
        asin:
          description: Amazon Standard Identification Number
          example: B00005N5PF
          maxLength: 10
          minLength: 10
          nullable: true
          type: string
        external_order_id:
          description: external order id
          nullable: true
          type: string
        external_order_item_id:
          description: external order item id
          nullable: true
          type: string
        name:
          description: item name
          minLength: 0
          type: string
        order_source_code:
          allOf:
            - $ref: "#/components/schemas/order_source_name"
        quantity:
          description: The quantity of this item included in the shipment
          format: int32
          minimum: 0
          type: integer
        sales_order_id:
          description: sales order id
          nullable: true
          type: string
        sales_order_item_id:
          description: sales order item id
          nullable: true
          type: string
        sku:
          description: Item Stock Keeping Unit
          nullable: true
          type: string
      title: shipment_item
      type: object
    shipment_request:
      properties:
        shipment:
          allOf:
            - $ref: "#/components/schemas/address_validating_shipment"
          description: The shipment object
      title: shipment_request
      type: object
    shipment_status:
      description: The possible shipment status values
      enum:
        - pending
        - processing
        - label_purchased
        - cancelled
      title: shipment_status
      type: string
    shipments_sort_by:
      description: The possible shipments sort by values
      enum:
        - modified_at
        - created_at
      title: shipments_sort_by
      type: string
    shipping_address:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/address"
        - $ref: "#/components/schemas/partial_shipping_address"
      title: shipping_address
      type: object
    smart_post_hub:
      description: The possible smart post hub values
      enum:
        - none
        - allentown_pa
        - atlanta_ga
        - baltimore_md
        - charlotte_nc
        - chino_ca
        - dallas_tx
        - denver_co
        - detroit_mi
        - edison_nj
        - grove_city_oh
        - groveport_oh
        - houston_tx
        - indianapolis_in
        - kansas_city_ks
        - los_angeles_ca
        - martinsburg_wv
        - memphis_tn
        - minneapolis_mn
        - new_berlin_wi
        - northborough_ma
        - orlando_fl
        - phoneix_az
        - pittsburgh_pa
        - reno_nv
        - sacramento_ca
        - salt_lake_city_ut
        - seattle_wa
        - st_louis_mo
        - windsor_ct
        - newark_ny
        - south_brunswick_nj
        - scranton_pa
        - wheeling_il
      title: smart_post_hub
      type: string
    sort_dir:
      description: |
        Controls the sort order of queries

        |Value     |Description
        |:---------|:-----------------------------------------------------
        |`asc`     |Return results in ascending order
        |`desc`    |Return results in descending order
      enum:
        - asc
        - desc
      title: sort_dir
      type: string
    status_code:
      description: |
        The tracking status codes

        |Value       |Description
        |:---------  |:-----------------------------------------------------
        |`un` | Unknown
        |`ac` | Accepted
        |`it` | In Transit
        |`de` | Delivered
        |`ex` | Exception
        |`at` | Delivery Attempt
        |`ny` | Not Yet In System
      enum:
        - un
        - ac
        - it
        - de
        - ex
        - at
        - ny
      readOnly: true
      title: status_code
      type: string
    tag:
      additionalProperties: false
      description: |
        Tags are arbitrary strings that you can use to categorize shipments.  For example, you may want to use tags to distinguish between domestic and international shipments, or between insured and uninsured shipments.  Or maybe you want to create a tag for each of your customers so you can easily retrieve every shipment for a customer.
      properties:
        name:
          description: The tag name.
          example: Fragile
          minLength: 1
          type: string
      required:
        - name
      title: tag
      type: object
    tag_name:
      description: |
        Tags are arbitrary strings that you can use to categorize shipments.  For example, you may want to use tags to distinguish between domestic and international shipments, or between insured and uninsured shipments.  Or maybe you want to create a tag for each of your customers so you can easily retrieve every shipment for a customer.
      example: Fragile
      minLength: 1
      title: tag_name
      type: string
    tag_shipment_response_body:
      additionalProperties: false
      description: A shipment add tag response body
      properties:
        shipment_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the shipment
          readOnly: true
        tag:
          allOf:
            - $ref: "#/components/schemas/tag"
          description: The tag that is now associated with this shipment
          readOnly: true
      required:
        - shipment_id
        - tag
      title: tag_shipment_response_body
      type: object
    tax_identifier:
      additionalProperties: false
      description: A tax identifier object
      properties:
        identifier_type:
          allOf:
            - $ref: "#/components/schemas/identifier_type"
        issuing_authority:
          description: The authority that issued this tax. This must be a valid 2 character ISO 3166 Alpha 2 country code.
          type: string
        taxable_entity_type:
          allOf:
            - $ref: "#/components/schemas/taxable_entity_type"
        value:
          description: The value of the identifier
          type: string
      required:
        - taxable_entity_type
        - identifier_type
        - issuing_authority
        - value
      title: tax_identifier
      type: object
    taxable_entity_type:
      description: |
        The taxable entity type for this tax item. Valid values include the following

        |Value       |Description
        |:---------  |:-----------------------------------------------------
        |`shipper`   | The shipper is responsible for this tax.
        |`recipient` | The recipient of the shipment is responsible for this tax.
      enum:
        - shipper
        - recipient
      title: taxable_entity_type
      type: string
    tokens_get_ephemeral_token_response_body.yaml:
      properties:
        redirect_url:
          description: The redirect url formatted with the requested token.
          type: string
        token:
          description: The requested token that expires in 10 seconds.
          type: string
      title: tokens_get_ephemeral_token_response_body.yaml
      type: object
    track_event:
      additionalProperties: false
      description: A track event
      properties:
        carrier_detail_code:
          description: Carrier detail code
          example: OT
          minLength: 1
          readOnly: true
          type: string
        carrier_occurred_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: Carrier timestamp for the event, it is assumed to be the local time of where the event occurred.
        carrier_status_code:
          description: Carrier status code
          example: 1
          minLength: 1
          readOnly: true
          type: string
        carrier_status_description:
          description: carrier status description
          example: Your item was delivered in or at the mailbox at 9:10 am on March
          minLength: 0
          readOnly: true
          type: string
        city_locality:
          description: City locality
          example: AUSTIN
          minLength: 0
          readOnly: true
          type: string
        company_name:
          description: Company Name
          example: Stamps.com
          minLength: 0
          readOnly: true
          type: string
        country_code:
          allOf:
            - $ref: "#/components/schemas/country_code"
        description:
          description: Event description
          example: Delivered, In/At Mailbox
          minLength: 0
          readOnly: true
          type: string
        event_code:
          description: Event Code
          minLength: 0
          type: string
        latitude:
          description: Latitude coordinate of tracking event.
          format: double
          maximum: 90
          minimum: -90
          type: number
        longitude:
          description: Longitude coordinate of tracking event.
          format: double
          maximum: 180
          minimum: -180
          type: number
        occurred_at:
          allOf:
            - $ref: "#/components/schemas/date_time"
          description: Timestamp for carrier event
        postal_code:
          description: Postal code
          example: 78756
          minLength: 0
          readOnly: true
          type: string
        signer:
          description: Signer information
          minLength: 0
          readOnly: true
          type: string
        state_province:
          description: State province
          example: TX
          minLength: 2
          readOnly: true
          type: string
        status_code:
          allOf:
            - $ref: "#/components/schemas/status_code"
        status_description:
          description: Event Status Description
          example: In Transit
          minLength: 1
          readOnly: true
          type: string
      required:
        - occurred_at
        - city_locality
        - state_province
        - postal_code
        - carrier_detail_code
        - status_code
        - status_description
        - carrier_status_code
        - carrier_status_description
      title: track_event
      type: object
    tracking_information:
      additionalProperties: false
      description: A tracking information resource
      properties:
        actual_delivery_date:
          allOf:
            - $ref: "#/components/schemas/date_time"
        carrier_code:
          allOf:
            - $ref: "#/components/schemas/carrier_code"
        carrier_detail_code:
          description: Carrier detail code
          example: OT
          minLength: 1
          readOnly: true
          type: string
        carrier_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
        carrier_status_code:
          description: Carrier status code
          example: 1
          minLength: 1
          readOnly: true
          type: string
        carrier_status_description:
          description: carrier status description
          example: Your item was delivered in or at the mailbox at 9:10 am on March
          minLength: 0
          readOnly: true
          type: string
        estimated_delivery_date:
          allOf:
            - $ref: "#/components/schemas/date_time"
        events:
          description: The events that have occured during the lifetime of this tracking number.
          items:
            $ref: "#/components/schemas/track_event"
          readOnly: true
          type: array
        exception_description:
          description: Exception description
          minLength: 0
          readOnly: true
          type: string
        ship_date:
          allOf:
            - $ref: "#/components/schemas/date_time"
        status_code:
          allOf:
            - $ref: "#/components/schemas/status_code"
        status_description:
          description: Status description
          example: Delivered
          minLength: 0
          readOnly: true
          type: string
        tracking_number:
          allOf:
            - $ref: "#/components/schemas/tracking_number"
        tracking_url:
          description: Carrier Tracking Url, if available
          example: https://www.fedex.com/fedextrack/?action=track&trackingnumber=1234
          readOnly: true
          type: string
      title: tracking_information
      type: object
    tracking_number:
      description: A tracking number for a package. The format depends on the carrier.
      example: 1Z932R800392060079
      minLength: 1
      title: tracking_number
      type: string
    tracking_status:
      description: The different statuses that can apply to a shipment.
      enum:
        - unknown
        - in_transit
        - error
        - delivered
      title: tracking_status
      type: string
    update_account_settings_image_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/account_settings_images"
      description: A ShipEngine account settings images request body
      required:
        - is_default
      title: update_account_settings_image_request_body
      type: object
    update_amazon_buy_shipping_request_body:
      additionalProperties: false
      description: An amazon buy shipping account settings request body
      properties:
        email:
          description: Email
          minLength: 1
          type: string
      title: update_amazon_buy_shipping_request_body
      type: object
    update_carrier_settings_request_body:
      oneOf:
        - $ref: "#/components/schemas/update_dhl_express_settings_request_body"
        - $ref: "#/components/schemas/update_fedex_settings_request_body"
        - $ref: "#/components/schemas/update_newgistics_settings_request_body"
        - $ref: "#/components/schemas/update_ups_settings_request_body"
        - $ref: "#/components/schemas/update_amazon_buy_shipping_request_body"
      title: update_carrier_settings_request_body
    update_dhl_express_settings_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/dhl_express_account_settings"
      description: An update dhl express settings request body
      title: update_dhl_express_settings_request_body
      type: object
    update_fedex_settings_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/fedex_account_settings"
      description: An update Fedex settings request body
      title: update_fedex_settings_request_body
      type: object
    update_newgistics_settings_request_body:
      additionalProperties: false
      description: A newgistics account settings request body
      properties:
        include_barcode_with_order_number:
          type: boolean
        receive_email_on_manifest_processing:
          type: boolean
      title: update_newgistics_settings_request_body
      type: object
    update_package_type_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/package_type"
      description: An update package type request body
      title: update_package_type_request_body
      type: object
    update_shipment_fields:
      properties:
        validate_address:
          allOf:
            - $ref: "#/components/schemas/validate_address"
          default: no_validation
      title: update_shipment_fields
      type: object
    update_shipment_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/partial_shipment"
        - $ref: "#/components/schemas/update_shipment_fields"
      description: An update shipment request body
      required:
        - ship_to
        - ship_from
      title: update_shipment_request_body
      type: object
    update_shipment_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/create_and_validate_shipment"
      description: An update shipment response body
      required:
        - errors
        - has_errors
        - address_validation
        - shipment_id
        - carrier_id
        - service_code
        - ship_date
        - created_at
        - shipment_status
        - ship_to
        - ship_from
        - return_to
        - confirmation
        - customs
        - advanced_options
        - insurance_provider
        - tags
        - packages
        - total_weight
      title: update_shipment_response_body
      type: object
    update_ups_settings_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/ups_account_settings"
      description: An update UPS settings request body
      title: update_ups_settings_request_body
      type: object
    update_warehouse_request_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/warehouse"
      description: An update warehouse request body
      required:
        - name
        - origin_address
      title: update_warehouse_request_body
      type: object
    update_warehouse_settings_request_body:
      additionalProperties: false
      description: An update warehouse settings request body
      properties:
        is_default:
          description: The default property on the warehouse.
          example: true
          nullable: true
          type: boolean
      title: update_warehouse_settings_request_body
      type: object
    update_webhook_request_body:
      additionalProperties: false
      description: An update webhook request body
      properties:
        url:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The url that the wehbook sends the request
          example: https://[YOUR ENDPOINT ID].x.requestbin.com
      title: update_webhook_request_body
      type: object
    ups_account_settings:
      additionalProperties: false
      description: UPS account settings
      properties:
        account_postal_code:
          description: account postal code
          minLength: 5
          type: string
        invoice:
          allOf:
            - $ref: "#/components/schemas/ups_invoice"
          description: The invoice
        is_primary_account:
          description: Indicates if this is the primary UPS account
          type: boolean
        mail_innovations_cost_center:
          description: mail innovations cost center
          minLength: 0
          type: string
        mail_innovations_endorsement:
          allOf:
            - $ref: "#/components/schemas/ancillary_service_endorsement"
        nickname:
          description: nickname
          minLength: 1
          type: string
        pickup_type:
          allOf:
            - $ref: "#/components/schemas/ups_pickup_type"
        use_carbon_neutral_shipping_program:
          description: The use carbon neutral shipping program
          type: boolean
        use_consolidation_services:
          description: The use consolidation services
          type: boolean
        use_ground_freight_pricing:
          description: The use ground freight pricing
          type: boolean
        use_negotiated_rates:
          description: The use negotiated rates
          type: boolean
        use_order_number_on_mail_innovations_labels:
          description: The use order number on mail innovations labels
          type: boolean
      title: ups_account_settings
      type: object
    ups_invoice:
      additionalProperties: false
      description: UPS invoice
      properties:
        control_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the control
        invoice_amount:
          format: double
          minimum: 0
          type: number
        invoice_currency_code:
          type: string
        invoice_date:
          description: invoice date
          format: date-time
          minLength: 1
          type: string
        invoice_number:
          description: invoice number
          minLength: 1
          type: string
      title: ups_invoice
      type: object
    ups_pickup_type:
      description: The possible ups pickup type values
      enum:
        - daily_pickup
        - occasional_pickup
        - customer_counter
      title: ups_pickup_type
      type: string
    ups_settings_response_body:
      additionalProperties: false
      allOf:
        - $ref: "#/components/schemas/ups_account_settings"
      description: A UPS settings response body
      title: ups_settings_response_body
      type: object
    url:
      description: A URL
      example: http://api.shipengine.com/v1/labels/se-28529731
      format: url
      minLength: 1
      title: url
      type: string
    uuid:
      description: A UUID (a.k.a. GUID) that uniquely identifies a resource
      example: aa3d8e8e-462b-4476-9618-72db7f7b7009
      format: uuid
      maxLength: 36
      minLength: 36
      pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$
      title: uuid
      type: string
    validate_address:
      description: The possible validate address values
      enum:
        - no_validation
        - validate_only
        - validate_and_clean
      title: validate_address
      type: string
    validate_address_request_body:
      description: An address validation request body
      items:
        allOf:
          - $ref: "#/components/schemas/address_to_validate"
        description: An array of addresses to validate.
      title: validate_address_request_body
      type: array
    validate_address_response_body:
      description: An address validation response body
      items:
        allOf:
          - $ref: "#/components/schemas/address_validation_result"
        description: The address validation response body
        readOnly: true
      title: validate_address_response_body
      type: array
    validate_shipment_fields:
      properties:
        validate_address:
          allOf:
            - $ref: "#/components/schemas/validate_address"
          default: no_validation
      title: validate_shipment_fields
      type: object
    validation_status:
      description: The possible validation status values
      enum:
        - valid
        - invalid
        - has_warnings
        - unknown
      title: validation_status
      type: string
    void_label_response_body:
      additionalProperties: false
      description: A void label response body
      properties:
        approved:
          description: Indicates whether the attempt to void the label was successful
          readOnly: true
          type: boolean
        message:
          example: Request for refund submitted.  This label has been voided.
          minLength: 0
          readOnly: true
          type: string
      required:
        - approved
        - message
      title: void_label_response_body
      type: object
    warehouse:
      additionalProperties: false
      description: A warehouse
      properties:
        created_at:
          description: Timestamp that indicates when the warehouse was created
          example: 2019-06-25T18:12:35.583Z
          format: date-time
          minLength: 1
          readOnly: true
          type: string
        is_default:
          default: false
          description: Designates which single warehouse is the default on the account
          nullable: true
          type: boolean
        name:
          description: Name of the warehouse
          example: Zero Cool HQ
          minLength: 1
          type: string
        origin_address:
          allOf:
            - $ref: "#/components/schemas/address"
          description: The origin address of the warehouse
        return_address:
          allOf:
            - $ref: "#/components/schemas/address"
          description: The return address associated with the warehouse
        warehouse_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the warehouse
          readOnly: true
      title: warehouse
      type: object
    webhook:
      additionalProperties: false
      description: A webhook
      properties:
        event:
          allOf:
            - $ref: "#/components/schemas/webhook_event"
        url:
          allOf:
            - $ref: "#/components/schemas/url"
          description: The url that the webhook sends the request to
          example: https://[YOUR ENDPOINT ID].x.requestbin.com
        webhook_id:
          allOf:
            - $ref: "#/components/schemas/se_id"
          description: A string that uniquely identifies the webhook
          readOnly: true
      title: webhook
      type: object
    webhook_event:
      description: The possible webook event values
      enum:
        - batch
        - carrier_connected
        - order_source_refresh_complete
        - rate
        - report_complete
        - sales_orders_imported
        - track
      title: webhook_event
      type: string
    weight:
      additionalProperties: false
      description: The weight of a package
      properties:
        unit:
          allOf:
            - $ref: "#/components/schemas/weight_unit"
        value:
          description: The weight, in the specified unit
          exclusiveMinimum: true
          format: double
          minimum: 0
          type: number
      required:
        - value
        - unit
      title: weight
      type: object
    weight_unit:
      description: The possible weight unit values
      enum:
        - pound
        - ounce
        - gram
        - kilogram
      title: weight_unit
      type: string
  securitySchemes:
    api_key:
      description: |
        To authenticate yourself to ShipEngine, you need to include an `API-Key` header in each API call. If you don't include a key when making an API request, or if you use an incorrect or expired key, then ShipEngine will respond with a `401 Unauthorized` error.

        Learn more about API keys in our [authentication guide](https://www.shipengine.com/docs/auth/).
      in: header
      name: API-Key
      type: apiKey
