In this article, we will learn how to add a customer in Quickbooks online in .NET MVC web application using SDK.

Before using any Quickbooks online API we need access token, if you don’t know how to get access token then you can find it here.

The DisplayName attribute or at least one of TitleGivenNameMiddleNameFamilyName, or Suffix attributes is required for creating Customer, but we will use more than one attribute for creating a customer.

  • First, we have to create a ServiceContext with Auth tokens and realmId.
  • For that, we need access token and realmId
  • Then, we have to create a Customer, EmailAddress, PhysicalAddress, TelephoneNumber object and assign data into an object.
  • After that, We have to create a DataService object by passing a ServiceContext object as a parameter.
  • Add Customer object in DataService.Add() for adding a customer.
  • If a customer is created, it will return the newly created Customer object, from this object we can store details like Id in the database if you want to.
  • The code is as below.
public ActionResult CreateCustomer()
{
  try
  {
     OAuth2RequestValidator oauthValidator = new OAuth2RequestValidator(Access_token);
     // Create a ServiceContext with Auth tokens and realmId
     ServiceContext serviceContext = new ServiceContext(RealmId, IntuitServicesType.QBO, oauthValidator);
     serviceContext.IppConfiguration.MinorVersion.Qbo = "23";
     serviceContext.IppConfiguration.BaseUrl.Qbo = QboBaseUrl;

     Customer ObjCustomer = new Customer();
     ObjCustomer.GivenName = "Tabish";
     ObjCustomer.FamilyName = "Rangrej";
     ObjCustomer.ContactName = "Tabish Rangrej";
     ObjCustomer.CompanyName = "Vision";
     
     EmailAddress ObjEmail = new EmailAddress();
     ObjEmail.Address = "tabishzrangrej.vision@gmail.com";
     ObjCustomer.PrimaryEmailAddr = ObjEmail;

     PhysicalAddress ObjAddress = new PhysicalAddress();
     ObjAddress.PostalCode = "11379";
     ObjAddress.Country = "USA";
     ObjAddress.Line1 = "51 Front Dr";
     ObjAddress.City = "New York";
     ObjCustomer.BillAddr = ObjAddress;

     TelephoneNumber ObjTelephoneNumber = new TelephoneNumber();
     ObjTelephoneNumber.FreeFormNumber = "(123) 456-7890";
     ObjCustomer.PrimaryPhone = ObjTelephoneNumber;

     DataService dataService = new DataService(serviceContext);

     Customer CustomerAdd = dataService.Add(ObjCustomer);
       if(CustomerAdd!=null && !string.IsNullOrEmpty(CustomerAdd.Id))
       {
         //you can write Database code here
         ViewBag.IsSuccess = true;
       }
     return View();
     }
     catch (IdsException ex)
     {
     return View();
     }
     catch (Exception ex)
     {
     return View();
     }

  }