In this blog, we will learn how to add a category in Quickbooks online from .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.

A category is an item of type category, Category can also have a sub-category and items.

  • A minimum required element for creating a category is as below,
  1. Name: Unique name of the category/item
  2. Type: specify the item type, for category set type to “Category”.

Following are a few steps to add a category,

  • 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 Item object and assign data into an object.
  • in Item object, we have to assign its Name and Type.
  • After assigning data into an Item object, We have to create a DataService object by passing a ServiceContext object as a parameter.
  • Add Item object in DataService.Add() for adding an category.
  • If a category created successfully, it will return the newly created category object, from this object we can store details like Id in the database if you want to.
  • The code is as below.
public ActionResult CreateCategory()
{
  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;

    Item ObjCategoryItem = new Item();

    ObjCategoryItem.Name = "Electronics";

    ObjCategoryItem.TypeSpecified = true;
    ObjCategoryItem.Type = ItemTypeEnum.Category;

    DataService dataService = new DataService(serviceContext);

    Item CategoryItemAdd = dataService.Add(ObjCategoryItem);
    if (CategoryItemAdd != null && !string.IsNullOrEmpty(CategoryItemAdd.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 = "CreateCategory";
}

<h2>Create Category</h2>


@if (ViewBag.IsSuccess != null && ViewBag.IsSuccess == true)
{
    <div class="row">
        <label class="label label-success"> Category Created Successfully </label>
    </div>
}
  • The above code will create a category named “Electronics” in Quickbooks online.

OUTPUT:

if you don’t know much about Quickbook Item then you can refer to this link.