PartsTech Punchout Quote API

Quote Methods

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/partstech-punchout-quote-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

partstech-punchout-quote-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.021.1
  title: PartsTech Punchout Quote API
  description: "\n# Rate Limiting\n\nRequests can be limited by user requests, by private partner requests and by all requests with partner's credentials.\nIt has several time intervals:\n  - *Per day* restricts count of requests made in one day.\n  - *Requests per second* restricts count of requests made in one second.\n  - *Concurrent requests* restricts count of parallel requests.\n  - *Sliding 15 minutes* restricts count of requests made in last 15 minutes.\n\n**Note**: Every method has own separate sets of the limits.\n\n## Headers\nUse the HTTP headers in order to understand where the application is at for a given rate limit, on the method that was just utilized.\nThe HTTP header is returned only for one general limit or for limit that user reached.\n\n\n*Headers*\n  - the rate limit ceiling for that given endpoint:\n  ```\n  x-rate-limit-limit: 1000\n  ```\n  - the number of requests left:\n  ```\n  x-rate-limit-remaining: 570\n  ```\n  - the remaining window before the rate limit resets, in UTC [epoch seconds](https://en.wikipedia.org/wiki/Unix_time):\n  ```\n  x-rate-limit-reset: 1552003200\n  ```\n\nWhen an application exceeds the rate limit for a given standard API endpoint,\nthe API will return a HTTP 429 “Too Many Requests” response code, and the following error will be returned in the response body:\n```\n{\n  \"error\": {\n    \"code\": \"TooManyRequests\",\n    \"message\": \"Some description\"\n  }\n}\n```\n\n# Pagination\n\nWhen you call an API method to retrieve information, it can be returned to you in portions.\nCheck out more detail below on pagination in API methods, including how to use them and which methods follow the pattern.\n\nAPI methods that supports pagination will return the `Link` header. It will include available urls of `first`, `last`, `previous` and `next` pages.\n\n```\nLink: <https://api.partstech.com/purchases?page=1>; rel=\"first\"\nLink: <https://api.partstech.com/purchases?page=1>; rel=\"previous\"\nLink: <https://api.partstech.com/purchases?page=3>; rel=\"next\"\nLink: <https://api.partstech.com/purchases?page=142>; rel=\"last\"\n```\n\n# MOTOR Compliance Requirements\n\nAll MOTOR-powered endpoints (Labor, Maintenance Schedules, Fluids, and Specifications) return a `Link` header\ncontaining the URL to MOTOR's OEM Compliance Requirements documentation.\n\nThe header follows the [RFC 8288 (Web Linking)](https://tools.ietf.org/html/rfc8288) format:\n\n```\nLink: <https://www.motor.com/oem-compliance-requirements/>; rel=\"compliance\"\n```\n\n# Errors\n\nThe API uses standard HTTP status codes to indicate the success or failure of the API call. The body of the response will be JSON in the following format:\n\n```\n{\n  \"error\": {\n    \"code\": \"InternalErrorCode\",\n    \"message\": \"Some description\"\n  }\n}\n```\n\n# Error Responses\nSome default error responses used in the API.\n\nHttp Code  | Explanation | Content Type | Used error codes\n----------------|-------------|------------------|---------\n400 | Bad Request. The request was unacceptable. | `application/json` | `InvalidRequestSyntax`\n401 | Unauthorized. The request requires user or partner credentials or bearer token. Also used for invalid credentials or bearer token. | `application/json` | `InvalidToken`, `UserAuthenticationFailed`, `PartnerAuthenticationFailed`\n402 | Request Failed. The parameters were valid but the request failed. | `application/json` | Different codes, depend on method.\n403 | Forbidden. Also used for unauthorized requests such as improper credentials scopes or permissions issues. | `application/json` | `IncorrectMode`, `DisabledApiUsage`, `UserIsNotActivated`, `HaveNotPermission`, `NotAvailableMethod`\n404 | Some data in the request is not found. Or incorrect url was used. | `application/json`, `text/html`, no content | `NotFound`\n405 | Method not allowed. | `application/json`, `text/html`, no content |\n406 | Unacceptable content type. Client sent an accepts header for a content type which does not exist on the server. | No content |\n409 | Locked. One of the another operations that is in progress blocks this method call. | `application/json` | `LockedSession`\n429 | Too Many Requests | `application/json` | `TooManyRequests`\n432 | Integration Error | `application/json` |\n500 | Internal Server Error. (This is rare.) | `application/json` | `InternalError`\n501 | Not Implemented | `application/json` | `MethodNotImplemented`\n503 | The backend server is not available. (This is rare.) | No content |\n"
  x-logo:
    url: https://partstech.com/wp-content/uploads/2025/03/PartsTech_OEC-compnay_logo.svg
    altText: PartsTech logo
