AutoIt
AutoIt
Xero Get Invoices
See more Xero Examples
Get Xero company invoices.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oHttp = ObjCreate("Chilkat.Http")
$oJsonToken = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJsonToken.LoadFile("qa_data/tokens/xero-access-token.json")
If ($bSuccess = False) Then
ConsoleWrite($oJsonToken.LastErrorText & @CRLF)
Exit
EndIf
$oHttp.AuthToken = $oJsonToken.StringOf("access_token")
; Replace the value here with an actual tenant ID obtained from this example:
; Get Xero Tenant IDs
$oHttp.SetRequestHeader "Xero-tenant-id","83299b9e-5747-4a14-a18a-a6c94f824eb7"
$oHttp.Accept = "application/json"
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpNoBody("GET","https://api.xero.com/api.xro/2.0/Invoices",$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
ConsoleWrite("Response Status Code: " & $oResp.StatusCode & @CRLF)
$oJsonResponse = ObjCreate("Chilkat.JsonObject")
$oJsonResponse.Load($oResp.BodyStr)
$oJsonResponse.EmitCompact = False
ConsoleWrite($oJsonResponse.Emit() & @CRLF)
If ($oResp.StatusCode <> 200) Then
ConsoleWrite("Failed." & @CRLF)
Exit
EndIf
; Sample output...
; (See the parsing code below..)
;
; Use the this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
; {
; "Id": "bda1f62f-0d63-4178-8d54-e91fd226987a",
; "Status": "OK",
; "ProviderName": "Chilkat2222",
; "DateTimeUTC": "\/Date(1587210234493)\/",
; "Invoices": [
; {
; "Type": "ACCPAY",
; "InvoiceID": "0032f627-3156-4d30-9b1c-4d3b994dc921",
; "InvoiceNumber": "9871",
; "Reference": "",
; "Payments": [
; {
; "PaymentID": "22974891-3689-4694-9ee7-fd2ba917af55",
; "Date": "\/Date(1579737600000+0000)\/",
; "Amount": 148.50,
; "Reference": "Chq 409",
; "HasAccount": false,
; "HasValidationErrors": false
; }
; ],
; "CreditNotes": [
; ],
; "Prepayments": [
; ],
; "Overpayments": [
; ],
; "AmountDue": 0.00,
; "AmountPaid": 148.50,
; "AmountCredited": 0.00,
; "IsDiscounted": false,
; "HasAttachments": false,
; "HasErrors": false,
; "Contact": {
; "ContactID": "d6a384fb-f46f-41a3-8ac7-b7bc9e0b5efa",
; "Name": "Melrose Parking",
; "Addresses": [
; ],
; "Phones": [
; ],
; "ContactGroups": [
; ],
; "ContactPersons": [
; ],
; "HasValidationErrors": false
; },
; "DateString": "2020-01-15T00:00:00",
; "Date": "\/Date(1579046400000+0000)\/",
; "DueDateString": "2020-01-24T00:00:00",
; "DueDate": "\/Date(1579824000000+0000)\/",
; "Status": "PAID",
; "LineAmountTypes": "Exclusive",
; "LineItems": [
; ],
; "SubTotal": 135.00,
; "TotalTax": 13.50,
; "Total": 148.50,
; "UpdatedDateUTC": "\/Date(1221560931500+0000)\/",
; "CurrencyCode": "AUD",
; "FullyPaidOnDate": "\/Date(1579737600000+0000)\/"
; },
; {
; "Type": "ACCPAY",
; "InvoiceID": "673dd7cc-beb7-4697-83d4-0c47cb400cc2",
; "InvoiceNumber": "",
; "Reference": "",
; "Payments": [
; {
; "PaymentID": "4d06f609-5200-4364-9c8b-d4379a945252",
; "Date": "\/Date(1580688000000+0000)\/",
; "Amount": 974.60,
; "Reference": "DD # 96013",
; "HasAccount": false,
; "HasValidationErrors": false
; }
; ],
; "CreditNotes": [
; {
; "CreditNoteID": "7df8949c-b71f-40c0-bbcf-39f2f450f286",
; "CreditNoteNumber": "03391",
; "ID": "7df8949c-b71f-40c0-bbcf-39f2f450f286",
; "HasErrors": false,
; "AppliedAmount": 218.90,
; "DateString": "2020-01-29T00:00:00",
; "Date": "\/Date(1580256000000+0000)\/",
; "LineItems": [
; ],
; "Total": 218.90
; }
; ],
; "Prepayments": [
; ],
; "Overpayments": [
; ],
; "AmountDue": 0.00,
; "AmountPaid": 974.60,
; "AmountCredited": 218.90,
; "IsDiscounted": false,
; "HasAttachments": false,
; "HasErrors": false,
; "Contact": {
; "ContactID": "d0cd2c4f-18a0-4f7c-a32a-2db00f29d298",
; "Name": "PC Complete",
; "Addresses": [
; ],
; "Phones": [
; ],
; "ContactGroups": [
; ],
; "ContactPersons": [
; ],
; "HasValidationErrors": false
; },
; "DateString": "2020-01-28T00:00:00",
; "Date": "\/Date(1580169600000+0000)\/",
; "DueDateString": "2020-02-04T00:00:00",
; "DueDate": "\/Date(1580774400000+0000)\/",
; "Status": "PAID",
; "LineAmountTypes": "Exclusive",
; "LineItems": [
; ],
; "SubTotal": 1085.00,
; "TotalTax": 108.50,
; "Total": 1193.50,
; "UpdatedDateUTC": "\/Date(1221561913790+0000)\/",
; "CurrencyCode": "AUD",
; "FullyPaidOnDate": "\/Date(1580688000000+0000)\/"
; },
; {
; "Type": "ACCPAY",
; "InvoiceID": "c12aff7e-12bf-4185-8702-460929f19674",
; "InvoiceNumber": "",
; "Reference": "",
; "Payments": [
; ],
; "CreditNotes": [
; ],
; "Prepayments": [
; ],
; "Overpayments": [
; ],
; "AmountDue": 2166.99,
; "AmountPaid": 0.00,
; "AmountCredited": 0.00,
; "CurrencyRate": 1.000000,
; "IsDiscounted": false,
; "HasAttachments": false,
; "HasErrors": false,
; "Contact": {
; "ContactID": "d0cd2c4f-18a0-4f7c-a32a-2db00f29d298",
; "Name": "PC Complete",
; "Addresses": [
; ],
; "Phones": [
; ],
; "ContactGroups": [
; ],
; "ContactPersons": [
; ],
; "HasValidationErrors": false
; },
; "DateString": "2020-04-10T00:00:00",
; "Date": "\/Date(1586476800000+0000)\/",
; "DueDateString": "2020-05-05T00:00:00",
; "DueDate": "\/Date(1588636800000+0000)\/",
; "Status": "AUTHORISED",
; "LineAmountTypes": "Exclusive",
; "LineItems": [
; ],
; "SubTotal": 1969.99,
; "TotalTax": 197.00,
; "Total": 2166.99,
; "UpdatedDateUTC": "\/Date(1497965301980+0000)\/",
; "CurrencyCode": "AUD"
; }
; ]
; }
;
Local $sType
Local $sInvoiceID
Local $sInvoiceNumber
Local $sReference
Local $sAmountDue
Local $sAmountPaid
Local $sAmountCredited
Local $bIsDiscounted
Local $bHasAttachments
Local $bHasErrors
Local $sContactContactID
Local $sContactName
Local $bContactHasValidationErrors
Local $sDateString
Local $sDate
Local $sDueDateString
Local $sDueDate
Local $sLineAmountTypes
Local $sSubTotal
Local $sTotalTax
Local $sTotal
Local $sUpdatedDateUTC
Local $sCurrencyCode
Local $sFullyPaidOnDate
Local $sCurrencyRate
Local $iJ
Local $iCount_j
Local $sPaymentID
Local $sAmount
Local $bHasAccount
Local $bHasValidationErrors
Local $sCreditNoteID
Local $sCreditNoteNumber
Local $sID
Local $sAppliedAmount
Local $iK
Local $iCount_k
Local $sId = $oJsonResponse.StringOf("Id")
Local $sStatus = $oJsonResponse.StringOf("Status")
Local $sProviderName = $oJsonResponse.StringOf("ProviderName")
Local $sDateTimeUTC = $oJsonResponse.StringOf("DateTimeUTC")
Local $i = 0
Local $iCount_i = $oJsonResponse.SizeOfArray("Invoices")
While $i < $iCount_i
$oJsonResponse.I = $i
$sType = $oJsonResponse.StringOf("Invoices[i].Type")
$sInvoiceID = $oJsonResponse.StringOf("Invoices[i].InvoiceID")
$sInvoiceNumber = $oJsonResponse.StringOf("Invoices[i].InvoiceNumber")
$sReference = $oJsonResponse.StringOf("Invoices[i].Reference")
$sAmountDue = $oJsonResponse.StringOf("Invoices[i].AmountDue")
$sAmountPaid = $oJsonResponse.StringOf("Invoices[i].AmountPaid")
$sAmountCredited = $oJsonResponse.StringOf("Invoices[i].AmountCredited")
$bIsDiscounted = $oJsonResponse.BoolOf("Invoices[i].IsDiscounted")
$bHasAttachments = $oJsonResponse.BoolOf("Invoices[i].HasAttachments")
$bHasErrors = $oJsonResponse.BoolOf("Invoices[i].HasErrors")
$sContactContactID = $oJsonResponse.StringOf("Invoices[i].Contact.ContactID")
$sContactName = $oJsonResponse.StringOf("Invoices[i].Contact.Name")
$bContactHasValidationErrors = $oJsonResponse.BoolOf("Invoices[i].Contact.HasValidationErrors")
$sDateString = $oJsonResponse.StringOf("Invoices[i].DateString")
$sDate = $oJsonResponse.StringOf("Invoices[i].Date")
$sDueDateString = $oJsonResponse.StringOf("Invoices[i].DueDateString")
$sDueDate = $oJsonResponse.StringOf("Invoices[i].DueDate")
$sStatus = $oJsonResponse.StringOf("Invoices[i].Status")
$sLineAmountTypes = $oJsonResponse.StringOf("Invoices[i].LineAmountTypes")
$sSubTotal = $oJsonResponse.StringOf("Invoices[i].SubTotal")
$sTotalTax = $oJsonResponse.StringOf("Invoices[i].TotalTax")
$sTotal = $oJsonResponse.StringOf("Invoices[i].Total")
$sUpdatedDateUTC = $oJsonResponse.StringOf("Invoices[i].UpdatedDateUTC")
$sCurrencyCode = $oJsonResponse.StringOf("Invoices[i].CurrencyCode")
$sFullyPaidOnDate = $oJsonResponse.StringOf("Invoices[i].FullyPaidOnDate")
$sCurrencyRate = $oJsonResponse.StringOf("Invoices[i].CurrencyRate")
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].Payments")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$sPaymentID = $oJsonResponse.StringOf("Invoices[i].Payments[j].PaymentID")
$sDate = $oJsonResponse.StringOf("Invoices[i].Payments[j].Date")
$sAmount = $oJsonResponse.StringOf("Invoices[i].Payments[j].Amount")
$sReference = $oJsonResponse.StringOf("Invoices[i].Payments[j].Reference")
$bHasAccount = $oJsonResponse.BoolOf("Invoices[i].Payments[j].HasAccount")
$bHasValidationErrors = $oJsonResponse.BoolOf("Invoices[i].Payments[j].HasValidationErrors")
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].CreditNotes")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$sCreditNoteID = $oJsonResponse.StringOf("Invoices[i].CreditNotes[j].CreditNoteID")
$sCreditNoteNumber = $oJsonResponse.StringOf("Invoices[i].CreditNotes[j].CreditNoteNumber")
$sID = $oJsonResponse.StringOf("Invoices[i].CreditNotes[j].ID")
$bHasErrors = $oJsonResponse.BoolOf("Invoices[i].CreditNotes[j].HasErrors")
$sAppliedAmount = $oJsonResponse.StringOf("Invoices[i].CreditNotes[j].AppliedAmount")
$sDateString = $oJsonResponse.StringOf("Invoices[i].CreditNotes[j].DateString")
$sDate = $oJsonResponse.StringOf("Invoices[i].CreditNotes[j].Date")
$sTotal = $oJsonResponse.StringOf("Invoices[i].CreditNotes[j].Total")
$iK = 0
$iCount_k = $oJsonResponse.SizeOfArray("Invoices[i].CreditNotes[j].LineItems")
While $iK < $iCount_k
$oJsonResponse.K = $iK
$iK = $iK + 1
Wend
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].Prepayments")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].Overpayments")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].Contact.Addresses")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].Contact.Phones")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].Contact.ContactGroups")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].Contact.ContactPersons")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$iJ = $iJ + 1
Wend
$iJ = 0
$iCount_j = $oJsonResponse.SizeOfArray("Invoices[i].LineItems")
While $iJ < $iCount_j
$oJsonResponse.J = $iJ
$iJ = $iJ + 1
Wend
$i = $i + 1
Wend