---
title: "Search vendors"
method: POST
path: "/vendors/search"
tags: ["Vendors"]
---

# Search vendors

`POST /vendors/search`

Search vendors using OpenSearch-powered full-text and field-specific search.

This endpoint provides fast, indexed search across vendor data with support for:
- Full-text search across multiple fields
- Field-specific filtering with various operators
- Sorting and pagination
- Saved search preferences

**Note:** Only active (non-deleted) vendors are searchable. Soft-deleted records are automatically excluded from all search results.

**Response Formats:**
- `flat` (default): Returns indexed fields only for faster performance
- `full`: Returns complete vendor objects with all relationships

## Request body

- VendorSearchRequest — Request body for searching vendors
  - `criteria` VendorSearchCriteria — Search criteria for filtering vendors. Note: Only active (non-deleted) vendors are searchable. Soft-deleted records are automatically excluded.
    - `id` UUIDSearchCriteria — Search criteria for UUID fields
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any UUID in array - `NOT_ONE_OF`: Does not match any UUID in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of UUIDs for ONE_OF or NOT_ONE_OF operators
    - `friendlyId` KeywordSearchCriteria — Search criteria for keyword fields (exact match, no partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `name` TextSearchCriteria — Search criteria for text fields (supports wildcards and partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'STARTS_WITH' | 'ENDS_WITH' | 'INCLUDES' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `STARTS_WITH`: Begins with prefix - `ENDS_WITH`: Ends with suffix - `INCLUDES`: Contains substring - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `status` KeywordSearchCriteria — Search criteria for keyword fields (exact match, no partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `service` KeywordSearchCriteria — Search criteria for keyword fields (exact match, no partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `taxId` TextSearchCriteria — Search criteria for text fields (supports wildcards and partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'STARTS_WITH' | 'ENDS_WITH' | 'INCLUDES' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `STARTS_WITH`: Begins with prefix - `ENDS_WITH`: Ends with suffix - `INCLUDES`: Contains substring - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `location` TextSearchCriteria — Search criteria for text fields (supports wildcards and partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'STARTS_WITH' | 'ENDS_WITH' | 'INCLUDES' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `STARTS_WITH`: Begins with prefix - `ENDS_WITH`: Ends with suffix - `INCLUDES`: Contains substring - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `city` TextSearchCriteria — Search criteria for text fields (supports wildcards and partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'STARTS_WITH' | 'ENDS_WITH' | 'INCLUDES' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `STARTS_WITH`: Begins with prefix - `ENDS_WITH`: Ends with suffix - `INCLUDES`: Contains substring - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `state` KeywordSearchCriteria — Search criteria for keyword fields (exact match, no partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `zip` KeywordSearchCriteria — Search criteria for keyword fields (exact match, no partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `country` KeywordSearchCriteria — Search criteria for keyword fields (exact match, no partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `primaryContactName` TextSearchCriteria — Search criteria for text fields (supports wildcards and partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'STARTS_WITH' | 'ENDS_WITH' | 'INCLUDES' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `STARTS_WITH`: Begins with prefix - `ENDS_WITH`: Ends with suffix - `INCLUDES`: Contains substring - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `primaryContactEmail` TextSearchCriteria — Search criteria for text fields (supports wildcards and partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'STARTS_WITH' | 'ENDS_WITH' | 'INCLUDES' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `STARTS_WITH`: Begins with prefix - `ENDS_WITH`: Ends with suffix - `INCLUDES`: Contains substring - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `primaryContactPhone` TextSearchCriteria — Search criteria for text fields (supports wildcards and partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'STARTS_WITH' | 'ENDS_WITH' | 'INCLUDES' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `STARTS_WITH`: Begins with prefix - `ENDS_WITH`: Ends with suffix - `INCLUDES`: Contains substring - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `paymentTermName` KeywordSearchCriteria — Search criteria for keyword fields (exact match, no partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `quickbooksVendorId` KeywordSearchCriteria — Search criteria for keyword fields (exact match, no partial matching)
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'ONE_OF' | 'NOT_ONE_OF' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `ONE_OF`: Matches any value in array - `NOT_ONE_OF`: Does not match any value in array - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `values` string[] — Array of values for ONE_OF or NOT_ONE_OF operators
    - `numberOfTimesUsed` IntSearchCriteria — Search criteria for integer fields
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'GREATER_THAN' | 'LESS_THAN' | 'BETWEEN' | 'NOT_BETWEEN' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `GREATER_THAN`: Greater than value - `LESS_THAN`: Less than value - `BETWEEN`: Between min and max (inclusive) - `NOT_BETWEEN`: Not between min and max - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `value` integer — Single value for EQUALS, NOT_EQUALS, GREATER_THAN, LESS_THAN
      - `min` integer — Minimum value for BETWEEN or NOT_BETWEEN
      - `max` integer — Maximum value for BETWEEN or NOT_BETWEEN
    - `lastUsed` DateSearchCriteria — Search criteria for date fields (no time component). Supports both absolute date values and relative time expressions.
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'BEFORE' | 'AFTER' | 'BETWEEN' | 'NOT_BETWEEN' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator (same as DatetimeSearchCriteria)
      - `value` string, date — Absolute date for EQUALS, NOT_EQUALS
      - `min` string, date — Minimum date for BETWEEN or NOT_BETWEEN
      - `max` string, date — Maximum date for BETWEEN or NOT_BETWEEN
      - `valueRelative` integer — Relative time from now
      - `valueRelativeUnit` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND' — Time unit for relative time calculations: - `YEAR`: Years - `MONTH`: Months - `WEEK`: Weeks - `DAY`: Days - `HOUR`: Hours - `MINUTE`: Minutes - `SECOND`: Seconds
      - `minRelative` integer
      - `minRelativeUnit` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND' — Time unit for relative time calculations: - `YEAR`: Years - `MONTH`: Months - `WEEK`: Weeks - `DAY`: Days - `HOUR`: Hours - `MINUTE`: Minutes - `SECOND`: Seconds
      - `maxRelative` integer
      - `maxRelativeUnit` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND' — Time unit for relative time calculations: - `YEAR`: Years - `MONTH`: Months - `WEEK`: Weeks - `DAY`: Days - `HOUR`: Hours - `MINUTE`: Minutes - `SECOND`: Seconds
    - `createdAt` DatetimeSearchCriteria — Search criteria for datetime fields. Supports both absolute datetime values and relative time expressions.
      - `operator` 'EQUALS' | 'NOT_EQUALS' | 'BEFORE' | 'AFTER' | 'BETWEEN' | 'NOT_BETWEEN' | 'EXISTS' | 'DOES_NOT_EXIST', required — Search operator: - `EQUALS`: Exact match - `NOT_EQUALS`: Not equal to - `BEFORE`: Before datetime - `AFTER`: After datetime - `BETWEEN`: Between min and max (inclusive) - `NOT_BETWEEN`: Not between min and max - `EXISTS`: Field has a value (not null) - `DOES_NOT_EXIST`: Field is null
      - `value` string, date-time — Absolute datetime for EQUALS, NOT_EQUALS
      - `min` string, date-time — Minimum datetime for BETWEEN or NOT_BETWEEN
      - `max` string, date-time — Maximum datetime for BETWEEN or NOT_BETWEEN
      - `valueRelative` integer — Relative time from now (negative for past, positive for future). Example: -7 with WEEK unit means 7 weeks ago.
      - `valueRelativeUnit` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND' — Time unit for relative time calculations: - `YEAR`: Years - `MONTH`: Months - `WEEK`: Weeks - `DAY`: Days - `HOUR`: Hours - `MINUTE`: Minutes - `SECOND`: Seconds
      - `minRelative` integer — Relative time for min boundary
      - `minRelativeUnit` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND' — Time unit for relative time calculations: - `YEAR`: Years - `MONTH`: Months - `WEEK`: Weeks - `DAY`: Days - `HOUR`: Hours - `MINUTE`: Minutes - `SECOND`: Seconds
      - `maxRelative` integer — Relative time for max boundary
      - `maxRelativeUnit` 'YEAR' | 'MONTH' | 'WEEK' | 'DAY' | 'HOUR' | 'MINUTE' | 'SECOND' — Time unit for relative time calculations: - `YEAR`: Years - `MONTH`: Months - `WEEK`: Weeks - `DAY`: Days - `HOUR`: Hours - `MINUTE`: Minutes - `SECOND`: Seconds
  - `pagination` SearchPaginationInput — Pagination options for search requests
    - `pageNumber` integer — Page number (1-based)
    - `pageSize` integer — Number of results per page (max 250)
  - `sort` SearchSortOption[] — Sort options for the search results
    - `field` string, required — Field name to sort by (must be an indexed field)
    - `order` 'asc' | 'desc', required — Sort direction (ascending or descending)
  - `savedSearch` SavedSearchLookup — Reference to a saved search by ID or client key. Provide either id or key (not both).
    - `id` string, uuid — Saved search UUID
    - `key` string — Client-defined key for the saved search
  - `format` 'flat' | 'full' — Response format: - flat: Returns only indexed fields (default, faster) - full: Returns complete vendor objects

## Response `200`

Successful search results

- VendorSearchResponse — Response for vendor search requests. Note: Only active (non-deleted) vendors are included in results.
  - `data` union[], required — Search results - either flat rows or full vendor objects based on format parameter
    - union
      - VendorSearchRow — Flattened vendor data from search index. Note: This represents only active vendors. Soft-deleted records are never returned.
        - `object` 'VENDOR_SEARCH_ROW', required — Object type identifier for discriminating between flat and full response formats
        - `id` string, uuid, required
        - `friendlyId` string, required — Vendor ID
        - `name` string, required
        - `status` 'active' | 'inactive' | 'do_not_use', nullable
        - `taxId` string, nullable — EIN or other tax ID
        - `service` string[] — Services provided
        - `location` string, nullable — Computed as "city, state"
        - `city` string, nullable
        - `state` string, nullable
        - `zip` string, nullable — Postal code
        - `country` string, nullable
        - `primaryContactName` string, nullable
        - `primaryContactEmail` string, email, nullable
        - `primaryContactPhone` string, nullable
        - `paymentTermName` string, nullable
        - `quickbooksVendorId` string, nullable — QuickBooks Online vendor ID
        - `numberOfTimesUsed` integer, required — Number of times used
        - `lastUsed` string, date, nullable — Last date used
        - `createdAt` string, date-time, required
      - Vendor
        - `object` 'VENDOR' — Object type identifier
        - `id` string, uuid, required — Unique vendor identifier
        - `friendlyId` string, required — Human-readable vendor identifier
        - `name` string, required — Vendor legal name
        - `key` string, nullable — Client-defined reference identifier
        - `email` string, email, nullable — Primary email address
        - `phone` string, nullable — Primary phone number
        - `status` string, nullable — Vendor status
        - `notes` string, nullable — Internal notes about the vendor
        - `taxId` string, nullable — Tax identification number
        - `currency` 'USD' | 'CAD' | 'MXN' | 'EUR' | 'GBP' — Currency code
        - `corporateAddress` Address — Physical address/location details (nested, without id). This is an embedded object representing a Location record. The id is managed internally and not exposed in the API.
          - `line1` string, required — Primary street address line
          - `line2` string, nullable — Secondary address line (suite, floor, etc.)
          - `city` string, required — City name
          - `state` string, nullable — State or province code
          - `zipCode` string, nullable — Postal / ZIP code
          - `country` string, required — Country name or code
          - `market` string, required — Market or region identifier
          - `latitude` string, nullable — Latitude coordinate
          - `longitude` string, nullable — Longitude coordinate
          - `isAirportOrAirbase` boolean, required — Whether this location is an airport or airbase
          - `isConstructionOrUtilitySite` boolean, required — Whether this location is a construction or utility site
          - `isSmartyValidated` boolean, required — Whether address has been validated by SmartyStreets
          - `obeysDst` boolean, required — Whether this location observes daylight saving time
          - `cityId` string, uuid, nullable — Reference to standardized city record (internal use)
        - `billingAddress` Address — Physical address/location details (nested, without id). This is an embedded object representing a Location record. The id is managed internally and not exposed in the API.
          - `line1` string, required — Primary street address line
          - `line2` string, nullable — Secondary address line (suite, floor, etc.)
          - `city` string, required — City name
          - `state` string, nullable — State or province code
          - `zipCode` string, nullable — Postal / ZIP code
          - `country` string, required — Country name or code
          - `market` string, required — Market or region identifier
          - `latitude` string, nullable — Latitude coordinate
          - `longitude` string, nullable — Longitude coordinate
          - `isAirportOrAirbase` boolean, required — Whether this location is an airport or airbase
          - `isConstructionOrUtilitySite` boolean, required — Whether this location is a construction or utility site
          - `isSmartyValidated` boolean, required — Whether address has been validated by SmartyStreets
          - `obeysDst` boolean, required — Whether this location observes daylight saving time
          - `cityId` string, uuid, nullable — Reference to standardized city record (internal use)
        - `paymentTerm` PaymentTermReference — Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.
          - `id` string, uuid, required — Payment term UUID
          - `key` string, nullable — Client-defined reference ID if set
          - `name` string, required — Payment term name
          - `description` string, nullable — Payment term description or notes
          - `days` integer, nullable — Number of days until payment is due
          - `quickPayFee` number, float, nullable — Quick pay fee percentage (e.g., 0.05 for 5%)
          - `apOnly` boolean, nullable — Whether this payment term is for accounts payable only
          - `doNotUse` boolean, nullable — Flag to prevent using this payment term for new transactions
          - `createdAt` string, date-time, required — When the payment term was created
          - `updatedAt` string, date-time, required — When the payment term was last updated
          - `deletedAt` string, date-time, nullable — When the payment term was soft deleted (null if active)
        - `isMvmnt` boolean, nullable — Whether this vendor is MVMNT itself
        - `requiredDocuments` string[], nullable — List of required document types
        - `paymentMethods` VendorPaymentMethodReference[] — Payment methods configured for this vendor
          - `id` string, uuid, required — Unique vendor payment method identifier
          - `key` string, nullable — Client-defined reference identifier
          - `paymentMethodType` 'ACH_WIRE' | 'ZELLE' | 'VENMO' | 'ACH' | 'CHECK' | 'WIRE' | 'CAD_EFT' | 'TRIUMPH_PAY' | 'COMCHECK' | 'EFS' | 'ECHECK', required — Payment method type
          - `status` string, nullable — Payment method status
          - `isPreferred` boolean, nullable — Whether this is the preferred payment method
          - `email` string, email, nullable — Email address for payment notifications
          - `phone` string, nullable — Phone number for payment contact
          - `companyName` string, nullable — Company name for this payment method
          - `username` string, nullable — Username for payment platforms
          - `bankName` string, nullable — Bank name
          - `bankAddress` string, nullable — Bank address
          - `accountName` string, nullable — Bank account holder name
          - `accountNumber` string, nullable — Bank account number (masked in responses)
          - `abaAch` string, nullable — ABA/ACH routing number
          - `wire` string, nullable — Wire transfer routing number
          - `swiftCode` string, nullable — SWIFT/BIC code
          - `eftInstitution` string, nullable — EFT institution number (Canadian banking)
          - `eftTransit` string, nullable — EFT transit number (Canadian banking)
          - `clabe` string, nullable — CLABE number (Mexican banking)
          - `currency` string, nullable — Preferred currency code
          - `paymentTerm` PaymentTermReference — Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.
            - `id` string, uuid, required — Payment term UUID
            - `key` string, nullable — Client-defined reference ID if set
            - `name` string, required — Payment term name
            - `description` string, nullable — Payment term description or notes
            - `days` integer, nullable — Number of days until payment is due
            - `quickPayFee` number, float, nullable — Quick pay fee percentage (e.g., 0.05 for 5%)
            - `apOnly` boolean, nullable — Whether this payment term is for accounts payable only
            - `doNotUse` boolean, nullable — Flag to prevent using this payment term for new transactions
            - `createdAt` string, date-time, required — When the payment term was created
            - `updatedAt` string, date-time, required — When the payment term was last updated
            - `deletedAt` string, date-time, nullable — When the payment term was soft deleted (null if active)
          - `createdAt` string, date-time, required — When the payment method was created
          - `updatedAt` string, date-time, required — When the payment method was last updated
          - `deletedAt` string, date-time, nullable — When the payment method was soft deleted
          - `deletedBy` UserReference — Enhanced reference to a user resource (returned in responses). Includes full user details in addition to id/key. Note: Does NOT include nested references (teams, etc.) to prevent recursion. Maximum nesting depth: 1 level.
            - `id` string, uuid, required — User UUID
            - `key` string, nullable — Client-defined reference ID if set
            - `email` string, email, required — User's email address
            - `name` string, nullable — User's full name
            - `phone` string, nullable — User's phone number
            - `phoneExt` string, nullable — Phone extension
            - `status` 'PENDING' | 'ACTIVE' | 'INACTIVE', required — User account status
            - `avatarId` string, uuid, nullable — Profile avatar document ID
            - `createdAt` string, date-time, required — When the user was created
            - `updatedAt` string, date-time, required — When the user was last updated
            - `deletedAt` string, date-time, nullable — When the user was soft deleted (null if active)
        - `contacts` VendorContactReference[] — Contacts for this vendor
          - `object` 'VENDOR_CONTACT' — Object type identifier
          - `id` string, uuid, required — Unique contact identifier
          - `key` string, nullable — Client-defined reference identifier
          - `email` string, email, nullable — Contact email address
          - `phone` string, nullable — Contact phone number
          - `role` string, nullable — Contact role or title (deprecated - use roles array)
          - `roles` VendorContactRole[], nullable — Types/roles this contact serves
          - `deletedBy` UserReference — Enhanced reference to a user resource (returned in responses). Includes full user details in addition to id/key. Note: Does NOT include nested references (teams, etc.) to prevent recursion. Maximum nesting depth: 1 level.
            - `id` string, uuid, required — User UUID
            - `key` string, nullable — Client-defined reference ID if set
            - `email` string, email, required — User's email address
            - `name` string, nullable — User's full name
            - `phone` string, nullable — User's phone number
            - `phoneExt` string, nullable — Phone extension
            - `status` 'PENDING' | 'ACTIVE' | 'INACTIVE', required — User account status
            - `avatarId` string, uuid, nullable — Profile avatar document ID
            - `createdAt` string, date-time, required — When the user was created
            - `updatedAt` string, date-time, required — When the user was last updated
            - `deletedAt` string, date-time, nullable — When the user was soft deleted (null if active)
          - `createdAt` string, date-time, required — When the contact was created
          - `deletedAt` string, date-time, nullable — When the contact was soft deleted
        - `deletedBy` UserReference — Enhanced reference to a user resource (returned in responses). Includes full user details in addition to id/key. Note: Does NOT include nested references (teams, etc.) to prevent recursion. Maximum nesting depth: 1 level.
          - `id` string, uuid, required — User UUID
          - `key` string, nullable — Client-defined reference ID if set
          - `email` string, email, required — User's email address
          - `name` string, nullable — User's full name
          - `phone` string, nullable — User's phone number
          - `phoneExt` string, nullable — Phone extension
          - `status` 'PENDING' | 'ACTIVE' | 'INACTIVE', required — User account status
          - `avatarId` string, uuid, nullable — Profile avatar document ID
          - `createdAt` string, date-time, required — When the user was created
          - `updatedAt` string, date-time, required — When the user was last updated
          - `deletedAt` string, date-time, nullable — When the user was soft deleted (null if active)
        - `createdAt` string, date-time, required — When the vendor was created
        - `updatedAt` string, date-time, required — When the vendor was last updated
        - `deletedAt` string, date-time, nullable — When the vendor was soft deleted (null if active)
  - `pagination` SearchPaginationInfo, required — Pagination information for search results
    - `pageNumber` integer, required — Current page number
    - `pageSize` integer, required — Number of results returned on this page
    - `totalPages` integer, required — Total number of pages available
  - `totalResults` integer, required — Total number of matching results (excluding soft-deleted records)

## Other responses

- `400` — Bad request - invalid input
- `401` — Unauthorized - invalid or missing access token
- `422` — Validation error - invalid field values
- `429` — Rate limit exceeded

---

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