openapi: 3.2.0 info: title: ERP API v2.1 Sales Order 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: SalesOrderLine paths: /api/v2.1/sales-order-lines: post: tags: - SalesOrderLine summary: Create a new SalesOrderLine in the ERP system description: '## Supported ERPs - JobBOSS²' requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/SalesOrderLineCreateModel' text/json: schema: $ref: '#/components/schemas/SalesOrderLineCreateModel' application/*+json: schema: $ref: '#/components/schemas/SalesOrderLineCreateModel' responses: '201': description: Created operationId: postApiV21SalesOrderLines x-operation-id-source: derived get: tags: - SalesOrderLine summary: Get a list of SalesOrderLines from the ERP system that match the given filters description: 'Gets a list of SalesOrderLine. ## Supported ERPs - M1 - Macola - JobBOSS² - Deacom ## 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 ------------|------------|------------|------------ salesOrderID|Yes|Yes|M1, Macola, JobBOSS², Deacom orderLine|Yes|Yes|M1, Macola, JobBOSS², Deacom totalSalePrice|Yes|Yes|M1, Macola, JobBOSS², Deacom uniqueID|Yes|Yes|M1, Macola, JobBOSS², Deacom rowVersion|Yes|Yes|M1, Macola, JobBOSS², Deacom partID|No|Yes|M1, Macola, JobBOSS², Deacom partRevisionID|No|Yes|M1, Macola, JobBOSS², Deacom partGroupID|No|Yes|M1, Macola, JobBOSS², Deacom shortDescription|No|Yes|M1, Macola, JobBOSS², Deacom saleUom|No|Yes|M1, Macola, JobBOSS², Deacom baseUnitPrice|No|Yes|M1, Macola, JobBOSS², Deacom foreignUnitPrice|No|Yes|M1, Macola, JobBOSS², Deacom baseExtendedPrice|No|Yes|M1, Macola, JobBOSS², Deacom foreignExtendedPrice|No|Yes|M1, Macola, JobBOSS², Deacom quantityOrdered|No|Yes|M1, Macola, JobBOSS², Deacom quantityShipped|No|Yes|M1, Macola, JobBOSS², Deacom purchaseOrderCost|No|Yes|M1, Macola, JobBOSS², Deacom purchaseOrderCostForeign|No|Yes|M1, Macola, JobBOSS², Deacom salesOrderType|No|Yes|Macola locationID|No|Yes|Macola shippedDate|No|Yes|Macola isPosted|No|Yes|Macola dueDate|No|Yes|JobBOSS²' 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: salesOrderID[eq]: abc123 orderLine[gte]: 123 totalSalePrice[gte]: 123 uniqueID[eq]: cc90686b-399e-4094-b431-fa462f84b0a8 rowVersion[gte]: 123 - name: expand in: query description: '### Supported Expansions An expansion expression containing a comma separater list of relationships to expand. Name |Value |Description ------------|------------|----------- salesOrderDeliveries|SalesOrderDeliveries[]| salesOrderJobs|SalesOrderJobs| salesOrder|SalesOrders| partRevision|PartRevisions| partGroup|PartGroups| ' schema: type: string - name: convertToUTC in: query description: Convert suppported date/time values to UTC before returning the data. schema: type: boolean responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/SalesOrderLineListResponse' application/json: schema: $ref: '#/components/schemas/SalesOrderLineListResponse' text/json: schema: $ref: '#/components/schemas/SalesOrderLineListResponse' operationId: getApiV21SalesOrderLines x-operation-id-source: derived /api/v2.1/sales-order-lines/{id}: get: tags: - SalesOrderLine summary: Get a SalesOrderLine from the ERP system that match the given filters description: 'Gets a SalesOrderLine by unique ID. ## Supported ERPs - M1 - Macola - JobBOSS² - Deacom ## Features by Field Field |Supported ERPs ------------|------------ salesOrderID||M1, Macola, JobBOSS², Deacom orderLine||M1, Macola, JobBOSS², Deacom totalSalePrice||M1, Macola, JobBOSS², Deacom uniqueID||M1, Macola, JobBOSS², Deacom rowVersion||M1, Macola, JobBOSS², Deacom partID||M1, Macola, JobBOSS², Deacom partRevisionID||M1, Macola, JobBOSS², Deacom partGroupID||M1, Macola, JobBOSS², Deacom shortDescription||M1, Macola, JobBOSS², Deacom saleUom||M1, Macola, JobBOSS², Deacom baseUnitPrice||M1, Macola, JobBOSS², Deacom foreignUnitPrice||M1, Macola, JobBOSS², Deacom baseExtendedPrice||M1, Macola, JobBOSS², Deacom foreignExtendedPrice||M1, Macola, JobBOSS², Deacom quantityOrdered||M1, Macola, JobBOSS², Deacom quantityShipped||M1, Macola, JobBOSS², Deacom purchaseOrderCost||M1, Macola, JobBOSS², Deacom purchaseOrderCostForeign||M1, Macola, JobBOSS², Deacom salesOrderType||Macola locationID||Macola shippedDate||Macola isPosted||Macola dueDate||JobBOSS²' parameters: - name: id in: path description: The ID of the SalesOrder required: true schema: type: string responses: '200': description: Success content: text/plain: schema: $ref: '#/components/schemas/SalesOrderLine' application/json: schema: $ref: '#/components/schemas/SalesOrderLine' text/json: schema: $ref: '#/components/schemas/SalesOrderLine' operationId: getApiV21SalesOrderLinesById x-operation-id-source: derived components: schemas: SalesOrderLineCreateModel: type: object properties: salesOrderID: type: - string - 'null' partID: type: - string - 'null' partRevisionID: type: - string - 'null' partGroupID: type: - string - 'null' description: Should this be able to be specified??? quantityOrdered: type: - number - 'null' format: double saleUom: type: - string - 'null' baseUnitPrice: type: - number - 'null' format: double foreignUnitPrice: type: - number - 'null' format: double quoteID: type: - string - 'null' quoteLineID: type: - string - 'null' dueDate: type: - string - 'null' format: date additionalProperties: false SalesOrder: title: SalesOrder type: object properties: uniqueID: type: string rowVersion: type: integer format: int64 salesOrderID: type: string customerID: type: string orderDate: type: string format: date plantID: type: string projectID: type: string salesOrderType: type: string totalSalesAmount: type: number format: double status: type: string originalOrderType: type: string quoteID: type: string closedDate: type: string format: date customer: $ref: '#/components/schemas/Organization' plant: $ref: '#/components/schemas/Plant' project: $ref: '#/components/schemas/Project' SalesOrderLineListResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/SalesOrderLine' readOnly: true resultCount: type: integer format: int32 additionalProperties: false SalesOrderDelivery: title: SalesOrderDelivery type: object properties: salesOrderID: type: string orderLine: type: integer orderLineDelivery: type: string promisedDate: type: string format: date-time promisedQty: type: number format: double shippedDate: type: string format: date-time shippedQty: type: number format: double uniqueID: type: string rowVersion: type: integer format: int64 deliveryTypeCode: type: string salesOrderType: type: string salesOrderJobs: type: array items: $ref: '#/components/schemas/SalesOrderJob' SalesOrderJob: title: SalesOrderJob type: object properties: salesOrderID: type: string orderLine: type: integer orderLineDelivery: type: string jobID: type: string orderJobSeq: type: integer format: int32 uniqueID: type: string rowVersion: type: integer format: int64 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 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 PartRevision: title: PartRevision type: object properties: partID: type: string partRevisionID: type: string shortDesc: type: string longDescText: type: string longDescFormatted: type: string uniqueID: type: string rowVersion: type: integer format: int64 partCost: type: number format: double effectiveStartDate: type: string format: date expirationEndDate: type: string format: date supplierOrganizationID: type: string leadTime: type: integer format: int32 quantityOnHand: type: number format: double pricingUnitOfMeasure: type: string Plant: title: Plant type: object properties: plantID: type: string name: type: string uniqueID: type: string rowVersion: type: integer format: int64 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' SalesOrderLine: title: SalesOrderLine type: object properties: salesOrderID: type: string orderLine: type: integer totalSalePrice: type: number format: double uniqueID: type: string rowVersion: type: integer format: int64 partID: type: string partRevisionID: type: string partGroupID: type: string shortDescription: type: string saleUom: type: string baseUnitPrice: type: number description: The price expressed in the currency of the seller. format: double foreignUnitPrice: type: number description: The price expressed in the currency of the buyer, if different from that of the seller. format: double baseExtendedPrice: type: number description: The extended (qty x price) total expressed in the currency of the seller. format: double foreignExtendedPrice: type: number description: The extended (qty x price) total expressed in the currency of the buyer, if different from that of the seller. format: double quantityOrdered: type: number format: double quantityShipped: type: number format: double purchaseOrderCost: type: number format: double purchaseOrderCostForeign: type: number format: double salesOrderType: type: string locationID: type: string shippedDate: type: string format: date-time isPosted: type: boolean dueDate: type: string format: date-time salesOrderDeliveries: type: array items: $ref: '#/components/schemas/SalesOrderDelivery' salesOrderJobs: $ref: '#/components/schemas/SalesOrderJob' salesOrder: $ref: '#/components/schemas/SalesOrder' partRevision: $ref: '#/components/schemas/PartRevision' partGroup: $ref: '#/components/schemas/PartGroup' 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