In this article, we will learn how to add an employee 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.

An employee is a person who is working for the company.

The GivenName and FamilyName attributes are required for adding an employee.

The DisplayName attribute must be unique across all other customers, employees, and vendors.

DisplayNameTitleGivenNameMiddleNameFamilyNameSuffix, and PrintOnCheckName. Any of these attributes must not contain a colon (:), tab (\t), or newline (\n) characters.

If QuickBooks Payroll is enabled then PrimaryAddr is also Required.

Following are a few steps for adding employee,

  • 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 an Employee, 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 Employee object in DataService.Add() for adding an employee.
  • If an employee is created, it will return the newly created employee object, from this object we can store details like Id in the database if you want to.
  • The code is as below.
public ActionResult CreateEmployee()
{
  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;

    Employee ObjEmployee = new Employee();
    ObjEmployee.GivenName = "Tabish";
    ObjEmployee.FamilyName = "Employee";
    ObjEmployee.CompanyName = "Vision";

    EmailAddress ObjEmail = new EmailAddress();
    ObjEmail.Address = "tabish.Employee@test.com";
    ObjEmployee.PrimaryEmailAddr = ObjEmail;

    PhysicalAddress ObjAddress = new PhysicalAddress();
    ObjAddress.PostalCode = "11380";
    ObjAddress.Country = "USA";
    ObjAddress.Line1 = "55 Back Dr";
    ObjAddress.City = "New York";
    ObjEmployee.PrimaryAddr = ObjAddress;

    TelephoneNumber ObjTelephoneNumber = new TelephoneNumber();
    ObjTelephoneNumber.FreeFormNumber = "(123) 123-1231";
    ObjEmployee.PrimaryPhone = ObjTelephoneNumber;

    DataService dataService = new DataService(serviceContext);

    Employee EmployeeAdd = dataService.Add(ObjEmployee);
    if (EmployeeAdd != null && !string.IsNullOrEmpty(EmployeeAdd.Id))
    {
        //you can write Database code here
        ViewBag.IsSuccess = true;
    }
    return View();
  }
  catch (IdsException ex)
  {
    return View();
  }
  catch (Exception ex)
  {
    return View();
  }
}
  • View Code is as below
@{
    ViewBag.Title = "CreateEmployee";
}

<h2>Create Employee</h2>


@if (ViewBag.IsSuccess != null && ViewBag.IsSuccess == true)
{
    <div>
        <label class="label label-success">Employee Created Successfully</label>
    </div>
}

The above code will create an Employee in Quickbooks Online.