---
title: "Update a vendor"
method: POST
path: "/quickbooks-desktop/vendors/{id}"
---

# Update a vendor

`POST /quickbooks-desktop/vendors/{id}`

Updates an existing vendor.

## Path parameters

- `id` string, required — The QuickBooks-assigned unique identifier of the vendor to update.

## Headers

- `Conductor-End-User-Id` string, required — The ID of the End-User to receive this request.

## Request body

- object
  - `revisionNumber` string, required — The current QuickBooks-assigned revision number of the vendor object you are updating, which you can get by fetching the object first. Provide the most recent `revisionNumber` to ensure you're working with the latest data; otherwise, the update will return an error.
  - `name` string — The case-insensitive unique name of this vendor, unique across all vendors. **NOTE**: Vendors do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents. Maximum length: 41 characters.
  - `isActive` boolean — Indicates whether this vendor is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`.
  - `classId` string — The vendor's class. Classes can be used to categorize objects into meaningful segments, such as department, location, or type of work. In QuickBooks, class tracking is off by default.
  - `companyName` string — The name of the company associated with this vendor. This name is used on invoices, checks, and other forms. Maximum length: 41 characters.
  - `salutation` string — The formal salutation title that precedes the name of the contact person for this vendor, such as "Mr.", "Ms.", or "Dr.".
  - `firstName` string — The first name of the contact person for this vendor. Maximum length: 25 characters.
  - `middleName` string — The middle name of the contact person for this vendor. Maximum length: 5 characters.
  - `lastName` string — The last name of the contact person for this vendor. Maximum length: 25 characters.
  - `jobTitle` string — The job title of the contact person for this vendor.
  - `billingAddress` object — The vendor's billing address.
    - `line1` string — The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters.
    - `line2` string — The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters.
    - `line3` string — The third line of the address, if needed. Maximum length: 41 characters.
    - `line4` string — The fourth line of the address, if needed. Maximum length: 41 characters.
    - `line5` string — The fifth line of the address, if needed. Maximum length: 41 characters.
    - `city` string — The city, district, suburb, town, or village name of the address. Maximum length: 31 characters.
    - `state` string — The state, county, province, or region name of the address. Maximum length: 21 characters.
    - `postalCode` string — The postal code or ZIP code of the address. Maximum length: 13 characters.
    - `country` string — The country name of the address.
    - `note` string — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `shippingAddress` object — The vendor's shipping address.
    - `line1` string — The first line of the address (e.g., street, PO Box, or company name). Maximum length: 41 characters.
    - `line2` string — The second line of the address, if needed (e.g., apartment, suite, unit, or building). Maximum length: 41 characters.
    - `line3` string — The third line of the address, if needed. Maximum length: 41 characters.
    - `line4` string — The fourth line of the address, if needed. Maximum length: 41 characters.
    - `line5` string — The fifth line of the address, if needed. Maximum length: 41 characters.
    - `city` string — The city, district, suburb, town, or village name of the address. Maximum length: 31 characters.
    - `state` string — The state, county, province, or region name of the address. Maximum length: 21 characters.
    - `postalCode` string — The postal code or ZIP code of the address. Maximum length: 13 characters.
    - `country` string — The country name of the address.
    - `note` string — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `phone` string — The vendor's primary telephone number. Maximum length: 21 characters.
  - `alternatePhone` string — The vendor's alternate telephone number. Maximum length: 21 characters.
  - `fax` string — The vendor's fax number. Maximum length: 21 characters.
  - `email` string — The vendor's email address.
  - `ccEmail` string — An email address to carbon copy (CC) on communications with this vendor.
  - `contact` string — The name of the primary contact person for this vendor.
  - `alternateContact` string — The name of a alternate contact person for this vendor.
  - `customContactFields` object[] — Additional custom contact fields for this vendor, such as phone numbers or email addresses.
    - `name` string, required — The name of the contact field (e.g., "old address", "secondary phone").
    - `value` string, required — The value of the contact field.
  - `additionalContacts` object[] — Additional alternate contacts for this vendor.
    - `id` string, required — The QuickBooks-assigned unique identifier of the contact to update.
    - `revisionNumber` string, required — The current QuickBooks-assigned revision number of the contact object you are updating, which you can get by fetching the object first. Provide the most recent `revisionNumber` to ensure you're working with the latest data; otherwise, the update will return an error.
    - `salutation` string — The contact's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.".
    - `firstName` string — The contact's first name. Maximum length: 25 characters.
    - `middleName` string — The contact's middle name. Maximum length: 5 characters.
    - `lastName` string — The contact's last name. Maximum length: 25 characters.
    - `jobTitle` string — The contact's job title.
    - `customContactFields` object[] — Additional custom contact fields for this contact, such as phone numbers or email addresses.
      - `name` string, required — The name of the contact field (e.g., "old address", "secondary phone").
      - `value` string, required — The value of the contact field.
  - `nameOnCheck` string — The vendor's name as it should appear on checks issued to this vendor. Maximum length: 41 characters.
  - `accountNumber` string — The vendor's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API.
  - `note` string — A note or comment about this vendor.
  - `additionalNotes` object[] — Additional notes about this vendor.
    - `id` number, required — The ID of the note to update.
    - `note` string, required — The text of this note.
  - `vendorTypeId` string — The vendor's type, used for categorizing vendors into meaningful segments, such as industry or region.
  - `termsId` string — The vendor's payment terms, defining when payment is due and any applicable discounts.
  - `creditLimit` string — The vendor's credit limit, represented as a decimal string. This is the maximum amount of money that can be spent being before billed by this vendor. If `null`, there is no credit limit.
  - `taxIdentificationNumber` string — The vendor's tax identification number (e.g., EIN or SSN).
  - `isEligibleFor1099` boolean — Indicates whether this vendor is eligible to receive a 1099 form for tax reporting purposes. When `true`, then the fields `taxId` and `billingAddress` are required.
  - `billingRateId` string — The vendor's billing rate, used to override service item rates in time tracking activities.
  - `salesTaxCodeId` string — The default sales-tax code for transactions with this vendor, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
  - `salesTaxCountry` 'australia' | 'canada' | 'uk' | 'us' — The country for which sales tax is collected for this vendor.
  - `isSalesTaxAgency` boolean — Indicates whether this vendor is a sales tax agency.
  - `salesTaxReturnId` string — The vendor's sales tax return information, used for tracking and reporting sales tax liabilities.
  - `taxRegistrationNumber` string — The vendor's tax registration number, for use in Canada or the UK.
  - `reportingPeriod` 'monthly' | 'quarterly' — The vendor's tax reporting period, for use in Canada or the UK.
  - `isTrackingPurchaseTax` boolean — Indicates whether tax is tracked on purchases for this vendor, for use in Canada or the UK.
  - `purchaseTaxAccountId` string — The account used for tracking taxes on purchases for this vendor, for use in Canada or the UK.
  - `isTrackingSalesTax` boolean — Indicates whether tax is tracked on sales for this vendor, for use in Canada or the UK.
  - `salesTaxAccountId` string — The account used for tracking taxes on sales for this vendor, for use in Canada or the UK.
  - `isCompoundingTax` boolean — Indicates whether tax is charged on top of tax for this vendor, for use in Canada or the UK.
  - `defaultExpenseAccountIds` string[] — The expense accounts to prefill when entering bills for this vendor.
  - `currencyId` string — The vendor's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable.

## Response `200`

Returns the updated vendor.

- QbdVendor
  - `id` string, required — The unique identifier assigned by QuickBooks to this vendor. This ID is unique across all vendors but not across different QuickBooks object types.
  - `objectType` 'qbd_vendor', required — The type of object. This value is always `"qbd_vendor"`.
  - `createdAt` string, required — The date and time when this vendor was created, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.
  - `updatedAt` string, required — The date and time when this vendor was last updated, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.
  - `revisionNumber` string, required — The current QuickBooks-assigned revision number of this vendor object, which changes each time the object is modified. When updating this object, you must provide the most recent `revisionNumber` to ensure you're working with the latest data; otherwise, the update will return an error.
  - `name` string, required — The case-insensitive unique name of this vendor, unique across all vendors. **NOTE**: Vendors do not have a `fullName` field because they are not hierarchical objects, which is why `name` is unique for them but not for objects that have parents.
  - `isActive` boolean, required — Indicates whether this vendor is active. Inactive objects are typically hidden from views and reports in QuickBooks. Defaults to `true`.
  - `class` object, nullable, required — The vendor's class. Classes can be used to categorize objects into meaningful segments, such as department, location, or type of work. In QuickBooks, class tracking is off by default.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `companyName` string, nullable, required — The name of the company associated with this vendor. This name is used on invoices, checks, and other forms.
  - `salutation` string, nullable, required — The formal salutation title that precedes the name of the contact person for this vendor, such as "Mr.", "Ms.", or "Dr.".
  - `firstName` string, nullable, required — The first name of the contact person for this vendor.
  - `middleName` string, nullable, required — The middle name of the contact person for this vendor.
  - `lastName` string, nullable, required — The last name of the contact person for this vendor.
  - `jobTitle` string, nullable, required — The job title of the contact person for this vendor.
  - `billingAddress` QbdAddress, required
    - `line1` string, nullable, required — The first line of the address (e.g., street, PO Box, or company name).
    - `line2` string, nullable, required — The second line of the address, if needed (e.g., apartment, suite, unit, or building).
    - `line3` string, nullable, required — The third line of the address, if needed.
    - `line4` string, nullable, required — The fourth line of the address, if needed.
    - `line5` string, nullable, required — The fifth line of the address, if needed.
    - `city` string, nullable, required — The city, district, suburb, town, or village name of the address.
    - `state` string, nullable, required — The state, county, province, or region name of the address.
    - `postalCode` string, nullable, required — The postal code or ZIP code of the address.
    - `country` string, nullable, required — The country name of the address.
    - `note` string, nullable, required — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `shippingAddress` QbdAddress, required
    - `line1` string, nullable, required — The first line of the address (e.g., street, PO Box, or company name).
    - `line2` string, nullable, required — The second line of the address, if needed (e.g., apartment, suite, unit, or building).
    - `line3` string, nullable, required — The third line of the address, if needed.
    - `line4` string, nullable, required — The fourth line of the address, if needed.
    - `line5` string, nullable, required — The fifth line of the address, if needed.
    - `city` string, nullable, required — The city, district, suburb, town, or village name of the address.
    - `state` string, nullable, required — The state, county, province, or region name of the address.
    - `postalCode` string, nullable, required — The postal code or ZIP code of the address.
    - `country` string, nullable, required — The country name of the address.
    - `note` string, nullable, required — A note written at the bottom of the address in the form in which it appears, such as the invoice form.
  - `phone` string, nullable, required — The vendor's primary telephone number.
  - `alternatePhone` string, nullable, required — The vendor's alternate telephone number.
  - `fax` string, nullable, required — The vendor's fax number.
  - `email` string, nullable, required — The vendor's email address.
  - `ccEmail` string, nullable, required — An email address to carbon copy (CC) on communications with this vendor.
  - `contact` string, nullable, required — The name of the primary contact person for this vendor.
  - `alternateContact` string, nullable, required — The name of a alternate contact person for this vendor.
  - `customContactFields` QbdCustomContactField[], required — Additional custom contact fields for this vendor, such as phone numbers or email addresses.
    - `name` string, required — The name of the contact field (e.g., "old address", "secondary phone").
    - `value` string, nullable, required — The value of the contact field.
  - `additionalContacts` QbdContact[], required — Additional alternate contacts for this vendor.
    - `id` string, required — The unique identifier assigned by QuickBooks to this contact. This ID is unique across all contacts but not across different QuickBooks object types.
    - `objectType` 'qbd_contact', required — The type of object. This value is always `"qbd_contact"`.
    - `createdAt` string, required — The date and time when this contact was created, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.
    - `updatedAt` string, required — The date and time when this contact was last updated, in ISO 8601 format (YYYY-MM-DDThh:mm:ss±hh:mm), which QuickBooks Desktop interprets in the local timezone of the end-user's computer.
    - `revisionNumber` string, required — The current QuickBooks-assigned revision number of this contact object, which changes each time the object is modified. When updating this object, you must provide the most recent `revisionNumber` to ensure you're working with the latest data; otherwise, the update will return an error.
    - `name` string, nullable, required — The contact's full name.
    - `salutation` string, nullable, required — The contact's formal salutation title that precedes their name, such as "Mr.", "Ms.", or "Dr.".
    - `firstName` string, required — The contact's first name.
    - `middleName` string, nullable, required — The contact's middle name.
    - `lastName` string, nullable, required — The contact's last name.
    - `jobTitle` string, nullable, required — The contact's job title.
    - `customContactFields` QbdCustomContactField[], required — Additional custom contact fields for this contact, such as phone numbers or email addresses.
      - `name` string, required — The name of the contact field (e.g., "old address", "secondary phone").
      - `value` string, nullable, required — The value of the contact field.
  - `nameOnCheck` string, nullable, required — The vendor's name as it should appear on checks issued to this vendor.
  - `accountNumber` string, nullable, required — The vendor's account number, which appears in the QuickBooks chart of accounts, reports, and graphs. Note that if the "Use Account Numbers" preference is turned off in QuickBooks, the account number may not be visible in the user interface, but it can still be set and retrieved through the API.
  - `note` string, nullable, required — A note or comment about this vendor.
  - `additionalNotes` QbdNote[], required — Additional notes about this vendor.
    - `id` number, required — The auto-incrementing identifier assigned by QuickBooks to this note.
    - `date` string, date, nullable, required — The date this note was last updated, in ISO 8601 format (YYYY-MM-DD).
    - `note` string, required — The text of this note.
  - `vendorType` object, nullable, required — The vendor's type, used for categorizing vendors into meaningful segments, such as industry or region.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `terms` object, nullable, required — The vendor's payment terms, defining when payment is due and any applicable discounts.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `creditLimit` string, nullable, required — The vendor's credit limit, represented as a decimal string. This is the maximum amount of money that can be spent being before billed by this vendor. If `null`, there is no credit limit.
  - `taxIdentificationNumber` string, nullable, required — The vendor's tax identification number (e.g., EIN or SSN).
  - `isEligibleFor1099` boolean, nullable, required — Indicates whether this vendor is eligible to receive a 1099 form for tax reporting purposes. When `true`, then the fields `taxId` and `billingAddress` are required.
  - `balance` string, nullable, required — The current balance owed to this vendor, represented as a decimal string. A positive number indicates money owed to the vendor.
  - `billingRate` object, nullable, required — The vendor's billing rate, used to override service item rates in time tracking activities.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `externalId` string, nullable, required — A globally unique identifier (GUID) you, the developer, can provide for tracking this object in your external system. This field is immutable and can only be set during object creation.
  - `salesTaxCode` object, nullable, required — The default sales-tax code for transactions with this vendor, determining whether the transactions are taxable or non-taxable. This can be overridden at the transaction or transaction-line level. Default codes include "Non" (non-taxable) and "Tax" (taxable), but custom codes can also be created in QuickBooks Desktop. If QuickBooks Desktop is not set up to charge sales tax (via the "Do You Charge Sales Tax?" preference), it assigns the default non-taxable sales-tax code configured in the company file to all sales.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `salesTaxCountry` string, nullable, required — The country for which sales tax is collected for this vendor.
  - `isSalesTaxAgency` boolean, nullable, required — Indicates whether this vendor is a sales tax agency.
  - `salesTaxReturn` object, nullable, required — The vendor's sales tax return information, used for tracking and reporting sales tax liabilities.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `taxRegistrationNumber` string, nullable, required — The vendor's tax registration number, for use in Canada or the UK.
  - `reportingPeriod` 'monthly' | 'quarterly' | 'annual', nullable, required — The vendor's tax reporting period, for use in Canada or the UK.
  - `isTrackingPurchaseTax` boolean, nullable, required — Indicates whether tax is tracked on purchases for this vendor, for use in Canada or the UK.
  - `purchaseTaxAccount` object, nullable, required — The account used for tracking taxes on purchases for this vendor, for use in Canada or the UK.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `isTrackingSalesTax` boolean, nullable, required — Indicates whether tax is tracked on sales for this vendor, for use in Canada or the UK.
  - `salesTaxAccount` object, nullable, required — The account used for tracking taxes on sales for this vendor, for use in Canada or the UK.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `isCompoundingTax` boolean, nullable, required — Indicates whether tax is charged on top of tax for this vendor, for use in Canada or the UK.
  - `defaultExpenseAccounts` object[], required — The expense accounts to prefill when entering bills for this vendor.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `currency` object, nullable, required — The vendor's currency. For built-in currencies, the name and code are standard ISO 4217 international values. For user-defined currencies, all values are editable.
    - `id` string, nullable, required — The unique identifier assigned by QuickBooks to this object. This ID is unique across all objects of the same type, but not across different QuickBooks object types.
    - `fullName` string, nullable, required — The fully-qualified unique name for this object, formed by combining the names of its parent objects with its own `name`, separated by colons. Not case-sensitive.
  - `customFields` QbdCustomField[], required — The custom fields for the vendor object, added as user-defined data extensions, not included in the standard QuickBooks object.
    - `ownerId` string, required — The identifier of the owner of the custom field, which QuickBooks internally calls a "data extension". For public custom fields visible in the UI, such as those added by the QuickBooks user, this is always "0". For private custom fields that are only visible to the application that created them, this is a valid GUID identifying the owning application. Internally, Conductor always fetches all public custom fields (those with an `ownerId` of "0") for all objects.
    - `name` string, required — The name of the custom field, unique for the specified `ownerId`. For public custom fields, this name is visible as a label in the QuickBooks UI.
    - `type` 'amount_type' | 'date_time_type' | 'integer_type' | 'percent_type' | 'price_type' | 'quantity_type' | 'string_1024_type' | 'string_255_type', required — The data type of this custom field.
    - `value` string, required — The value of this custom field. The maximum length depends on the field's data type.

---

[API](https://skmtc.net/conductor-is/apis/conductor-api.md) · [All operations](https://skmtc.net/conductor-is/apis/conductor-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conductor-is/conductor-api/revisions/0b07b3ebe160/schema)
