Sample code for 30+ languages & platforms
Visual FoxPro

Xero Get Employees (Payroll API Australia)

Demonstrates how to get the summarised list of active employees.

Note: This example requires Chilkat v9.5.0.64 or greater.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loRest
LOCAL loSbXml
LOCAL lnBAutoTrim
LOCAL loXml
LOCAL lnRecordCount
LOCAL i

lnSuccess = 0

*  Note: Requires Chilkat v9.5.0.64 or greater.

*  This requires the Chilkat API to have been previously unlocked.
*  See Global Unlock Sample for sample code.

loRest = CreateObject('Chilkat.Rest')

*  Before sending REST API calls, the REST object needs to be
*  initialized for OAuth1.
*  See Xero 2-Legged OAuth1 Setup for sample code.

*  Assuming the REST object's OAuth1 authenticator is setup, and the initial
*  connection was made, we may now send REST HTTP requests..

*  Get the full list of employees.
loSbXml = CreateObject('Chilkat.StringBuilder')
lnSuccess = loRest.FullRequestNoBodySb("GET","/payroll.xro/1.0/Employees",loSbXml)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    RELEASE loSbXml
    CANCEL
ENDIF

*  A 200 response is expected for actual success.
IF (loRest.ResponseStatusCode <> 200) THEN
    ? loSbXml.GetAsString()
    RELEASE loRest
    RELEASE loSbXml
    CANCEL
ENDIF

*  Iterate over the employees and get some information..

lnBAutoTrim = 0
loXml = CreateObject('Chilkat.Xml')
loXml.LoadSb(loSbXml,lnBAutoTrim)
loXml.SaveXml("qa_cache/xero_employees.xml")

*  How many records exist?
lnRecordCount = loXml.NumChildrenAt("Employees")
? "numRecords = " + STR(lnRecordCount)

i = 0
DO WHILE i < lnRecordCount
    loXml.I = i
    ? "EmployeeID: " + loXml.GetChildContent("Employees|Employee[i]|EmployeeID")
    ? "FirstName: " + loXml.GetChildContent("Employees|Employee[i]|FirstName")
    ? "LastName: " + loXml.GetChildContent("Employees|Employee[i]|LastName")
    ? "----"
    i = i + 1
ENDDO

*  The output looks like this:

*  	numRecords = 6
*  	EmployeeID: 056a9821-55b8-4c91-b5ce-a6ce2ab508ab
*  	FirstName: James
*  	LastName: Lebron
*  	----
*  	EmployeeID: 1f606d28-0537-42af-80ce-312d449458af
*  	FirstName: Odette
*  	LastName: Garrison
*  	----
*  	EmployeeID: c086c9ce-821b-4636-8e9a-7864bd50d882
*  	FirstName: Oliver
*  	LastName: Gray
*  	----
*  	EmployeeID: 1612dfee-37d2-4c5d-a7b9-187aee5f264a
*  	FirstName: Sally 
*  	LastName: Martin
*  	----
*  	EmployeeID: 2df65756-538b-4bc1-b0c3-f3971d86b650
*  	FirstName: Sonia
*  	LastName: Michaels
*  	----
*  	EmployeeID: 08dcd870-3d8f-495f-af54-69029a89eb7d
*  	FirstName: Tracy
*  	LastName: Green
*  	----

*  The xero_employees.xml file contains data that looks like this:

