openapi: 3.0.0
info:
  version: '1'
  title: 'Encompass Supply Chain Solutions'
  description: 'Services require a user name and password that must be obtained from Encompass.  We issue a single set of credentials for all invironments.  Please make sure you are pointing to the correct endpoint described in the __servers__ section.  Services all return the elements `status->errorCode` and `status->errorMessage`.  Successful reqeusts will return a __100__ `errorCode`.   If you have any questions that are not answered here or would like to discuss the overall process, please contact your account rep to schedule a technical call.'
servers:
  - url: https://test.encompass.com
    description: 'Development server (uses test data - no orders will be placed)'
  - url: https://encompass.com
    description: 'Production server __(uses live data - orders will be placed)__'
tags:
- name: Parts Prediction
  description: 'We can provide parts prediction data to you, and you can help us add to the data.  We will return a `symptoms` array in our `modelPartList` service if availible.  This will show all symptons and if we have triage data for each symptom.  You can send the specific symptom back to the service to see our prarts prediction data.  `data->parts[x]->fixPercentage` will also be returned with The `symptoms->id` from either our `partsInformation` service or our `modelPartList` service can be sent along with the part when creating an order using our `createOrder` service.  This allows us to continue to improve our data model.  Further details are provided in each of the specific services documentation.'
- name: API
  description: 'Main list of services'
  externalDocs:
    description: 'Find out more'
    url: https://encompass.com/rest
- name: PostOrder
  description: 'post order services'
- name: Research
  description: 'Research services that are availible for certain clients.'
- name: RoundTrip
  description: 'Use our RoundTrip service to provide a quicker partial integration with your backend system that only requires our `createOrder`.  You will also create a rest service on you side where we will send the order requests.  It must match the `orderRequest` service.  All other operations will be done using our website.  You will provide a special link to your clients that will pass information to our site.'
