Sample code for 30+ languages & platforms
Java

Quickbooks Create a New Customer

See more QuickBooks Examples

Demonstrates how to create a new customer via the Quickbooks REST API.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.Rest;
import com.chilkatsoft.chilkat2.StringBuilder;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        // First get our previously obtained OAuth2 access token.
        JsonObject jsonToken = new JsonObject();
        jsonToken.loadFile("qa_data/tokens/qb-access-token.json");

        Rest rest = new Rest();

        // Connect to the REST server.
        boolean bTls = true;
        int port = 443;
        boolean bAutoReconnect = true;
        rest.connect("sandbox-quickbooks.api.intuit.com", port, bTls, bAutoReconnect);

        StringBuilder sbAuth = new StringBuilder();
        sbAuth.append("Bearer ");
        sbAuth.append(jsonToken.stringOf("access_token"));
        rest.setAuthorization(sbAuth.getAsString());

        // --------------------------------------------------------------------------
        // Note: The above code to setup the initial REST connection
        // can be done once.  After connecting, any number of REST calls can be made.
        // If the connection is lost, the next REST method call will automatically
        // reconnect if needed.
        // --------------------------------------------------------------------------

        // Create the following JSON:

        // {
        //   "FullyQualifiedName": "King Groceries",
        //   "PrimaryEmailAddr": {
        //     "Address": "jdrew@myemail.com"
        //   },
        //   "DisplayName": "King's Groceries",
        //   "Suffix": "Jr",
        //   "Title": "Mr",
        //   "MiddleName": "B",
        //   "Notes": "Here are other details.",
        //   "FamilyName": "King",
        //   "PrimaryPhone": {
        //     "FreeFormNumber": "(555) 555-5555"
        //   },
        //   "CompanyName": "King Groceries",
        //   "BillAddr": {
        //     "CountrySubDivisionCode": "CA",
        //     "City": "Mountain View",
        //     "PostalCode": "94042",
        //     "Line1": "123 Main Street",
        //     "Country": "USA"
        //   },
        //   "GivenName": "James"
        // }
        //
        // Use the this online tool to generate the code from sample JSON:
        // Generate Code to Create JSON

        JsonObject jsonReq = new JsonObject();
        jsonReq.updateString("FullyQualifiedName", "King Groceries");
        jsonReq.updateString("PrimaryEmailAddr.Address", "jdrew@myemail.com");
        jsonReq.updateString("DisplayName", "King's Groceries");
        jsonReq.updateString("Suffix", "Jr");
        jsonReq.updateString("Title", "Mr");
        jsonReq.updateString("MiddleName", "B");
        jsonReq.updateString("Notes", "Here are other details.");
        jsonReq.updateString("FamilyName", "King");
        jsonReq.updateString("PrimaryPhone.FreeFormNumber", "(555) 555-5555");
        jsonReq.updateString("CompanyName", "King Groceries");
        jsonReq.updateString("BillAddr.CountrySubDivisionCode", "CA");
        jsonReq.updateString("BillAddr.City", "Mountain View");
        jsonReq.updateString("BillAddr.PostalCode", "94042");
        jsonReq.updateString("BillAddr.Line1", "123 Main Street");
        jsonReq.updateString("BillAddr.Country", "USA");
        jsonReq.updateString("GivenName", "James");

        StringBuilder sbRequestBody = new StringBuilder();
        jsonReq.emitSb(sbRequestBody);

        rest.addHeader("Content-Type", "application/json");
        rest.addHeader("Accept", "application/json");
        rest.setAllowHeaderFolding(false);

        StringBuilder sbResponseBody = new StringBuilder();
        try {
            rest.fullRequestSb("POST", "/v3/company/<realmID>/customer", sbRequestBody, sbResponseBody);
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        int respStatusCode = rest.getResponseStatusCode();

        // Success is indicated by a 200 response status code.
        System.out.println("response status code = " + respStatusCode);

        JsonObject jsonResponse = new JsonObject();
        jsonResponse.loadSb(sbResponseBody);
        jsonResponse.setEmitCompact(false);
        System.out.println(jsonResponse.emit());

        if (rest.getResponseStatusCode() != 200) {
            System.out.println("Failed.");
            return;
        }

        // Sample output...
        // (See the parsing code below..)
        //
        // Use the this online tool to generate parsing code from sample JSON:
        // Generate Parsing Code from JSON

        // {
        //   "Customer": {
        //     "domain": "QBO",
        //     "PrimaryEmailAddr": {
        //       "Address": "jdrew@myemail.com"
        //     },
        //     "DisplayName": "King's Groceries",
        //     "CurrencyRef": {
        //       "name": "United States Dollar",
        //       "value": "USD"
        //     },
        //     "DefaultTaxCodeRef": {
        //       "value": "2"
        //     },
        //     "PreferredDeliveryMethod": "Print",
        //     "GivenName": "James",
        //     "FullyQualifiedName": "King's Groceries",
        //     "BillWithParent": false,
        //     "Title": "Mr",
        //     "Job": false,
        //     "BalanceWithJobs": 0,
        //     "PrimaryPhone": {
        //       "FreeFormNumber": "(555) 555-5555"
        //     },
        //     "Taxable": true,
        //     "MetaData": {
        //       "CreateTime": "2015-07-23T10:58:12-07:00",
        //       "LastUpdatedTime": "2015-07-23T10:58:12-07:00"
        //     },
        //     "BillAddr": {
        //       "City": "Mountain View",
        //       "Country": "USA",
        //       "Line1": "123 Main Street",
        //       "PostalCode": "94042",
        //       "CountrySubDivisionCode": "CA",
        //       "Id": "112"
        //     },
        //     "MiddleName": "B",
        //     "Notes": "Here are other details.",
        //     "Active": true,
        //     "Balance": 0,
        //     "SyncToken": "0",
        //     "Suffix": "Jr",
        //     "CompanyName": "King Groceries",
        //     "FamilyName": "King",
        //     "PrintOnCheckName": "King Groceries",
        //     "sparse": false,
        //     "Id": "67"
        //   },
        //   "time": "2015-07-23T10:58:12.099-07:00"
        // }
        //

        String CustomerDomain = jsonResponse.stringOf("Customer.domain");
        String CustomerPrimaryEmailAddrAddress = jsonResponse.stringOf("Customer.PrimaryEmailAddr.Address");
        String CustomerDisplayName = jsonResponse.stringOf("Customer.DisplayName");
        String CustomerCurrencyRefName = jsonResponse.stringOf("Customer.CurrencyRef.name");
        String CustomerCurrencyRefValue = jsonResponse.stringOf("Customer.CurrencyRef.value");
        String CustomerDefaultTaxCodeRefValue = jsonResponse.stringOf("Customer.DefaultTaxCodeRef.value");
        String CustomerPreferredDeliveryMethod = jsonResponse.stringOf("Customer.PreferredDeliveryMethod");
        String CustomerGivenName = jsonResponse.stringOf("Customer.GivenName");
        String CustomerFullyQualifiedName = jsonResponse.stringOf("Customer.FullyQualifiedName");
        boolean CustomerBillWithParent = jsonResponse.boolOf("Customer.BillWithParent");
        String CustomerTitle = jsonResponse.stringOf("Customer.Title");
        boolean CustomerJob = jsonResponse.boolOf("Customer.Job");
        int CustomerBalanceWithJobs = jsonResponse.intOf("Customer.BalanceWithJobs");
        String CustomerPrimaryPhoneFreeFormNumber = jsonResponse.stringOf("Customer.PrimaryPhone.FreeFormNumber");
        boolean CustomerTaxable = jsonResponse.boolOf("Customer.Taxable");
        String CustomerMetaDataCreateTime = jsonResponse.stringOf("Customer.MetaData.CreateTime");
        String CustomerMetaDataLastUpdatedTime = jsonResponse.stringOf("Customer.MetaData.LastUpdatedTime");
        String CustomerBillAddrCity = jsonResponse.stringOf("Customer.BillAddr.City");
        String CustomerBillAddrCountry = jsonResponse.stringOf("Customer.BillAddr.Country");
        String CustomerBillAddrLine1 = jsonResponse.stringOf("Customer.BillAddr.Line1");
        String CustomerBillAddrPostalCode = jsonResponse.stringOf("Customer.BillAddr.PostalCode");
        String CustomerBillAddrCountrySubDivisionCode = jsonResponse.stringOf("Customer.BillAddr.CountrySubDivisionCode");
        String CustomerBillAddrId = jsonResponse.stringOf("Customer.BillAddr.Id");
        String CustomerMiddleName = jsonResponse.stringOf("Customer.MiddleName");
        String CustomerNotes = jsonResponse.stringOf("Customer.Notes");
        boolean CustomerActive = jsonResponse.boolOf("Customer.Active");
        int CustomerBalance = jsonResponse.intOf("Customer.Balance");
        String CustomerSyncToken = jsonResponse.stringOf("Customer.SyncToken");
        String CustomerSuffix = jsonResponse.stringOf("Customer.Suffix");
        String CustomerCompanyName = jsonResponse.stringOf("Customer.CompanyName");
        String CustomerFamilyName = jsonResponse.stringOf("Customer.FamilyName");
        String CustomerPrintOnCheckName = jsonResponse.stringOf("Customer.PrintOnCheckName");
        boolean CustomerSparse = jsonResponse.boolOf("Customer.sparse");
        String CustomerId = jsonResponse.stringOf("Customer.Id");
        String time = jsonResponse.stringOf("time");
    }
}