VB.NET
VB.NET
Xero Get Individual Employee Details (Payroll API Australia)
Demonstrates how to get the detailed data for a particular employee.Note: This example requires Chilkat v9.5.0.64 or greater.
Chilkat VB.NET Downloads
Dim success As Boolean = False
' 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.
Dim rest As New 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..
Dim sbPath As New Chilkat.StringBuilder
sbPath.Append("/payroll.xro/1.0/Employees/")
' To get the detailed information for an individual employee,
' add the EmployeeID to the path.
sbPath.Append("056a9821-55b8-4c91-b5ce-a6ce2ab508ab")
' Get the data for the indicated employee.
Dim sbXml As New Chilkat.StringBuilder
success = rest.FullRequestNoBodySb("GET",sbPath.GetAsString(),sbXml)
If (success <> True) Then
Debug.WriteLine(rest.LastErrorText)
Exit Sub
End If
' A 200 response is expected for actual success.
If (rest.ResponseStatusCode <> 200) Then
Debug.WriteLine(sbXml.GetAsString())
Exit Sub
End If
' Iterate over the employees and get some information..
Dim bAutoTrim As Boolean = False
Dim xml As New Chilkat.Xml
xml.LoadSb(sbXml,bAutoTrim)
xml.SaveXml("qa_cache/xero_employee_lebron.xml")
' Use GetChild2 to navigate to the BankAccounts node.
success = xml.FindChild2("Employees|Employee|BankAccounts")
If (success = False) Then
Debug.WriteLine("BankAccounts node not found.")
Exit Sub
End If
' Demonstrate how to iterate over each of the employee's Bank Accounts to get information
' from each. (This same technique can be used for other parts of the XML.)
Dim recordCount As Integer = xml.NumChildren
Debug.WriteLine("Number of Bank Accounts = " & recordCount)
Dim i As Integer = 0
While i < recordCount
xml.I = i
Debug.WriteLine("AccountName: " & xml.GetChildContent("BankAccount|AccountName"))
Debug.WriteLine("StatementText: " & xml.GetChildContent("BankAccount|StatementText"))
Debug.WriteLine("AccountNumber: " & xml.GetChildContent("BankAccount|AccountNumber"))
Debug.WriteLine("Amount: " & xml.GetChildContent("BankAccount|Amount"))
Debug.WriteLine("----")
i = i + 1
End While
' Return back to the root.
xml.GetRoot2()
' The output looks like this:
' Number of Bank Accounts = 2
' AccountName: James Lebron Savings
' StatementText: Salary
' AccountNumber: 345678
' Amount: 200.00
' ----
' AccountName: James Lebron Savings
' StatementText: Salary
' AccountNumber: 345678
' Amount: 200.00
' ----
' The employee XML looks like this:
' <?xml version="1.0" encoding="utf-8" ?>
' <Response xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
' <Id>6131dfc6-d11c-4fe0-aa1c-f7356c54754c</Id>
' <Status>OK</Status>
' <ProviderName>ChilkatAU</ProviderName>
' <DateTimeUTC>2016-11-11T20:53:38.752419Z</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>
' <HomeAddress>
' <AddressLine1>123 Main St</AddressLine1>
' <City>St. Kilda</City>
' <Region>VIC</Region>
' <PostalCode>3182</PostalCode>
' <Country>AUSTRALIA</Country>
' </HomeAddress>
' <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>
' <IsAuthorisedToApproveLeave>false</IsAuthorisedToApproveLeave>
' <TaxDeclaration>
' <TaxFileNumber>999999811</TaxFileNumber>
' <EmploymentBasis>FULLTIME</EmploymentBasis>
' <AustralianResidentForTaxPurposes>true</AustralianResidentForTaxPurposes>
' <TaxFreeThresholdClaimed>true</TaxFreeThresholdClaimed>
' <HasHELPDebt>true</HasHELPDebt>
' <HasSFSSDebt>false</HasSFSSDebt>
' <EligibleToReceiveLeaveLoading>false</EligibleToReceiveLeaveLoading>
' <UpdatedDateUTC>2016-11-11T20:29:03</UpdatedDateUTC>
' <HasStudentStartupLoan>false</HasStudentStartupLoan>
' </TaxDeclaration>
' <BankAccounts>
' <BankAccount>
' <StatementText>Salary</StatementText>
' <AccountName>James Lebron Savings</AccountName>
' <BSB>122344</BSB>
' <AccountNumber>345678</AccountNumber>
' <Remainder>false</Remainder>
' <Amount>200.00</Amount>
' </BankAccount>
' <BankAccount>
' <StatementText>Salary</StatementText>
' <AccountName>James Lebron</AccountName>
' <BSB>123443</BSB>
' <AccountNumber>2345678</AccountNumber>
' <Remainder>true</Remainder>
' </BankAccount>
' </BankAccounts>
' <OpeningBalances>
' <OpeningBalanceDate>2016-02-01T00:00:00</OpeningBalanceDate>
' <EarningsLines>
' <EarningsLine>
' <EarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</EarningsRateID>
' <Amount>13333.33</Amount>
' </EarningsLine>
' </EarningsLines>
' <DeductionLines>
' <DeductionLine>
' <DeductionTypeID>2fd4c1e2-5bbb-43e4-a396-4c146f2f9b77</DeductionTypeID>
' <Amount>40.00</Amount>
' </DeductionLine>
' </DeductionLines>
' <Tax>4000.00</Tax>
' <SuperLines>
' <SuperLine>
' <SuperMembershipID>9e9cc70d-1d6c-4ce5-a402-2c4fe80c02b0</SuperMembershipID>
' <ContributionType>SGC</ContributionType>
' <Amount>3999.99</Amount>
' </SuperLine>
' </SuperLines>
' <ReimbursementLines />
' <LeaveLines>
' <LeaveLine>
' <LeaveTypeID>8aa43544-f7f2-4b7a-9ddf-0a9c831c4679</LeaveTypeID>
' <NumberOfUnits>100.0000</NumberOfUnits>
' </LeaveLine>
' <LeaveLine>
' <LeaveTypeID>8874e0c0-d1d8-4635-a359-c09f6cf1c747</LeaveTypeID>
' <NumberOfUnits>40.0000</NumberOfUnits>
' </LeaveLine>
' </LeaveLines>
' </OpeningBalances>
' <PayTemplate>
' <EarningsLines>
' <EarningsLine>
' <EarningsRateID>2c4fbb29-aa68-4a8d-bc05-3f6366f75227</EarningsRateID>
' <CalculationType>ANNUALSALARY</CalculationType>
' <AnnualSalary>40000.00</AnnualSalary>
' <NumberOfUnitsPerWeek>38.0000</NumberOfUnitsPerWeek>
' </EarningsLine>
' </EarningsLines>
' <DeductionLines>
' <DeductionLine>
' <DeductionTypeID>2fd4c1e2-5bbb-43e4-a396-4c146f2f9b77</DeductionTypeID>
' <CalculationType>FIXEDAMOUNT</CalculationType>
' <Amount>10.00</Amount>
' </DeductionLine>
' </DeductionLines>
' <SuperLines>
' <SuperLine>
' <SuperMembershipID>9e9cc70d-1d6c-4ce5-a402-2c4fe80c02b0</SuperMembershipID>
' <ContributionType>SGC</ContributionType>
' <CalculationType>PERCENTAGEOFEARNINGS</CalculationType>
' <MinimumMonthlyEarnings>450.00</MinimumMonthlyEarnings>
' <ExpenseAccountCode>478</ExpenseAccountCode>
' <LiabilityAccountCode>826</LiabilityAccountCode>
' <Percentage>9.0000</Percentage>
' </SuperLine>
' <SuperLine>
' <SuperMembershipID>9e9cc70d-1d6c-4ce5-a402-2c4fe80c02b0</SuperMembershipID>
' <ContributionType>SALARYSACRIFICE</ContributionType>
' <CalculationType>FIXEDAMOUNT</CalculationType>
' <ExpenseAccountCode>478</ExpenseAccountCode>
' <LiabilityAccountCode>826</LiabilityAccountCode>
' <Amount>50.0000</Amount>
' </SuperLine>
' </SuperLines>
' <ReimbursementLines />
' <LeaveLines>
' <LeaveLine>
' <LeaveTypeID>8aa43544-f7f2-4b7a-9ddf-0a9c831c4679</LeaveTypeID>
' <CalculationType>FIXEDAMOUNTEACHPERIOD</CalculationType>
' <AnnualNumberOfUnits>152.0000</AnnualNumberOfUnits>
' </LeaveLine>
' <LeaveLine>
' <LeaveTypeID>8874e0c0-d1d8-4635-a359-c09f6cf1c747</LeaveTypeID>
' <CalculationType>FIXEDAMOUNTEACHPERIOD</CalculationType>
' <AnnualNumberOfUnits>76.0000</AnnualNumberOfUnits>
' </LeaveLine>
' </LeaveLines>
' </PayTemplate>
' <SuperMemberships>
' <SuperMembership>
' <SuperMembershipID>9e9cc70d-1d6c-4ce5-a402-2c4fe80c02b0</SuperMembershipID>
' <SuperFundID>2bab4eeb-6f3c-4c66-a1f0-52fcb81f412a</SuperFundID>
' <EmployeeNumber>1234</EmployeeNumber>
' </SuperMembership>
' </SuperMemberships>
' <LeaveBalances>
' <LeaveBalance>
' <LeaveName>Annual Leave</LeaveName>
' <LeaveTypeID>8aa43544-f7f2-4b7a-9ddf-0a9c831c4679</LeaveTypeID>
' <NumberOfUnits>88.8602</NumberOfUnits>
' <TypeOfUnits>Hours</TypeOfUnits>
' </LeaveBalance>
' <LeaveBalance>
' <LeaveName>Personal/Carer's Leave</LeaveName>
' <LeaveTypeID>8874e0c0-d1d8-4635-a359-c09f6cf1c747</LeaveTypeID>
' <NumberOfUnits>45.8302</NumberOfUnits>
' <TypeOfUnits>Hours</TypeOfUnits>
' </LeaveBalance>
' </LeaveBalances>
' </Employee>
' </Employees>
' </Response>
'
'