DataFlex / New FreshBooks / Accept Estimate
Back to Collection Items
Use ChilkatAx-win32.pkg
Procedure Test
Handle hoHttp
Boolean iSuccess
Handle hoJson
Variant vSbRequestBody
Handle hoSbRequestBody
Variant vResp
Handle hoResp
Variant vSbResponseBody
Handle hoSbResponseBody
Handle hoJResp
Integer iRespStatusCode
Boolean iAccepted
String sAccounting_systemid
String sAddress
String sAmount
String sCode
String sCity
String sEstimateCode
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
String sTemp1
Boolean bTemp1
// 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
// Use this online tool to generate code from sample JSON: Generate Code to Create JSON
// The following JSON is sent in the request body.
// {
// "estimate": {
// "action_accept": true
// }
// }
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComUpdateBool Of hoJson "estimate.action_accept" True To iSuccess
// 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 hoSbRequestBody
If (Not(IsComObjectCreated(hoSbRequestBody))) Begin
Send CreateComObject of hoSbRequestBody
End
Get pvComObject of hoSbRequestBody to vSbRequestBody
Get ComEmitSb Of hoJson vSbRequestBody To iSuccess
Get pvComObject of hoSbRequestBody to vSbRequestBody
Get ComPTextSb Of hoHttp "PUT" "https://api.freshbooks.com/accounting/account/{{accountId}}/estimates/estimates/{{estimateId}}" vSbRequestBody "utf-8" "application/json" False False To vResp
If (IsComObject(vResp)) Begin
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
Set pvComObject Of hoResp To vResp
End
Get ComLastMethodSuccess Of hoHttp To bTemp1
If (bTemp1 = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
Send CreateComObject of hoSbResponseBody
End
Get pvComObject of hoSbResponseBody to vSbResponseBody
Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess
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 ComStatusCode Of hoResp To iRespStatusCode
Showln "Response Status Code = " iRespStatusCode
If (iRespStatusCode >= 400) Begin
Showln "Response Header:"
Get ComHeader Of hoResp To sTemp1
Showln sTemp1
Showln "Failed."
Send Destroy of hoResp
Procedure_Return
End
Send Destroy of hoResp
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "response": {
// "result": {
// "estimate": {
// "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
// }
// }
// }
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
Get ComBoolOf Of hoJResp "response.result.estimate.accepted" To iAccepted
Get ComStringOf Of hoJResp "response.result.estimate.accounting_systemid" To sAccounting_systemid
Get ComStringOf Of hoJResp "response.result.estimate.address" To sAddress
Get ComStringOf Of hoJResp "response.result.estimate.amount.amount" To sAmount
Get ComStringOf Of hoJResp "response.result.estimate.amount.code" To sCode
Get ComStringOf Of hoJResp "response.result.estimate.city" To sCity
Get ComStringOf Of hoJResp "response.result.estimate.code" To sEstimateCode
Get ComStringOf Of hoJResp "response.result.estimate.country" To sCountry
Get ComStringOf Of hoJResp "response.result.estimate.create_date" To sCreate_date
Get ComStringOf Of hoJResp "response.result.estimate.created_at" To sCreated_at
Get ComStringOf Of hoJResp "response.result.estimate.currency_code" To sCurrency_code
Get ComStringOf Of hoJResp "response.result.estimate.current_organization" To sCurrent_organization
Get ComIntOf Of hoJResp "response.result.estimate.customerid" To iCustomerid
Get ComStringOf Of hoJResp "response.result.estimate.description" To sDescription
Get ComStringOf Of hoJResp "response.result.estimate.discount_total.amount" To sDiscount_totalAmount
Get ComStringOf Of hoJResp "response.result.estimate.discount_total.code" To sDiscount_totalCode
Get ComStringOf Of hoJResp "response.result.estimate.discount_value" To sDiscount_value
Get ComStringOf Of hoJResp "response.result.estimate.display_status" To sDisplay_status
Get ComStringOf Of hoJResp "response.result.estimate.estimate_number" To sEstimate_number
Get ComIntOf Of hoJResp "response.result.estimate.estimateid" To iEstimateid
Get ComIntOf Of hoJResp "response.result.estimate.ext_archive" To iExt_archive
Get ComStringOf Of hoJResp "response.result.estimate.fname" To sFname
Get ComIntOf Of hoJResp "response.result.estimate.id" To iId
Get ComBoolOf Of hoJResp "response.result.estimate.invoiced" To iInvoiced
Get ComStringOf Of hoJResp "response.result.estimate.language" To sLanguage
Get ComStringOf Of hoJResp "response.result.estimate.lname" To sLname
Get ComStringOf Of hoJResp "response.result.estimate.notes" To sNotes
Get ComStringOf Of hoJResp "response.result.estimate.organization" To sOrganization
Get ComIntOf Of hoJResp "response.result.estimate.ownerid" To iOwnerid
Get ComStringOf Of hoJResp "response.result.estimate.po_number" To sPo_number
Get ComStringOf Of hoJResp "response.result.estimate.province" To sProvince
Get ComStringOf Of hoJResp "response.result.estimate.reply_status" To sReply_status
Get ComBoolOf Of hoJResp "response.result.estimate.require_client_signature" To iRequire_client_signature
Get ComBoolOf Of hoJResp "response.result.estimate.rich_proposal" To iRich_proposal
Get ComIntOf Of hoJResp "response.result.estimate.sentid" To iSentid
Get ComIntOf Of hoJResp "response.result.estimate.status" To iStatus
Get ComStringOf Of hoJResp "response.result.estimate.street" To sStreet
Get ComStringOf Of hoJResp "response.result.estimate.street2" To sStreet2
Get ComStringOf Of hoJResp "response.result.estimate.template" To sTemplate
Get ComStringOf Of hoJResp "response.result.estimate.terms" To sTerms
Get ComStringOf Of hoJResp "response.result.estimate.ui_status" To sUi_status
Get ComStringOf Of hoJResp "response.result.estimate.updated" To sUpdated
Get ComStringOf Of hoJResp "response.result.estimate.vat_name" To sVat_name
Get ComStringOf Of hoJResp "response.result.estimate.vat_number" To sVat_number
Get ComIntOf Of hoJResp "response.result.estimate.vis_state" To iVis_state
End_Procedure
Curl Command
curl -X PUT
-H "Authorization: Bearer <access_token>"
-H "Content-Type: application/json"
-d '{
"estimate": {
"action_accept": true
}
}'
https://api.freshbooks.com/accounting/account/{{accountId}}/estimates/estimates/{{estimateId}}
Postman Collection Item JSON
{
"name": "Accept Estimate",
"request": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"type": "text",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"estimate\": {\n \"action_accept\": true\n }\n}"
},
"url": {
"raw": "api.freshbooks.com/accounting/account/{{accountId}}/estimates/estimates/{{estimateId}}",
"host": [
"api",
"freshbooks",
"com"
],
"path": [
"accounting",
"account",
"{{accountId}}",
"estimates",
"estimates",
"{{estimateId}}"
]
}
},
"response": [
{
"name": "Update Estimate",
"originalRequest": {
"method": "PUT",
"header": [
{
"key": "Content-Type",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"estimate\": {\n \"customerid\": {{customerId}},\n \"create_date\": \"2019-04-20\"\n }\n}"
},
"url": {
"raw": "api.freshbooks.com/accounting/account/{{accountId}}/estimates/estimates/{{estimateId}}",
"host": [
"api",
"freshbooks",
"com"
],
"path": [
"accounting",
"account",
"{{accountId}}",
"estimates",
"estimates",
"{{estimateId}}"
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Server",
"value": "nginx"
},
{
"key": "Content-Type",
"value": "application/json"
},
{
"key": "X-NewRelic-App-Data",
"value": "PxQBWV5TCBABVlVSAwEOVlcTGhE1AwE2QgNWEVlbQFtcCxYnRA9QFg1ZWU4DFVdfRgFPCkNFR0gBQkJaDwcXB0NYXRFMUVlTRwAbTQFNA0xVBQ5UUlIJBwlVUlsDAQNVSBwHH0AHVQBTVlxbC1kAAAIGWwMJQx8EBVpEBDs="
},
{
"key": "Access-Control-Allow-Origin",
"value": "*"
},
{
"key": "Expires",
"value": "Tue, 24 Apr 2018 18:00:32 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": "Accept-Ranges",
"value": "bytes"
},
{
"key": "Accept-Ranges",
"value": "bytes"
},
{
"key": "Age",
"value": "0"
},
{
"key": "Age",
"value": "0"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
},
{
"key": "Date",
"value": "Wed, 24 Apr 2019 18:00:32 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 \"estimate\": {\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 }\n}"
}
]
}