openapi: 3.2.0
info:
title: JobBOSS² Public Time Tickets 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: Time Tickets
paths:
/api/v1/time-tickets:
get:
tags:
- Time Tickets
summary: Gets a list of Time Tickets
description: 'By default a time ticket response will include only the fields: employeeCode, employeeName, enteredBy, enteredDate, lastModDate, lastModUser, searchDate, ticketDate, uniqueID. 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 Employee:
value:
employeeCode: '101'
- 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/TimeTicketListSuccessResponse'
example:
Data:
- employeeCode: 0
employeeName: string
enteredBy: string
enteredDate: '2026-09-06T17:13:13.0000000+00:00'
lastModDate: '2026-09-06T17:13:13.0000000+00:00'
lastModUser: string
searchDate: 0
ticketDate: '2026-09-06T17:13:13.0000000+00:00'
uniqueID: 0
operationId: getApiV1TimeTickets
x-operation-id-source: derived
post:
tags:
- Time Tickets
summary: Creates a Time Ticket
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TimeTicketCreate'
example:
timeTicketDetails:
- billingRate: 0
comments: string
cycleTime: 0
jobNumber: string
machinesRun: 0
numberMachinesForJob: 0
operationNumber: 0
overTime: false
payrollRate: 0
piecesFinished: 0
piecesScrapped: 0
reasonNumber: 0
setupTime: 0
shift: 0
stepNumber: 0
timeEnd: string
timeStart: string
unattendedOperation: false
workCenter: 0
allowClosedJobs: false
employeeCode: 0
ticketDate: '2026-09-06T17:13:13.0000000+00:00'
responses:
'201':
description: Created
content:
application/json:
schema:
$ref: '#/components/schemas/TimeTicket'
example:
employeeCode: 0
employeeName: string
enteredBy: string
enteredDate: '2026-09-06T17:13:13.0000000+00:00'
lastModDate: '2026-09-06T17:13:13.0000000+00:00'
lastModUser: string
searchDate: 0
ticketDate: '2026-09-06T17:13:13.0000000+00:00'
uniqueID: 0
operationId: postApiV1TimeTickets
x-operation-id-source: derived
/api/v1/time-tickets/{ticketDate}/employees/{employeeCode}:
get:
tags:
- Time Tickets
summary: Gets a Time Ticket by its unique ID
description: 'By default a time ticket response will include only the fields: employeeCode, employeeName, enteredBy, enteredDate, lastModDate, lastModUser, searchDate, ticketDate, uniqueID. You may specify the exact fields to return using the fields parameter.'
parameters:
- name: ticketDate
in: path
required: true
schema:
type: string
- name: employeeCode
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/TimeTicketSuccessResponse'
example:
Data:
employeeCode: 0
employeeName: string
enteredBy: string
enteredDate: '2026-09-06T17:13:13.0000000+00:00'
lastModDate: '2026-09-06T17:13:13.0000000+00:00'
lastModUser: string
searchDate: 0
ticketDate: '2026-09-06T17:13:13.0000000+00:00'
uniqueID: 0
operationId: getApiV1TimeTicketsByTicketDateEmployeesByEmployeeCode
x-operation-id-source: derived
patch:
tags:
- Time Tickets
summary: Updates a time ticket
parameters:
- name: ticketDate
in: path
required: true
schema:
type: string
- name: employeeCode
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/TimeTicketUpdate'
example:
timeTicketDetails:
- timeTicketGUID: null
allowClosedJobs: false
billingRate: 0
comments: string
cycleTime: 0
jobNumber: string
machinesRun: 0
numberMachinesForJob: 0
operationNumber: 0
overTime: false
payrollRate: 0
piecesFinished: 0
piecesScrapped: 0
reasonNumber: 0
setupTime: 0
shift: 0
stepNumber: 0
timeEnd: string
timeStart: string
unattendedOperation: false
workCenter: 0
responses:
'204':
description: Success
operationId: patchApiV1TimeTicketsByTicketDateEmployeesByEmployeeCode
x-operation-id-source: derived
components:
schemas:
TimeTicketTimeTicketDetailsUpdate:
type: object
properties:
timeTicketGUID:
type:
- string
- 'null'
allowClosedJobs:
type: boolean
billingRate:
type:
- integer
- 'null'
format: int32
comments:
type:
- string
- 'null'
cycleTime:
type:
- number
- 'null'
format: double
jobNumber:
type:
- string
- 'null'
machinesRun:
type:
- integer
- 'null'
format: int32
numberMachinesForJob:
type:
- number
- 'null'
format: double
operationNumber:
type:
- integer
- 'null'
format: int32
overTime:
type: boolean
payrollRate:
type:
- integer
- 'null'
format: int32
piecesFinished:
type:
- number
- 'null'
format: double
piecesScrapped:
type:
- number
- 'null'
format: double
reasonNumber:
type:
- number
- 'null'
format: float
setupTime:
type:
- number
- 'null'
format: double
shift:
type:
- integer
- 'null'
format: int32
stepNumber:
type:
- integer
- 'null'
format: int32
timeEnd:
type:
- string
- 'null'
timeStart:
type:
- string
- 'null'
unattendedOperation:
type: boolean
workCenter:
type:
- integer
- 'null'
format: int32
additionalProperties: false
TimeTicket:
type: object
properties:
employeeCode:
type:
- integer
- 'null'
format: int32
readOnly: true
employeeName:
type:
- string
- 'null'
readOnly: true
enteredBy:
type:
- string
- 'null'
readOnly: true
enteredDate:
type:
- string
- 'null'
format: date-time
readOnly: true
lastModDate:
type:
- string
- 'null'
format: date-time
readOnly: true
lastModUser:
type:
- string
- 'null'
readOnly: true
searchDate:
type:
- integer
- 'null'
format: int32
readOnly: true
ticketDate:
type:
- string
- 'null'
format: date-time
readOnly: true
uniqueID:
type: integer
format: int32
readOnly: true
additionalProperties: false
TimeTicketCreate:
required:
- employeeCode
- ticketDate
type: object
properties:
timeTicketDetails:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/TimeTicketTimeTicketDetailsCreate'
allowClosedJobs:
type: boolean
employeeCode:
type: integer
format: int32
ticketDate:
type: string
format: date-time
additionalProperties: false
TimeTicketTimeTicketDetailsCreate:
required:
- jobNumber
type: object
properties:
billingRate:
type:
- integer
- 'null'
format: int32
comments:
type:
- string
- 'null'
cycleTime:
type:
- number
- 'null'
format: double
jobNumber:
type: string
machinesRun:
type:
- integer
- 'null'
format: int32
numberMachinesForJob:
type:
- number
- 'null'
format: double
operationNumber:
type:
- integer
- 'null'
format: int32
overTime:
type: boolean
payrollRate:
type:
- integer
- 'null'
format: int32
piecesFinished:
type:
- number
- 'null'
format: double
piecesScrapped:
type:
- number
- 'null'
format: double
reasonNumber:
type:
- number
- 'null'
format: float
setupTime:
type:
- number
- 'null'
format: double
shift:
type:
- integer
- 'null'
format: int32
stepNumber:
type:
- integer
- 'null'
format: int32
timeEnd:
type:
- string
- 'null'
timeStart:
type:
- string
- 'null'
unattendedOperation:
type: boolean
workCenter:
type:
- integer
- 'null'
format: int32
additionalProperties: false
TimeTicketUpdate:
type: object
properties:
timeTicketDetails:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/TimeTicketTimeTicketDetailsUpdate'
additionalProperties: false
TimeTicketListSuccessResponse:
type: object
properties:
Data:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/TimeTicket'
additionalProperties: false
TimeTicketSuccessResponse:
type: object
properties:
Data:
$ref: '#/components/schemas/TimeTicket'
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