servers:
- url: https://api.partstech.com
  description: Production server
- url: https://api.beta.partstech.com
  description: Beta server
tags:
- name: punchout_quote
  description: Quote Methods
  x-displayName: Quotes
paths:
  /punchout/quote/create:
    post:
      summary: Create quote
      description: "Creates a new punchout session and returns a unique `sessionId` and `redirectUrl`. The `redirectUrl` is the session URL where your app will send the user to procure parts and tires. Visiting a `redirectUrl` will automatically log the visitor into the user account that the session was created for. Take care not to send one user to a session that was created for a different user. Sessions expire after 120 days for platform performance and stability.\n\nYou can include vehicle identifiers and search parameters in your request. A vehicle identifier will let PartsTech automatically select the vehicle in that session, while a search parameter will trigger an automatic search when the user is sent to the session.\n\nAccepted **vehicle identifiers**:\n  - VIN\n  - Plate & State\n  - PartsTech Vehicle ID\n  - Year, Make, Model, Submodel, Engine\n\nAccepted **search parameters**:\n  - Part Number\n  - Part Type ID\n  - Keyword\n  - Tire Size\n\nCheck out the Request Body Schema below for the possible parameters.\n"
      operationId: createQuote
      x-operation-name: CommandPunchoutQuoteCreate
      tags:
      - punchout_quote
      security:
      - bearerAuth:
        - user
      - apiKeyAuth:
        - user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                searchParams:
                  type:
                  - object
                  - 'null'
                  oneOf:
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParams'
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParamsByKeyword'
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParamsByPartTypes'
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParamsByTireId'
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParamsByTireSize'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParams'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParamsByKeyword'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParamsByPartTypes'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParamsByTireId'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParamsByTireSize'
                  - $ref: '#/components/schemas/VinSearchParams'
                  - $ref: '#/components/schemas/VinSearchParamsByKeyword'
                  - $ref: '#/components/schemas/VinSearchParamsByPartTypes'
                  - $ref: '#/components/schemas/VinSearchParamsByTireId'
                  - $ref: '#/components/schemas/VinSearchParamsByTireSize'
                  - $ref: '#/components/schemas/PlateSearchParams'
                  - $ref: '#/components/schemas/PlateSearchParamsByKeyword'
                  - $ref: '#/components/schemas/PlateSearchParamsByPartTypes'
                  - $ref: '#/components/schemas/PlateSearchParamsByTireId'
                  - $ref: '#/components/schemas/PlateSearchParamsByTireSize'
                  - $ref: '#/components/schemas/TireSizeSearchParams'
                  - $ref: '#/components/schemas/PartNumberSearchParams'
                urls:
                  $ref: '#/components/schemas/URLs'
                additionalInformation:
                  $ref: '#/components/schemas/PunchoutAdditionalInformation'
                settings:
                  $ref: '#/components/schemas/QuoteSettings'
            examples:
              PunchoutVehiclePartTypeSearch:
                summary: Search by Vehicle and PartTypeIds
                description: Make a quote with a search by Vehicle and PartTypeIds. `searchParams` accepts only `vehicleParams` and `partTypeIds` parameters.
                value:
                  searchParams:
                    vehicleParams:
                      yearId: 2014
                      makeId: 21
                      modelId: 104
                      subModelId: 3512
                      engineId: 2062
                      engineParams:
                        engineVinId: 31
                        engineDesignationId: 1
                        engineVersionId: 73
                        fuelTypeId: 14
                        cylinderHeadTypeId: 6
                    partTypeIds:
                    - 5132
                    - 10328
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
                  settings:
                    poNumber: 123
              PunchoutVehicleKeywordSearch:
                summary: Search by Vehicle and Keyword
                description: Make a quote with a search by Vehicle and PartTypeIds. `searchParams` accepts only `vehicleParams` and `keyword` parameters.
                value:
                  searchParams:
                    vehicleParams:
                      yearId: 2014
                      makeId: 21
                      modelId: 104
                      subModelId: 3512
                      engineId: 2062
                      engineParams:
                        engineVinId: 31
                        engineDesignationId: 1
                        engineVersionId: 73
                        fuelTypeId: 14
                        cylinderHeadTypeId: 6
                    keyword: Air Filter
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
              PunchoutVehicleTireIdSearch:
                summary: Search by Vehicle and TireId
                description: Make a quote with a search by Vehicle and TireId. `searchParams` accepts only `vehicleParams` and `tireId` parameters.
                value:
                  searchParams:
                    vehicleParams:
                      yearId: 2014
                      makeId: 76
                      modelId: 1026
                      subModelId: 3571
                      engineId: 2578
                      engineParams:
                        engineVinId: 1
                        engineDesignationId: 4833
                        engineVersionId: 3
                        fuelTypeId: 14
                        cylinderHeadTypeId: 6
                    tireId: 128618
              PunchoutVehicleTireSizeSearch:
                summary: Search by Vehicle and Tire Size
                description: Make a quote with a search by Vehicle and Tire Size. `searchParams` accepts only `vehicleParams`, `width`, `height` and `rim` parameters.
                value:
                  searchParams:
                    vehicleParams:
                      yearId: 2014
                      makeId: 76
                      modelId: 1026
                      subModelId: 3571
                      engineId: 2578
                      engineParams:
                        engineVinId: 1
                        engineDesignationId: 4833
                        engineVersionId: 3
                        fuelTypeId: 14
                        cylinderHeadTypeId: 6
                    width: 40
                    height: 14.5
                    rim: 18
              VehicleIdPartTypeSearch:
                summary: Search by PartsTech Vehicle ID and PartTypeIds
                description: Make a quote with a search by PartsTech Vehicle ID and PartTypeIds. `searchParams` accepts only `vehicleId` and `partTypeIds` parameters.
                value:
                  searchParams:
                    vehicleId: 287296
                    partTypeIds:
                    - 5132
                    - 10328
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
              VehicleIdKeywordSearch:
                summary: Search by PartsTech Vehicle ID and Keyword
                description: Make a quote with a search by PartsTech Vehicle ID and Keyword. `searchParams` accepts only `vehicleId` and `keyword` parameters.
                value:
                  searchParams:
                    vehicleId: 287296
                    keyword: Air Filter
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
              VehicleIdTireIdSearch:
                summary: Search by PartsTech Vehicle ID and TireId
                description: Make a quote with a search by PartsTech Vehicle ID and TireId. `searchParams` accepts only `vehicleId` and `tireId` parameters.
                value:
                  searchParams:
                    vehicleId: 586988
                    tireId: 128618
              VehicleIdTireSizeSearch:
                summary: Search by PartsTech Vehicle ID and Tire Size
                description: Make a quote with a search by PartsTech Vehicle ID and Tire Size. `searchParams` accepts only `vehicleId`, `width`, `height` and `rim` parameters.
                value:
                  searchParams:
                    vehicleId: 586988
                    width: 40
                    height: 14.5
                    rim: 18
              VinPartTypeSearch:
                summary: Search by VIN and PartTypeIds
                description: Make a quote with a search by VIN and PartTypeIds. `searchParams` accepts only `vin` and `partTypeIds` parameters.
                value:
                  searchParams:
                    vin: somevin
                    partTypeIds:
                    - 1005
                    - 1006
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
              VinKeywordSearch:
                summary: Search by VIN and Keyword
                description: Make a quote with a search by VIN and Keyword. `searchParams` accepts only `vin` and `keyword` parameters.
                value:
                  searchParams:
                    vin: somevin
                    keyword: Air Filter
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
              VinTireIdSearch:
                summary: Search by VIN and TireId
                description: Make a quote with a search by VIN and TireId. `searchParams` accepts only `vin` and `tireId` parameters.
                value:
                  searchParams:
                    vin: somevin
                    tireId: 128618
              VinTireSizeSearch:
                summary: Search by VIN and Tire Size
                description: Make a quote with a search by VIN and Tire Size. `searchParams` accepts only `vin`, `width`, `height` and `rim` parameters.
                value:
                  searchParams:
                    vin: somevin
                    width: 40
                    height: 14.5
                    rim: 18
              PlatePartTypeSearch:
                summary: Search by Plate and PartTypeIds
                description: Makes a quote with a search by Plate and PartTypeIds. `searchParams` accepts only `plate` and `partTypeIds` parameters.
                value:
                  searchParams:
                    plate:
                      plate: Some Plate
                      state: CT
                    partTypeIds:
                    - 1005
                    - 1006
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
              PlateKeywordSearch:
                summary: Search by Plate and Keyword
                description: Makes a quote with a search by Plate and Keyword. `searchParams` accepts only `plate` and `keyword` parameters.
                value:
                  searchParams:
                    plate:
                      plate: Some Plate
                      state: CT
                    keyword: Air Filter
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
              PlateTireIdSearch:
                summary: Search by Plate and TireId
                description: Makes a quote with a search by Plate and TireId. `searchParams` accepts only `plate` and `tireId` parameters.
                value:
                  searchParams:
                    plate:
                      plate: Some Plate
                      state: CT
                    tireId: 128618
              PlateTireSizeSearch:
                summary: Search by Plate and Tire Size
                description: Makes a quote with a search by Plate and Tire Size. `searchParams` accepts only `plate`, `width`, `height` and `rim` parameters.
                value:
                  searchParams:
                    plate:
                      plate: Some Plate
                      state: CT
                    width: 40
                    height: 14.5
                    rim: 18
              TireSizeSearch:
                summary: Search by Tire Size
                description: Makes a quote with a search by Tire Size. `searchParams` accepts only `width`, `height` and `rim` parameters.
                value:
                  searchParams:
                    width: 40
                    height: 14.5
                    rim: 18
              PartNumberSearch:
                summary: Search by PartNumber
                description: Makes a quote with a search by PartNumber. `searchParams` accepts only `partNumber` parameter.
                value:
                  searchParams:
                    partNumber:
                    - 331
                  urls:
                    callbackUrl: http://localhost:80/some-callback-url
                    callbackOrderUrl: http://localhost:80/some-callback-order-url
                    returnUrl: http://localhost:80/some-return-url
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - sessionId
                - redirectUrl
                properties:
                  sessionId:
                    type: string
                    example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                    description: The unique identifier of a punchout session.
                  redirectUrl:
                    type: string
                    description: The session URL.
                    format: url
                    example: https://app.partstech.com/api-search/your_partnerId/your_test_userId/1ag3d2b5240e4jcbbe3ee9c49c929fe4/
  /punchout/quote/update:
    post:
      summary: Update quote
      description: "Updates the search params and URLs of a given `sessionId`.\n\nReturns a `redirectUrl` for the updated session.\n\nAccepted **vehicle identifiers**:\n  - VIN\n  - Plate & State\n  - PartsTech Vehicle ID\n  - Year, Make, Model, Submodel, Engine\n\nAccepted **search parameters**:\n  - Part Number\n  - Part Type ID\n  - Keyword\n  - Tire Size\n\nCheck out the Request Body Schema below for the possible parameters.\n"
      operationId: updateQuote
      x-operation-name: CommandPunchoutQuoteUpdate
      tags:
      - punchout_quote
      security:
      - bearerAuth:
        - user
      - apiKeyAuth:
        - user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - sessionId
              properties:
                sessionId:
                  type: string
                  example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                  description: The unique identifier of a punchout session.
                searchParams:
                  oneOf:
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParams'
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParamsByKeyword'
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParamsByPartTypes'
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParamsByTireId'
                  - $ref: '#/components/schemas/PunchoutVehicleSearchParamsByTireSize'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParams'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParamsByKeyword'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParamsByPartTypes'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParamsByTireId'
                  - $ref: '#/components/schemas/PartsTechVehicleIdSearchParamsByTireSize'
                  - $ref: '#/components/schemas/VinSearchParams'
                  - $ref: '#/components/schemas/VinSearchParamsByKeyword'
                  - $ref: '#/components/schemas/VinSearchParamsByPartTypes'
                  - $ref: '#/components/schemas/VinSearchParamsByTireId'
                  - $ref: '#/components/schemas/VinSearchParamsByTireSize'
                  - $ref: '#/components/schemas/PlateSearchParams'
                  - $ref: '#/components/schemas/PlateSearchParamsByKeyword'
                  - $ref: '#/components/schemas/PlateSearchParamsByPartTypes'
                  - $ref: '#/components/schemas/PlateSearchParamsByTireId'
                  - $ref: '#/components/schemas/PlateSearchParamsByTireSize'
                  - $ref: '#/components/schemas/TireSizeSearchParams'
                  - $ref: '#/components/schemas/PartNumberSearchParams'
                urls:
                  $ref: '#/components/schemas/URLs'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - sessionId
                - redirectUrl
                properties:
                  sessionId:
                    type: string
                    example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                    description: The unique identifier of a punchout session.
                  redirectUrl:
                    type: string
                    format: url
                    example: https://app.partstech.com/api-search/your_partnerId/your_test_userId/1ag3d2b5240e4jcbbe3ee9c49c929fe4/
                    description: The session URL.
  /punchout/quote/info:
    post:
      summary: Get quote info
      description: 'Returns details about the punchout session and the `redirectUrl` to open the punchout session.

        '
      operationId: getQuoteInformation
      x-operation-name: QueryPunchoutQuoteInfo
      tags:
      - punchout_quote
      security:
      - bearerAuth:
        - user
      - apiKeyAuth:
        - user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - sessionId
              properties:
                sessionId:
                  type: string
                  example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                  description: The unique identifier of a punchout session.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - sessionId
                - quote
                properties:
                  sessionId:
                    type: string
                    example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                    description: The unique identifier of a punchout session.
                  redirectUrl:
                    type:
                    - string
                    - 'null'
                    format: url
                    example: https://app.partstech.com/api-search/your_partnerId/your_test_userId/1ag3d2b5240e4jcbbe3ee9c49c929fe4/
                    description: The session URL.
                  quote:
                    type: object
                    required:
                    - status
                    - submitted
                    properties:
                      date:
                        type: string
                        format: date-time
                        description: 'The date and time that the session was created. In the format: ISO 8601/RFC 3339, UTC'
                      status:
                        type: string
                        enum:
                        - OPEN
                        - CLOSED
                        description: The session is OPEN until a purchase method is called on the session to order the items in the cart.
                      closedDate:
                        type:
                        - string
                        - 'null'
                        format: date-time
                        description: 'The date and time that the session was closed. In the format: ISO 8601/RFC 3339, UTC'
                      submitted:
                        type: boolean
                        example: true
                        description: False until one of the cart buttons is used.
                      urls:
                        $ref: '#/components/schemas/URLs'
  /punchout/quote/stock-order:
    post:
      summary: Create Stock Order Quote
      description: 'Creates a new stock order punchout session with the provided part numbers and quantity of each. Returns a unique `sessionId` for the newly created session and a `redirectUrl` to open the session.


        When opening a stock order session, PartsTech attempts to find the correct parts and place those parts on the correct supplier card. The more part information that is provided in the request, the more accurate and efficient the parts selection will be.


        Providing the `storeId` for each part enables PartsTech to automatically select the correct supplier for each part on the stock order punchout. This saves users a lot of time. In addition to the `partNumber`, providing each part''s `partId` and `lineCardId` will enable a much more accurate parts selection. Each Id referenced here can be found in the part data for each part in cart callbacks.

        '
      operationId: createStockOrderQuote
      x-operation-name: CreatePunchoutQuoteStockOrder
      tags:
      - punchout_quote
      security:
      - bearerAuth:
        - user
      - apiKeyAuth:
        - user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - parts
              properties:
                parts:
                  description: Information for one or more parts.
                  type: array
                  items:
                    type: object
                    description: 'At least one of `partNumber` or `partId` must be provided. Both may be provided together.

                      '
                    properties:
                      partNumber:
                        type:
                        - string
                        - 'null'
                        description: The manufacturer part number. Required if `partId` is not provided.
                      partId:
                        type:
                        - string
                        - 'null'
                        pattern: ^.{1,}\-.*$
                        description: PartsTech's ID for a part. Consists of `brandId`-`partNumber`. Makes part selection more accurate. Required if `partNumber` is not provided.
                      quantity:
                        type:
                        - integer
                        - 'null'
                        description: The requested quantity for a part. Automatically fills in the quantity for a part.
                      storeId:
                        type:
                        - integer
                        - 'null'
                        description: PartsTech's ID for a supplier location. Automatically places a part on the correct supplier card.
                      lineCardId:
                        type:
                        - integer
                        - 'null'
                        description: PartsTech's ID for a line code. Makes part selection much more accurate when provided in requests to create a cart or search the PartsTech Catalog.
                  example:
                  - partNumber: 123
                    partId: DFFD-123
                    quantity: 1
                    storeId: 1
                  - partNumber: 124
                    partId: DFFD-124
                    quantity: 2
                    lineCardId: 1
                urls:
                  $ref: '#/components/schemas/URLs'
                additionalInformation:
                  $ref: '#/components/schemas/PunchoutAdditionalInformation'
                settings:
                  $ref: '#/components/schemas/QuoteSettings'
                storeId:
                  description: 'PartsTech Id of a store. Defines a tab that will be opened by default on the stock order page.


                    Deprecated. Send storeId for every part.

                    '
                  type:
                  - integer
                  - 'null'
                  deprecated: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - sessionId
                - redirectUrl
                properties:
                  sessionId:
                    type: string
                    example: 1ag3d2b5240e4jcbbe3ee9c49c929fe4
                    description: The unique identifier of a punchout session.
                  redirectUrl:
                    type: string
                    format: url
                    example: https://app.partstech.com/api-search/your_partnerId/your_test_userId/1ag3d2b5240e4jcbbe3ee9c49c929fe4/
components:
  schemas:
    VinSearchParamsByTireSize:
      allOf:
      - $ref: '#/components/schemas/VinSearchParams'
      - $ref: '#/components/schemas/TireSizeSearchParams'
    VinSearchParamsByPartTypes:
      allOf:
      - $ref: '#/components/schemas/VinSearchParams'
      - $ref: '#/components/schemas/PartTypesSearchParams'
    VehicleParamsByEngineConfigId:
      title: Vehicle params with engineConfigId
      description: 'Vehicle parameters with Engine Config ID.


        EngineID and other Engine parameters will be defined by Engine Config ID.

        '
      type: object
      required:
      - yearId
      - makeId
      - modelId
      - subModelId
      - engineConfigId
      properties:
        yearId:
          type: integer
          exampl

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/partstech/refs/heads/main/openapi/partstech-punchout-quote-api-openapi.yml