*  <?xml version="1.0" encoding="utf-8" ?>
*  <Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
*      <Id>c1dfd096-5552-4459-bf94-f283357998c5</Id>
*      <Status>OK</Status>
*      <ProviderName>ChilkatAU</ProviderName>
*      <DateTimeUTC>2016-11-11T20:47:18.4411917Z</DateTimeUTC>
*      <Employees>
*          <Employee>
*              <EmployeeID>056a9821-55b8-4c91-b5ce-a6ce2ab508ab</EmployeeID>
*              <FirstName>James</FirstName>
*              <LastName>Lebron</LastName>
*              <Status>ACTIVE</Status>
*              <Email>JL@madeup.email.com</Email>
*              <DateOfBirth>1982-03-15T00:00:00</DateOfBirth>
*              <Gender>M</Gender>
*              <Phone>0400-000-123</Phone>
*              <Mobile> 408-230-9732</Mobile>
*              <StartDate>2015-09-01T00:00:00</StartDate>
*              <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
*              <PayrollCalendarID>4c08f63d-53af-4521-a8be-1d77fc0faf45</PayrollCalendarID>
*              <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
*          </Employee>
*          <Employee>
*              <EmployeeID>1f606d28-0537-42af-80ce-312d449458af</EmployeeID>
*              <FirstName>Odette</FirstName>
*              <LastName>Garrison</LastName>
*              <Status>ACTIVE</Status>
*              <Email>ogg@madeup.email.com</Email>
*              <DateOfBirth>1978-12-18T00:00:00</DateOfBirth>
*              <Gender>F</Gender>
*              <Phone>9000 1234</Phone>
*              <StartDate>2015-11-05T00:00:00</StartDate>
*              <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
*              <PayrollCalendarID>e53023e6-70f1-45c7-b699-6558b5e42b4e</PayrollCalendarID>
*              <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
*          </Employee>
*          <Employee>
*              <EmployeeID>c086c9ce-821b-4636-8e9a-7864bd50d882</EmployeeID>
*              <FirstName>Oliver</FirstName>
*              <LastName>Gray</LastName>
*              <Status>ACTIVE</Status>
*              <Email>og@madeup.email.com</Email>
*              <DateOfBirth>1969-07-28T00:00:00</DateOfBirth>
*              <Gender>M</Gender>
*              <Phone>0401 123 456</Phone>
*              <StartDate>2016-02-02T00:00:00</StartDate>
*              <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
*              <PayrollCalendarID>4c08f63d-53af-4521-a8be-1d77fc0faf45</PayrollCalendarID>
*              <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
*          </Employee>
*          <Employee>
*              <EmployeeID>1612dfee-37d2-4c5d-a7b9-187aee5f264a</EmployeeID>
*              <FirstName>Sally </FirstName>
*              <LastName>Martin</LastName>
*              <Status>ACTIVE</Status>
*              <Email>sm@madeup3993.com</Email>
*              <DateOfBirth>1987-06-28T00:00:00</DateOfBirth>
*              <Gender>F</Gender>
*              <Phone>0400 123 456</Phone>
*              <StartDate>2016-08-01T00:00:00</StartDate>
*              <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
*              <PayrollCalendarID>4c08f63d-53af-4521-a8be-1d77fc0faf45</PayrollCalendarID>
*              <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
*          </Employee>
*          <Employee>
*              <EmployeeID>2df65756-538b-4bc1-b0c3-f3971d86b650</EmployeeID>
*              <FirstName>Sonia</FirstName>
*              <LastName>Michaels</LastName>
*              <Status>ACTIVE</Status>
*              <Email>som@madeup3993.com</Email>
*              <DateOfBirth>1989-08-24T00:00:00</DateOfBirth>
*              <Gender>F</Gender>
*              <Phone>02 2345 6789</Phone>
*              <Mobile> </Mobile>
*              <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
*          </Employee>
*          <Employee>
*              <EmployeeID>08dcd870-3d8f-495f-af54-69029a89eb7d</EmployeeID>
*              <FirstName>Tracy</FirstName>
*              <LastName>Green</LastName>
*              <Status>ACTIVE</Status>
*              <Email>tg@madeup.email.com</Email>
*              <DateOfBirth>1989-03-06T00:00:00</DateOfBirth>
*              <Gender>F</Gender>
*              <Phone>0402 123 456</Phone>
*              <StartDate>2015-12-02T00:00:00</StartDate>
*              <OrdinaryEarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</OrdinaryEarningsRateID>
*              <PayrollCalendarID>e53023e6-70f1-45c7-b699-6558b5e42b4e</PayrollCalendarID>
*              <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
*          </Employee>
*      </Employees>
*  </Response>

RELEASE loRest
RELEASE loSbXml
RELEASE loXml