# Filter vendors Query vendors using flexible filter criteria with AND/OR logic. By default, only non-deleted vendors are returned (deletedAt: { isNull: true }). Override this by explicitly setting deletedAt filter criteria. Endpoint: POST /vendors/filter Version: 1.0.0 Security: BearerAuth ## Request fields (application/json): - `filter` (object) Filter criteria (optional - omit to return all vendors). Note: deletedAt automatically defaults to { isNull: true } unless explicitly overridden. Example: {"and":[{"status":{"equalTo":"ACTIVE"}},{"currency":{"equalTo":"USD"}}]} - `filter.and` (array) All conditions must match (recursive) Example: [{"status":{"equalTo":"ACTIVE"}},{"currency":{"equalTo":"USD"}}] - `filter.or` (array) At least one condition must match (recursive) - `filter.not` (object) Negates the filter - `filter.id` (object) Filter options for ID fields (limited operations - exact match only) - `filter.id.equalTo` (string) Exact match - `filter.id.in` (array) Matches any UUID in the array - `filter.friendlyId` (object) Filter options for string fields - `filter.friendlyId.notEqualTo` (string) Not equal to - `filter.friendlyId.in` (array) Matches any value in the array - `filter.friendlyId.notIn` (array) Does not match any value in the array - `filter.friendlyId.includes` (string) Contains substring (case-insensitive) - `filter.friendlyId.notIncludes` (string) Does not contain substring (case-insensitive) - `filter.friendlyId.startsWith` (string) Starts with prefix (case-insensitive) - `filter.friendlyId.notStartsWith` (string) Does not start with prefix (case-insensitive) - `filter.friendlyId.endsWith` (string) Ends with suffix (case-insensitive) - `filter.friendlyId.notEndsWith` (string) Does not end with suffix (case-insensitive) - `filter.friendlyId.isNull` (boolean) Field is null (true) or not null (false) - `filter.name` (object) Filter options for string fields - `filter.key` (object) Filter options for client key fields (limited operations - exact match only) - `filter.email` (object) Filter options for string fields - `filter.phone` (object) Filter options for string fields - `filter.status` (object) Filter for vendor status enum field - `filter.status.in` (array) Matches any value in the list Enum: "ACTIVE", "INACTIVE" - `filter.status.notIn` (array) Does not match any value in the list Enum: "ACTIVE", "INACTIVE" - `filter.notes` (object) Filter options for string fields - `filter.taxId` (object) Filter options for string fields - `filter.currency` (object) Filter for currency enum field - `filter.paymentTermId` (object) Filter options for UUID fields (all operations) - `filter.paymentTermId.notIn` (array) Does not match any UUID in the array - `filter.isMvmnt` (object) Filter options for boolean fields - `filter.deletedById` (object) Filter options for UUID fields (all operations) - `filter.createdAt` (object) Filter options for datetime fields - `filter.createdAt.lessThan` (string) Before this datetime - `filter.createdAt.lessThanOrEqualTo` (string) On or before this datetime - `filter.createdAt.greaterThan` (string) After this datetime - `filter.createdAt.greaterThanOrEqualTo` (string) On or after this datetime - `filter.updatedAt` (object) Filter options for datetime fields - `filter.deletedAt` (object) Filter options for datetime fields - `pageSize` (integer) Number of results per page Example: 50 - `cursor` (string) Pagination cursor for next page ## Response 200 fields (application/json): - `data` (array, required) - `data.object` (string) Object type identifier Enum: "VENDOR" - `data.id` (string, required) Unique vendor identifier Example: "550e8400-e29b-41d4-a716-446655440000" - `data.friendlyId` (string, required) Human-readable vendor identifier Example: "V123456" - `data.name` (string, required) Vendor legal name Example: "ABC Warehouse Services" - `data.key` (string,null) Client-defined reference identifier Example: "ERP-VENDOR-ABC-001" - `data.email` (string,null) Primary email address Example: "billing@abcwarehouse.com" - `data.phone` (string,null) Primary phone number Example: "+1-555-123-4567" - `data.status` (string,null) Vendor status Example: "ACTIVE" - `data.notes` (string,null) Internal notes about the vendor Example: "Preferred vendor for warehouse services" - `data.taxId` (string,null) Tax identification number Example: "12-3456789" - `data.currency` (any) Preferred currency for transactions - `data.corporateAddress` (any) Corporate headquarters address - `data.billingAddress` (any) Billing address for invoices - `data.paymentTerm` (any) Payment terms for this vendor - `data.isMvmnt` (boolean,null) Whether this vendor is MVMNT itself - `data.requiredDocuments` (array,null) List of required document types Example: ["W9","INSURANCE_CERTIFICATE"] - `data.paymentMethods` (array) Payment methods configured for this vendor - `data.paymentMethods.id` (string, required) Unique vendor payment method identifier Example: "550e8400-e29b-41d4-a716-446655440000" - `data.paymentMethods.paymentMethodType` (string, required) How payment is made Enum: "ACH_WIRE", "ZELLE", "VENMO", "ACH", "CHECK", "WIRE", "CAD_EFT", "TRIUMPH_PAY", "COMCHECK", "EFS", "ECHECK" - `data.paymentMethods.status` (string,null) Payment method status Example: "ACTIVE" - `data.paymentMethods.isPreferred` (boolean,null) Whether this is the preferred payment method Example: true - `data.paymentMethods.email` (string,null) Email address for payment notifications Example: "payments@vendor.com" - `data.paymentMethods.phone` (string,null) Phone number for payment contact Example: "+1-555-123-4567" - `data.paymentMethods.companyName` (string,null) Company name for this payment method Example: "Vendor Payments LLC" - `data.paymentMethods.username` (string,null) Username for payment platforms Example: "vendor_payments" - `data.paymentMethods.bankName` (string,null) Bank name Example: "Chase Bank" - `data.paymentMethods.bankAddress` (string,null) Bank address Example: "123 Bank Street, Dallas, TX 75201" - `data.paymentMethods.accountName` (string,null) Bank account holder name Example: "Vendor Services Inc" - `data.paymentMethods.accountNumber` (string,null) Bank account number (masked in responses) Example: "****1234" - `data.paymentMethods.abaAch` (string,null) ABA/ACH routing number Example: "021000021" - `data.paymentMethods.wire` (string,null) Wire transfer routing number Example: "026009593" - `data.paymentMethods.swiftCode` (string,null) SWIFT/BIC code Example: "CHASUS33" - `data.paymentMethods.eftInstitution` (string,null) EFT institution number (Canadian banking) Example: "001" - `data.paymentMethods.eftTransit` (string,null) EFT transit number (Canadian banking) Example: "00010" - `data.paymentMethods.clabe` (string,null) CLABE number (Mexican banking) Example: "012180001234567897" - `data.paymentMethods.currency` (string,null) Preferred currency code Example: "USD" - `data.paymentMethods.paymentTerm` (any) Payment terms - `data.paymentMethods.createdAt` (string, required) When the payment method was created Example: "2025-01-15T10:00:00Z" - `data.paymentMethods.updatedAt` (string, required) When the payment method was last updated Example: "2025-01-15T14:30:00Z" - `data.paymentMethods.deletedAt` (string,null) When the payment method was soft deleted - `data.paymentMethods.deletedBy` (any) User who deleted this payment method - `data.contacts` (array) Contacts for this vendor - `data.contacts.id` (string, required) Unique contact identifier Example: "550e8400-e29b-41d4-a716-446655440000" - `data.contacts.email` (string,null) Contact email address Example: "john.smith@abcwarehouse.com" - `data.contacts.phone` (string,null) Contact phone number Example: "+1-555-123-4567" - `data.contacts.role` (string,null) Contact role or title (deprecated - use roles array) Example: "Billing Manager" - `data.contacts.roles` (array,null) Types/roles this contact serves Enum: "AGENT", "BILLING", "OPERATION", "OWNER" - `data.contacts.deletedBy` (any) User who deleted this contact - `data.contacts.createdAt` (string, required) When the contact was created Example: "2025-01-15T10:00:00Z" - `data.contacts.deletedAt` (string,null) When the contact was soft deleted - `data.deletedBy` (any) User who deleted this vendor (full user details) - `data.createdAt` (string, required) When the vendor was created Example: "2025-01-15T10:00:00Z" - `data.updatedAt` (string, required) When the vendor was last updated Example: "2025-01-15T14:30:00Z" - `data.deletedAt` (string,null) When the vendor was soft deleted (null if active) - `pageInfo` (object, required) - `pageInfo.pageSize` (integer, required) Number of items per page Example: 50 - `pageInfo.hasNextPage` (boolean, required) Whether there are more pages Example: true - `pageInfo.hasPreviousPage` (boolean) Whether there are previous pages - `pageInfo.endCursor` (string,null) Cursor for the next page (null if no next page) Example: "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" ## Response 400 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message ## Response 401 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message ## Response 500 fields (application/json): - `error` (string, required) Error code - `message` (string, required) Human-readable error message