eCore Software
API documentation
Revised February 5, 2019
Table of Contents

Overview

This document describes the ePro Scheduler Plus API. The API is designed to allow external applications to interface with the ePro Scheduler Plus system. Client Applications can request for any operation defined in the service.

Service Url: https://services.ecoresoftware.com/API_v1.5/EmployeeService.svc

Technology

The API is implemented as a Secure WCF Rest web service. It will be accessible via the Internet over HTTPS/SSL only.

Security � Customers are validated customer using their assigned customer ID and password. Since the API can be consumed by a variety of users (vendor applications, customer applications, etc.), an assigned Vendor ID is also required. The customer ID, password and vendor ID is assigned by the eCore Software technical support staff.

Usage Guidelines

The API interface can be used to access customer data using the credentials described in the above paragraph. There are two versions of the interface. They are functionally identical, but vary in frequency of access and polling allowed.

Feature Set Basic API Premium API
Get Schedules once every 20 mins once every 2 mins
Get Punches once every 20 mins once every 2 mins
Get Employees 4 times daily Once per 30 mins
Get Certifications 4 times daily Once per 30 mins
Put Employee Profile unlimited unlimited
Put Employee Certification unlimited unlimited

When thresholds are exceeded the API is disabled. Please ensure your application is configured to respect the thresholds of the version you have purchased. You will have to call support to have the API re-enabled.

Request and Response Formats

Request and response data may be formatted as either XML or JSON. XML is the default format for both requests and responses. To receive a JSON-formatted response, add the following HTTP header to the request:

Accept: application/json
    

It may also be useful to request in XML and to receive in JSON; in that case, use the following HTTP headers:

Content-Type: application/xml
Accept: application/json

Functional Overview

All Operations

The API supports the following distinct data records for consumption:

Name Description
GetEmployees Returns a list of employee records
GetSchedules Returns a list of schedules records
GetPunches To get a list of punches records
GetCertifications To get a list of certification records
PutEmployeeProfile Insert the employee profile information into ePro Scheduler Plus
PutEmployeeCertification Insert the employee certification information into ePro Scheduler Plus

Operation Specifications

GetEmployees

Description

This will return a list of all active employees� info.

Signature

EmployeeResponse GetEmployees(string customerId, string password, string vendorKey, string employeeId);

Request Parameters

Name Type Description
custId string CustomerId
pass string Password
vendorKey string Vendor key
empId string Employee id (optional parameter)

EmployeeResponse (in XML format)

Name Type Description
Status int 0 = Successful, -1 = Unsuccessful
ErrorCode int Error Code
ErrorMessage string Error Message
Employees Employee[] An array of employees in XML format
<EmployeeResponse xmlns="http://schemas.datacontract.org/2004/07/API.Service" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
  <ErrorCode>0</ErrorCode> 
  <ErrorMessage><ErrorMessage />
  <Status>0</Status> 
  <Employees> 
    <Employee> 
      <EmployeeId>2824</EmployeeId> 
      <FirstName>Julie</FirstName> 
      <LastName>Crane</LastName> 
      <CellPhone>555-555-5555</CellPhone> 
      <Pager>555-555-5555</Pager> 
      <EmailAddress>[email protected]</EmailAddress> 
      <Status>0</Status> 
      <HomeCostCenter>421</HomeCostCenter> 
      <Address>14 First Avenue</Address> 
      <City>Blaine</City> 
      <State>MN</State> 
      <Zip>55423</Zip> 
      <FTHireDate>10/20/2004</FTHireDate> 
      <HireDate>10/20/2004</HireDate> 
      <BirthDate>09/04/1974</BirthDate> 
    </Employee> 
  </Employees> 
</EmployeeResponse> 

C# Code Sample

The following C# code shows how to call GetEmployees:

GetSchedules

Description

This will return a list of schedule info that meets the criteria: Called from external application.

Signature

ScheduleResponse GetSchedules(string customerId, string password, string vendorKey, string employeeId, string startTime, string endTime); 

Request Parameters

Name Type Description
custId string Customer id
Pass string Password
vendorKey string Vendor key
empId string Employee Id (optional)
starttime string schedule start time
endtime string schedule end time

ScheduleResponse (in XML format)

