# Retrieve a vendor

Operation ID: `getVendor`

Group: Accounting › Vendors

[Open in the interactive reference](https://docs.api.lensing.ai/lensing/v1/endpoints/getVendor)

`GET /accounting/vendors/{id}`

Read-only: Reads and returns; changes nothing.

Retrieves a vendor. Use the vendor's id, not its vendorNumber.

The response has the vendor's details, contacts, and defaults. It doesn't include the vendor's tax identifiers, bank details, remittance address, or custom field values.

To find a vendor by vendorNumber or externalVendorId, neither of which is unique, use POST accounting/vendors/search.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Api-Version` | header | string · v1 | yes | The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version `v1`. |
| `id` | path | string | yes | The unique identifier of the vendor you want to retrieve. Example: `"c47f1a08-5e93-42b7-8d61-0fa9b3c8e254"`. |

## Response

`200` Success

Under `data` (getVendorOutput):

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | yes | The unique identifier for the vendor. |
| `vendorName` | string | yes | The legal or trading name of the vendor. |
| `vendorNumber` | string | no | The vendor number, for example 'V-2041'. Absent until one has been assigned. |
| `vendorType` | string | yes | The kind of vendor. Possible values: 'supplier', 'contractor', 'tax', 'benefits', 'payrollProvider', 'healthInsurance'. |
| `vendorSubType` | string | no | A finer classification within the vendor type. Possible values: 'direct', 'indirect'. |
| `status` | string | yes | The lifecycle status of the vendor. Possible values: 'active', 'inactive'. An inactive vendor stays readable so historical documents still resolve, and is not offered for new ones. |
| `paymentTerms` | string | yes | The default payment-terms key applied to this vendor's bills, for example 'net30' or 'dueOnReceipt'. Stored as supplied. |
| `preferredCurrency` | string | no | The currency the vendor prefers to be paid in. Format ISO 4217, for example 'USD'. |
| `preferredLanguage` | string | no | The language the vendor prefers for messages. |
| `independentContractor` | string | no | Whether the vendor is an independent contractor. Possible values: 'yes', 'no', 'unsure'. |
| `externalVendorId` | string | no | The identifier this vendor has in an external system. It is not unique. |
| `origin` | string | no | The source system that created the vendor, for example 'app'. |
| `mainContactName` | string | no | The name of the vendor's main contact. |
| `mainContactEmail` | string | no | The email address of the vendor's main contact. |
| `mainContactPhone` | string | no | The phone number of the vendor's main contact. |
| `billingEmail` | string | no | The email address invoices and remittance advice are sent to. |
| `entityId` | string | no | The legal entity the vendor is registered under. See id on GET base/entities. |
| `defaultAccountId` | string | no | The general ledger account this vendor's spend defaults to. See id on GET accounting/accounts/:id. |
| `lastModifiedDate` | date-time | yes | The date and time the vendor last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ. |

```json
{
  "data": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "vendorName": "<vendorName>",
    "vendorNumber": "<vendorNumber>",
    "vendorType": "<vendorType>",
    "vendorSubType": "<vendorSubType>",
    "status": "<status>",
    "paymentTerms": "<paymentTerms>",
    "preferredCurrency": "<preferredCurrency>",
    "preferredLanguage": "<preferredLanguage>",
    "independentContractor": "<independentContractor>",
    "externalVendorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "origin": "<origin>",
    "mainContactName": "<mainContactName>",
    "mainContactEmail": "<mainContactEmail>",
    "mainContactPhone": "<mainContactPhone>",
    "billingEmail": "<billingEmail>",
    "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "defaultAccountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "lastModifiedDate": "2026-01-15T09:30:00.000Z"
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}
```

## Errors

| Code | Status |
| --- | --- |
| `NOT_FOUND` | 400 |

## Statuses

- `400` — Invalid request or business failure. Codes: NOT_FOUND
- `401` — The request carries no valid access token.
- `403` — Not authorized
- `404` — Not found
- `429` — Too many requests from this client address. The response has no body and no `Retry-After` header.
- `500` — Internal server error
