For release to public
SOAP API Documentation:
ETX 901 (latest)
ETX 814 (sunset and supported)
8_0_10_eTimeXpressWebServicesAPI.pdf
8_0_10_eTimeXpressWebServicesAPI_Datasets.pdf
8_0_10_eTimeXpressWebServicesAPI_Examples.pdf
Setup
Simple video on how to test and run SOAP services using free SOAP UI tool
New Fields added in 901
Details of each field can be found in 9_0_1_eTimeXpressWebServicesAPI_Datasets.pdf
dsCustomer Dataset (ttCustomer)
Field name | Label | Description |
---|---|---|
geolocation | Geo-location coordinates | Customer Contact - Geo-location coordinates |
dsEmployee Dataset (ttEmployee)
Field name | Label | Description |
---|---|---|
alertsmsphone | Alert SMS | Employee Contact - Alert SMS |
automobile | Owns automobile | Owns automobile |
carstcddesc | Registered | Employee Automobile - Registered in |
cycddesc | Country | Employee Contact Information - Country |
defsid | Default [%site%] ID | Default Site ID |
defsidname | Default [%site%] | Default Site |
defuid | Default [%Customer%] ID | Default Customer ID |
defuidname | Default [%customer%] | Default Customer |
depcddesc | Department | Employee Pay settings - Department |
emailconsent | Email consent | Employee Qualifications - Email consent |
embackgrdesc | Ethnicity | Employee Profile - Ethnicity code |
emmrstcddesc | Marital Status | Employee Profile - Marital Status |
emphone | Emergency contact phone | Emergency contact phone |
emposcddesc | [%Position%] | Employee Pay Settings - Position |
emsrtydesc | Default [%service%] | Employee Pay Settings - Service type |
loginid | Login ID | WebXP Login ID (User Name) |
maxdhours_disp | Display daily max hours | Employee Contact - Display daily max hours |
maxdhours_json | Daily max hours in JSON format | Daily max hours in JSON format |
maxmhours_disp | Display monthly max hours | Employee Contact - Display monthly max hours |
maxmhours_json | Monthly max hours in JSON format | Daily max hours in JSON format |
maxwhours_disp | Display weekly max hours | Employee Contact - Display weekly max hours |
maxwhours_json | Weekly max hours in JSON format | Daily max hours in JSON format |
payrates_disp | Display pay rates | Employee Pay Rates - Pay rates |
payrates_json | Pay rates in JSON format | Employee Pay Rates - Pay rates in JSON format |
pyfrcddesc | Pay Cycle | Employee Pay Settings - Pay Cycle |
qualif_disp | Display qualifications | Employee Qualifications - Qualifications |
qualif_json | Qualifications in JSON format | Employee Qualifications - Qualifications in JSON format |
recaccgrpdesc | Managed by record access groups | Employee managed by record access groups |
recaccgrpid | Managed by record access group IDs | Employee managed by record access group ID |
sendEmail | Send email | Send email |
sendSms | Send SMS | Send SMS |
smsconsent | SMS consent | SMS consent |
stcddesc | State/Province | Employee Contact - State/Province |
teamid | Team | Team ID |
teltype1desc | Phone type | Employee Contact - Phone type |
termrcdesc | Termination reason | Employee History - Termination |
timezoneid | Time zone code | Time zone code |
timezoneiddesc | Time zone | Time zone |
txppassword | Team Xpress account password | Employee Accounts - Team Xpress account password |
txpstatus | Team Xpress account status | Employee Accounts - Team Xpress account status |
txpstatuscode | Team Xpress account status code | Employee Accounts - Team Xpress account status code |
txpusername | Team Xpress account username | Employee Accounts - Team Xpress account username |
If API is used to set Team Xpress account info, then caller is responsible for communicating the same to the employee | ||
vxpephpwd | Voice Xpress account phone password | Employee Accounts - Voice Xpress account phone password |
vxpphoneid | Voice Xpress account phone ID | Employee Accounts - Voice Xpress account phone ID |
vxpstatus | Voice Xpress account status | Employee Accounts - Voice Xpress account status |
vxpstatuscode | Voice Xpress account status code | Employee Accounts - Voice Xpress account status code |
Caller is responsible for communicating Voice Xpess account info to the employee | ||
webgrpcd | Security Group code | Security Group code |
webgrpname | Security group | Security group |
workdays_disp | Disply Work Days | Employee work days |
dsEmpWebAc Dataset (ttEmpWebAc)
Field name | Label | Description |
---|---|---|
acctStat | Account status | Account Status: "N" - not active, new; "I" - not active, invite sent; "A" - active; "D" - disabled |
chatAcctCreated | Chat Account Created | Chat Account Created |
hasLoggedIn | Has logged in | User has logged in before |
dsSrvType Dataset (ttSrvtype)
Field name | Label | Description |
---|---|---|
authorized_qualification | [%Service%] authorized qualifications | Service Qualifications - Authorized qualifications |
qualification_rule_descriptions | General qualifications | General qualifications |
qualification_rule_ids | Qualification Codes | List of qualification codes |
dsSite Dataset (ttSite)
Field name | Label | Description |
---|---|---|
allowactions | Allow employees to perform actions | Allow employees to perform actions |
authorized_qualification | [%Site%] Authorized Qualifications | Site Qualifications - Authorized qualifications |
billrates_disp | [%Site%] Display BillRates | Bill Settings - Bill Rates |
billrates_json | [%Site%] BillRates in JSON format | Bill Rates in JSON format |
csname | Name | Customer - Name |
geofenceradius | Geo-fence Radius | Geo-fence Radius |
geolocation | Geo-location coordinates | Site Geofencing - Geo-location coordinates |
gpstracking | GPS tracking | Site Geofencing - For verifying clock actions using phone's GPS |
maxdhours_disp | Display daily max hours | Site Max hours - Display daily max hours |
maxdhours_json | Daily max hours in JSON format | Daily max hours in JSON format |
maxmhours_disp | Display monthly max hours | Site Max hours - Display monthly max hours |
maxmhours_json | Monthly max hours in JSON format | Monthly max hours in JSON format |
maxwhours_disp | Display weekly max hours | Site Max hours - Display weekly max hours |
maxwhours_json | Weekly max hours in JSON format | Weekly max hours in JSON format |
qualification_rule_descriptions | General qualifications | General qualifications |
qualification_rule_ids | Qualification Codes | List of qualification codes |
registredphones | Registered phone numbers | Site Geofencing - Use the specified phone numbers for Voice Xpress |
staticipaddresses | Static IP address | Site Geofencing - Static IP address |
dsShifts Dataset (ttShifts)
Field name | Label | Description |
---|---|---|
ConfirmAction | Confirm/Cancel Drop button action | Confirm Action:
|
confirmshifts | Required Confirm Shift | Required Confirm Shift |
DropSwapLine | Drop/Swap Line | Drop/Swap Line:
|
dsAvailability Dataset (ttAvailEmp)
Field name | Label | Description |
---|---|---|
ConsecutiveDayOff | Consecutive Day Off | Consecutive Day Off |
Cost | Cost | Cost |
CustomerDailyBudget | [%Customer%] Daily Budget | Customer Daily Budget |
CustomerMonthlyBudget | [%Customer%] Monthly Budget | Customer Monthly Budget |
CustomerWeeklyBudget | [%Customer%] Weekly Budget | Customer Weekly Budget |
DoesNotExceedSiteMaxPayRate | Does not exceed [%site%] maximum pay rate | Does not exceed site maximum pay rate |
EmployeeBudgetIsExceeded | [%Employee%] budget is exceeded | Employee budget is exceeded |
EmployeeDailyBudget | [%Employee%] daily budget | Employee daily budget |
EmployeeHasRequestedTimeOff | [%Employee%] has requested time off | Employee has requested time off |
EmployeeHasTimeOff | [%Employee%] has time off | Employee has time off |
EmployeeIsDoubleBooked | [%Employee%] is double booked | Employee is double booked |
EmployeeMinimumRestPeriod | [%Employee%] minimum rest period | Employee minimum rest period |
EmployeeMonthlyBudget | [%Employee%] monthly budget | Employee monthly budget |
EmployeeWeeklyBudget | [%Employee%] weekly budget | Employee weekly budget |
ExperienceAtCustomerSite | Experience at [%Customer%] [%Site%] | Experience at customer site |
ListEmployeesWithDayOff | List [%Employee%] with day off | List employees with day off |
LocationTravelTime | [%Location%] travel time | Location travel time |
MatchesDefServiceType | Matches default service type | Matches default service type |
MeetsShiftQualifications | Meets shift qualifications | Meets shift qualifications |
NoOvertimeCaused | No overtime caused | No overtime caused |
NotScheduledOnThisDay | Not scheduled on this day | Not scheduled on this day |
priority | Priority | Priority |
RandomOrder | Random order | Random order |
rotationCountNumber | Rotation count numer | Rotation count numer |
ScheduledOnThisDay | Scheduled on this day | Scheduled on this day |
ScheduledOnThisDayOnLinkedEvent | Scheduled on this day on linked event | Scheduled on this day on linked event |
ServiceTypeInEmpPayRates | [%Service%] type in [%employee%] pay rates | Service type in employee pay rates |
ShiftIsRestricted | Shift is restricted | Shift is restricted |
SiteBudgetIsExceeded | [%Site%] budget is exceeded | Site budget is exceeded |
SiteDailyBudget | [%Site%] daily budget | Site daily budget |
SiteMonthlyBudget | [%Site%] monthly budget | Site monthly budget |
SiteWeeklyBudget | [%Site%] weekly budget | Site weekly budget |
sortorder | Sort order | Sort order |
TotalHoursMax | Total hours max | Total hours max |
VolunteerCode | [%Volunteer%] code | Volunteer code |
dsVolunsh Dataset (ttVolunsh)
Field name | Label | Description |
---|---|---|
voldesc | [%Volunteer%] Code Description | Volunteer Code Description |
srvdesc | [%Service%] Code Description | Service Code Description |
dsCodesTable Dataset (ttCodesTable)
Field name | Label | Description |
---|---|---|
readOnly | Read Only | Read Only |
dsLocation Dataset (ttLocation)
Field name | Label | Description |
---|---|---|
addr[1] | Address | Address |
addr[2] | Address | Address |
addr[3] | Address | Address |
addr[4] | Address | Address |
city | City | City |
cycd | Country code | Country code |
latitude | Latitude | Latitude |
longitude | Longitude | Longitude |
stcd | State/Prov | State/Prov |
VenueSpaceName | Venue Name | Venue Name |
zip | Zip or Postal Code | Zip or Postal Code |
Fields removed from 901
dsEmployee Dataset (ttEmployee)
Field name | Label | Description |
---|---|---|
alertemailid | Alert Email | Employee Contact - Alert Email |
faxno | Fax | Employee Profile - Fax |
phone[2] | Phone 2 | Employee Profile - Phone 2 |
teltype[2] | Phone Type 2 | Employee Contact - Phone 2 type. Should contain value from the Phone Code List |
The removed fields will no longer be included in the response for read, add, update or delete employee record.
If these fields are included in the list of the context value for pcUpdateRequestFieldsList, the response will return an error code 1965, meaning “There are wrong fields in the requested list” following with the problematic fields. For example:
Request
... <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcUpdateRequestFieldsList</contextName> <contextValue>cid,bid,eid,emnamel,emnamef,emshort,rstat,emnerev,alertemailid,faxno,phone[2],teltype[2]</contextValue> <!-- ADD ADDITIONAL NAMES OF FIELDS TO BE UPDATED HERE; See documentation for name of fields --> <contextOperator /> <contextType /> </ttContext> </dsContext> ...
Response
... <dsContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>ExecuteStatus</contextName> <contextValue>RUN_ERROR,1965,alertemailid,faxno,phone[2],teltype[2]</contextValue> <contextOperator/> <contextType/> </ttContext> ...
Examples
Login request
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body xmlns:s0="urn:L1340384D62:eTimeWS" xmlns:s1="http://www.w3.org/2001/XMLSchema"> <s0:apSrv> <dsContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcUserID</contextName> <contextValue>wsdl</contextValue> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcPassword</contextName> <contextValue>_____PUT_THE_CORRECT_PASSWORD_HERE_____</contextValue> <contextOperator /> <contextType /> </ttContext> </dsContext> </s0:apSrv> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
To receive pcSessionID
Create New Employee Record Request
In order to create new employee record, the minimum fields that need to be passed to service are set in the pcUpdateRequestFieldsList context parameter are cid,bid,eid,emnamel,emnamef,emshort,rstat,emnerev + add at record level <cChkNew>A</cChkNew>:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body xmlns:s0="urn:L1340384D62:eTimeWS" xmlns:s1="http://www.w3.org/2001/XMLSchema"> <s0:apSrvEmpSave> <dsContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcAction</contextName> <contextValue>ADD_UPDATE</contextValue> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcSessionID</contextName> <contextValue>_____SUBSTITUTE_pcSessionID_received_here_____</contextValue> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcUserID</contextName> <contextValue>wsdl</contextValue> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>piCompanyID</contextName> <contextValue>2</contextValue> <!-- PUT CORRECT IDs HERE --> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>piBranchID</contextName> <contextValue>1</contextValue> <!-- PUT CORRECT IDs HERE --> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcUpdateRequestFieldsList</contextName> <contextValue>cid,bid,eid,emnamel,emnamef,emshort,rstat,emnerev</contextValue> <!-- ADD ADDITIONAL NAMES OF FIELDS TO BE UPDATED HERE; See documentation for name of fields --> <contextOperator /> <contextType /> </ttContext> </dsContext> <dsEmployee> <ttEmployee> <!-- Add values for each additional field here --> <cid>2</cid> <bid>1</bid> <eid>999</eid> <cChkNew>A</cChkNew> <!-- TO ADD RECORD --> <emnamel>Last</emnamel> <emnamef>First</emnamef> <emshort>Celayix</emshort> <rstat>A</rstat> <emnerev>0101</emnerev> </ttEmployee> </dsEmployee> </s0:apSrvEmpSave> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
Update employee record
If we want to update the following field:
In this case we use registration panel that supports a custom label
So, the TAM fields corresponds to Reg.2 field:
So, the minimum fields that need to be pass to service are set in the pcUpdateRequestFieldsList context parameter includes key fields + required field, i.e. cid,bid,eid,emstateid:
<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body xmlns:s0="urn:L1340384D62:eTimeWS" xmlns:s1="http://www.w3.org/2001/XMLSchema"> <s0:apSrvEmpSave> <dsContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcAction</contextName> <contextValue>ADD_UPDATE</contextValue> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcSessionID</contextName> <contextValue>_____SUBSTITUTE_pcSessionID_received_here_____</contextValue> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcUserID</contextName> <contextValue>wsdl</contextValue> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>piCompanyID</contextName> <contextValue>2</contextValue> <!-- PUT CORRECT IDs HERE --> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>piBranchID</contextName> <contextValue>1</contextValue> <!-- PUT CORRECT IDs HERE --> <contextOperator /> <contextType /> </ttContext> <ttContext> <contextGroup>PARAM</contextGroup> <contextName>pcUpdateRequestFieldsList</contextName> <contextValue>cid,bid,eid,emstateid</contextValue> <!-- ADD ADDITIONAL NAMES OF FIELDS TO BE UPDATED HERE; See documentation for name of fields --> <contextOperator /> <contextType /> </ttContext> </dsContext> <dsEmployee> <ttEmployee> <!-- Add values for each additional field here --> <cid>2</cid> <bid>1</bid> <eid>999</eid> <emstateid>TAM TEST VALUE</emstateid> </ttEmployee> </dsEmployee> </s0:apSrvEmpSave> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
to get
Custom labels used reference fields
Custom labels:
are defined here:
and correspond to ref1 & ref2 fields in request.