Name Type Description
Status int 0 = Successful, -1 = Unsuccessful
ErrorCode int Error Code
ErrorMessage string Error Message
Schedules Schedule[] An array of schedules in XML format
<ScheduleResponse xmlns="http://schemas.datacontract.org/2004/07/API.Service" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
  <Status>0</Status> 
  <ErrorCode>0</ErrorCode> 
  <ErrorMessage><ErrorMessage />
  <Schedules> 
    <Schedule> 
      <EmployeeId>0</EmployeeId> 
      <StartTime>3/23/2008 8:00:00 PM</StartTime> 
      <EndTime>3/23/2008 6:00:00 PM</EndTime> 
      <Duration>12</Duration> 
      <Qualification>Pilot</Qualification> 
      <UnitName>BLS 12</UnitName> 
      <CostCenter>002</CostCenter> 
      <EarningCode>R</EarningCode> 
      <ResourceType>NA</ResourceType> 
      <Comments>Weather Check in AM</Comments> 
      <VehicleName>482</ VehicleName> 
      <InServiceTime>3/23/2008 8:20:00 AM</ InServiceTime> 
      <OutOfServiceTime>3/23/2008 5:04:00 PM</ OutOfServiceTime> 
      <ItemID>303</ItemID> 
    </Schedule>
    <Schedule> 
      <EmployeeId>10494</EmployeeId> 
      <StartTime>3/24/2008 8:00:00 AM</StartTime> 
      <EndTime>3/24/2008 4:00:00 PM</EndTime> 
      <Duration>8</Duration> 
      <Qualification>Admin</Qualification> 
      <UnitName>Base 7</UnitName> 
      <CostCenter>004</CostCenter> 
      <EarningCode>R</EarningCode> 
      <ResourceType>NA</ResourceType> 
      <Comments>Weather Check in AM</Comments> 
      <VehicleName>483</ VehicleName> 
      <InServiceTime>3/23/2008 8:20:00 AM</ InServiceTime> 
      <OutOfServiceTime>3/23/2008 5:04:00 PM</ OutOfServiceTime> 
      <RecordID>302</RecordID> 
    </Schedule> 
  </Schedules> 
</ScheduleResponse> 

C# Code Sample

The following C# code shows how to call GetSchedules:

GetPunches

Description

This will return a list of punch info that meets the criteria: Called from external application.

Signature

PunchResponse GetPunches(string customerId, string password, string vendorKey, string employeeId, string startTime, string endTime); 

Request Parameters

Name Type Description
custId string Customer id
Pass string Password
vendorKey string Vendor key
empId string Employee Id (optional)
starttime string Start time
endtime string End time

PunchResponse (in XML format)

Name Type Description
Status int 0 = Successful, -1 = Unsuccessful
ErrorCode int Error Code
ErrorMessage string Error Message
Punches Punch[] An array of punches in XML format
<PunchResponse xmlns="http://schemas.datacontract.org/2004/07/API.Service" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
  <Status>0</Status> 
  <ErrorCode>0</ErrorCode> 
  <ErrorMessage><ErrorMessage />
  <Punches> 
    <Punch>
      <EmployeeId>8776</EmployeeId> 
      <InPunchTime>3/26/2008 8:00:00 AM</InPunchTime> 
      <OutPunchTime>3/28/2008 2:55:34 PM</OutPunchTime> 
    </Punch> 
    <Punch> 
      <EmployeeId>99110</EmployeeId> 
      <InPunchTime>3/24/2008 7:56:00 AM</InPunchTime> 
      <OutPunchTime>3/24/2008 9:00:00 PM</OutPunchTime> 
    </Punch> 
  </Punches> 
</PunchResponse> 

C# Code Sample

The following C# code shows how to call GetPunches:

GetCertifications

Description

This will return a list of certifications info that meets the criteria: Called from external application.

Signature

CertificationResponse GetCertifications(string customerId, string password, string vendorKey, string employeeId); 

Request Parameters

Name Type Description
custId string Customer id
Pass string Password
vendorKey string Vendor key
empId string Employee Id (optional)

Response Result (in XML format)

Name Type Description
Status int 0 = Successful, -1 = Unsuccessful
ErrorCode int Error Code
ErrorMessage string Error Message
Certifications Certification[] An array of certifications in XML format
<CertificationResponse xmlns="http://schemas.datacontract.org/2004/07/API.Service" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
  <Status>0</Status> 
  <ErrorCode>0</ErrorCode> 
  <ErrorMessage><ErrorMessage />
  <Certifications> 
    <Certification> 
      <EmployeeId>10490</EmployeeId> 
      <CertificationName>CPR</CertificationName> 
      <CertificationNumber>123</CertificationNumber> 
      <EffectiveDate>9/25/2013 12:00:00 AM</EffectiveDate> 
      <ExpirationDate>9/25/2014 12:00:00 AM</ExpirationDate> 
    </Certification> 
    <Certification> 
      <EmployeeId>10491</EmployeeId> 
      <CertificationName>Medic</CertificationName> 
      <CertificationNumber>123</CertificationNumber> 
      <EffectiveDate>9/25/2013 12:00:00 AM</EffectiveDate> 
      <ExpirationDate>9/25/2014 12:00:00 AM</ExpirationDate> 
    </Certification> 
  </Certifications> 
</CertificationResponse> 

C# Code Sample

PutEmployeeProfile

Description

This will insert the employee profile information into ePro Scheduler Plus for the designated customer. The insert will fail if the Employee ID exists.

Signature

EmployeeProfileResponse PutEmployeeProfile(EmployeeProfileRequest request); 

Request Body

An EmployeeProfileRequest object in XML format.

