Back to Collection Items
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoHttp
Boolean iSuccess
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
Boolean iAccepted
String sAccounting_systemid
String sAddress
String sAmount
String sCode
String sCity
String sCode
String sCountry
String sCreate_date
String sCreated_at
String sCurrency_code
String sCurrent_organization
Integer iCustomerid
String sDescription
String sDiscount_totalAmount
String sDiscount_totalCode
String sDiscount_value
String sDisplay_status
String sEstimate_number
Integer iEstimateid
Integer iExt_archive
String sFname
Integer iId
Boolean iInvoiced
String sLanguage
String sLname
String sNotes
String sOrganization
Integer iOwnerid
String sPo_number
String sProvince
String sReply_status
Boolean iRequire_client_signature
Boolean iRich_proposal
Integer iSentid
Integer iStatus
String sStreet
String sStreet2
String sTemplate
String sTerms
String sUi_status
String sUpdated
String sVat_name
String sVat_number
Integer iVis_state
Integer iPage
Integer iPages
Integer iPer_page
Integer iTotal
Integer i
Integer iCount_i
String sTemp1
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Adds the "Authorization: Bearer <access_token>" header.
Set ComAuthToken Of hoHttp To "<access_token>"
Send ComSetRequestHeader To hoHttp "Content-Type" "application/json"
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComQuickGetSb Of hoHttp "https://api.freshbooks.com/accounting/account/{{accountId}}/estimates/estimates" vSbResponseBody To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
If (Not(IsComObjectCreated(hoJResp))) Begin
Send CreateComObject of hoJResp
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
Set ComEmitCompact Of hoJResp To False
Showln "Response Body:"
Get ComEmit Of hoJResp To sTemp1
Showln sTemp1
Get ComLastStatus Of hoHttp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComLastHeader Of hoHttp To sTemp1
Showln sTemp1
Showln "Failed."
Procedure_Return
End
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "response": {
// "result": {
// "estimates": [
// {
// "accepted": false,
// "accounting_systemid": "wkMd2g",
// "address": "",
// "amount": {
// "amount": "17628.00",
// "code": "USD"
// },
// "city": "",
// "code": "",
// "country": "Canada",
// "create_date": "2019-04-18",
// "created_at": "2019-04-18 09:42:52",
// "currency_code": "USD",
// "current_organization": "first company",
// "customerid": 31006,
// "description": "it's a computer hardware version 1",
// "discount_total": {
// "amount": "0.00",
// "code": "USD"
// },
// "discount_value": "0",
// "display_status": "draft",
// "estimate_number": "0000001",
// "estimateid": 1706,
// "ext_archive": 0,
// "fname": "Client",
// "id": 1706,
// "invoiced": false,
// "language": "en",
// "lname": "one",
// "notes": "This is an estimate for the computer",
// "organization": "first company",
// "ownerid": 1,
// "po_number": null,
// "province": "",
// "reply_status": null,
// "require_client_signature": false,
// "rich_proposal": false,
// "sentid": 1,
// "status": 1,
// "street": "",
// "street2": "",
// "template": "clean-grouped",
// "terms": "50% deposit upon acceptance, 50% on delivery of the computers.",
// "ui_status": "draft",
// "updated": "2019-04-18 09:42:52",
// "vat_name": null,
// "vat_number": "",
// "vis_state": 0
// }
// ],
// "page": 1,
// "pages": 1,
// "per_page": 15,
// "total": 1
// }
// }
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
Get ComIntOf Of hoJResp "response.result.page" To iPage
Get ComIntOf Of hoJResp "response.result.pages" To iPages
Get ComIntOf Of hoJResp "response.result.per_page" To iPer_page
Get ComIntOf Of hoJResp "response.result.total" To iTotal
Move 0 To i
Get ComSizeOfArray Of hoJResp "response.result.estimates" To iCount_i
While (i < iCount_i)
Set ComI Of hoJResp To i
Get ComBoolOf Of hoJResp "response.result.estimates[i].accepted" To iAccepted
Get ComStringOf Of hoJResp "response.result.estimates[i].accounting_systemid" To sAccounting_systemid
Get ComStringOf Of hoJResp "response.result.estimates[i].address" To sAddress
Get ComStringOf Of hoJResp "response.result.estimates[i].amount.amount" To sAmount
Get ComStringOf Of hoJResp "response.result.estimates[i].amount.code" To sCode
Get ComStringOf Of hoJResp "response.result.estimates[i].city" To sCity
Get ComStringOf Of hoJResp "response.result.estimates[i].code" To sCode
Get ComStringOf Of hoJResp "response.result.estimates[i].country" To sCountry
Get ComStringOf Of hoJResp "response.result.estimates[i].create_date" To sCreate_date
Get ComStringOf Of hoJResp "response.result.estimates[i].created_at" To sCreated_at
Get ComStringOf Of hoJResp "response.result.estimates[i].currency_code" To sCurrency_code
Get ComStringOf Of hoJResp "response.result.estimates[i].current_organization" To sCurrent_organization
Get ComIntOf Of hoJResp "response.result.estimates[i].customerid" To iCustomerid
Get ComStringOf Of hoJResp "response.result.estimates[i].description" To sDescription
Get ComStringOf Of hoJResp "response.result.estimates[i].discount_total.amount" To sDiscount_totalAmount
Get ComStringOf Of hoJResp "response.result.estimates[i].discount_total.code" To sDiscount_totalCode
Get ComStringOf Of hoJResp "response.result.estimates[i].discount_value" To sDiscount_value
Get ComStringOf Of hoJResp "response.result.estimates[i].display_status" To sDisplay_status
Get ComStringOf Of hoJResp "response.result.estimates[i].estimate_number" To sEstimate_number
Get ComIntOf Of hoJResp "response.result.estimates[i].estimateid" To iEstimateid
Get ComIntOf Of hoJResp "response.result.estimates[i].ext_archive" To iExt_archive
Get ComStringOf Of hoJResp "response.result.estimates[i].fname" To sFname
Get ComIntOf Of hoJResp "response.result.estimates[i].id" To iId
Get ComBoolOf Of hoJResp "response.result.estimates[i].invoiced" To iInvoiced
Get ComStringOf Of hoJResp "response.result.estimates[i].language" To sLanguage
Get ComStringOf Of hoJResp "response.result.estimates[i].lname" To sLname
Get ComStringOf Of hoJResp "response.result.estimates[i].notes" To sNotes
Get ComStringOf Of hoJResp "response.result.estimates[i].organization" To sOrganization
Get ComIntOf Of hoJResp "response.result.estimates[i].ownerid" To iOwnerid
Get ComStringOf Of hoJResp "response.result.estimates[i].po_number" To sPo_number
Get ComStringOf Of hoJResp "response.result.estimates[i].province" To sProvince
Get ComStringOf Of hoJResp "response.result.estimates[i].reply_status" To sReply_status
Get ComBoolOf Of hoJResp "response.result.estimates[i].require_client_signature" To iRequire_client_signature
Get ComBoolOf Of hoJResp "response.result.estimates[i].rich_proposal" To iRich_proposal
Get ComIntOf Of hoJResp "response.result.estimates[i].sentid" To iSentid
Get ComIntOf Of hoJResp "response.result.estimates[i].status" To iStatus
Get ComStringOf Of hoJResp "response.result.estimates[i].street" To sStreet
Get ComStringOf Of hoJResp "response.result.estimates[i].street2" To sStreet2
Get ComStringOf Of hoJResp "response.result.estimates[i].template" To sTemplate
Get ComStringOf Of hoJResp "response.result.estimates[i].terms" To sTerms
Get ComStringOf Of hoJResp "response.result.estimates[i].ui_status" To sUi_status
Get ComStringOf Of hoJResp "response.result.estimates[i].updated" To sUpdated
Get ComStringOf Of hoJResp "response.result.estimates[i].vat_name" To sVat_name
Get ComStringOf Of hoJResp "response.result.estimates[i].vat_number" To sVat_number
Get ComIntOf Of hoJResp "response.result.estimates[i].vis_state" To iVis_state
Move (i + 1) To i
Loop
End_Procedure
Curl Command
curl -X GET
-H "Authorization: Bearer <access_token>"
-H "Content-Type: application/json"
https://api.freshbooks.com/accounting/account/{{accountId}}/estimates/estimates
Postman Collection Item JSON
{
"name": "List Estimates",
"event": [
{
"listen": "test",
"script": {
"exec": [
"let jsonData = JSON.parse(responseBody); ",
"pm.environment.set(\"estimateId\", jsonData.response.result.estimates[0].id)"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "https://api.freshbooks.com/accounting/account/{{accountId}}/estimates/estimates",
"protocol": "https",
"host": [
"api",
"freshbooks",
"com"
],
"path": [
"accounting",
"account",
"{{accountId}}",
"estimates",
"estimates"
],
"query": [
{
"key": "include[]",
"value": "audit_logs\t",
"description": "Show estimate view/send history\n",
"disabled": true
},
{
"key": "include[]",
"value": "comments",
"description": "Comments made on estimate\n",
"disabled": true
},
{
"key": "include[]",
"value": "contacts",
"description": "List of client contacts\n",
"disabled": true
},
{
"key": "include[]",
"value": "lines",
"description": "Estimate lines\n",
"disabled": true
},
{
"key": "include[]",
"value": "owner",
"description": "Owner info\n",
"disabled": true
},
{
"key": "include[]",
"value": "presentation",
"description": "Presentation type\n",
"disabled": true
},
{
"key": "include[]",
"value": "project",
"description": "Projects",
"disabled": true
},
{
"key": "include[]",
"value": "invoices",
"description": "Invoices",
"disabled": true
},
{
"key": "include[]",
"value": "system",
"description": "Estimate owner's system\n",
"disabled": true
}
]
},
"description": "Get an entire list of estimates that exist within your account."
},
"response": [
{
"name": "List Estimates",
"originalRequest": {
"method": "GET",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"url": {
"raw": "https://api.freshbooks.com/accounting/account/{{accountId}}/estimates/estimates",
"protocol": "https",
"host": [
"api",
"freshbooks",
"com"
],
"path": [
"accounting",
"account",
"{{accountId}}",
"estimates",
"estimates"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Server",
"value": "nginx"
},
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "X-NewRelic-App-Data",
"value": "PxQBWV5TCBABVlVSAwEOVlcTGhE1AwE2QgNWEVlbQFtcCxYnRA9QFg1ZWU4DFVdfRgFPCkNFR0gBQkJaDwcXB0NYXRFMUVlTRwBKQx1RH1JKBwRQU1sMAgZTVVoHBQFeUwQaHlNKQVoDB11RWl0HB1ADXABVVgFASFBWDRUGZQ=="
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
},
{
"key": "Expires",
"value": "Tue, 24 Apr 2018 17:56:51 GMT"
},
{
"key": "Cache-Control",
"value": "no-cache"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Via",
"value": "1.1 google"
},
{
"key": "Via",
"value": "1.1 varnish"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Accept-Ranges",
"value": "bytes"
},
{
"key": "Date",
"value": "Wed, 24 Apr 2019 17:56:51 GMT"
},
{
"key": "Connection",
"value": "keep-alive"
},
{
"key": "X-Served-By",
"value": "cache-mdw17369-MDW"
},
{
"key": "X-Cache",
"value": "MISS"
},
{
"key": "X-Cache-Hits",
"value": "0"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Country",
"value": "CA"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains; preload"
}
],
"cookie": [
],
"body": "{\n \"response\": {\n \"result\": {\n \"estimates\": [\n {\n \"accepted\": false,\n \"accounting_systemid\": \"wkMd2g\",\n \"address\": \"\",\n \"amount\": {\n \"amount\": \"17628.00\",\n \"code\": \"USD\"\n },\n \"city\": \"\",\n \"code\": \"\",\n \"country\": \"Canada\",\n \"create_date\": \"2019-04-18\",\n \"created_at\": \"2019-04-18 09:42:52\",\n \"currency_code\": \"USD\",\n \"current_organization\": \"first company\",\n \"customerid\": 31006,\n \"description\": \"it's a computer hardware version 1\",\n \"discount_total\": {\n \"amount\": \"0.00\",\n \"code\": \"USD\"\n },\n \"discount_value\": \"0\",\n \"display_status\": \"draft\",\n \"estimate_number\": \"0000001\",\n \"estimateid\": 1706,\n \"ext_archive\": 0,\n \"fname\": \"Client\",\n \"id\": 1706,\n \"invoiced\": false,\n \"language\": \"en\",\n \"lname\": \"one\",\n \"notes\": \"This is an estimate for the computer\",\n \"organization\": \"first company\",\n \"ownerid\": 1,\n \"po_number\": null,\n \"province\": \"\",\n \"reply_status\": null,\n \"require_client_signature\": false,\n \"rich_proposal\": false,\n \"sentid\": 1,\n \"status\": 1,\n \"street\": \"\",\n \"street2\": \"\",\n \"template\": \"clean-grouped\",\n \"terms\": \"50% deposit upon acceptance, 50% on delivery of the computers.\",\n \"ui_status\": \"draft\",\n \"updated\": \"2019-04-18 09:42:52\",\n \"vat_name\": null,\n \"vat_number\": \"\",\n \"vis_state\": 0\n }\n ],\n \"page\": 1,\n \"pages\": 1,\n \"per_page\": 15,\n \"total\": 1\n }\n }\n}"
}
]
}