paths:
  /restfulservice/brandList:
    post:
      tags:
      - API
      summary: 'Brand List'
      description: 'Get a list of manufacturer codes and names.  We map 3 character code to the manufacturer names.  This code can be used to limit searches and order parts.  This is done because we have many part numbers that run across multiple brands.  This service should does not need to be called often.  Most clients call the service once and store a map in their system that ties their code to ours.  They might call it monthly after that.  We do not change codes, we only add new.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    programName:
                      type: string
                      example: 'JSON.MFG.LIST'
                      description: ''
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      manufacturers:
                        type: array
                        description: 'array of manufacturers'
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: 'MSC'
                            name:
                              type: string
                              example: 'Panasonic'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/search:
    post:
      tags:
      - API
      summary: 'Search'
      description: 'search for parts and models'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                data:
                  type: object 
                  required:
                  - searchTerm
                  properties:
                    searchTerm:
                      type: string
                      minLength: 3
                      maxLength: 50
                      example: 'WA422PRHDWR/AA'
                      description: 'what you want to search for'
                    mode:
                      type: string
                      description: |
                        limit results by type
                        |Value|Description|
                        |-------|--------|
                        |null|all|
                        |part|parts only|
                        |model|models only|
                      example: ''
                    limitBrand:
                      type: string
                      example: 'SON'
                      maxLength: 3
                      description: 'limit results to a specific manufacturerCode from the `brandList` service'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      numberOfParts:
                        type: number
                        example: 1
                      numberOfModels:
                        type: number
                        example: 1
                      totalItems:
                        type: number
                        example: 2
                      parts:
                        type: array
                        description: 'array of part details'
                        items:
                          type: object
                          properties:
                            basePN:
                              type: string
                              example: '9316504'
                            mfgCode:
                              type: string
                              example: 'SMG'
                            partNumber:
                              type: string
                              example: 'DC97-16987B'
                            description:
                              type: string
                              example: 'ASSY BALANCER;HUDSON WASHER,WA456DRHDWR'
                            partImage:
                              type: string
                              example: 'https://encompass-11307.kxcdn.com/imageDisplay?mfgCode=SMG&type=b&size=s'
                            mfgName:
                              type: string
                              example: 'Samsung'
                      models:
                        type: array
                        description: 'array of model details'
                        items:
                          type: object
                          properties:
                            modelID:
                              type: string
                              example: 'ZENLSDT9908ST'
                            mfgCode:
                              type: string
                              example: 'ZEN'
                            modelNumber:
                              type: string
                              example: 'LSDT9908ST'
                            description:
                              type: string
                              example: '24-inch Top Control Built-in Dishwasher'
                            modelImage:
                              type: string
                              example: 'https://encompass-11307.kxcdn.com/imageDisplay?mfgCode=ZEN&type=b&size=t'
                            mfgName:
                              type: string
                              example: 'LG'
                            numberOfParts:
                              type: number
                              example: '119'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|invalid json string|
                      |-201|invalid jsonUser|
                      |-202|empty search term|
                      |-203|searchTerm must be at least 3 characters|
                      |-204|no results|
                      |-205|searchTerm must be less than 50 characters|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/modelPartList:
    post:
      tags:
      - API
      summary: 'Model Part List'
      description: 'Get all of the information about a model including the bill of materials. This service requires the `modelID` from the `search` service.  Please review the `452` under `responses` to learn more about how to handle model variations.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    programName:
                      type: string
                      example: 'JSON.MODEL.INFORMATION'
                      description: ''
                data:
                  type: object 
                  required:
                  - modelID
                  properties:
                    modelID:
                      type: string
                      example: 'SMGWA422PRHDWR/AA'
                      description: '`modelID` received from the search service'
                    modelVariation:
                      type: string
                      example: '0001'
                      description: 'Some models require a variation.  This means that the model might have been made in different factories.  Most of the parts will be the same, but some might be dfferent.  If a model requires this, and you do not provide it, you will get response `452`.  This will give you all of the information to make your selection.  See the response code `452` for more details.'
                    symptomID:
                      type: string
                      example: ''
                      description: 'This could be selected from the `symptoms` array retuned by this service on the first call if we have parts prediction data available for this model.'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      serviceManualUrl:
                        type: string
                        example: 'https://encompass.com/shop/model_research_docs/?file=/SMG/sm/WA422PRHDWR/AA.pdf'
                        description: 'URL of service manual'
                      explodedViewUrl:
                        type: string
                        example: 'https://encompass.com/Exploded-View-Assembly/WHI/334818/SB160PEEQ5'
                        description: 'URL on our webSite for interactive exploded views.  This can be used if you do not want to build your own UI.'
                      explodedViewID:
                        type: string
                        example: '334818'
                        description: 'id that can be passed to the `explodedView/listAssemblies` service for interactive exploded views in your own UI'
                      smallImageURL:
                        type: string
                        example: 'https://encompass-11307.kxcdn.com/imageDisplay?id=WA422PRHDWR_AA&mfgCode=SMG&type=m&size=s'
                        description: 'image URL'
                      symptomDescription:
                        type: string
                        example: 'Does not start'
                        description: 'Description of the symptom that you are trying to fix.  This is only retuned if you have requested parts prediction data by passing a `symptomID`.'
                      totalNumberOfFixes:
                        type: string
                        example: '570'
                        description: 'If you pass a `symptomID` for parts prediction, this will have the total number of fixes that the percentages are based on.'
                      parts:
                        type: array
                        description: 'array of part details'
                        items:
                          type: object
                          properties:
                            basePN:
                              type: string
                              example: '9316504'
                              description: ''
                            mfgCode:
                              type: string
                              example: 'SMG'
                              description: ''
                            mfgName:
                              type: string
                              example: 'Samsung'
                              description: ''
                            partNumber:
                              type: string
                              example: 'DC97-16987B'
                              description: ''
                            partDescription:
                              type: string
                              example: 'ASSY BALANCER;HUDSON WASHER,WA456DRHDWR'
                              description: ''
                            categoryDescription:
                              type: string
                              example: 'Accessory'
                              description: ''
                            demand:
                              type: string
                              example: 'Y'
                              description: ''
                            smallImageURL:
                              type: string
                              example: 'https://encompass-11307.kxcdn.com/imageDisplay?mfgCode=SMG&type=b&size=s'
                              description: ''
                            fixPercentage:
                              type: number
                              example: '65'
                              description: ''
                      symptoms:
                          type: array
                          description: 'list of symptoms that you can select from to pass back to the same service to view our part prediction data.'
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                example: '1'
                                description: 'This id should also be passed to the `createOrder service with the parts that you select so that we can add to our parts prediction data.  This id can also be passed back to the to the `modelParlist` service if `hasTriageData` = `Y`.'
                              description:
                                type: string
                                example: 'Does not start'
                                description: 'description of the symptom that you are trying to fix'
                              hasTriageData:
                                type: string
                                example: 'Y'
                                description: 'do we have triage data for this symptom that you can pass  (Y/N)'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|missing modelNumber|
                      |-202|missing mfgCode|
                      |-203|invalid model number|
                      |-204|invalid model number|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
        '452':
          description: '`modelVariation` is required.  Some models require a variation.  This means that the model might have been made in different factories.  Most of the parts will be the same, but some might be dfferent.  This response will give you all of the information required to make a selection and send the `modelVariation` back to this service.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '-206'
                      errorMessage:
                        type: string
                        example: 'modelVariation is required'
                  data:
                    type: object 
                    properties:
                      variationName:
                        type: string
                        example: 'Version'
                        description: 'This will be what this manufacturer calls this modelVariation.  Some manufacturers use different names.'
                      variationImage:
                        type: string
                        example: 'https://encompass-11307.kxcdn.com/sharedImages/manufacturerVariations/SMG.jpg'
                        description: 'This image will show an example label to help the user find the correct information.'
                      variations:
                        type: array
                        description: 'array of model variations to pick from and send back to the service'
                        items:
                          type: object
                          example: '0001'
                          description: 'this variation id needs to be sent back to the service in the `modelVariation` field'
                      serviceManualUrl:
                        type: string
                        example: 'https://encompass.com/shop/model_research_docs/?file=/SMG/sm/WA422PRHDWR/AA.pdf'
                        description: ''
                      explodedViewUrl:
                        type: string
                        example: ''
                        description: ''
                      smallImageURL:
                        type: string
                        example: 'https://encompass-11307.kxcdn.com/imageDisplay?id=WA422PRHDWR_AA&mfgCode=SMG&type=m&size=s'
                        description: ''
  /restfulservice/explodedView/listAssemblies:
    post:
      tags:
      - API
      summary: 'View assemblies list for interactive exploded views'
      description: 'This service allows you to display an image of an assembly with hotlinks to part information for building your own interactive exploded views. This will return an array of assembly images.  It be called after the `serach` or `modelPartList` service.  The services will return a `explodedViewID` if it exists for a model.  You will need to build the UI on your system.  If you would rather send the user to our webSite to use our existing UI to find the parts, we also return `smallImageURL`.  In order to access the images returned in `ImageUrl`, you will need to provide your server IP address(es) to Encompass so that can be whitelisted.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                data:
                  type: object 
                  required:
                  - mfgCode
                  - parentID
                  - action
                  properties:
                    mfgCode:
                      type: string
                      example: 'WHI'
                      description: 'manufacturer code received from the `search` service'
                    parentID:
                      type: string
                      example: '285733'
                      description: 'received from `explodedViewID` in the `search` or `modelPartList` service'
                    action:
                      type: string
                      example: 'listAssemblies'
                      description: ''
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      assemblies:
                        type: array
                        description: 'array of model assemblies to pick from'
                        items:
                          type: object
                          properties:
                            Id:
                              type: string
                              example: '6092632'
                              description: ''
                            Name:
                              type: string
                              example: '01 - TOP AND CABINET, LITERATURE'
                              description: ''
                            ParentId:
                              type: string
                              example: '285733'
                              description: ''
                            IsParent:
                              type: string
                              example: false
                              description: ''
                            ImageUrl:
                              type: string
                              example: 'https://partstreamstg.arinet.com/Image?arik=SvwqDmOQNdV436GjtbxH&arib=WHI&arim=cHalVetaTeijP40xo3Y_rw2&aria=tgxfIPV15Ha9fx0EK0j8Xg2&ariz=1'
                              description: 'assembly image that you can disaplay'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/explodedView/viewAssembly:
    post:
      tags:
      - API
      summary: 'View assembly for interactive exploded views.'
      description: 'This will return the assembly image, with parts information and coordinates to display hotlinks for building your own interactive exploded views.  It mixes this information with our internal parts information.  This service can only be called after the `explodedView/listAssemblies` service.  In order to access the images returned in `ImageUrl`, you will need to provide your server IP address(es) to Encompass so that can be whitelisted.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                data:
                  type: object 
                  required:
                  - mfgCode
                  - parentID
                  - assemblyID
                  - action
                  properties:
                    mfgCode:
                      type: string
                      example: 'WHI'
                      description: 'manufacturer code received from the `search` service'
                    parentID:
                      type: string
                      example: '285733'
                      description: 'same is used in `explodedView/listAssemblies` service'
                    assemblyID:
                      type: string
                      example: '6092632'
                      description: 'received from `id` in the `explodedView/listAssemblies` service'
                    zoomLevel:
                      type: string
                      example: 4
                      default: -1
                      description: |
                        Zoom level of image URL returned
                        |Zoom Level|Description|
                        |-------|--------|
                        |-1|xxs|
                        |0|xs|
                        |1|s|
                        |2|m|
                        |3|l|
                        |4|xl|
                        |5|xxl|
                    action:
                      type: string
                      example: 'viewAssembly'
                      description: ''
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      assembly:
                        type: object 
                        properties:
                          AssemblyId:
                            type: string
                            example: '6092632'
                            description: ''
                          Name:
                            type: string
                            example: '01 - TOP AND CABINET, LITERATURE'
                            description: ''
                          ParentId:
                            type: string
                            example: '285733'
                            description: ''
                          ParentName:
                            type: string
                            example: 'LSW9245EQ1'
                            description: ''
                          ImageUrl:
                            type: string
                            example: 'https://partstreamstg.arinet.com/Image?arik=SvwqDmOQNdV436GjtbxH&arib=WHI&arim=cHalVetaTeijP40xo3Y_rw2&aria=tgxfIPV15Ha9fx0EK0j8Xg2&ariz=4'
                            description: ''
                          HotSpots:
                            type: array
                            description: 'array of hotspot corrdinates for adding over the main image.  This array will be in the same order as the `parts` array.'
                            items:
                              type: object
                              properties:
                                Tag:
                                  type: string
                                  example: '22'
                                  description: ''
                                TopLeft:
                                  type: object
                                  properties:
                                    x:
                                      type: string
                                      example: '69'
                                      description: ''
                                    y:
                                      type: string
                                      example: '20'
                                      description: ''
                                BottomRight:
                                  type: object
                                  properties:
                                    x:
                                      type: string
                                      example: '71'
                                      description: ''
                                    y:
                                      type: string
                                      example: '22'
                                      description: ''
                      parts:
                        type: array
                        description: 'array of part details that match up with the `HotSpots` array. This array is in the same order. This has all of the fields to order a part or call the `partsInformation` service to get additional information about the part'
                        items:
                          type: object
                          properties:
                            basePN:
                              type: string
                              example: '7008527'
                              description: 'internal Encompass part id#.  If this is blank, the part cannot be ordered'
                            mfgCode:
                              type: string
                              example: 'WHI'
                              description: 'manufacturer code'
                            mfgName:
                              type: string
                              example: 'Whirlpool'
                              description: 'manufacturer name'
                            partNumber:
                              type: string
                              example: '4313896'
                              description: 'part number'
                            description:
                              type: string
                              example: 'Diy Manual'
                              description: 'part description'
                            price:
                              type: string
                              example: '27.95'
                              description: 'part price'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/partsInformation:
    post:
      tags:
      - API
      summary: 'Parts Information'
      description: 'Get details about parts'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSON.ITEM.INFORMATION'
                      description: ''
                data:
                  type: object
                  properties:
                    basePN:
                      type: string
                      example: '9453456'
                      description: 'internal Encompass part id# `basePN` returned from `search` service'
                    searchMfgCode:
                      type: string
                      example: 'MSC'
                      description: '3 character manufacturer code'
                    searchPartNumber:
                      type: string
                      example: 'ET-LAB10'
                      description: 'part number to search'
                    serviceLevel:
                      type: string
                      example: '3'
                      description: |
                        shipping service level used to calculate `estimatedDeliveryDate` - valid in the US only
                        |Value|Description|
                        |-------|--------|
                        |1|Next Day|
                        |2|2 Day|
                        |3|Ground|
                    destinationZipCode:
                      type: string
                      example: '33325'
                      description: 'destination zip code used to calculate `estimatedDeliveryDate` '
                    destinationCountry:
                      type: string
                      example: 'US'
                      description: 'destination country code used to calculate `estimatedDeliveryDate` '
                    bidNumber:
                      type: string
                      example: 'b12345'
                      description: 'bid number'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      parts:
                        type: array
                        description: 'array of part details'
                        items:
                          type: object
                          properties:
                            basePN:
                              type: string
                              example: '9316504'
                              description: 'internal Encompass part id#.  If this is blank, the part cannot be ordered'
                            mfgCode:
                              type: string
                              example: 'SMG'
                              description: 'manufacturer code'
                            mfgName:
                              type: string
                              example: 'Samsung'
                              description: 'manufacturer name'
                            partNumber:
                              type: string
                              example: 'DC97-16987B'
                              description: 'part number'
                            partDescription:
                              type: string
                              example: 'ASSY BALANCER;HUDSON WASHER,WA456DRHDWR'
                              description: 'part description'
                            detailedPartDescription:
                              type: string
                              example: 'This is a more detailed description of the part that then regular parts description.  It might include multiple lines.'
                              description: 'detailed part description'
                            weight:
                              type: string
                              example: '22'
                              description: 'weight in lbs.'
                            length:
                              type: string
                              example: '29'
                              description: 'length in inches'
                            width:
                              type: string
                              example: '15'
                              description: 'width in inches'
                            height:
                              type: string
                              example: '4'
                              description: 'height in inches'
                            htsCode:
                              type: string
                              example: '8302500000'
                              description: 'Harmonized Tariff Schedule code used for export'
                            carrierSize:
                              type: number
                              example: 0
                              description: |
                                items with a value greater than zero might incur additional freight charges
                                |Value|Description|
                                |-------|--------|
                                |0|normal|
                                |3|Dim|
                                |1|oversized|
                                |2|truck|
                            authorizationRequired:
                              type: string
                              example: 'N'
                              description: 'requires manufacturer authorization # (Y/N)'
                            availability:
                              type: string
                              example: '17'
                              description: 'quantity available to ship'
                            availabilityByLocation:
                              type: array
                              description: 'array of part availability by warehouse location'
                              items:
                                type: object
                                properties:
                                  number:
                                    type: string
                                    example: '1'
                                    description: 'location number that can be used to request a specific warehouse location when ordering'
                                  name:
                                    type: string
                                    example: 'Atlanta, GA'
                                    description: 'location name'
                                  address1:
                                    type: string
                                    example: '775 TIPTON INDUSTRIAL DR'
                                    description: 'location address 1'
                                  address2:
                                    type: string
                                    example: 'SUITE F'
                                    description: 'location address 2'
                                  city:
                                    type: string
                                    example: 'LAWRENCEVILLE'
                                    description: 'location city'
                                  state:
                                    type: string
                                    example: 'GA'
                                    description: 'location state'
                                  zipCode:
                                    type: string
                                    example: '30046'
                                    description: 'location zip code'
                                  countryCode:
                                    type: string
                                    example: 'US'
                                    description: 'location country code'
                                  available:
                                    type: string
                                    example: '17'
                                    description: 'quantity available to ship'
                            eta:
                              type: string
                              example: '2020-04-13'
                              description: 'estimated ship date'
                            estimatedDeliveryDate:
                              type: string
                              example: '2020-04-15'
                              description: 'estimated delivery date - will only be returned if `serviceLevel`, `destinationZipCode`, and `destinationCountry` were provided.  Valid in the US only.'
                            listPrice:
                              type: string
                              example: '59.95'
                              description: 'list / retail price for the part'
                            corePrice:
                              type: string
                              example: '20.00'
                              description: 'price of core (core part must be returned to receive credit)'
                            partPrice:
                              type: string
                              example: '40.00'
                              description: 'your price for the part'
                            totalPrice:
                              type: string
                              example: '60.00'
                              description: 'part price + core price'
                            subPart:
                              type: string
                              example: ''
                              description: ''
                            allowRTS:
                              type: string
                              example: 'Y'
                              description: 'allow good/unused return(Y/N)'
                            allowIWR:
                              type: string
                              example: 'Y'
                              description: 'allow in waranty return(Y/N)'
                            smallImageURL:
                              type: string
                              example: 'https://encompass-11307.kxcdn.com/imageDisplay?mfgCode=SMG&type=b&size=s'
                              description: 'URL for image'
                            compatibleModels:
                              type: array
                              description: 'models that the part is used in for parts verification'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    example: 'SMGFRX2342349'
                                    description: 'this can be passed to the model service'
                                  model:
                                    type: string
                                    example: '10F5S00R00'
                                    description: 'model number'
                                  description:
                                    type: string
                                    example: 'ThinkCentre-M900z'
                                    description: 'model description'
                            symptoms:
                              type: array
                              description: 'list of symptoms that you are using this part to fix. This will help us provide you with better part prediction data.'
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    example: '1'
                                    description: 'symptomID that can be passed to the `createOrder` service to help provide better parts prediction data back to you.'
                                  description:
                                    type: string
                                    example: 'Does not start'
                                    description: 'symptom description that you are trying to fix'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                      |-202|missing customer number|
                      |-203|invalid customer number|
                      |-204|invalid customer password|
                      |-205|invalid part number|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/frequentlyPurchasedParts:
    post:
      tags:
      - API
      summary: 'Frequently Purchased Parts'
      description: 'Get details about parts that are frequently purchased with the requested part.  This can help reduce the need for a second service call in the service world.  There are no guarantees on this.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSON.FBT'
                      description: ''
                data:
                  type: object
                  properties:
                    basePN:
                      type: string
                      example: '9453456'
                      description: 'internal Encompass part id# `basePN` returned from `search` or `partsInformation` service'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      parts:
                        type: array
                        description: 'array of part details for parts that are frequently purchased with the requested part'
                        items:
                          type: object
                          properties:
                            basePN:
                              type: string
                              example: '9316504'
                              description: 'internal Encompass part id#.  If this is blank, the part cannot be ordered'
                            mfgCode:
                              type: string
                              example: 'SMG'
                              description: 'manufacturer code'
                            mfgName:
                              type: string
                              example: 'Samsung'
                              description: 'manufacturer name'
                            partNumber:
                              type: string
                              example: 'DC97-16987B'
                              description: 'part number'
                            partDescription:
                              type: string
                              example: 'ASSY BALANCER;HUDSON WASHER,WA456DRHDWR'
                              description: 'part description'
                            partPrice:
                              type: string
                              example: '40.00'
                              description: 'your price for the part'
                            availableQuantity:
                              type: string
                              example: '17'
                              description: 'quantity available to ship'
                            picturePath:
                              type: string
                              example: 'https://encompass-11307.kxcdn.com/imageDisplay?mfgCode=SMG&type=b&size=s'
                              description: 'URL for image'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                      |-202|missing customer number|
                      |-203|invalid customer number|
                      |-204|invalid customer password|
                      |-205|invalid part number|
                      |-206|no frequently purchased parts exist for this part|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/shipto:
    post:
      tags:
      - API
      summary: 'Customer Ship To list'
      description: 'Get a list of ship to addresses for a customer'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSONShipTo'
                      description: ''
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      addresses:
                        type: array
                        description: 'array addresses'
                        items:
                          type: object
                          properties:
                            number:
                              type: string
                              example: '10'
                              description: 'id number for the ship to address'
                            name:
                              type: string
                              example: 'John Smith'
                              description: 'company or customer name'
                            address:
                              type: string
                              example: '123 Elm ST'
                              description: 'address'
                            address2:
                              type: string
                              example: ''
                              description: 'address line 2'
                            city:
                              type: string
                              example: 'Mainville'
                              description: 'city'
                            state:
                              type: string
                              example: 'FL'
                              description: 'state'
                            zipCode:
                              type: string
                              example: '33311'
                              description: 'zip code'
                            countryCode:
                              type: string
                              example: 'US'
                              description: 'country code'
                            phoneNumber:
                              type: string
                              example: '954-123-4567'
                              description: 'phone number'
                            emailAddress:
                              type: string
                              example: 'user@domain.com'
                              description: 'email address'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/createOrder:
    post:
      tags:
      - API
      summary: 'Create an Order'
      description: 'We do not accept credit card orders, because it would violate PCI rules.  All orders must be net terms.  We might ship your order from multiple warehouses resulting in multiple `invoiceNumber` for your `referenceNumber1`.  Please keep this in ming for the billing process.  You system needs to be able to accept multiple invoices per `referenceNumber1` that you send us.  We recomend that you send us a unique line number in the `customPartFields` so that we can send it back to you.  This will allow you to know your original line number even if it changes in our system.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSON.ORDER.CREATE'
                      description: ''
                data:
                  type: object
                  required:
                  - referenceNumber1
                  - shipToAddress
                  - parts
                  properties:
                    customerType:
                      type: string
                      example: ''
                      description: 'customer type (not used for all accounts)'
                    useCustomerCross:
                      type: string
                      example: ''
                      description: 'map your customer number to ours (not available for all accounts) (y/n)'
                    referenceNumber1:
                      type: string
                      example: ''
                      description: 'main reference number'
                    transactionID:
                      type: string
                      example: ''
                      description: 'required if you allow duplicate referenceNumber1 to prevent duplicate transactions'
                    referenceNumber2:
                      type: string
                      example: ''
                      description: 'alternate reference number or claim number'
                    shippingMethod:
                      type: string
                      example: ''
                      description: |
                        Method the order will ship
                        |Value|Description|
                        |-------|--------|
                        |null|Customer Default|
                        |1|Ground|
                        |2|2 Day - Allow downgrade to ground if destination is within 2 day ground service area to save money|
                        |6|2 Day - No downgrade to ground service|
                        |3|Next Day - No downgrade to ground service|
                        |7|Next Day - Allow downgrade to ground if destination is within 1 day ground service area to save money|
                        |5|3 Day|
                        |4|Pick-up - must send a requestLocationNumber or the order will default to the accounts home location|
                    shippingThirdPartyNumber:
                      type: string
                      example: ''
                      description: 'third party shipping account number'
                    shippingThirdPartyCarrier:
                      type: string
                      example: ''
                      description: |
                        third party shipping carrier _required if you send a shippingThirdPartyNumber_
                        |Value|Description|
                        |-------|--------|
                        |1|FedEx|
                        |2|UPS|
                    blindShip:
                      type: string
                      example: ''
                      description: 'request a blind shippment (y/n).  There not be pricing on any communications and it will appear to ship from your company.'
                    residentialAddress:
                      type: string
                      example: ''
                      description: 'residential address (y/n)'
                    requireSignature:
                      type: string
                      example: ''
                      description: 'require signature for delivery (y/n) - additional freight charges will apply'
                    shipComplete:
                      type: string
                      example: ''
                      description: 'ship order complete(y/n)'
                    shipToAddress:
                      type: object
                      required:
                      - name
                      - address1
                      - city
                      - countryCode
                      description: 'address where the order will be shipped to'
                      properties:
                        name:
                          type: string
                          example: ''
                          description: 'company or person name'
                        address1:
                          type: string
                          maxLength: 60
                          example: ''
                          description: 'address line 1'
                        address2:
                          type: string
                          maxLength: 60
                          example: ''
                          description: 'address line 2'
                        city:
                          type: string
                          maxLength: 20
                          example: ''
                          description: 'city'
                        state:
                          type: string
                          example: ''
                          description: '2 character ISO state code'
                        zipCode:
                          type: string
                          example: ''
                          description: '5 or 9 digit zip code'
                        countryCode:
                          type: string
                          minLength: 2
                          maxLength: 2
                          example: ''
                          description: '2 character ISO country code'
                        phoneNumber:
                          type: string
                          example: ''
                          description: 'phone number without non-numeric characters'
                    requestReturnService:
                      type: string
                      example: ''
                      description: 'add return service label (y/n) (fees might apply)'
                    emailAddress:
                      type: string
                      example: ''
                      description: 'address for confirmation email'
                    requestLocationNumber:
                      type: string
                      example: '1'
                      description: 'This should only be used to request a specific warehouse location in certain situations such as a pick-up. We normally route order based on availability and distance for the fastest results.  Using this incorrectly could cause order delays and additional freight charges.  If an invalid value is received, it will just be ignored.'
                    asfOverride:
                      type: string
                      maxLength: 15
                      example: ''
                      description: 'Your authorized servicer number should already be on your Encopmpass account.  This can be used to override that number in special cases where you have multiple authorized servicer numbers for multiple locations.'
                    claimDate:
                      type: string
                      example: ''
                      description: 'date your customers claim was made to you in the format yyyy-mm-dd'
                    parts:
                      type: array
                      description: |
                        array of parts to be ordered
                        - Preferred method Send the `basePN` that is returned from our `search` or `partsInformation` service. You can also send the `mfgCode` and `partNumber` as a backup, but it is not required for this method.
                        - Alternative method Do not send the `basePN`, just send the `mfgCode` and `partNumber`.  This prevents issues where multiple manufacruers have the same part number.
                      items:
                        type: object
                        required:
                        - orderQuantity
                        properties:
                          basePN:
                            type: string
                            example: '9453456'
                            description: 'internal Encompass part id# `basePN` returned from `search` or `partsInformation` service'
                          mfgCode:
                            type: string
                            example: 'MSC'
                            description: '3 character manufacturer code - a list can be obtained from the `brandList` service.'
                          partNumber:
                            type: string
                            example: 'ET-LAB10'
                            description: ''
                          orderQuantity:
                            type: string
                            example: '2'
                            description: 'quantity of part to order'
                          authorizationOrReferenceNumber:
                            type: string
                            example: ''
                            description: 'part reference number or manufacturer authorization'
                          claimsProcessorCode:
                            type: string
                            example: ''
                            description: |
                              Send this only if you want Encompass to send information to a claim processor
                              |Value|Description|
                              |-------|--------|
                              |9|AIG|
                              |4|Assurant|
                              |5|Cinch|
                              |11|GE|
                              |7|LG|
                              |10|NSA|
                              |6|Samsung|
                              |2|ServiceBench|
                              |8|Whirlpool|
                          claimNumber:
                            type: string
                            example: ''
                            description: 'Send this only if you want Encompass to send information to a claim   processor'
                          allowAutoSub:
                            type: string
                            example: 'N'
                            description: 'Can we auto substitute the part if you send the order with an old part number(Y/N)? This defaults to no, so that you always order the correct part and you know the price up-front.'
                          symptomID:
                            type: string
                            example: ''
                            description: 'Provide the symptom you are fixing and help us provide you with better part prediction data.  This value comes from the `partInformation` or `modelPartLIst` service'
                          customPartFields:
                            type: array
                            description: 'array of values that will be stored at the part level and can be sent back to the customers system.  These values must always be sent in the same order.  We suggest making 1 of the occurrences a line number.  This will allow you to tie our line detail back to your original line number, since we might ship order from multiple warehouses or partial ship backorders. '
                            items:
                             type: object
                             properties:
                               value:
                                 type: string
                                 example: ''
                                 description: 'custom value 1'
                    customOrderFields:
                      type: array
                      description: 'array of values that will be stored at the order level and can be sent back to the customers system.  These values must always be sent in the same order'
                      items:
                       type: object
                       properties:
                         value:
                           type: string
                           example: ''
                           description: 'custom value 1'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                      |-202|invalid customer number from customer cross|
                      |-203|customer number is required|
                      |-204|invalid customer number|
                      |-205|referenceNumber1 is required|
                      |-206|duplicate referenceNumber1|
                      |-207|transactionID is required|
                      |-208|invalid part|
                      |-209|invalid pid|
                      |-210|has a substitute part|
                      |-211|an invalid orderQuantity|
                      |-212|has a minimum order qty|
                      |-213|no valid parts were submitted|
                      |-214|is not available for backorder|
                      |-215|is not available for resale|
                      |-216|is not available for country|
                      |-217|account does not allow backorder|
                      |-218|n/a|
                      |-219|n/a|
                      |-220|requires manufacturer authorization in authorizationOrReferenceNumber|
                      |-221|n/a|
                      |-222|Invalid shipToCountryCode|
                      |-223|requires shipToState for country|
                      |-224|Invalid shipToState|
                      |-225|Invalid shippingThirdPartyCarrier|
                      |-226|account has been closed|
                      |-227|Invalid shippingThirdPartyNumber|
                      |-228|Invalid shipToPhone|
                      |-229|password is required|
                      |-230|password is invalid|
                      |-231|Invalid claimsProcessorCode or claimNumber|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/orderStatus:
    post:
      tags:
      - PostOrder
      summary: 'Get Order Status'
      description: 'Get Order Status for a `referenceNumber`, `orderNumber` or `invoiceNumber`.  This service will also return invoice total, tax, freight on invoices that can be used for payment processing.  This is meant for one-off requests or lower volume accounts.  We will setup a flat file or connect to your endpoint for higher volume accounts.  We normally would send an order file (all open items) and a shipped file (all items shipped that day).'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSON.ORDER.STATUS'
                      description: ''
                data:
                  type: object
                  required:
                  - referenceNumber
                  properties:
                    customerType:
                      type: string
                      example: ''
                      description: 'customer type (not used for all accounts)'
                    useCustomerCross:
                      type: string
                      example: ''
                      description: 'map your customer number to ours (not available for all accounts) (y/n)'
                    referenceNumber:
                      type: string
                      example: 'TEST123'
                      description: 'main reference number _(this is what you sent in the `createOrder` service `referenceNumber1` field)_, order# or invoice#'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      open:
                        type: string
                        example: 'N'
                        description: 'Records have open items (Y/N)'
                      records:
                        type: array
                        description: 'array of orders and invoices'
                        items:
                          type: object
                          properties:
                            open:
                              type: string
                              example: 'N'
                              description: 'order or invoice has open items (Y/N)'
                            referenceNumber1:
                              type: string
                              example: 'TEST123'
                              description: 'main reference number'
                            referenceNumber2:
                              type: string
                              example: 'C123456'
                              description: 'main reference number or claim number'
                            orderNumber:
                              type: string
                              example: '6-91427'
                              description: ''
                            orderDate:
                              type: string
                              format: date
                              example: '2019-11-08'
                              description: ''
                            invoiceNumber:
                              type: string
                              example: '6-806135-1119'
                              description: ''
                            invoiceDate:
                              type: string
                              format: date
                              example: '2019-11-09'
                              description: ''
                            freightAmount:
                              type: string
                              example: '10.80'
                              description: ''
                            taxAmount:
                              type: string
                              example: '0.00'
                              description: ''
                            totalAmount:
                              type: string
                              example: '42.05'
                              description: ''
                            carrierName:
                              type: string
                              example: 'FEDEX'
                              description: 'carrier name'
                            shippingMethod:
                              type: string
                              example: 'FedEx Ground'
                              description: 'shipping service'
                            days:
                              type: number
                              example: 1
                              description: 'number of days old'
                            parts:
                              type: array
                              description: 'array of part details'
                              items:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    example: 'ORDER'
                                    description: |
                                      type of item
                                      |Value|Description|
                                      |-------|--------|
                                      |ORDER||
                                      |RETURN||
                                      |CORE RETURN||
                                      |CORE BILLING||
                                      |CREDIT||
                                  status:
                                    type: string
                                    example: 'SHIPPED'
                                    description: |
                                      status of item
                                      |Value|Description|
                                      |-------|--------|
                                      |SHIPPING||
                                      |BACKORDER||
                                      |ON HOLD||
                                      |NOT RECEIVED||
                                      |SHIPPED||
                                      |ISSUED||
                                      |CANCELLED||
                                      |BILLED||
                                  lineNumber:
                                    type: number
                                    example: 1
                                    description: 'line# on our record'
                                  basePN:
                                    type: string
                                    example: '9316504'
                                    description: 'internal Encompass part id#'
                                  mfgCode:
                                    type: string
                                    example: 'SMG'
                                    description: 'manufacturer code'
                                  mfgName:
                                    type: string
                                    example: 'Samsung'
                                    description: 'manufacturer name'
                                  partNumber:
                                    type: string
                                    example: 'DC97-16987B'
                                    description: 'part number'
                                  description:
                                    type: string
                                    example: 'ASSY BALANCER;HUDSON WASHER,WA456DRHDWR'
                                    description: 'part description'
                                  orderQuantity:
                                    type: string
                                    example: '1'
                                    description: 'quantity ordered'
                                  shipQuantity:
                                    type: string
                                    example: '1'
                                    description: 'quantity shipped'
                                  backorderQuantity:
                                    type: string
                                    example: '0'
                                    description: 'quantity on backorder'
                                  eta:
                                    type: string
                                    example: ''
                                    description: 'estimated time of arrival'
                                  unitPrice:
                                    type: string
                                    example: '26.25'
                                    description: 'unit price'
                                  unitCoreCharge:
                                    type: string
                                    example: '5.00'
                                    description: 'unit core charge'
                                  extendedPrice:
                                    type: string
                                    example: '31.25'
                                    description: 'extended price (unitPrice+unitCoreCharge)*shipQuantity'
                                  authorizationOrReferenceNumber:
                                    type: string
                                    example: ''
                                    description: 'part reference number or manufacturer authorization'
                                  inboundTracking:
                                    type: string
                                    example: '1z3458123151531'
                                    description: 'tracking number for a return package'
                                  originalPartNumber:
                                    type: string
                                    example: 'DC97-16987B'
                                    description: 'original Part Number'
                                  originalLineNumber:
                                    type: string
                                    example: '1'
                                    description: 'original line number from the order request.  If you sent us 5 parts numbers, and we split to multiple warehouses, you would still see 1-5, but on separate orders / invoices'
                                  openCore:
                                    type: string
                                    example: 'Y'
                                    description: 'items has an open core (Y/N)'
                                  outboundTrackings:
                                    type: array
                                    description: 'array of outbound tracking details'
                                    items:
                                      type: object
                                      properties:
                                        trackingNumber:
                                          type: string
                                          example: '123187308832'
                                          description: 'trackingNumber'
                                        link:
                                          type: string
                                          example: 'https://www.fedex.com/fedextrack/?trknbr=123187308832'
                                          description: 'tracking link on the carriers web-site'
                                  customPartFields:
                                    type: array
                                    description: 'array of custom values that will be returned at the part level if they were provided during the order process'
                                    items:
                                      type: object
                                      properties:
                                        value:
                                          type: string
                                          example: ''
                                          description: 'custom values that will be returned at the part level'
                                  serialNumbers:
                                    type: array
                                    description: 'array of product serial numbers sold'
                                    items:
                                      type: object
                                      properties:
                                        serialNumber:
                                          type: string
                                          example: '123456789123'
                                          description: 'serial number of the product sold'
                            customOrderFields:
                              type: array
                              description: 'array of values that will be returned at the order level if they were provided during the order process'
                              items:
                               type: object
                               properties:
                                 value:
                                   type: string
                                   example: ''
                                   description: 'custom value 1'
                            carrierActivity:
                              type: object
                              description: 'activity from the package carrier'
                              properties:
                                code:
                                  type: string
                                  example: 'D'
                                  description: 'delivered'
                                date:
                                  type: string
                                  example: '2020-01-02'
                                  description: 'date'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                      |-202|invalid customer number|
                      |-203|invalid customer number  from customer cross|
                      |-204|missing customer number|
                      |-205|password is required|
                      |-206|password is invalid|
                      |-207|empty referenceNumber|
                      |-208|invalid referenceNumber x|
                      |-209|invalid referenceNumber x|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/cancelOrder:
    post:
      tags:
      - PostOrder
      summary: 'cancel an open order'
      description: 'This service will cancel an open order. You must call the `orderStatus` service first. This will give you the proper `orderNumber`, `lineNumber`, and `basePN`.  We do not just cancel the entire order.  This allows you to cancel partial orders and ensures that both parties know exactly what is being cancelled.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSON.ORDER.CANCEL'
                      description: ''
                data:
                  type: object
                  required:
                  - orderNumber
                  - parts
                  properties:
                    customerType:
                      type: string
                      example: ''
                      description: 'customer type (not used for all accounts)'
                    useCustomerCross:
                      type: string
                      example: ''
                      description: 'map your customer number to ours (not available for all accounts) (y/n)'
                    orderNumber:
                      type: string
                      example: '1-12345'
                      description: '`orderNumber` from `orderStatus` service that the parts will be cancelled from'
                    parts:
                      type: array
                      description: 'array of parts to cancel'
                      items:
                        type: object
                        required:
                        - lineNumber
                        - basePN
                        - cancelQuantity
                        properties:
                          lineNumber:
                            type: string
                            example: '2'
                            description: '`lineNumber` from `orderStatus` service'
                          basePN:
                            type: string
                            example: '9316504'
                            description: '`basePN` from `orderStatus` service'
                          cancelQuantity:
                            type: string
                            example: '1'
                            description: 'quantity that you want to cancel'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will displayerror codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                      |-202|invalid customer number from customer cross|
                      |-203|customer number is required|
                      |-204|invalid customer number|
                      |-205|password is required|
                      |-206|password is invalid|
                      |-207|orderNumber is required|
                      |-208|orderNumber x is being modified, try later|
                      |-209|orderNumber x does not exist|
                      |-210|Customer number x does not match order|
                      |-211|orderNumber x is already in the cancellation process|
                      |-212|orderNumber x is already in process|
                      |-213|core bill back orders may not be cancelled|
                      |-214|core bill back orders may not be cancelled|
                      |-215|orderNumber x is a drop ship and may not be cancelled|
                      |-216|basePN is required|
                      |-217|invalid product x|
                      |-218|invalid productx x|
                      |-219|invalid lineNumber n|
                      |-220|basePN x does not exist on lineNumber n|
                      |-221|less then 1 part was ordered|
                      |-222|less then 1 part was ordered|
                      |-223|invalid cancelQuantity n|
                      |-224|no valid parts were submitted|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/returnRequest:
    post:
      tags:
      - PostOrder
      summary: 'Create an return request'
      description: 'This service will return a part from an invoice. You must call the `orderStatus` service first. This will give you the proper `invoiceNumber`, `lineNumber`, and `basePN`.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSON.RETURN.REQUEST'
                      description: ''
                data:
                  type: object
                  required:
                  - invoiceNumber
                  - parts
                  properties:
                    customerType:
                      type: string
                      example: ''
                      description: 'customer type (not used for all accounts)'
                    useCustomerCross:
                      type: string
                      example: ''
                      description: 'map your customer number to ours (not available for all accounts) (y/n)'
                    invoiceNumber:
                      type: string
                      example: '1-123456'
                      description: '`invoiceNumber` from `orderStatus` service'
                    returnReferenceNumber:
                      type: string
                      example: ''
                      description: 'your reference number for the return'
                    returnServiceLabel:
                      type: string
                      example: 'n'
                      description: 'request UPS return service label (y/n)'
                    returnTrackingNumber:
                      type: string
                      example: '1Z516646465456'
                      description: 'customer provided return tracking #, this is only used if not requesting a return service label'
                    parts:
                      type: array
                      description: 'array of parts to return'
                      items:
                        type: object
                        required:
                        - lineNumber
                        - basePN
                        - returnQuantity
                        - returnType
                        properties:
                          lineNumber:
                            type: string
                            example: '2'
                            description: '`lineNumber` from `orderStatus` service'
                          basePN:
                            type: string
                            example: '9316504'
                            description: '`basePN` from `orderStatus` service'
                          returnQuantity:
                            type: string
                            example: '1'
                            description: 'quantity that you want to return'
                          returnType:
                            type: string
                            example: ''
                            description: |
                              Type of Return
                              |Value|Description|
                              |-------|--------|
                              |1|Good & Un-used Parts|
                              |2|Warranty / Replacement|
                              |3|Core / Dud|
                          reasonCode:
                            type: string
                            example: ''
                            description: |
                              reason code for return _Required for Warranty / Replacement_
                              |Value|Description|
                              |-------|--------|
                              |1|No power|
                              |2|Automatically shuts down|
                              |4|Sound problem|
                              |5|Intermittent power issue|
                              |6|Picture distortion issue|
                              |8|Compatibility issue|
                              |9|Wrong color|
                              |10|Physical Damage|
                              |11|Leak Issue|
                              |12|No Video|
                          modelNumber:
                            type: string
                            example: 'mx123456'
                            description: 'model # of the product then part is returned from _Required for Warranty / Replacement_'
                          serialNumber:
                            type: string
                            example: '1s6816383181'
                            description: 'serial # of the product the part is returned from _Required for Warranty / Replacement_'
                          replacementOrderNumber:
                            type: string
                            example: '1-12345'
                            description: 'replacement order # _Required for Warranty / Replacement if the account is not setup to auto-replace_'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will displayerror codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      rmaNumber:
                        type: string
                        example: '7-12345'
                        description: 'RMA Number __must be referenced on the outside of the box__'
                      returnService:
                        type: object 
                        description: 'return service label information returned only if `returnServiceLabel` was requested'
                        properties:
                          number:
                            type: string
                            example: '1Z516646465456'
                            description: 'return service number'
                          link:
                            type: string
                            example: 'https://encompass.com/app/?wwizmstr=WEB.RETURN.LABEL'
                            description: 'This is the link to view or print the return service label if requested. This includes the inscrutions, and is ready to print.'
                          image:
                            type: string
                            example: 'http://returns.ups.com/123456789'
                            description: 'This is the link to view or print the return service label if requested. This is a direct link to the image. There are no instructions. This can be used to make you own custom instructions with the label. This is ONLY provided by UPS, and not FedEx.'
                          reject:
                            type: string
                            example: 'N'
                            description: 'If  we reject the label, but still process the RMA, this will be a `Y`. This can happen when requesting a label on items that are too large.'
                      returnAddress:
                        type: object 
                        description: 'address where the package must be shipped'
                        properties:
                          name:
                            type: string
                            example: 'National Returns Center'
                            description: ''
                          address1:
                            type: string
                            example: '775 TIPTON INDUSTRIAL DRIVE'
                            description: ''
                          address2:
                            type: string
                            example: 'SUITE F'
                            description: ''
                          city:
                            type: string
                            example: 'LAWRENCEVILLE'
                            description: ''
                          state:
                            type: string
                            example: 'GA'
                            description: ''
                          zipCode:
                            type: string
                            example: '30046'
                            description: ''
                          country:
                            type: string
                            example: 'US'
                            description: ''
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                      |-202|invalid customer number from customer cross|
                      |-203|customer number is required|
                      |-204|invalid customer number|
                      |-205|invoiceNumber is required|
                      |-206|invoiceNumber does not exist|
                      |-207|customerNumber does not match invoice|
                      |-208|account does not allow return service|
                      |-209|basePN is required|
                      |-210|invalid basePN|
                      |-211|invalid lineNumber|
                      |-212|basePN does not exist on lineNumber|
                      |-213|invalid returnQuantity|
                      |-214|no items were shipped on this line|
                      |-215|only n item(s) were shipped on this line|
                      |-216|return good and un-used parts on invoice x|
                      |-217|n part(s) were already returned - there are only n left to return|
                      |-218|account does not allow good and un-used part returns|
                      |-219|x cannot be returned to stock|
                      |-220|this good and un-used part is n days old|
                      |-221|this good and un-used part is n days old|
                      |-222|this good and un-used part is n days old|
                      |-223|special order products may not be returned|
                      |-224|Toshiba computer products may not be returned|
                      |-225|return warranty or replacement parts on invoice x|
                      |-226|n part(s) were already returned - there are only n left to return|
                      |-227|missing reasonCode|
                      |-228|invalid reasonCode|
                      |-229|password is required|
                      |-230|password is invalid|
                      |-231|please contact us with details of the physical damage|
                      |-232|modelNumber is required on warranty or replacement parts|
                      |-233|serialNumber is required on warranty or replacement parts|
                      |-234|this warranty or replacement part is n days old|
                      |-235|this warranty or replacement part is n days old|
                      |-236|this warranty or replacement part is n days old|
                      |-237|this warranty or replacement part is n days old|
                      |-238|this warranty or replacement part is n days old|
                      |-239|replacementOrderNumber is required on warranty or replacement parts|
                      |-240|invalid replacementOrderNumber|
                      |-241|invalid replacementOrderNumber|
                      |-242|invalid replacementOrderNumber - customerNumber does not match|
                      |-243|part does not exist on replacementOrderNumber x|
                      |-244|replacement quantity n is less than return quantity n|
                      |-245|x is not a replacement order|
                      |-246|already placed quantity n against replacement order x|
                      |-247|cores were not billed on this invoice try invoice x|
                      |-248|cores were not billed on this invoice|
                      |-249|n core(s) were already returned - there are only n left to return|
                      |-250|this core is n days old|
                      |-251|this core is n days old|
                      |-252|invalid returnType n|
                      |-253|x cannot be returned. For more information (link)|
                      |-254|x cannot be returned. For more information (link)|
                      |-255|x cannot be returned. For more information (link)|
                      |-256|no valid parts were submitted|
                      |-257|return against this invoice is already in process|
                      |-258|invalid carrying branch n|
                      |-259|invalid return location n|
                      |-260|return service request error|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/partResearch:
    post:
      tags:
      - Research
      summary: 'create a part research request'
      description: 'This service will create a part research request. You can check the status of the request using the `partResearchView`'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSON.PART.RESEARCH.CREATE'
                      description: ''
                data:
                  type: object
                  required:
                  - referenceNumber
                  - mfgCode
                  properties:
                    customerType:
                      type: string
                      example: ''
                      description: 'customer type (not used for all accounts)'
                    useCustomerCross:
                      type: string
                      example: ''
                      description: 'map your customer number to ours (not available for all accounts) (y/n)'
                    referenceNumber:
                      type: string
                      example: '123456'
                      description: 'Unique reference number for this request. You will use this to call the `partResearchView` service to check the status later.'
                    mfgCode:
                      type: string
                      example: 'MSC'
                      description: '3 character manufacturer code'
                    partNumber:
                      type: string
                      example: '123-484-45'
                      description: 'part number if you have it'
                    partDescription  :
                      type: string
                      example: 'main board'
                      description: 'part description'
                    modelNumber  :
                      type: string
                      example: 'ABC123'
                      description: 'model number'
                    modelVariation  :
                      type: string
                      example: 'model variation'
                      description: 'YA1'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will displayerror codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                      |-202|invalid customer number from customer cross|
                      |-203|customer number is required|
                      |-204|invalid customer number|
                      |-205|password is required|
                      |-206|password is invalid|
                      |-207|missing reference number|
                      |-208|research request was already received|
                      |-209|missing mfg code|
                      |-210|invalid mfg code|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /restfulservice/partResearchView:
    post:
      tags:
      - Research
      summary: 'view a part research request'
      description: 'This service will the status of research requests sent to the `partResearch` service.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - jsonUser
                  - jsonPassword
                  - programName
                  properties:
                    jsonUser:
                      type: string
                      example: 'USER'
                      description: 'Must aquire credentials from Encompass'
                    jsonPassword:
                      type: string
                      example: 'PASSWORD'
                      description: 'Must aquire credentials from Encompass'
                    customerNumber:
                      type: string
                      example: '123456'
                      description: 'Encompass Account#'
                    customerPassword:
                      type: string
                      example: 'abc123'
                      description: 'Encompass Account Password'
                    programName:
                      type: string
                      example: 'JSON.PART.RESEARCH.VIEW'
                      description: ''
                data:
                  type: object
                  required:
                  - referenceNumber
                  - mfgCode
                  properties:
                    customerType:
                      type: string
                      example: ''
                      description: 'customer type (not used for all accounts)'
                    useCustomerCross:
                      type: string
                      example: ''
                      description: 'map your customer number to ours (not available for all accounts) (y/n)'
                    referenceNumber:
                      type: string
                      example: '123456'
                      description: 'Unique reference number for this request that was sent to the `partResearch` service.'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will displayerror codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
                  data:
                    type: object 
                    properties:
                      statusCode:
                        type: string
                        example: 'C'
                        description: |
                          status code for the request
                          |Value|Description|
                          |-------|--------|
                          |O|Open|
                          |C|Complete|
                      createDate:
                        type: string
                        format: date
                        example: '2020-01-25'
                        description: 'date request was created'
                      completeDate:
                        type: string
                        format: date
                        example: '2020-01-26'
                        description: 'date request was completed'
                      basePN:
                        type: string
                        example: '5937132'
                        description: 'If the request is complete and the basePN is empty, we did not find a valid part number with the information provided.  If there is a basePN, then you can use this to send to the `partInformation` service.'
                      mfgCode:
                        type: string
                        example: 'MSC'
                        description: ''
                      partNumber:
                        type: string
                        example: ''
                        description: 'ABC-123'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: |
                      |errorCode|errorMessage|
                      |-------|--------|
                      |-200|files did not open (host issue)|
                      |-201|invalid jsonUser|
                      |-202|invalid customer number from customer cross|
                      |-203|customer number is required|
                      |-204|invalid customer number|
                      |-205|password is required|
                      |-206|password is invalid|
                      |-207|referenceNumber x does not exist|
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'
  /inboundURL:
    post:
      tags:
      - RoundTrip
      summary: ''
      description: 'This is not a rest service, it is just s description of the link will need to create for your users to click.  This will pass information along with the user to our web site. `https://encompass.com/?action=accountLogin&c=&p=&hookurl=&buyercookie=&claim=`'
      parameters:
        - in: query
          schema:
            type: string
          name: c
          description: 'Encompass cutsomer number'
        - in: query
          schema:
            type: string
          name: p
          description: 'Encompass cutsomer password'
        - in: query
          schema:
            type: string
          name: hookurl
          description: 'assigned by Encompass'
        - in: query
          schema:
            type: string
          name: buyercookie
          description: 'assigned by client and passed back to client in order request to help authenticate Encompass'
        - in: query
          schema:
            type: string
          name: claim
          description: 'client reference number'
      responses:
        '200':
          description: 'success'
  /orderRequest:
    post:
      tags:
      - RoundTrip
      summary: 'Order Request sent from us to your rest service that will match this service'
      description: 'You will create a service that can accept this request and provide a matching response.  This will tell your system what parts the user requested from our web site.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                settings:
                  type: object 
                  required:
                  - buyercookie
                  properties:
                    buyercookie:
                      type: string
                      example: 'encompass378465tr'
                      description: 'Must aquire credentials from Encompass'
                data:
                  type: object 
                  properties:
                    claim:
                      type: string
                      example: 'TEST123'
                      description: 'claim number'
                    parts:
                      type: array
                      description: 'array of part details'
                      items:
                        type: object
                        properties:
                          basePN:
                            type: string
                            example: '9316504'
                            description: 'internal Encompass part id#'
                          mfgCode:
                            type: string
                            example: 'SMG'
                            description: 'manufacturer code'
                          mfgName:
                            type: string
                            example: 'Samsung'
                            description: 'manufacturer name'
                          partNumber:
                            type: string
                            example: 'DC97-16987B'
                            description: 'part number'
                          description:
                            type: string
                            example: 'ASSY BALANCER;HUDSON WASHER,WA456DRHDWR'
                            description: 'part description'
                          orderQuantity:
                            type: string
                            example: '1'
                            description: 'quantity ordered'
                          unitPrice:
                            type: string
                            example: '26.25'
                            description: 'unit price'
                          unitCoreCharge:
                            type: string
                            example: '5.00'
                            description: 'unit core charge'
                          authorizationOrReferenceNumber:
                            type: string
                            example: ''
                            description: 'part reference number or manufacturer authorization'
      responses:
        '200':
          description: 'success'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object 
                    properties:
                      errorCode:
                        type: string
                        example: '100'
                        description: 'This field will always equal 100, unless there is an error.  This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'success'
                        description: 'If there is an error, this field will display error codes for troubleshooting.'
        '400':
          description: 'failure'
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: object
                    description: ''
                    properties:
                      errorCode:
                        type: string
                        example: '-200'
                        description: 'This field will display error codes for troubleshooting.'
                      errorMessage:
                        type: string
                        example: 'failure'
                        description: 'This field will display descriptions for troubleshooting.'