# QueryVendors

List all vendors for this company

`GET /api/v2/companies/{companyId}/vendors`

**API:** AvaTax API
**Tag:** Vendors
**API Version:** v2
**Base URL:** https://sandbox-rest.avatax.com/
**Accepts:** `application/json`
**Authentication:** API Key (`Authorization` in header) or OAuth 2.0 or Basic (username + license key)

Source: https://developer.avalara.com/products/crossborder/api/methods/Vendors/QueryVendors/

## Description

List all vendors recorded by this company matching the specified criteria.
            
A vendor object defines information about a person or business that purchases products from your
company.  When you create a tax transaction in AvaTax, you can use the `vendorCode` from this
record in your `CreateTransaction` API call.  AvaTax will search for this `vendorCode` value and
identify any certificates linked to this `vendor` object.  If any certificate applies to the transaction,
AvaTax will record the appropriate elements of the transaction as exempt and link it to the `certificate`.
            
You can use the `$include` parameter to fetch the following additional objects for expansion:
            
* certificates - Fetch a list of certificates linked to this vendor.
* attributes - Retrieves all attributes applied to the vendor.
* active_certificates - Retrieves all the active certificates linked to this vendor
* histories - Retrieves the update history for this vendor
* logs - Retrieves vendor logs
* jobs - Retrieves vendor jobs
* billTos - Retrieves bill-tos linked with this vendor
* shipTos - Retrieves ship-tos linked with this vendor
* shipToStates - Retrieves ship-to states for this vendor
* custom_fields - Retrieves custom fields set for this vendor
* vendorAdditionalInfo - Retrieves vendorAdditionalInfo for vendors
            
Before you can use any exemption certificates endpoints, you must set up your company for exemption certificate data storage.
Companies that do not have this storage system set up will see `CertCaptureNotConfiguredError` when they call exemption
certificate related APIs. To check if this is set up for a company, call `GetCertificateSetup`.  To request setup of exemption
certificate storage for this company, call `RequestCertificateSetup`.
            
Note* Filtering not supported for isVendor field.

### Security Policies

* This API requires one of the following user roles: AccountAdmin, AccountOperator, AccountUser, AvaTaxOnlyAccountAdmin, AvaTaxOnlyAccountUser, AvaTaxOnlyCompanyAdmin, AvaTaxOnlyCompanyUser, BatchServiceAdmin, CompanyAdmin, CompanyUser, CSPTester, SSTAdmin, TechnicalSupportAdmin, TechnicalSupportUser.
* This API depends on the following active services:*Required* (all):  AvaTaxPro, ECMEssentials, ECMPro, ECMPremium, VEMPro, VEMPremium, ECMProComms, ECMPremiumComms.

## Parameters

| Name | Type | In | Required | Description |
|---|---|---|---|---|
| `companyId` | integer | path | Yes | The unique ID number of the company that recorded this vendor |
| `$include` | string | query | No | OPTIONAL - You can specify any of the values in `certificates`, `attributes`, `active_certificates`, `histories`, `logs`, `jobs`, `billTos`, `shipTos`, `shipToStates`, and `custom_fields` to fetch additional information for this certificate. |
| `$filter` | string | query | No | A filter statement to identify specific records to retrieve.  For more information on filtering, see [Filtering in REST](http://developer.avalara.com/avatax/filtering-in-rest/).*Not filterable:* VendorAdditionalInfo |
| `$top` | integer | query | No | If nonzero, return no more than this number of results.  Used with `$skip` to provide pagination for large datasets.  Unless otherwise specified, the maximum number of records that can be returned from an API call is 1,000 records. |
| `$skip` | integer | query | No | If nonzero, skip this number of results before returning data.  Used with `$top` to provide pagination for large datasets. |
| `$orderBy` | string | query | No | A comma separated list of sort statements in the format `(fieldname) [ASC|DESC]`, for example `id ASC`. |
| `X-Avalara-Client` | string | header | No | Identifies the software you are using to call this API.  For more information on the client header, see [Client Headers](https://developer.avalara.com/avatax/client-headers/) . |

## Responses

| Status | Description | Schema |
|---|---|---|
| 200 | Success | `VendorModelFetchResult` |
| 400 | Bad Request | `ProblemDetails` |
| 401 | Unauthorized | `ProblemDetails` |
| 404 | Not Found | `ProblemDetails` |

### 200 Response: `VendorModelFetchResult`

| Property | Type | Required | Description |
|---|---|---|---|
| `@recordsetCount` | integer | No |  |
| `value` | VendorModel[] | No |  |
| `@nextLink` | string | No |  |
| `pageKey` | string | No |  |

## Example Request

```bash
curl -X GET "https://sandbox-rest.avatax.com/api/v2/companies/{companyId}/vendors" \
  -H "Authorization: Basic <credentials>" \
  -H "Accept: application/json"
```