Sample code for 30+ languages & platforms
Go

QuickBooks - Create an Account

See more QuickBooks Examples

Demonstrates how to send an JSON request to create a QuickBooks account.

Chilkat Go Downloads

Go
    success := false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    // First get our previously obtained OAuth2 access token.
    jsonToken := chilkat.NewJsonObject()
    success = jsonToken.LoadFile("qa_data/tokens/qb-access-token.json")

    rest := chilkat.NewRest()

    bAutoReconnect := true
    success = rest.Connect("sandbox-quickbooks.api.intuit.com",443,true,bAutoReconnect)
    if success != true {
        fmt.Println(rest.LastErrorText())
        jsonToken.DisposeJsonObject()
        rest.DisposeRest()
        return
    }

    sbAuth := chilkat.NewStringBuilder()
    sbAuth.Append("Bearer ")
    sbAuth.Append(*jsonToken.StringOf("access_token"))
    rest.SetAuthorization(sbAuth.GetAsString())

    jsonRequest := chilkat.NewJsonObject()
    jsonRequest.AppendString("AccountType","Credit Card")
    jsonRequest.AppendString("Name","Banana Republic")
    requestBody := jsonRequest.Emit()

    // "123146096291789" is the company ID.
    sbPath := chilkat.NewStringBuilder()
    sbPath.Append("/v3/company/123146096291789/account?minorversion=45")

    rest.AddHeader("Content-Type","application/json")
    rest.AddHeader("Accept","application/json")
    rest.SetAllowHeaderFolding(false)

    responseBody := rest.FullRequestString("POST",*sbPath.GetAsString(),*requestBody)
    if rest.LastMethodSuccess() != true {
        fmt.Println(rest.LastErrorText())
        jsonToken.DisposeJsonObject()
        rest.DisposeRest()
        sbAuth.DisposeStringBuilder()
        jsonRequest.DisposeJsonObject()
        sbPath.DisposeStringBuilder()
        return
    }

    // We should expect a 200 response if successful.
    if rest.ResponseStatusCode() != 200 {
        fmt.Println("Request Header: ")
        fmt.Println(rest.LastRequestHeader())
        fmt.Println("----")
        fmt.Println("Response StatusCode = ", rest.ResponseStatusCode())
        fmt.Println("Response StatusLine: ", rest.ResponseStatusText())
        fmt.Println("Response Header:")
        fmt.Println(rest.ResponseHeader())
        fmt.Println(*responseBody)
        jsonToken.DisposeJsonObject()
        rest.DisposeRest()
        sbAuth.DisposeStringBuilder()
        jsonRequest.DisposeJsonObject()
        sbPath.DisposeStringBuilder()
        return
    }

    jsonResponse := chilkat.NewJsonObject()
    jsonResponse.Load(*responseBody)
    jsonResponse.SetEmitCompact(false)
    fmt.Println(*jsonResponse.Emit())
    fmt.Println("Success.")

    // A sample JSON response:

    // Use this online tool to generate parsing code from sample JSON: 
    // Generate Parsing Code from JSON

    // {
    //   "Account": {
    //     "Name": "Banana Republic",
    //     "SubAccount": false,
    //     "FullyQualifiedName": "Banana Republic",
    //     "Active": true,
    //     "Classification": "Liability",
    //     "AccountType": "Credit Card",
    //     "AccountSubType": "CreditCard",
    //     "CurrentBalance": 0,
    //     "CurrentBalanceWithSubAccounts": 0,
    //     "CurrencyRef": {
    //       "value": "USD",
    //       "name": "United States Dollar"
    //     },
    //     "domain": "QBO",
    //     "sparse": false,
    //     "Id": "97",
    //     "SyncToken": "0",
    //     "MetaData": {
    //       "CreateTime": "2016-10-25T05:07:12-07:00",
    //       "LastUpdatedTime": "2016-10-25T05:07:12-07:00"
    //     }
    //   },
    //   "time": "2016-10-25T05:07:11.714-07:00"
    // }

    jsonToken.DisposeJsonObject()
    rest.DisposeRest()
    sbAuth.DisposeStringBuilder()
    jsonRequest.DisposeJsonObject()
    sbPath.DisposeStringBuilder()
    jsonResponse.DisposeJsonObject()