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

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

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

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

       Vendor ObjVendor = new Vendor();
       ObjVendor.GivenName = "Tabish";
       ObjVendor.FamilyName = "Vendor";
       ObjVendor.ContactName = "Tabish Vendor";
       ObjVendor.CompanyName = "Vision";

       EmailAddress ObjEmail = new EmailAddress();
       ObjEmail.Address = "tabish.Vendor@test.com";
       ObjVendor.PrimaryEmailAddr = ObjEmail;

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

       TelephoneNumber ObjTelephoneNumber = new TelephoneNumber();
       ObjTelephoneNumber.FreeFormNumber = "(123) 456-7889";
       ObjVendor.PrimaryPhone = ObjTelephoneNumber;

       DataService dataService = new DataService(serviceContext);

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

}