openapi: 3.2.0 info: title: JobBOSS² Public Quote Line Items API description: Provides a common API surface for accessing ECI ERP JobBOSS². version: v1 servers: - url: https://api-jb2.integrations.ecimanufacturing.com:443 description: API Host security: - Bearer: [] tags: - name: Quote Line Items paths: /api/v1/quote-line-items: get: tags: - Quote Line Items summary: Gets a list of Quote Line Items description: 'By default a quote line item response will include only the fields: commissionPercent, delivery, description, discountPercent, FOB, isTaxable, itemNumber, jobNotes, jobNumber, lastModDate, lastModUser, miscCharge, miscChargeForeign, miscDescription, partNumber, price1, price2, price3, price4, price5, price6, price7, price8, priceForeign1, priceForeign2, priceForeign3, priceForeign4, priceForeign5, priceForeign6, priceForeign7, priceForeign8, quantity1, quantity2, quantity3, quantity4, quantity5, quantity6, quantity7, quantity8, quoteNumber, quotePart, revision, status, uniqueID, unit1, unit2, unit3, unit4, unit5, unit6, unit7, unit8, workCode. You may specify the exact fields to return using the fields parameter.' parameters: - name: fields in: query description: A comma separated list of fields to include in the result. schema: type: string - name: sort in: query description: A comma separated list of field to sort by. See the Sort Expressions section for more information. schema: type: string - name: filters in: query description: Filters must be provided as query string parameters as defined in the Filter Expressions section. schema: type: object additionalProperties: type: string examples: No filters: {} Filter by SalesID: value: quoteNumber: '1814' - name: skip in: query description: The number of records at the start of the result set to skip over. schema: type: string - name: take in: query description: The number of records to retrieve. schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/QuoteLineItemListSuccessResponse' example: Data: - commissionPercent: 0 delivery: string description: string discountPercent: 0 FOB: string isTaxable: false itemNumber: 0 jobNotes: string jobNumber: string lastModDate: '2026-09-06T17:13:12.0000000+00:00' lastModUser: string miscCharge: 0 miscChargeForeign: 0 miscDescription: string partNumber: string price1: 0 price2: 0 price3: 0 price4: 0 price5: 0 price6: 0 price7: 0 price8: 0 priceForeign1: 0 priceForeign2: 0 priceForeign3: 0 priceForeign4: 0 priceForeign5: 0 priceForeign6: 0 priceForeign7: 0 priceForeign8: 0 quantity1: 0 quantity2: 0 quantity3: 0 quantity4: 0 quantity5: 0 quantity6: 0 quantity7: 0 quantity8: 0 quoteNumber: string quotePart: false revision: string status: string uniqueID: 0 unit1: string unit2: string unit3: string unit4: string unit5: string unit6: string unit7: string unit8: string user_Currency1: 0 user_Currency2: 0 user_Date1: '2026-09-06T17:13:12.0000000+00:00' user_Date2: '2026-09-06T17:13:12.0000000+00:00' user_Memo1: string user_Number1: 0 user_Number2: 0 user_Number3: 0 user_Number4: 0 user_Text1: string user_Text2: string user_Text3: string user_Text4: string workCode: string operationId: getApiV1QuoteLineItems x-operation-id-source: derived /api/v1/quotes/{quoteNumber}/quote-line-item/{itemNumber}: get: tags: - Quote Line Items summary: Gets a Quote Line Item description: 'By default a quote line item response will include only the fields: commissionPercent, delivery, description, discountPercent, FOB, isTaxable, itemNumber, jobNotes, jobNumber, lastModDate, lastModUser, miscCharge, miscChargeForeign, miscDescription, partNumber, price1, price2, price3, price4, price5, price6, price7, price8, priceForeign1, priceForeign2, priceForeign3, priceForeign4, priceForeign5, priceForeign6, priceForeign7, priceForeign8, quantity1, quantity2, quantity3, quantity4, quantity5, quantity6, quantity7, quantity8, quoteNumber, quotePart, revision, status, uniqueID, unit1, unit2, unit3, unit4, unit5, unit6, unit7, unit8, workCode. You may specify the exact fields to return using the fields parameter.' parameters: - name: quoteNumber in: path required: true schema: type: string - name: itemNumber in: path required: true schema: type: string - name: fields in: query description: A comma separated list of fields to include in the result. schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/QuoteLineItemSuccessResponse' example: Data: commissionPercent: 0 delivery: string description: string discountPercent: 0 FOB: string isTaxable: false itemNumber: 0 jobNotes: string jobNumber: string lastModDate: '2026-09-06T17:13:12.0000000+00:00' lastModUser: string miscCharge: 0 miscChargeForeign: 0 miscDescription: string partNumber: string price1: 0 price2: 0 price3: 0 price4: 0 price5: 0 price6: 0 price7: 0 price8: 0 priceForeign1: 0 priceForeign2: 0 priceForeign3: 0 priceForeign4: 0 priceForeign5: 0 priceForeign6: 0 priceForeign7: 0 priceForeign8: 0 quantity1: 0 quantity2: 0 quantity3: 0 quantity4: 0 quantity5: 0 quantity6: 0 quantity7: 0 quantity8: 0 quoteNumber: string quotePart: false revision: string status: string uniqueID: 0 unit1: string unit2: string unit3: string unit4: string unit5: string unit6: string unit7: string unit8: string user_Currency1: 0 user_Currency2: 0 user_Date1: '2026-09-06T17:13:12.0000000+00:00' user_Date2: '2026-09-06T17:13:12.0000000+00:00' user_Memo1: string user_Number1: 0 user_Number2: 0 user_Number3: 0 user_Number4: 0 user_Text1: string user_Text2: string user_Text3: string user_Text4: string workCode: string operationId: getApiV1QuotesByQuoteNumberQuoteLineItemByItemNumber x-operation-id-source: derived /api/v1/quotes/{quoteNumber}/quote-line-items: post: tags: - Quote Line Items summary: Creates a Quote Line Item description: Please see the currency fields documentation for information about the `price#`/`price#Foreign` and `miscCharge`/`miscChargeForeign` fields. parameters: - name: quoteNumber in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/QuoteLineItemCreate' example: commissionPercent: 0 delivery: string description: string discountPercent: 0 FOB: string itemNumber: 0 jobNotes: string jobNumber: string miscCharge: 0 miscChargeForeign: 0 miscDescription: string partNumber: string price1: 0 price2: 0 price3: 0 price4: 0 price5: 0 price6: 0 price7: 0 price8: 0 priceForeign1: 0 priceForeign2: 0 priceForeign3: 0 priceForeign4: 0 priceForeign5: 0 priceForeign6: 0 priceForeign7: 0 priceForeign8: 0 quantity1: 0 quantity2: 0 quantity3: 0 quantity4: 0 quantity5: 0 quantity6: 0 quantity7: 0 quantity8: 0 revision: string status: string uniqueID: 0 unit1: string unit2: string unit3: string unit4: string unit5: string unit6: string unit7: string unit8: string user_Currency1: 0 user_Currency2: 0 user_Date1: '2026-09-06T17:13:12.0000000+00:00' user_Date2: '2026-09-06T17:13:12.0000000+00:00' user_Memo1: string user_Number1: 0 user_Number2: 0 user_Number3: 0 user_Number4: 0 user_Text1: string user_Text2: string user_Text3: string user_Text4: string workCode: string responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/QuoteLineItem' example: commissionPercent: 0 delivery: string description: string discountPercent: 0 FOB: string isTaxable: false itemNumber: 0 jobNotes: string jobNumber: string lastModDate: '2026-09-06T17:13:12.0000000+00:00' lastModUser: string miscCharge: 0 miscChargeForeign: 0 miscDescription: string partNumber: string price1: 0 price2: 0 price3: 0 price4: 0 price5: 0 price6: 0 price7: 0 price8: 0 priceForeign1: 0 priceForeign2: 0 priceForeign3: 0 priceForeign4: 0 priceForeign5: 0 priceForeign6: 0 priceForeign7: 0 priceForeign8: 0 quantity1: 0 quantity2: 0 quantity3: 0 quantity4: 0 quantity5: 0 quantity6: 0 quantity7: 0 quantity8: 0 quoteNumber: string quotePart: false revision: string status: string uniqueID: 0 unit1: string unit2: string unit3: string unit4: string unit5: string unit6: string unit7: string unit8: string user_Currency1: 0 user_Currency2: 0 user_Date1: '2026-09-06T17:13:12.0000000+00:00' user_Date2: '2026-09-06T17:13:12.0000000+00:00' user_Memo1: string user_Number1: 0 user_Number2: 0 user_Number3: 0 user_Number4: 0 user_Text1: string user_Text2: string user_Text3: string user_Text4: string workCode: string operationId: postApiV1QuotesByQuoteNumberQuoteLineItems x-operation-id-source: derived /api/v1/quotes/{quoteNumber}/quote-line-items/{itemNumber}: patch: tags: - Quote Line Items summary: Updates a Quote Line Item description: Please see the currency fields documentation for information about the `price#`/`price#Foreign` and `miscCharge`/`miscChargeForeign` fields. parameters: - name: quoteNumber in: path required: true schema: type: string - name: itemNumber in: path required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/QuoteLineItemUpdate' example: commissionPercent: 0 delivery: string description: string discountPercent: 0 FOB: string itemNumber: 0 jobNotes: string jobNumber: string miscCharge: 0 miscChargeForeign: 0 miscDescription: string partNumber: string price1: 0 price2: 0 price3: 0 price4: 0 price5: 0 price6: 0 price7: 0 price8: 0 priceForeign1: 0 priceForeign2: 0 priceForeign3: 0 priceForeign4: 0 priceForeign5: 0 priceForeign6: 0 priceForeign7: 0 priceForeign8: 0 quantity1: 0 quantity2: 0 quantity3: 0 quantity4: 0 quantity5: 0 quantity6: 0 quantity7: 0 quantity8: 0 revision: string status: string uniqueID: 0 unit1: string unit2: string unit3: string unit4: string unit5: string unit6: string unit7: string unit8: string user_Currency1: 0 user_Currency2: 0 user_Date1: '2026-09-06T17:13:12.0000000+00:00' user_Date2: '2026-09-06T17:13:12.0000000+00:00' user_Memo1: string user_Number1: 0 user_Number2: 0 user_Number3: 0 user_Number4: 0 user_Text1: string user_Text2: string user_Text3: string user_Text4: string workCode: string responses: '204': description: Success operationId: patchApiV1QuotesByQuoteNumberQuoteLineItemsByItemNumber x-operation-id-source: derived components: schemas: QuoteLineItemUpdate: type: object properties: commissionPercent: type: - number - 'null' format: double delivery: type: - string - 'null' description: type: - string - 'null' discountPercent: type: - number - 'null' format: double FOB: type: - string - 'null' itemNumber: type: - integer - 'null' format: int32 jobNotes: type: - string - 'null' jobNumber: type: - string - 'null' miscCharge: type: - number - 'null' format: double miscChargeForeign: type: - number - 'null' format: double miscDescription: type: - string - 'null' partNumber: type: - string - 'null' price1: type: - number - 'null' format: double price2: type: - number - 'null' format: double price3: type: - number - 'null' format: double price4: type: - number - 'null' format: double price5: type: - number - 'null' format: double price6: type: - number - 'null' format: double price7: type: - number - 'null' format: double price8: type: - number - 'null' format: double priceForeign1: type: - number - 'null' format: double priceForeign2: type: - number - 'null' format: double priceForeign3: type: - number - 'null' format: double priceForeign4: type: - number - 'null' format: double priceForeign5: type: - number - 'null' format: double priceForeign6: type: - number - 'null' format: double priceForeign7: type: - number - 'null' format: double priceForeign8: type: - number - 'null' format: double quantity1: type: - integer - 'null' format: int32 quantity2: type: - integer - 'null' format: int32 quantity3: type: - integer - 'null' format: int32 quantity4: type: - integer - 'null' format: int32 quantity5: type: - integer - 'null' format: int32 quantity6: type: - integer - 'null' format: int32 quantity7: type: - integer - 'null' format: int32 quantity8: type: - integer - 'null' format: int32 revision: type: - string - 'null' status: type: - string - 'null' uniqueID: type: integer format: int32 unit1: type: - string - 'null' unit2: type: - string - 'null' unit3: type: - string - 'null' unit4: type: - string - 'null' unit5: type: - string - 'null' unit6: type: - string - 'null' unit7: type: - string - 'null' unit8: type: - string - 'null' user_Currency1: type: - number - 'null' format: double user_Currency2: type: - number - 'null' format: double user_Date1: type: - string - 'null' format: date-time user_Date2: type: - string - 'null' format: date-time user_Memo1: type: - string - 'null' user_Number1: type: - number - 'null' format: double user_Number2: type: - number - 'null' format: double user_Number3: type: - number - 'null' format: double user_Number4: type: - number - 'null' format: double user_Text1: type: - string - 'null' user_Text2: type: - string - 'null' user_Text3: type: - string - 'null' user_Text4: type: - string - 'null' workCode: type: - string - 'null' additionalProperties: false QuoteLineItemListSuccessResponse: type: object properties: Data: type: - array - 'null' items: $ref: '#/components/schemas/QuoteLineItem' additionalProperties: false QuoteLineItemCreate: type: object properties: commissionPercent: type: - number - 'null' format: double delivery: type: - string - 'null' description: type: - string - 'null' discountPercent: type: - number - 'null' format: double FOB: type: - string - 'null' itemNumber: type: - integer - 'null' format: int32 jobNotes: type: - string - 'null' jobNumber: type: - string - 'null' miscCharge: type: - number - 'null' format: double miscChargeForeign: type: - number - 'null' format: double miscDescription: type: - string - 'null' partNumber: type: - string - 'null' price1: type: - number - 'null' format: double price2: type: - number - 'null' format: double price3: type: - number - 'null' format: double price4: type: - number - 'null' format: double price5: type: - number - 'null' format: double price6: type: - number - 'null' format: double price7: type: - number - 'null' format: double price8: type: - number - 'null' format: double priceForeign1: type: - number - 'null' format: double priceForeign2: type: - number - 'null' format: double priceForeign3: type: - number - 'null' format: double priceForeign4: type: - number - 'null' format: double priceForeign5: type: - number - 'null' format: double priceForeign6: type: - number - 'null' format: double priceForeign7: type: - number - 'null' format: double priceForeign8: type: - number - 'null' format: double quantity1: type: - integer - 'null' format: int32 quantity2: type: - integer - 'null' format: int32 quantity3: type: - integer - 'null' format: int32 quantity4: type: - integer - 'null' format: int32 quantity5: type: - integer - 'null' format: int32 quantity6: type: - integer - 'null' format: int32 quantity7: type: - integer - 'null' format: int32 quantity8: type: - integer - 'null' format: int32 revision: type: - string - 'null' status: type: - string - 'null' uniqueID: type: integer format: int32 unit1: type: - string - 'null' unit2: type: - string - 'null' unit3: type: - string - 'null' unit4: type: - string - 'null' unit5: type: - string - 'null' unit6: type: - string - 'null' unit7: type: - string - 'null' unit8: type: - string - 'null' user_Currency1: type: - number - 'null' format: double user_Currency2: type: - number - 'null' format: double user_Date1: type: - string - 'null' format: date-time user_Date2: type: - string - 'null' format: date-time user_Memo1: type: - string - 'null' user_Number1: type: - number - 'null' format: double user_Number2: type: - number - 'null' format: double user_Number3: type: - number - 'null' format: double user_Number4: type: - number - 'null' format: double user_Text1: type: - string - 'null' user_Text2: type: - string - 'null' user_Text3: type: - string - 'null' user_Text4: type: - string - 'null' workCode: type: - string - 'null' additionalProperties: false QuoteLineItemSuccessResponse: type: object properties: Data: $ref: '#/components/schemas/QuoteLineItem' additionalProperties: false QuoteLineItem: type: object properties: commissionPercent: type: - number - 'null' format: double readOnly: true delivery: type: - string - 'null' readOnly: true description: type: - string - 'null' readOnly: true discountPercent: type: - number - 'null' format: double readOnly: true FOB: type: - string - 'null' readOnly: true isTaxable: type: boolean readOnly: true itemNumber: type: - integer - 'null' format: int32 readOnly: true jobNotes: type: - string - 'null' readOnly: true jobNumber: type: - string - 'null' readOnly: true lastModDate: type: - string - 'null' format: date-time readOnly: true lastModUser: type: - string - 'null' readOnly: true miscCharge: type: - number - 'null' format: double readOnly: true miscChargeForeign: type: - number - 'null' format: double readOnly: true miscDescription: type: - string - 'null' readOnly: true partNumber: type: - string - 'null' readOnly: true price1: type: - number - 'null' format: double readOnly: true price2: type: - number - 'null' format: double readOnly: true price3: type: - number - 'null' format: double readOnly: true price4: type: - number - 'null' format: double readOnly: true price5: type: - number - 'null' format: double readOnly: true price6: type: - number - 'null' format: double readOnly: true price7: type: - number - 'null' format: double readOnly: true price8: type: - number - 'null' format: double readOnly: true priceForeign1: type: - number - 'null' format: double readOnly: true priceForeign2: type: - number - 'null' format: double readOnly: true priceForeign3: type: - number - 'null' format: double readOnly: true priceForeign4: type: - number - 'null' format: double readOnly: true priceForeign5: type: - number - 'null' format: double readOnly: true priceForeign6: type: - number - 'null' format: double readOnly: true priceForeign7: type: - number - 'null' format: double readOnly: true priceForeign8: type: - number - 'null' format: double readOnly: true quantity1: type: - integer - 'null' format: int32 readOnly: true quantity2: type: - integer - 'null' format: int32 readOnly: true quantity3: type: - integer - 'null' format: int32 readOnly: true quantity4: type: - integer - 'null' format: int32 readOnly: true quantity5: type: - integer - 'null' format: int32 readOnly: true quantity6: type: - integer - 'null' format: int32 readOnly: true quantity7: type: - integer - 'null' format: int32 readOnly: true quantity8: type: - integer - 'null' format: int32 readOnly: true quoteNumber: type: - string - 'null' readOnly: true quotePart: type: boolean readOnly: true revision: type: - string - 'null' readOnly: true status: type: - string - 'null' readOnly: true uniqueID: type: integer format: int32 readOnly: true unit1: type: - string - 'null' readOnly: true unit2: type: - string - 'null' readOnly: true unit3: type: - string - 'null' readOnly: true unit4: type: - string - 'null' readOnly: true unit5: type: - string - 'null' readOnly: true unit6: type: - string - 'null' readOnly: true unit7: type: - string - 'null' readOnly: true unit8: type: - string - 'null' readOnly: true user_Currency1: type: - number - 'null' format: double readOnly: true user_Currency2: type: - number - 'null' format: double readOnly: true user_Date1: type: - string - 'null' format: date-time readOnly: true user_Date2: type: - string - 'null' format: date-time readOnly: true user_Memo1: type: - string - 'null' readOnly: true user_Number1: type: - number - 'null' format: double readOnly: true user_Number2: type: - number - 'null' format: double readOnly: true user_Number3: type: - number - 'null' format: double readOnly: true user_Number4: type: - number - 'null' format: double readOnly: true user_Text1: type: - string - 'null' readOnly: true user_Text2: type: - string - 'null' readOnly: true user_Text3: type: - string - 'null' readOnly: true user_Text4: type: - string - 'null' readOnly: true workCode: type: - string - 'null' readOnly: true additionalProperties: false securitySchemes: Bearer: type: oauth2 description: OAuth 2.0 Client Credentials Flow with API Users issued from Integration Engine Management Console flows: clientCredentials: tokenUrl: https://api-user.integrations.ecimanufacturing.com/oauth2/api-user/token scopes: openid: openid