openapi: 3.2.0 info: title: ERP API v2.1 Quote Line API description: Provides a common API surface for accessing ECI ERP products. contact: name: ECI Manufacturing Division Integration Team url: https://www.ecisolutions.com/support/ version: 3.5.585+b1e45fd230 servers: - url: https://api-erp.integrations.ecimanufacturing.com:443 description: Production security: - Bearer: [] tags: - name: QuoteLine paths: /api/v2.1/quote-lines: get: tags: - QuoteLine summary: Get a list of QuoteLines from the ERP system that match the given filters description: 'Gets a list of QuoteLine. ## Supported ERPs - M1 - Macola - JobBOSS² ## Resource Features Feature |Supported |Notes ------------|------------|------------ Filter Expressions|**Yes**| Sort Expressions|**Yes** Field Selection|**Yes** Pagination|**Yes** UniqueID|uniqueID| ## Features by Field Field |Filterable |Sortable |Supported ERPs ------------|------------|------------|------------ uniqueID|Yes|Yes|M1, Macola, JobBOSS² rowVersion|Yes|Yes|M1, Macola, JobBOSS² quoteID|Yes|Yes|M1, Macola, JobBOSS² partID|Yes|Yes|M1, Macola, JobBOSS² partRevisionID|Yes|Yes|M1, Macola, JobBOSS² partGroupID|Yes|Yes|M1, Macola, JobBOSS² shortDescription|No|Yes|M1, Macola, JobBOSS² quoteQuantityID|No|Yes|M1, Macola, JobBOSS² quoteLineID|Yes|Yes|M1, Macola, JobBOSS² resolutionReasonID|No|Yes|M1, Macola, JobBOSS² locationID|No|Yes|Macola' 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 sort expressions. schema: type: string - name: take in: query description: Limit the number of results being returned schema: minimum: 0 type: integer - name: skip in: query description: The number of results to skip. Combine with 'take' to fetch records in pages schema: minimum: 0 type: integer - name: count in: query description: 'Data and count response behavior ' schema: maximum: 2 minimum: 0 type: integer - name: filters in: query description: See Filter Expressions for query string syntax. The Test UI and any generated code tool may expose filter parameters as a dictionary of name/value pairs, but if creating a raw HTTP request, they must be provided on the querystring as defined in the Filter Expression section. style: form schema: type: object additionalProperties: type: string examples: Empty: description: No filters applied 'Example #1': description: A dictionary of name/value pairs that will be serialized as querystring parameters in the format ```name[operator]=value``` value: uniqueID[eq]: cc90686b-399e-4094-b431-fa462f84b0a8 rowVersion[gte]: 123 quoteID[eq]: abc123 partID[eq]: abc123 partRevisionID[eq]: abc123 partGroupID[eq]: abc123 quoteLineID[eq]: abc123 - name: expand in: query description: '### Supported Expansions An expansion expression containing a comma separater list of relationships to expand. Name |Value |Description ------------|------------|----------- quote|Quotes|The parent Quote header for this line. resolutionReason|Reasons|The reason detail for the resolution. partGroup|PartGroups|The parent Quote header for this line. ' schema: type: string responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/QuoteLineListResponse' application/json: schema: $ref: '#/components/schemas/QuoteLineListResponse' text/json: schema: $ref: '#/components/schemas/QuoteLineListResponse' operationId: getApiV21QuoteLines x-operation-id-source: derived /api/v2.1/quote-lines/{id}: get: tags: - QuoteLine summary: Get a QuoteLine from the ERP system that matches the given unique ID description: 'Gets a QuoteLine by unique ID. ## Supported ERPs - M1 - Macola - JobBOSS² ## Features by Field Field |Supported ERPs ------------|------------ uniqueID||M1, Macola, JobBOSS² rowVersion||M1, Macola, JobBOSS² quoteID||M1, Macola, JobBOSS² partID||M1, Macola, JobBOSS² partRevisionID||M1, Macola, JobBOSS² partGroupID||M1, Macola, JobBOSS² shortDescription||M1, Macola, JobBOSS² quoteQuantityID||M1, Macola, JobBOSS² quoteLineID||M1, Macola, JobBOSS² resolutionReasonID||M1, Macola, JobBOSS² locationID||Macola' parameters: - name: id in: path description: The ID of the quote line required: true schema: type: string responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/QuoteLine' application/json: schema: $ref: '#/components/schemas/QuoteLine' text/json: schema: $ref: '#/components/schemas/QuoteLine' operationId: getApiV21QuoteLinesById x-operation-id-source: derived components: schemas: Reason: title: Reason type: object properties: reasonID: type: string description: type: string name: type: string uniqueID: type: string rowVersion: type: integer format: int64 Contact: title: Contact type: object properties: uniqueID: type: string rowVersion: type: integer format: int64 contactID: type: string name: type: string organizationID: type: string organizationTypes: type: array items: type: integer format: int32 phoneNumber: type: string emailAddress: type: string isActive: type: boolean comments: type: string organization: $ref: '#/components/schemas/Organization' Organization: title: Organization type: object properties: uniqueID: type: string rowVersion: type: integer format: int64 name: type: string organizationID: type: string country: type: string isActive: type: boolean organizationTypes: type: array items: type: integer format: int32 phoneNumber: type: string customerPaymentTermID: type: string customerTaxCodeID: type: string supplierPaymentTermID: type: string supplierTaxCodeID: type: string currencyCode: type: string websiteUrl: type: string comments: type: string salesAccountID: type: string leadTimeDays: type: integer format: int32 minimumOrderAmount: type: number format: double customerStatus: type: integer supplierStatus: type: integer Quote: title: Quote type: object properties: uniqueID: type: string rowVersion: type: integer format: int64 quoteID: type: string employeeID: type: string organizationID: type: string locationID: type: string contactID: type: string invoiceLocationID: type: string quoteDate: type: string format: date dueDate: type: string format: date isClosed: type: boolean closedDate: type: string format: date currencyRateID: type: string customerID: type: string expirationDate: type: string format: date plantID: type: string projectID: type: string shipToOrganizationID: type: string shipToContactID: type: string shipToLocationID: type: string statusCode: type: string totalSalesAmount: type: number format: double awardProbability: type: number format: double lostSaleCode: type: string customer: $ref: '#/components/schemas/Organization' contact: $ref: '#/components/schemas/Contact' shipTo: $ref: '#/components/schemas/Organization' shipToContact: $ref: '#/components/schemas/Contact' project: $ref: '#/components/schemas/Project' PartGroup: title: PartGroup type: object properties: uniqueID: type: string rowVersion: type: integer format: int64 partGroupID: type: string parentPartGroupID: type: string description: type: string isActive: type: boolean inactiveDate: type: string format: date Project: title: Project type: object properties: uniqueID: type: string rowVersion: type: integer format: int64 projectID: type: string customerID: type: string locationID: type: string contactID: type: string dueDate: type: string format: date projectDate: type: string format: date closedDate: type: string format: date shortDescription: type: string longDescription: type: string statusCode: type: string isClosed: type: boolean customer: $ref: '#/components/schemas/Organization' QuoteLine: title: QuoteLine type: object properties: uniqueID: type: string rowVersion: type: integer format: int64 quoteID: type: string partID: type: string partRevisionID: type: string partGroupID: type: string shortDescription: type: string quoteQuantityID: type: string description: The QuoteQuantity record identifier to be used when calculating a Quote Total. quoteLineID: type: string resolutionReasonID: type: string locationID: type: string quote: $ref: '#/components/schemas/Quote' resolutionReason: $ref: '#/components/schemas/Reason' partGroup: $ref: '#/components/schemas/PartGroup' QuoteLineListResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/QuoteLine' readOnly: true resultCount: type: integer format: int32 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