Veho quotes API

Quotes

OpenAPI Specification

veho-quotes-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Veho labels quotes API
  version: '2.2'
  contact:
    email: info@shipveho.com
    url: https://shipveho.com/
    name: Veho
  description: 'Welcome to the Veho API documentation! You can use the Veho API to programmatically create shipments and download shipping labels.

    You''re viewing Version 2 of the Veho API, which is our current version, meaning it''s actively supported. Veho API V1 is deprecated.'
  summary: Veho API to programmatically create shipments and download shipping labels
servers:
- url: https://api.shipveho.com/v2
  description: Production
- url: https://api.sandbox.shipveho.com/v2
  description: Sandbox
security:
- apiKey: []
tags:
- name: quotes
  description: Quotes
paths:
  /quote/rate:
    post:
      servers:
      - url: https://api.shipveho.com/v2
        description: Production
      operationId: createSimpleQuote
      summary: Create a simple quote for a provisional order
      description: 'Create a simple quote.

        This endpoint should be used to retrieve the rate and transit time for a package that travels through the zips provided.

        > BY ACCESSING AND USING THE QUOTES API ENDPOINT, YOU/COMPANY ACKNOWLEDGE AND AGREE THIS IS A PILOT AND ANY QUOTED RATE(S) OR TRANSIT TIME(S) RETURNED BY THIS QUOTES API ENDPOINT ARE ESTIMATES ONLY AND PROVIDED SOLELY FOR INFORMATIONAL PURPOSES. EXCEPT AS AGREED TO BY VEHO IN A FULLY EXECUTED WRITTEN CONTRACT ("CONTRACT"), VEHO MAKES NO TIME COMMITMENTS FOR PACKAGE TRANSIT. QUOTED RATES MAY VARY FROM FINAL ACTUAL AMOUNT(S) INVOICED DEPENDING ON VARIABLES INCLUDING BUT NOT LIMITED TO SERVICE DATE AND TIME, ROUTE, CHANGES IN PARCEL OR SHIPPING CHARACTERISTICS, APPLICABLE SURCHARGES, AGREED UPON ADDITIONAL FEES, AND/OR SERVICE AVAILABILITY. IN THE EVENT OF ANY CONFLICT BETWEEN THE QUOTED RATES RETURNED VIA THE QUOTES API ENDPOINT AND THE RATES SET FORTH IN VEHO''S CONTRACT WITH YOU/COMPANY, THE RATES SET FORTH IN SUCH CONTRACT SHALL PREVAIL, GOVERN, AND APPLY.

        '
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimpleQuoteResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        '500':
          $ref: '#/components/responses/500'
        '503':
          $ref: '#/components/responses/503'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimpleQuoteRequest'
              x-examples:
                example-1:
                  originationZip: '22001'
                  deliveryZip: '22001'
                  shipDate: '2024-06-01'
                  length: 50
                  width: 50
                  height: 50
                  weight: 10
      parameters: []
      tags:
      - quotes
