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
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.
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 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
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 |
This will return a list of all active employees� info.
EmployeeResponse GetEmployees(string customerId, string password, string vendorKey, string employeeId);
| Name | Type | Description |
|---|---|---|
| custId | string | CustomerId |
| pass | string | Password |
| vendorKey | string | Vendor key |
| empId | string | Employee id (optional parameter) |
| 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>
The following C# code shows how to call GetEmployees:
This will return a list of schedule info that meets the criteria: Called from external application.
ScheduleResponse GetSchedules(string customerId, string password, string vendorKey, string employeeId, string startTime, string endTime);
| 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 |
| 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>
The following C# code shows how to call GetSchedules:
This will return a list of punch info that meets the criteria: Called from external application.
PunchResponse GetPunches(string customerId, string password, string vendorKey, string employeeId, string startTime, string endTime);
| 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 |
| 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>
The following C# code shows how to call GetPunches:
This will return a list of certifications info that meets the criteria: Called from external application.
CertificationResponse GetCertifications(string customerId, string password, string vendorKey, string employeeId);
| Name | Type | Description |
|---|---|---|
| custId | string | Customer id |
| Pass | string | Password |
| vendorKey | string | Vendor key |
| empId | string | Employee Id (optional) |
| 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>
This will insert the employee profile information into ePro Scheduler Plus for the designated customer. The insert will fail if the Employee ID exists.
EmployeeProfileResponse PutEmployeeProfile(EmployeeProfileRequest request);
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>
| Name | Type | Description |
|---|---|---|
| CustomerId | string | Customer id |
| Password | string | Password |
| VendorKey | string | Vendor key |
| 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 |
| 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>
The following C# code shows how to call PutEmployeeProfile:
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.
EmployeeCertificationResponse PutEmployeeCertification(EmployeeCertificationRequest request);
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>
| Name | Type | Description |
|---|---|---|
| CustomerId | string | Customer id |
| Password | string | Password |
| VendorKey | string | Vendor key |
| 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 |
| 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>
The following C# code shows how to call PutEmployeeCertification:
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 | 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» |