Chilkat Online Tools

DataFlex / New FreshBooks / Invoice Details

Back to Collection Items

Use ChilkatAx-9.5.0-win32.pkg

Procedure Test
    Handle hoHttp
    Boolean iSuccess
    Variant vSbResponseBody
    Handle hoSbResponseBody
    Handle hoJResp
    Integer iRespStatusCode
    Variant vDate_type
    Handle hoDate_type
    String sCompany_name
    String sCurrency_code
    String sDownload_token
    String sEnd_date
    String sStart_date
    String sAmount
    String sCode
    String sPaidAmount
    String sPaidCode
    String sTotalAmount
    String sTotalCode
    Boolean iSummary_only
    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" ""

    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}}/reports/accounting/invoice_details" 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": {
    //       "invoice_details": {
    //         "clientids": [
    //         ],
    //         "clients": [
    //         ],
    //         "company_name": "Postman Sandbox",
    //         "currency_code": "USD",
    //         "date_type": "issue",
    //         "download_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50aWQiOiJ3a01kMmciLCJ1c2VyaWQiOjEsImNvbnRhY3RpZCI6LTEsImxldmVsIjozLCJ0eXBlIjoicmVwb3J0Iiwib2JqZWN0aWQiOiJpbnZvaWNlX2RldGFpbHMiLCJwYXJhbXMiOnsic3RhcnRfZGF0ZSI6IjIwMTktMDQtMjQiLCJlbmRfZGF0ZSI6IjIwMTktMDQtMjQiLCJkYXRlX3R5cGUiOiJpc3N1ZSIsImN1cnJlbmN5X2NvZGUiOiJVU0QiLCJjbGllbnRpZHMiOltdLCJzdGF0dXNpZHMiOltdfSwiaWF0IjoxNTU2MTMwNTYyLCJleHAiOjE1NTg3MjI1NjJ9.aV3sb8ohrAx8q0cus1gk_DnRikgvKRjJdpGyIM0lKqQ",
    //         "end_date": "2019-04-24",
    //         "start_date": "2019-04-24",
    //         "statusids": [
    //         ],
    //         "summary": {
    //           "outstanding": {
    //             "amount": "0.00",
    //             "code": "USD"
    //           },
    //           "paid": {
    //             "amount": "0.00",
    //             "code": "USD"
    //           },
    //           "total": {
    //             "amount": "0.00",
    //             "code": "USD"
    //           }
    //         },
    //         "summary_only": false
    //       }
    //     }
    //   }
    // }

    // Sample code for parsing the JSON response...
    // Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

    Get Create (RefClass(cComChilkatDtObj)) To hoDate_type
    If (Not(IsComObjectCreated(hoDate_type))) Begin
        Send CreateComObject of hoDate_type
    End

    Get ComStringOf Of hoJResp "response.result.invoice_details.company_name" To sCompany_name
    Get ComStringOf Of hoJResp "response.result.invoice_details.currency_code" To sCurrency_code
    Get pvComObject of hoDate_type to vDate_type
    Get ComDtOf Of hoJResp "response.result.invoice_details.date_type" False vDate_type To iSuccess
    Get ComStringOf Of hoJResp "response.result.invoice_details.download_token" To sDownload_token
    Get ComStringOf Of hoJResp "response.result.invoice_details.end_date" To sEnd_date
    Get ComStringOf Of hoJResp "response.result.invoice_details.start_date" To sStart_date
    Get ComStringOf Of hoJResp "response.result.invoice_details.summary.outstanding.amount" To sAmount
    Get ComStringOf Of hoJResp "response.result.invoice_details.summary.outstanding.code" To sCode
    Get ComStringOf Of hoJResp "response.result.invoice_details.summary.paid.amount" To sPaidAmount
    Get ComStringOf Of hoJResp "response.result.invoice_details.summary.paid.code" To sPaidCode
    Get ComStringOf Of hoJResp "response.result.invoice_details.summary.total.amount" To sTotalAmount
    Get ComStringOf Of hoJResp "response.result.invoice_details.summary.total.code" To sTotalCode
    Get ComBoolOf Of hoJResp "response.result.invoice_details.summary_only" To iSummary_only
    Move 0 To i
    Get ComSizeOfArray Of hoJResp "response.result.invoice_details.clientids" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Move (i + 1) To i
    Loop

    Move 0 To i
    Get ComSizeOfArray Of hoJResp "response.result.invoice_details.clients" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Move (i + 1) To i
    Loop

    Move 0 To i
    Get ComSizeOfArray Of hoJResp "response.result.invoice_details.statusids" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Move (i + 1) To i
    Loop



End_Procedure

Curl Command

curl -X GET
	-H "Authorization: Bearer <access_token>"
	-H "Content-Type: "
https://api.freshbooks.com/accounting/account/{{accountId}}/reports/accounting/invoice_details

Postman Collection Item JSON

{
  "name": "Invoice Details",
  "request": {
    "method": "GET",
    "header": [
      {
        "key": "Content-Type",
        "value": "",
        "type": "text"
      }
    ],
    "url": {
      "raw": "https://api.freshbooks.com/accounting/account/{{accountId}}/reports/accounting/invoice_details",
      "protocol": "https",
      "host": [
        "api",
        "freshbooks",
        "com"
      ],
      "path": [
        "accounting",
        "account",
        "{{accountId}}",
        "reports",
        "accounting",
        "invoice_details"
      ],
      "query": [
        {
          "key": "start_date",
          "value": "2019-01-01",
          "description": "created during or after the given date i.e. `2019-01-01`",
          "disabled": true
        },
        {
          "key": "end_date",
          "value": "2019-05-01",
          "description": "created during or before the given date i.e. `2019-04-20`",
          "disabled": true
        },
        {
          "key": "currency_code",
          "value": "USD",
          "description": "reports using the given currency as primary currency i.e.  `\"USD\"`",
          "disabled": true
        },
        {
          "key": "clientids",
          "value": "",
          "description": "returns data from specific client(s) i.e. `31007, 32291`",
          "disabled": true
        },
        {
          "key": "statusids",
          "value": "",
          "description": "returns invoices that has the same status as the given status. i.e. `\"draft\"`, `\"sent\"`, `\"paid\"`, etc.",
          "disabled": true
        },
        {
          "key": "date_type",
          "value": "issue",
          "description": "returns invoices with the specified date_type (`\"issue\"` or `\"paid\"`)",
          "disabled": true
        }
      ]
    },
    "description": "## Invoice Details\n\nThe Invoice Details Report shows all the information involving your invoices"
  },
  "response": [
    {
      "name": "Invoice Details",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "key": "Content-Type",
            "value": "",
            "type": "text"
          }
        ],
        "url": {
          "raw": "https://api.freshbooks.com/accounting/account/{{accountId}}/reports/accounting/invoice_details",
          "protocol": "https",
          "host": [
            "api",
            "freshbooks",
            "com"
          ],
          "path": [
            "accounting",
            "account",
            "{{accountId}}",
            "reports",
            "accounting",
            "invoice_details"
          ],
          "query": [
            {
              "key": "start_date",
              "value": "2019-01-01",
              "description": "created during or after the given date i.e. `2019-01-01`",
              "disabled": true
            },
            {
              "key": "end_date",
              "value": "2019-05-01",
              "description": "created during or before the given date i.e. `2019-04-20`",
              "disabled": true
            },
            {
              "key": "currency_code",
              "value": "USD",
              "description": "reports using the given currency as primary currency i.e.  `\"USD\"`",
              "disabled": true
            },
            {
              "key": "clientids",
              "value": "",
              "description": "returns data from specific client(s) i.e. `31007, 32291`",
              "disabled": true
            },
            {
              "key": "statusids",
              "value": "",
              "description": "returns invoices that has the same status as the given status. i.e. `\"draft\"`, `\"sent\"`, `\"paid\"`, etc.",
              "disabled": true
            },
            {
              "key": "date_type",
              "value": "issue",
              "description": "returns invoices with the specified date_type (`\"issue\"` or `\"paid\"`)",
              "disabled": true
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Server",
          "value": "nginx"
        },
        {
          "key": "Content-Type",
          "value": "application/json"
        },
        {
          "key": "X-NewRelic-App-Data",
          "value": "PxQBWV5TCBABVlVSAwEOVlcTGhE1AwE2QgNWEVlbQFtcCxYnRA9QFg1ZWU4DFVdfRgFPCkNFR0gWVEZcEBIQWFEBWw1NVkBbXQJLBEEOQRYXFBtRSlMWAwlQUFUBBgFfVgQABltXW04dUxRAW11VUQRUDlMEBAUGVVRVVERPXlJcFwQ/"
        },
        {
          "key": "Access-Control-Allow-Origin",
          "value": "*"
        },
        {
          "key": "Expires",
          "value": "Tue, 24 Apr 2018 18:29:22 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:29:22 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            \"invoice_details\": {\n                \"clientids\": [],\n                \"clients\": [],\n                \"company_name\": \"Postman Sandbox\",\n                \"currency_code\": \"USD\",\n                \"date_type\": \"issue\",\n                \"download_token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhY2NvdW50aWQiOiJ3a01kMmciLCJ1c2VyaWQiOjEsImNvbnRhY3RpZCI6LTEsImxldmVsIjozLCJ0eXBlIjoicmVwb3J0Iiwib2JqZWN0aWQiOiJpbnZvaWNlX2RldGFpbHMiLCJwYXJhbXMiOnsic3RhcnRfZGF0ZSI6IjIwMTktMDQtMjQiLCJlbmRfZGF0ZSI6IjIwMTktMDQtMjQiLCJkYXRlX3R5cGUiOiJpc3N1ZSIsImN1cnJlbmN5X2NvZGUiOiJVU0QiLCJjbGllbnRpZHMiOltdLCJzdGF0dXNpZHMiOltdfSwiaWF0IjoxNTU2MTMwNTYyLCJleHAiOjE1NTg3MjI1NjJ9.aV3sb8ohrAx8q0cus1gk_DnRikgvKRjJdpGyIM0lKqQ\",\n                \"end_date\": \"2019-04-24\",\n                \"start_date\": \"2019-04-24\",\n                \"statusids\": [],\n                \"summary\": {\n                    \"outstanding\": {\n                        \"amount\": \"0.00\",\n                        \"code\": \"USD\"\n                    },\n                    \"paid\": {\n                        \"amount\": \"0.00\",\n                        \"code\": \"USD\"\n                    },\n                    \"total\": {\n                        \"amount\": \"0.00\",\n                        \"code\": \"USD\"\n                    }\n                },\n                \"summary_only\": false\n            }\n        }\n    }\n}"
    }
  ]
}