openapi: 3.2.0
info:
title: JobBOSS² Public Purchase Orders 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: Purchase Orders
paths:
/api/v1/purchase-orders:
get:
tags:
- Purchase Orders
summary: Gets a list of Purchase Orders
description: 'By default a purchase order response will include only the fields: contact, currencyCode, dateEntered, lastModDate, phone, PONumber, purchasedBy, shipCode, status, uniqueID, vendorCode, vendorDescription, vendorQuoteNumber, vendorType. You may specify the exact fields to return using the fields parameter. When filtering by status, use O for open purchase orders and C for closed purchase orders.'
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. For status filters, use O (open) or C (closed).
schema:
type: object
additionalProperties:
type: string
examples:
No filters: {}
Filter by Vendor:
value:
vendorCode: RYERSON
- 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/PurchaseOrderListSuccessResponse'
example:
Data:
- contact: string
currencyCode: string
dateComplete: '2026-09-06T17:13:12.0000000+00:00'
dateEntered: '2026-09-06T17:13:12.0000000+00:00'
dateEnteredLabel: '2026-09-06T17:13:12.0000000+00:00'
dateRequired: '2026-09-06T17:13:12.0000000+00:00'
deliveryTicketPrinted: false
enteredBy: string
exchangeRate: 0
fax: string
GSTCharges: 0
GSTCode: string
GSTCodeForeign: 0
ignoreMinimumOrder: false
labelPrinted: false
lastModDate: '2026-09-06T17:13:12.0000000+00:00'
lastModUser: string
location: string
mainDueDate: '2026-09-06T17:13:12.0000000+00:00'
notesToVendor: string
phone: string
PONumber: string
POPrinted: false
POTotal: 0
POTotalForeign: 0
processFlag: 0
purchasedBy: string
RFQNumber: string
salesTaxCharges: 0
salesTaxChargesForeign: 0
salesTaxCode: string
shipCode: string
shippingAddress1: string
shippingAddressType: string
shippingCity: string
shippingCountry: string
shippingStreet: string
shippingZip: string
shipToName: string
shipVia: string
status: string
termsCode: string
uniqueID: 0
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
vendorCode: string
vendorDescription: string
vendorQuoteNumber: string
vendorType: string
operationId: getApiV1PurchaseOrders
x-operation-id-source: derived
/api/v1/purchase-orders/{PONumber}:
get:
tags:
- Purchase Orders
summary: Gets a Purchase Order by PO number
description: 'By default a purchase order response will include only the fields: contact, currencyCode, dateEntered, lastModDate, phone, PONumber, purchasedBy, shipCode, status, uniqueID, vendorCode, vendorDescription, vendorQuoteNumber, vendorType. You may specify the exact fields to return using the fields parameter.'
parameters:
- name: PONumber
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/PurchaseOrderSuccessResponse'
example:
Data:
contact: string
currencyCode: string
dateComplete: '2026-09-06T17:13:12.0000000+00:00'
dateEntered: '2026-09-06T17:13:12.0000000+00:00'
dateEnteredLabel: '2026-09-06T17:13:12.0000000+00:00'
dateRequired: '2026-09-06T17:13:12.0000000+00:00'
deliveryTicketPrinted: false
enteredBy: string
exchangeRate: 0
fax: string
GSTCharges: 0
GSTCode: string
GSTCodeForeign: 0
ignoreMinimumOrder: false
labelPrinted: false
lastModDate: '2026-09-06T17:13:12.0000000+00:00'
lastModUser: string
location: string
mainDueDate: '2026-09-06T17:13:12.0000000+00:00'
notesToVendor: string
phone: string
PONumber: string
POPrinted: false
POTotal: 0
POTotalForeign: 0
processFlag: 0
purchasedBy: string
RFQNumber: string
salesTaxCharges: 0
salesTaxChargesForeign: 0
salesTaxCode: string
shipCode: string
shippingAddress1: string
shippingAddressType: string
shippingCity: string
shippingCountry: string
shippingStreet: string
shippingZip: string
shipToName: string
shipVia: string
status: string
termsCode: string
uniqueID: 0
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
vendorCode: string
vendorDescription: string
vendorQuoteNumber: string
vendorType: string
operationId: getApiV1PurchaseOrdersByPONumber
x-operation-id-source: derived
patch:
tags:
- Purchase Orders
summary: Updates a Purchase Order
parameters:
- name: PONumber
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PurchaseOrderUpdate'
example:
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
responses:
'204':
description: Success
operationId: patchApiV1PurchaseOrdersByPONumber
x-operation-id-source: derived
components:
schemas:
PurchaseOrderSuccessResponse:
type: object
properties:
Data:
$ref: '#/components/schemas/PurchaseOrder'
additionalProperties: false
PurchaseOrderUpdate:
type: object
properties:
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'
additionalProperties: false
PurchaseOrderListSuccessResponse:
type: object
properties:
Data:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/PurchaseOrder'
additionalProperties: false
PurchaseOrder:
type: object
properties:
contact:
type:
- string
- 'null'
readOnly: true
currencyCode:
type:
- string
- 'null'
readOnly: true
dateComplete:
type:
- string
- 'null'
format: date-time
readOnly: true
dateEntered:
type:
- string
- 'null'
format: date-time
readOnly: true
dateEnteredLabel:
type:
- string
- 'null'
format: date-time
readOnly: true
dateRequired:
type:
- string
- 'null'
format: date-time
readOnly: true
deliveryTicketPrinted:
type: boolean
readOnly: true
enteredBy:
type:
- string
- 'null'
readOnly: true
exchangeRate:
type:
- number
- 'null'
format: double
readOnly: true
fax:
type:
- string
- 'null'
readOnly: true
GSTCharges:
type:
- number
- 'null'
format: double
readOnly: true
GSTCode:
type:
- string
- 'null'
readOnly: true
GSTCodeForeign:
type:
- number
- 'null'
format: double
readOnly: true
ignoreMinimumOrder:
type: boolean
readOnly: true
labelPrinted:
type: boolean
readOnly: true
lastModDate:
type:
- string
- 'null'
format: date-time
readOnly: true
lastModUser:
type:
- string
- 'null'
readOnly: true
location:
type:
- string
- 'null'
readOnly: true
mainDueDate:
type:
- string
- 'null'
format: date-time
readOnly: true
notesToVendor:
type:
- string
- 'null'
readOnly: true
phone:
type:
- string
- 'null'
readOnly: true
PONumber:
type:
- string
- 'null'
readOnly: true
POPrinted:
type: boolean
readOnly: true
POTotal:
type:
- number
- 'null'
format: double
readOnly: true
POTotalForeign:
type:
- number
- 'null'
format: double
readOnly: true
processFlag:
type:
- integer
- 'null'
format: int32
readOnly: true
purchasedBy:
type:
- string
- 'null'
readOnly: true
RFQNumber:
type:
- string
- 'null'
readOnly: true
salesTaxCharges:
type:
- number
- 'null'
format: double
readOnly: true
salesTaxChargesForeign:
type:
- number
- 'null'
format: double
readOnly: true
salesTaxCode:
type:
- string
- 'null'
readOnly: true
shipCode:
type:
- string
- 'null'
readOnly: true
shippingAddress1:
type:
- string
- 'null'
readOnly: true
shippingAddressType:
type:
- string
- 'null'
readOnly: true
shippingCity:
type:
- string
- 'null'
readOnly: true
shippingCountry:
type:
- string
- 'null'
readOnly: true
shippingStreet:
type:
- string
- 'null'
readOnly: true
shippingZip:
type:
- string
- 'null'
readOnly: true
shipToName:
type:
- string
- 'null'
readOnly: true
shipVia:
type:
- string
- 'null'
readOnly: true
status:
type:
- string
- 'null'
readOnly: true
termsCode:
type:
- string
- 'null'
readOnly: true
uniqueID:
type: integer
format: int32
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
vendorCode:
type:
- string
- 'null'
readOnly: true
vendorDescription:
type:
- string
- 'null'
readOnly: true
vendorQuoteNumber:
type:
- string
- 'null'
readOnly: true
vendorType:
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