QuickBooks: Create a vendor
QuickBooks vendor.create: arguments, response, policy and SDK examples.
← vendor operations · Get started · OpenAPI downloads
Contract 2026-10-20 · Operation quickbooks.vendor.create_a_vendor
Provider route: POST /v3/company/{realmID}/vendor. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/quickbooks with npm, or alter-sdk-quickbooks with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { QuickBooksIntegration } from "@alter-ai/quickbooks";
async function execute(input: Parameters<QuickBooksIntegration["vendor"]["create"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new QuickBooksIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.vendor.create(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_quickbooks import QuickBooksIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = QuickBooksIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.vendor.create(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
query | object | Optional | Additional keys: not allowed |
query.minorversion | integer | Optional | Must equal: 75 |
query.requestid | string | Optional | Minimum length: 1 |
body | object | Required within parent | Fields not accepted: Id, SyncToken Additional keys: not allowed |
body.AcctNum | string | Optional | Name or number of the account associated with this vendor. |
body.Active | JSON | Optional | If true, this object is currently enabled for use by QuickBooks. |
body.Active (anyOf 1) | boolean | Alternative | |
body.Active (anyOf 2) | string | Alternative | One of: true, false |
body.AlternatePhone | Model | Optional | Expand Create a vendor — request body — body Fax Alternate phone number. |
body.Balance | JSON | Optional | Specifies the open balance amount or the amount unpaid by the customer. For the create operation, this represents the opening balance for the customer. When returned in response to the query request it represents the current open balance (unpaid amount) for that customer. Write-on-create, read-only otherwise. Decimal string Read only: true |
body.Balance (anyOf 1) | number | Alternative | |
body.Balance (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?$ |
body.BillAddr | Model | Optional | Expand Create a vendor — request body — body Bill Addr Default billing address. If a physical address is updated from within the transaction object, the QuickBooks Online API flows individual address components differently into the Line elements of the transaction response then when the transaction was first created: Line1 and Line2 elements are populated with the customer name and company name. Original Line1 through Line 5 contents, City , SubDivisionCode , and PostalCode flow into Line3 through Line5 as a free format strings. |
body.BillRate | JSON | Optional | BillRate can be set to specify this vendor’s hourly billing rate. Decimal string |
body.BillRate (anyOf 1) | number | Alternative | |
body.BillRate (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?$ |
body.CompanyName | string | Optional | The name of the company associated with the person or organization. |
body.CostRate | JSON | Optional | Pay rate of the vendor Decimal string |
body.CostRate (anyOf 1) | number | Alternative | |
body.CostRate (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?$ |
body.CurrencyRef | Model | Optional | Expand Create a bill — request body — body Currency Ref Reference to the currency in which all amounts associated with this vendor are expressed. Once set, it cannot be changed. If specified currency is not currently in the company’s currency list, it is added. If not specified, currency for this vendor is the home currency of the company, as defined by Preferences.CurrencyPrefs.HomeCurrency . Read-only after object is created. Read only: true |
body.DisplayName | string | Optional | The name of the vendor as displayed. Must be unique across all Vendor, Customer, and Employee objects. Cannot be removed with sparse update. If not supplied, the system generates DisplayName by concatenating vendor name components supplied in the request from the following list: Title , GivenName , MiddleName , FamilyName , and Suffix . |
body.FamilyName | string | Optional | Family name or the last name of the person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create. Conditionally required |
body.Fax | Model | Optional | Expand Create a vendor — request body — body Fax Fax number. |
body.GivenName | string | Optional | Given name or first name of a person. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create. Conditionally required |
body.HasTPAR | JSON | Optional | Indicate if the vendor has TPAR enabled. TPAR stands for Taxable Payments Annual Report. The TPAR is mandated by ATO to get the details payments that businesses make to contractors for providing services. Some government entities also need to report the grants they have paid in a TPAR. |
body.HasTPAR (anyOf 1) | boolean | Alternative | |
body.HasTPAR (anyOf 2) | string | Alternative | One of: true, false |
body.MetaData | Model | Optional | Expand Read a bill — response body — Bill Meta Data Descriptive information about the object. The MetaData values are set by Data Services and are read only for all applications. |
body.MiddleName | string | Optional | Middle name of the person. The person can have zero or more middle names. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create. Conditionally required |
body.Mobile | Model | Optional | Expand Create a vendor — request body — body Fax Mobile phone number. |
body.OtherContactInfo | Model | Optional | Expand Create a vendor — request body — body Other Contact Info List of ContactInfo entities of any contact info type. |
body.PrimaryEmailAddr | Model | Optional | Expand Full update companyinfo — request body — body Email Primary email address. |
body.PrimaryPhone | Model | Optional | Expand Create a vendor — request body — body Fax Primary phone number. |
body.PrintOnCheckName | string | Optional | Name of the person or organization as printed on a check. If not provided, this is populated from DisplayName . Cannot be removed with sparse update. |
body.Source | string | Optional | The Source type of the transactions created by QuickBooks Commerce. Valid values include: QBCommerce |
body.Suffix | string | Optional | Suffix of the name. For example, Jr . The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , or Suffix attributes is required for object create. Conditionally required |
body.T4AEligible | JSON | Optional | True if vendor is T4A eligible. Valid for CA locale |
body.T4AEligible (anyOf 1) | boolean | Alternative | |
body.T4AEligible (anyOf 2) | string | Alternative | One of: true, false |
body.T5018Eligible | JSON | Optional | True if vendor is T5018 eligible. Valid for CA locale |
body.T5018Eligible (anyOf 1) | boolean | Alternative | |
body.T5018Eligible (anyOf 2) | string | Alternative | One of: true, false |
body.TaxIdentifier | string | Optional | The tax ID of the Person or Organization. The value is masked in responses, exposing only last four characters. For example, the ID of 123-45-6789 is returned as XXXXXXX6789 . |
body.TermRef | Model | Optional | Expand Create a purchase order — request body — body Ship To Reference to a default Term associated with this Vendor object. Query the Term name list resource to determine the appropriate Term object for this reference. Use Term.Id and Term.Name from that object for TermRef.value and TermRef.name , respectively. |
body.Title | string | Optional | Title of the person. This tag supports i18n, all locales. The DisplayName attribute or at least one of Title , GivenName , MiddleName , FamilyName , Suffix , or FullyQualifiedName attributes are required during create. Conditionally required |
body.Vendor1099 | JSON | Optional | This vendor is an independent contractor; someone who is given a 1099-MISC form at the end of the year. A 1099 vendor is paid with regular checks, and taxes are not withheld on their behalf. |
body.Vendor1099 (anyOf 1) | boolean | Alternative | |
body.Vendor1099 (anyOf 2) | string | Alternative | One of: true, false |
body.VendorPaymentBankDetail | Model | Optional | Expand Create a vendor — request body — body Vendor Payment Bank Detail Vendor Payment Bank Detail. |
body.WebAddr | Model | Optional | Expand Create a vendor — request body — body Web Addr Website address. |
body.domain | string | Optional | |
body.sparse | boolean | Optional |
Referenced models: Create a vendor — request body — body Other Contact Info, Full update companyinfo — request body — body Email, Read a bill — response body — Bill Meta Data, Create a vendor — request body — body Bill Addr, Create a vendor — request body — body Fax, Create a vendor — request body — body Vendor Payment Bank Detail, Create a vendor — request body — body Web Addr, Create a bill — request body — body Currency Ref, Create a purchase order — request body — body Ship To
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: allowed |
time | string | Optional | |
Vendor | Model | Optional | Expand Read a vendor — response body — Vendor |
Referenced models: Read a vendor — response body — Vendor
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: quickbooks.vendor.create_a_vendor. Catalog operation: vendors/create. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.