Sample code for 30+ languages & platforms
Java

Xero Get Receipts

Demonstrates how to get all receipts from Xero accounting.

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

Chilkat Java Downloads

Java
import com.chilkatsoft.*;

public class ChilkatExample {

  static {
    try {
        System.loadLibrary("chilkat");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[])
  {
    boolean success = 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.

    CkRest rest = new CkRest();

    //  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..

    //  Note: If query parameters are to be included, they can be added by calling
    //  the rest.AddQueryParam method, once per query parameter name/value.
    //  Do not try to add the query params to the uriPath passed to a method such as FullRequestNoBodySb.
    //  The reason is that OAuth1 needs to include the query params as part of the OAuth1 signature,
    //  and the only way it knows about them is if they are explicitly added by calling AddQueryParam.
    //  (Otherwise you'll get a 403 authentication error response.)

    //  Get the full list of receipts.
    CkStringBuilder sbXml = new CkStringBuilder();
    success = rest.FullRequestNoBodySb("GET","/api.xro/2.0/Receipts",sbXml);
    if (success != true) {
        System.out.println(rest.lastErrorText());
        return;
        }

    //  A 200 response is expected for actual success.
    if (rest.get_ResponseStatusCode() != 200) {
        System.out.println(sbXml.getAsString());
        return;
        }

    //  Iterate over the receipts and get some information..

    boolean bAutoTrim = false;
    CkXml xml = new CkXml();
    xml.LoadSb(sbXml,bAutoTrim);
    xml.SaveXml("qa_cache/xero_receipts.xml");

    //  How many records exist?
    int recordCount = xml.NumChildrenAt("Receipts");
    System.out.println("numRecords = " + recordCount);

    int i = 0;
    while (i < recordCount) {
        xml.put_I(i);
        System.out.println("ReceiptID: " + xml.getChildContent("Receipts|Receipt[i]|ReceiptID"));
        System.out.println("UserID: " + xml.getChildContent("Receipts|Receipt[i]|User|UserID"));
        System.out.println("ReceiptNumber: " + xml.GetChildIntValue("Receipts|Receipt[i]|ReceiptNumber"));
        System.out.println("----");
        i = i+1;
        }

    //  The output looks like this:

    //  	numRecords = 2
    //  	ReceiptID: c4f40e59-c390-0001-caff-ce731c707d00
    //  	UserID: d6362594-ffec-4435-abe8-469941ff1501
    //  	ReceiptNumber: 2
    //  	----
    //  	ReceiptID: 9387dc5d-2adf-4d77-84e1-db693db502bd
    //  	UserID: d6362594-ffec-4435-abe8-469941ff1501
    //  	ReceiptNumber: 1
    //  	----

    //  The xero_receipts.xml file contains data that looks like this:

    //  <?xml version="1.0" encoding="utf-8" ?>
    //  <Response xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    //      <Id>baf5d149-11de-4ba4-ba25-e8729d863812</Id>
    //      <Status>OK</Status>
    //      <ProviderName>ChilkatPrivate</ProviderName>
    //      <DateTimeUTC>2016-11-11T14:03:25.5756186Z</DateTimeUTC>
    //      <Receipts>
    //          <Receipt>
    //              <ReceiptID>c4f40e59-c390-0001-caff-ce731c707d00</ReceiptID>
    //              <ReceiptNumber>2</ReceiptNumber>
    //              <Status>DRAFT</Status>
    //              <User>
    //                  <UserID>d6362594-ffec-4435-abe8-469941ff1501</UserID>
    //                  <FirstName>Matthew</FirstName>
    //                  <LastName>Smith</LastName>
    //              </User>
    //              <Contact>
    //                  <ContactID>f817d079-80ba-4a4f-8b57-6171c0cdd14c</ContactID>
    //                  <Name>Epicenter Cafe</Name>
    //              </Contact>
    //              <Date>2016-10-13T00:00:00</Date>
    //              <UpdatedDateUTC>2011-10-07T20:45:16.153</UpdatedDateUTC>
    //              <LineAmountTypes>Inclusive</LineAmountTypes>
    //              <SubTotal>0.00</SubTotal>
    //              <TotalTax>0.00</TotalTax>
    //              <Total>0.00</Total>
    //              <HasAttachments>false</HasAttachments>
    //          </Receipt>
    //          <Receipt>
    //              <ReceiptID>9387dc5d-2adf-4d77-84e1-db693db502bd</ReceiptID>
    //              <ReceiptNumber>1</ReceiptNumber>
    //              <Status>DRAFT</Status>
    //              <User>
    //                  <UserID>d6362594-ffec-4435-abe8-469941ff1501</UserID>
    //                  <FirstName>Matthew</FirstName>
    //                  <LastName>Smith</LastName>
    //              </User>
    //              <Contact>
    //                  <ContactID>6a31faab-588e-46a1-be9a-bd6d1dd468df</ContactID>
    //                  <Name>Woolworths Market</Name>
    //              </Contact>
    //              <Date>2016-10-11T00:00:00</Date>
    //              <UpdatedDateUTC>2016-06-24T17:15:05.337</UpdatedDateUTC>
    //              <LineAmountTypes>Inclusive</LineAmountTypes>
    //              <SubTotal>35.20</SubTotal>
    //              <TotalTax>0.00</TotalTax>
    //              <Total>35.20</Total>
    //              <HasAttachments>false</HasAttachments>
    //          </Receipt>
    //      </Receipts>
    //  </Response>
  }
}