components:
  responses:
    '422':
      description: Unprocessable Entity -- The request was well formatted, but failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    '503':
      description: Service Unavailable -- We're temporarily offline for maintenance. Please try again later.
    '400':
      description: Bad Request -- The request wasn't valid JSON or had missing or invalid fields
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    '403':
      description: Forbidden -- The requested resource cannot be accessed with this apiKey.
    '429':
      description: Too Many Requests
    '500':
      description: Internal Server Error -- We had a problem with our server. Try again later.
    '401':
      description: Unauthorized -- The header did not include a valid apiKey header.
  schemas:
    ErrorResponse:
      description: Error response object
      type: object
      required:
      - message
      properties:
        message:
          description: Error description
          type: string
        errors:
          description: List of validation errors
          type: array
          items:
            type: object
            required:
            - code
            - message
            - path
            properties:
              code:
                description: Error code
                type: string
                enum:
                - invalid_type
                - unrecognized_keys
                - invalid_string
                - invalid_enum_value
                - invalid_date
                - too_small
                - too_big
                - invalid_packages
                - invalid_address_field
                - unserviceable_zip_code
                - invalid_merchant
                - invalid_external_client
                - missing_package_description
              message:
                type: string
                description: Error description
              path:
                description: Path to the invalid field in your input
                type: array
                items:
                  type:
                  - string
                  - number
              expected:
                type: string
                description: Expected type
              received:
                type: string
                description: Received type
              keys:
                description: List of unrecognized keys
                type: array
                items:
                  type: string
              options:
                description: Valid string values for the enum
                type: array
                items:
                  type: string
              minimum:
                type: number
                description: Minimum expected length/value
              maximum:
                type: number
                description: Maximum expected length/value
        error:
          description: Legacy error description (deprecated)
          deprecated: true
          oneOf:
          - type: object
            properties:
              code:
                type: integer
              error:
                type: string
          - type: string
    SimpleQuoteRequest:
      type: object
      description: Required fields for a simple quote generation request
      required:
      - originationZip
      - deliveryZip
      - packages
      properties:
        originationZip:
          type: string
          description: ZIP code the package originates from
          pattern: ^\d{5}(-?\d{4})?$
        deliveryZip:
          type: string
          description: The delivery ZIP code
          pattern: ^\d{5}(-?\d{4})?$
        packages:
          type: array
          description: An array of packages to be quoted
          minItems: 1
          maxItems: 10
          items:
            type: object
            required:
            - length
            - width
            - height
            - weight
            properties:
              length:
                type: number
                maximum: 48
                minimum: 0
                description: Length (inches) of the package
              width:
                type: number
                maximum: 48
                minimum: 0
                description: Width (inches) of the package
              height:
                type: number
                maximum: 48
                minimum: 0
                description: Height (inches) of the package
              weight:
                type: number
                maximum: 50
                exclusiveMinimum: 0
                description: Weight (pounds) of the package
              attendedDelivery:
                type: object
                description: Optional attended delivery configuration for the package
                properties:
                  verificationType:
                    type: string
                    description: The type of verification required for attended delivery
                    enum:
                    - pinVerification
                required:
                - verificationType
        shipDate:
          type: string
          description: A string in the ISO 8601 calendar date extended format, e.g. 2019-08-13, representing the day on which the package is expected to be tendered. The date must be today or greater. It cannot be in the past.
          format: date
        serviceClass:
          type: string
          default: groundPlus
          optional: true
          description: Requested class of service. The SLA for how long it will take a package to reach its destination, once it has been injected into a Veho facility
          enum:
          - nextDay
          - sameDay
          - twoDay
          - vehoValue
          - groundPlus
          - premiumEconomy
          - expressAir
          - groundPlusOne
          - groundPlusTwo
          - groundPlusThree
          - groundPlusFour
    SimpleQuoteResponse:
      type: array
      description: An array of quoted packages, including rates and assumed dates
      items:
        $ref: '#/components/schemas/SimpleQuoteItem'
    SimpleQuoteItem:
      type: object
      properties:
        quoteId:
          type: string
          description: ID of the generated quote associated to the rated package
        transitTime:
          type: number
          description: Days package will be in transit
        serviceClass:
          type: string
          default: groundPlus
          description: Requested class of service. The SLA for how long it will take a package to reach its destination, once it has been injected into a Veho facility
          enum:
          - nextDay
          - sameDay
          - twoDay
          - vehoValue
          - groundPlus
          - premiumEconomy
          - expressAir
          - groundPlusOne
          - groundPlusTwo
          - groundPlusThree
          - groundPlusFour
        currency:
          type: string
          default: USD
          description: Currency for rate, currently only `USD` is available
          enum:
          - USD
        rate:
          type: number
          description: All-in rate for quoted order
          minimum: 0
        assumedInjectionZip:
          type: string
          description: The injection ZIP code assumed for the quote calculation
        createdAt:
          type: string
          description: Time at which the quote was created
          format: date-time
        shipDate:
          type: string
          description: A string in the ISO 8601 calendar date extended format, e.g. 2019-08-13, representing the day on which the package is expected to be tendered. The date must be today or greater. It cannot be in the past.
          format: date
        weight:
          type: number
          description: Weight (pounds) of the package
        billableWeight:
          type: number
          description: Weight of the package as used for rate calculations. This is derived from the greater of package weight rounded to the nearest pound, or the package volume divided by dim factor.
        length:
          type: number
          description: Length (inches) of the package
        width:
          type: number
          description: Width (inches) of the package
        height:
          type: number
          description: Height (inches) of the package
        zone:
          type: string
          description: Zone of the package
  securitySchemes:
    apiKey:
      name: apikey
      type: apiKey
      in: header
x-stoplight:
  id: e777wryv1msks