<EmployeeProfileRequest xmlns="https://www.net-scheduler.com/eProPlus"> 
  <CustomerId>developer</CustomerId> 
  <Password>password</Password> 
  <VendorKey>Sunbee</VendorKey> 
  <EmployeeProfile> 
    <EmployeeId>5555511</EmployeeId> 
    <FirstName>Patrick</FirstName> 
    <LastName>Fitzsimmons</LastName> 
    <HireDate>12/21/2016 5:00:39 PM</HireDate> 
    <FTHireDate>9/21/2016 5:00:39 PM</FTHireDate> 
    <PayRate>40.50</PayRate> 
    <PayPayType>H</PayPayType> 
    <Address>8360 LBJ Fwy, Suite #255</Address> 
    <City>Dallas</City> 
    <State>TX</State> 
    <Zip>75243</Zip> 
    <HomePhone>888-123-3435</HomePhone> 
    <Pager>888-121-3344</Pager> 
    <CellPhone>888-121-3344</CellPhone> 
    <EmergencyContactPhone>888-121-3344</EmergencyContactPhone> 
    <EmergencyContactPerson>Justin Custer</EmergencyContactPerson> 
    <EmailAddress>[email protected]</EmailAddress> 
    <HomeCostCenter>001</HomeCostCenter> 
  </EmployeeProfile> 
</EmployeeProfileRequest> 

EmployeeProfileRequest Object

Name Type Description
CustomerId string Customer id
Password string Password
VendorKey string Vendor key
EmployeeProfile object EmployeeProfile object

EmployeeProfile Object

Name Type Description
EmployeeId string Employee Id
FirstName string First name
LastName string Last name
HireDate string Hire date
FTHireDate string Full time hire date
PayRate string Pay Rate
PayType string H or S (Hourly or Salary)
Address string Home address
City string Home city
State string Home state
Zip string Home zip code
HomePhone string Home phone number
Pager string Pager number
CellPhone string Cell phone number
EmergencyContactPhone string Emergency contact phone number
EmergencyContactPerson string Emergency contact person
EMailAddress string Email Address
HomeCostCenter string Home Cost Center/Department

Response Result (in XML format)

Name Type Description
Status int 0 = Successful, -1 = Unsuccessful
ErrorCode int Error Code
ErrorMessage string Error Message
<EmployeeProfileResponse xmlns="http://schemas.datacontract.org/2004/07/API.Service" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <Status>0</Status>
  <ErrorCode>0</ErrorCode>
  <ErrorMessage />
</EmployeeProfileResponse>

C# Code Sample

The following C# code shows how to call PutEmployeeProfile:

PutEmployeeCertification

Description

This will insert the employee certification information into ePro Scheduler Plus for the designated customer. The insert will fail if the certification does not exist.

Signature

EmployeeCertificationResponse PutEmployeeCertification(EmployeeCertificationRequest request); 

Request Body

An EmployeeCertificationRequest object in xml format.

<EmployeeCertificationRequest xmlns="https://www.net-scheduler.com/eProPlus"> 
  <CustomerId>(CustomerId)</CustomerId> 
  <Password>(Password)</Password> 
  <VendorKey>(VendorKey)</VendorKey> 
  <EmployeeCertification> 
    <EmployeeId>(EmployeeId)</EmployeeId> 
    <Certification>(CertificationName)</Certification> 
    <Number></Number> 
    <ExpirationDate></ExpirationDate> 
    <EffectiveDate></EffectiveDate> 
    <Notes></Notes> 
  </EmployeeCertification> 
</EmployeeCertificationRequest> 

EmployeeCertificationRequest Object

Name Type Description
CustomerId string Customer id
Password string Password
VendorKey string Vendor key
EmployeeCertification object EmployeeCertification object

EmployeeCertification Object

Name Type Description
EmployeeId string Employee Id
Certification string Certification name
Number string Certification Number
ExpirationDate string Expiration Date
EffectiveDate string Effective Date
Notes string Notes

Response Result (in XML format)

Name Type Description
Status int 0 = Successful, -1 = Unsuccessful
ErrorCode int Error Code
ErrorMessage string Error Message
<EmployeeCertificationResponse xmlns="http://schemas.datacontract.org/2004/07/API.Service" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
  <Status>0</Status>
  <ErrorCode>0</ErrorCode>
  <ErrorMessage />
</EmployeeCertificationResponse>

C# Code Sample

The following C# code shows how to call PutEmployeeCertification:

Error Code and Error Messages

Error Code and Error Message

Description

On errors, the system generates and returns a custom error message with error code. The table below table shows all error messages corresponding to their code number.

Error Code and Error Message

Error Code Error Message
100 Authentication Failed. Invalid customer ID or password.
101 Customer ID is required.
102 Password is required.
103 Customer ID and password are required.
104 Time format is invalid.
105 Start time is required.
106 End time is required.
107 Start and end time are required.
108 Date range cannot be more than one week.
109 Start time cannot be greater than end time.
110 Illegal access.
111 An internal or network error occurred.
112 Vendor does not exist.
113 Vendor key is required.
114 Usage Threshold Exceeded: «data type»