Sample code for 30+ languages & platforms
PowerShell

QuickBooks - Create an Account

See more QuickBooks Examples

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

Chilkat PowerShell Downloads

PowerShell
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"

$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 = New-Object Chilkat.JsonObject
$success = $jsonToken.LoadFile("qa_data/tokens/qb-access-token.json")

$rest = New-Object Chilkat.Rest

$bAutoReconnect = $true
$success = $rest.Connect("sandbox-quickbooks.api.intuit.com",443,$true,$bAutoReconnect)
if ($success -ne $true) {
    $($rest.LastErrorText)
    exit
}

$sbAuth = New-Object Chilkat.StringBuilder
$sbAuth.Append("Bearer ")
$sbAuth.Append($jsonToken.StringOf("access_token"))
$rest.Authorization = $sbAuth.GetAsString()

$jsonRequest = New-Object Chilkat.JsonObject
$jsonRequest.AppendString("AccountType","Credit Card")
$jsonRequest.AppendString("Name","Banana Republic")
$requestBody = $jsonRequest.Emit()

# "123146096291789" is the company ID.
$sbPath = New-Object Chilkat.StringBuilder
$sbPath.Append("/v3/company/123146096291789/account?minorversion=45")

$rest.AddHeader("Content-Type","application/json")
$rest.AddHeader("Accept","application/json")
$rest.AllowHeaderFolding = $false

$responseBody = $rest.FullRequestString("POST",$sbPath.GetAsString(),$requestBody)
if ($rest.LastMethodSuccess -ne $true) {
    $($rest.LastErrorText)
    exit
}

# We should expect a 200 response if successful.
if ($rest.ResponseStatusCode -ne 200) {
    $("Request Header: ")
    $($rest.LastRequestHeader)
    $("----")
    $("Response StatusCode = " + $rest.ResponseStatusCode)
    $("Response StatusLine: " + $rest.ResponseStatusText)
    $("Response Header:")
    $($rest.ResponseHeader)
    $($responseBody)
    exit
}

$jsonResponse = New-Object Chilkat.JsonObject
$jsonResponse.Load($responseBody)
$jsonResponse.EmitCompact = $false
$($jsonResponse.Emit())
$("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"
# }