Skip to content

MVMNT API (1.0.0)

The MVMNT API enables you to automate freight brokerage workflows by integrating directly with our Transportation Management System.

Authentication

OAuth 2.0 client credentials flow. See Authentication Guide for details.

Token Endpoint

POST https://api.mvmnt.io/oauth2/token

Request

Headers:

Content-Type: application/x-www-form-urlencoded

Body Parameters:

grant_type=client_credentials
client_id=YOUR_CLIENT_ID
client_secret=YOUR_CLIENT_SECRET

Example Request

curl -X POST https://api.mvmnt.io/oauth2/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET"

Success Response

Status: 200 OK

{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
  "token_type": "Bearer",
  "expires_in": 3600
}

Response Fields:

  • access_token: JWT Bearer token to use for API requests
  • token_type: Always Bearer
  • expires_in: Token lifetime in seconds (3600 = 1 hour)
Download OpenAPI description
Overview
Languages
Servers
Mock server
https://docs.mvmnt.io/_mock/apis/openapi/
Production
https://api.mvmnt.io/v1/

Companies

Operations

Carrier Contacts

Operations

Carriers

Operations

Carrier Factors

Operations

Carrier Payment Methods

Operations

Customer Contacts

Operations

Customers

Operations

Locations

Operations

Location Contacts

Operations

Payment Terms

Operations

Teams

Operations

Users

Operations

Vendors

Operations

Filter vendors

Request

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.

Security
BearerAuth
Bodyapplication/jsonrequired
filterobject(VendorFilter)
Example: {"and":[{"status":{"equalTo":"ACTIVE"}},{"currency":{"equalTo":"USD"}}]}
pageSizeinteger[ 1 .. 250 ]

Number of results per page

Default 50
Example: 50
cursorstring

Pagination cursor for next page

curl -i -X POST \
  https://docs.mvmnt.io/_mock/apis/openapi/vendors/filter \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "filter": {
      "and": [
        {
          "status": {
            "equalTo": "ACTIVE"
          }
        },
        {
          "currency": {
            "equalTo": "USD"
          }
        }
      ]
    },
    "pageSize": 50
  }'

Responses

Filtered vendors with pagination

Bodyapplication/json
dataArray of objects(Vendor)required
data[].​objectstringread-only

Object type identifier

Value"VENDOR"
Example: "VENDOR"
data[].​idstring(uuid)read-onlyrequired

Unique vendor identifier

Example: "550e8400-e29b-41d4-a716-446655440000"
data[].​friendlyIdstringread-onlyrequired

Human-readable vendor identifier

Example: "V123456"
data[].​namestringrequired

Vendor legal name

Example: "ABC Warehouse Services"
data[].​keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-VENDOR-ABC-001"
data[].​emailstring or null(email)

Primary email address

Example: "billing@abcwarehouse.com"
data[].​phonestring or null

Primary phone number

Example: "+1-555-123-4567"
data[].​statusstring or null

Vendor status

Example: "ACTIVE"
data[].​notesstring or null

Internal notes about the vendor

Example: "Preferred vendor for warehouse services"
data[].​taxIdstring or null

Tax identification number

Example: "12-3456789"
data[].​currencyvendors_Currency (string) or null
Any of:

Currency code

string vendors_Currency Recursive
data[].​corporateAddressAddress (object) or null
Any of:

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.

object Address Recursive
data[].​billingAddressAddress (object) or null
Any of:

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.

object Address Recursive
data[].​paymentTermPaymentTermReference (object) or null
Any of:

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

object PaymentTermReference Recursive
data[].​isMvmntboolean or null

Whether this vendor is MVMNT itself

Example: false
data[].​requiredDocumentsArray of strings or null

List of required document types

Example: ["W9","INSURANCE_CERTIFICATE"]
data[].​paymentMethodsArray of objects(VendorPaymentMethodReference)

Payment methods configured for this vendor

data[].​contactsArray of objects(VendorContactReference)

Contacts for this vendor

data[].​deletedByUserReference (object) or nullread-only
Any of:

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.

object UserReference Recursive
data[].​createdAtstring(date-time)read-onlyrequired

When the vendor was created

Example: "2025-01-15T10:00:00Z"
data[].​updatedAtstring(date-time)read-onlyrequired

When the vendor was last updated

Example: "2025-01-15T14:30:00Z"
data[].​deletedAtstring or null(date-time)read-only

When the vendor was soft deleted (null if active)

Example: null
pageInfoobject(PaginationInfo)required
pageInfo.​pageSizeintegerrequired

Number of items per page

Example: 50
pageInfo.​hasNextPagebooleanrequired

Whether there are more pages

Example: true
pageInfo.​hasPreviousPageboolean

Whether there are previous pages

Example: false
pageInfo.​endCursorstring or null

Cursor for the next page (null if no next page)

Example: "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9"
Response
application/json
{ "data": [ {} ], "pageInfo": { "pageSize": 50, "hasNextPage": true, "hasPreviousPage": false, "endCursor": "eyJpZCI6IjU1MGU4NDAwLWUyOWItNDFkNC1hNzE2LTQ0NjY1NTQ0MDAwMCJ9" } }

Create a new vendor

Request

Create a new vendor within an organization.

Vendors represent service providers (warehousing, storage, etc.) that are not carriers.

Security
BearerAuth
Bodyapplication/jsonrequired
namestringrequired

Vendor legal name

Example: "ABC Warehouse Services"
keystring<= 512 characters

Client-defined reference identifier

Example: "ERP-VENDOR-ABC-001"
emailstring(email)

Primary email address

Example: "billing@abcwarehouse.com"
phonestring

Primary phone number

Example: "+1-555-123-4567"
statusstring

Vendor status

Example: "ACTIVE"
notesstring

Internal notes about the vendor

Example: "Preferred vendor for warehouse services"
taxIdstring

Tax identification number

Example: "12-3456789"
currencystring(vendors_Currency)
Enum"USD""CAD""MXN""EUR""GBP"
corporateAddressobject(AddressInput)
billingAddressobject(AddressInput)
paymentTermIdstring(uuid)

Payment term ID

Example: "550e8400-e29b-41d4-a716-446655440001"
isMvmntboolean

Whether this vendor is MVMNT itself

Example: false
requiredDocumentsArray of strings

List of required document types

Example: ["W9","INSURANCE_CERTIFICATE"]
curl -i -X POST \
  https://docs.mvmnt.io/_mock/apis/openapi/vendors \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "ABC Warehouse Services",
    "email": "billing@abcwarehouse.com",
    "phone": "+1-555-123-4567",
    "status": "ACTIVE",
    "currency": "USD",
    "taxId": "12-3456789"
  }'

Responses

Vendor created successfully

Bodyapplication/json
objectstringread-only

Object type identifier

Value"VENDOR"
Example: "VENDOR"
idstring(uuid)read-onlyrequired

Unique vendor identifier

Example: "550e8400-e29b-41d4-a716-446655440000"
friendlyIdstringread-onlyrequired

Human-readable vendor identifier

Example: "V123456"
namestringrequired

Vendor legal name

Example: "ABC Warehouse Services"
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-VENDOR-ABC-001"
emailstring or null(email)

Primary email address

Example: "billing@abcwarehouse.com"
phonestring or null

Primary phone number

Example: "+1-555-123-4567"
statusstring or null

Vendor status

Example: "ACTIVE"
notesstring or null

Internal notes about the vendor

Example: "Preferred vendor for warehouse services"
taxIdstring or null

Tax identification number

Example: "12-3456789"
currencyvendors_Currency (string) or null
Any of:

Currency code

string vendors_Currency Recursive
corporateAddressAddress (object) or null
Any of:

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.

object Address Recursive
billingAddressAddress (object) or null
Any of:

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.

object Address Recursive
paymentTermPaymentTermReference (object) or null
Any of:

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

object PaymentTermReference Recursive
isMvmntboolean or null

Whether this vendor is MVMNT itself

Example: false
requiredDocumentsArray of strings or null

List of required document types

Example: ["W9","INSURANCE_CERTIFICATE"]
paymentMethodsArray of objects(VendorPaymentMethodReference)

Payment methods configured for this vendor

contactsArray of objects(VendorContactReference)

Contacts for this vendor

deletedByUserReference (object) or nullread-only
Any of:

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.

object UserReference Recursive
createdAtstring(date-time)read-onlyrequired

When the vendor was created

Example: "2025-01-15T10:00:00Z"
updatedAtstring(date-time)read-onlyrequired

When the vendor was last updated

Example: "2025-01-15T14:30:00Z"
deletedAtstring or null(date-time)read-only

When the vendor was soft deleted (null if active)

Example: null
Response
application/json
{ "object": "VENDOR", "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "V123456", "name": "ABC Warehouse Services", "key": "ERP-VENDOR-ABC-001", "email": "billing@abcwarehouse.com", "phone": "+1-555-123-4567", "status": "ACTIVE", "notes": "Preferred vendor for warehouse services", "taxId": "12-3456789", "currency": "USD", "corporateAddress": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "billingAddress": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "paymentTerm": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-PAYTERM-NET30", "name": "Net 30", "description": "Payment due 30 days from invoice date", "days": 30, "quickPayFee": 0.05, "apOnly": false, "doNotUse": false, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "isMvmnt": false, "requiredDocuments": [ "W9", "INSURANCE_CERTIFICATE" ], "paymentMethods": [ {} ], "contacts": [ {} ], "deletedBy": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }

Get a vendor by ID

Request

Retrieve a single vendor by its unique identifier.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X GET \
  https://docs.mvmnt.io/_mock/apis/openapi/vendors/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Vendor found

Bodyapplication/json
objectstringread-only

Object type identifier

Value"VENDOR"
Example: "VENDOR"
idstring(uuid)read-onlyrequired

Unique vendor identifier

Example: "550e8400-e29b-41d4-a716-446655440000"
friendlyIdstringread-onlyrequired

Human-readable vendor identifier

Example: "V123456"
namestringrequired

Vendor legal name

Example: "ABC Warehouse Services"
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-VENDOR-ABC-001"
emailstring or null(email)

Primary email address

Example: "billing@abcwarehouse.com"
phonestring or null

Primary phone number

Example: "+1-555-123-4567"
statusstring or null

Vendor status

Example: "ACTIVE"
notesstring or null

Internal notes about the vendor

Example: "Preferred vendor for warehouse services"
taxIdstring or null

Tax identification number

Example: "12-3456789"
currencyvendors_Currency (string) or null
Any of:

Currency code

string vendors_Currency Recursive
corporateAddressAddress (object) or null
Any of:

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.

object Address Recursive
billingAddressAddress (object) or null
Any of:

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.

object Address Recursive
paymentTermPaymentTermReference (object) or null
Any of:

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

object PaymentTermReference Recursive
isMvmntboolean or null

Whether this vendor is MVMNT itself

Example: false
requiredDocumentsArray of strings or null

List of required document types

Example: ["W9","INSURANCE_CERTIFICATE"]
paymentMethodsArray of objects(VendorPaymentMethodReference)

Payment methods configured for this vendor

contactsArray of objects(VendorContactReference)

Contacts for this vendor

deletedByUserReference (object) or nullread-only
Any of:

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.

object UserReference Recursive
createdAtstring(date-time)read-onlyrequired

When the vendor was created

Example: "2025-01-15T10:00:00Z"
updatedAtstring(date-time)read-onlyrequired

When the vendor was last updated

Example: "2025-01-15T14:30:00Z"
deletedAtstring or null(date-time)read-only

When the vendor was soft deleted (null if active)

Example: null
Response
application/json
{ "object": "VENDOR", "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "V123456", "name": "ABC Warehouse Services", "key": "ERP-VENDOR-ABC-001", "email": "billing@abcwarehouse.com", "phone": "+1-555-123-4567", "status": "ACTIVE", "notes": "Preferred vendor for warehouse services", "taxId": "12-3456789", "currency": "USD", "corporateAddress": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "billingAddress": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "paymentTerm": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-PAYTERM-NET30", "name": "Net 30", "description": "Payment due 30 days from invoice date", "days": 30, "quickPayFee": 0.05, "apOnly": false, "doNotUse": false, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "isMvmnt": false, "requiredDocuments": [ "W9", "INSURANCE_CERTIFICATE" ], "paymentMethods": [ {} ], "contacts": [ {} ], "deletedBy": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }

Update a vendor

Request

Partially update a vendor. Only provided fields will be updated.

  • Omitted fields: Not modified (current value preserved)
  • Provided fields: Updated to the new value
  • Null values: Clear the field (set to null) where applicable
Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
Bodyapplication/jsonrequired
namestring

Vendor legal name

Example: "ABC Warehouse Services"
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-VENDOR-ABC-001"
emailstring or null(email)

Primary email address

Example: "billing@abcwarehouse.com"
phonestring or null

Primary phone number

Example: "+1-555-123-4567"
statusstring or null

Vendor status

Example: "ACTIVE"
notesstring or null

Internal notes about the vendor

Example: "Preferred vendor for warehouse services"
taxIdstring or null

Tax identification number

Example: "12-3456789"
currencyvendors_Currency (string) or null
Any of:

Currency code

string vendors_Currency Recursive
corporateAddressAddressInput (object) or null
Any of:

Address data for creating a new location

object AddressInput Recursive
billingAddressAddressInput (object) or null
Any of:

Address data for creating a new location

object AddressInput Recursive
paymentTermIdstring or null(uuid)

Payment term ID

Example: "550e8400-e29b-41d4-a716-446655440001"
isMvmntboolean or null

Whether this vendor is MVMNT itself

Example: false
requiredDocumentsArray of strings or null

List of required document types

Example: ["W9","INSURANCE_CERTIFICATE"]
curl -i -X PATCH \
  https://docs.mvmnt.io/_mock/apis/openapi/vendors/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "newemail@abcwarehouse.com",
    "phone": "+1-555-999-8888"
  }'

Responses

Vendor updated successfully

Bodyapplication/json
objectstringread-only

Object type identifier

Value"VENDOR"
Example: "VENDOR"
idstring(uuid)read-onlyrequired

Unique vendor identifier

Example: "550e8400-e29b-41d4-a716-446655440000"
friendlyIdstringread-onlyrequired

Human-readable vendor identifier

Example: "V123456"
namestringrequired

Vendor legal name

Example: "ABC Warehouse Services"
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-VENDOR-ABC-001"
emailstring or null(email)

Primary email address

Example: "billing@abcwarehouse.com"
phonestring or null

Primary phone number

Example: "+1-555-123-4567"
statusstring or null

Vendor status

Example: "ACTIVE"
notesstring or null

Internal notes about the vendor

Example: "Preferred vendor for warehouse services"
taxIdstring or null

Tax identification number

Example: "12-3456789"
currencyvendors_Currency (string) or null
Any of:

Currency code

string vendors_Currency Recursive
corporateAddressAddress (object) or null
Any of:

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.

object Address Recursive
billingAddressAddress (object) or null
Any of:

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.

object Address Recursive
paymentTermPaymentTermReference (object) or null
Any of:

Enhanced reference to a payment term resource (returned in responses). Includes full payment term details in addition to id/key.

object PaymentTermReference Recursive
isMvmntboolean or null

Whether this vendor is MVMNT itself

Example: false
requiredDocumentsArray of strings or null

List of required document types

Example: ["W9","INSURANCE_CERTIFICATE"]
paymentMethodsArray of objects(VendorPaymentMethodReference)

Payment methods configured for this vendor

contactsArray of objects(VendorContactReference)

Contacts for this vendor

deletedByUserReference (object) or nullread-only
Any of:

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.

object UserReference Recursive
createdAtstring(date-time)read-onlyrequired

When the vendor was created

Example: "2025-01-15T10:00:00Z"
updatedAtstring(date-time)read-onlyrequired

When the vendor was last updated

Example: "2025-01-15T14:30:00Z"
deletedAtstring or null(date-time)read-only

When the vendor was soft deleted (null if active)

Example: null
Response
application/json
{ "object": "VENDOR", "id": "550e8400-e29b-41d4-a716-446655440000", "friendlyId": "V123456", "name": "ABC Warehouse Services", "key": "ERP-VENDOR-ABC-001", "email": "billing@abcwarehouse.com", "phone": "+1-555-123-4567", "status": "ACTIVE", "notes": "Preferred vendor for warehouse services", "taxId": "12-3456789", "currency": "USD", "corporateAddress": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "billingAddress": { "line1": "123 Main St", "line2": "Suite 400", "city": "Chicago", "country": "USA", "market": "CHI", "latitude": "41.8781", "longitude": "-87.6298", "isAirportOrAirbase": false, "isConstructionOrUtilitySite": false, "isSmartyValidated": true, "obeysDst": true, "cityId": null }, "paymentTerm": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-PAYTERM-NET30", "name": "Net 30", "description": "Payment due 30 days from invoice date", "days": 30, "quickPayFee": 0.05, "apOnly": false, "doNotUse": false, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "isMvmnt": false, "requiredDocuments": [ "W9", "INSURANCE_CERTIFICATE" ], "paymentMethods": [ {} ], "contacts": [ {} ], "deletedBy": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-USER-12345", "email": "john.doe@example.com", "name": "John Doe", "phone": "+1-555-123-4567", "phoneExt": "123", "status": "ACTIVE", "avatarId": "7c9e6679-7425-40de-944b-e07fc1f90ae7", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }

Delete a vendor

Request

Soft delete a vendor (sets deletedAt timestamp).

The vendor will no longer appear in default queries but can be retrieved by explicitly filtering for deleted records.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

Example: 550e8400-e29b-41d4-a716-446655440000
curl -i -X DELETE \
  https://docs.mvmnt.io/_mock/apis/openapi/vendors/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Vendor deleted successfully

Response
No content

Search vendors

Request

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
Security
BearerAuth
Bodyapplication/jsonrequired
criteriaobject(VendorSearchCriteria)
paginationobject(SearchPaginationInput)
sortArray of objects(SearchSortOption)<= 3 items

Sort options for the search results

Example: [{"field":"createdAt","order":"desc"}]
savedSearchobject(SavedSearchLookup)
formatstring

Response format:

  • flat: Returns only indexed fields (default, faster)
  • full: Returns complete vendor objects
Default "flat"
Enum"flat""full"
curl -i -X POST \
  https://docs.mvmnt.io/_mock/apis/openapi/vendors/search \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "criteria": {
      "id": {
        "operator": "EQUALS",
        "values": [
          "550e8400-e29b-41d4-a716-446655440000"
        ]
      },
      "friendlyId": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "name": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "status": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "service": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "taxId": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "location": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "city": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "state": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "zip": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "country": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "primaryContactName": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "primaryContactEmail": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "primaryContactPhone": {
        "operator": "INCLUDES",
        "values": [
          "search term"
        ]
      },
      "paymentTermName": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "quickbooksVendorId": {
        "operator": "ONE_OF",
        "values": [
          "ACTIVE",
          "PENDING"
        ]
      },
      "numberOfTimesUsed": {
        "operator": "BETWEEN",
        "min": 10,
        "max": 100
      },
      "lastUsed": {
        "operator": "BETWEEN",
        "min": "2025-01-01",
        "max": "2025-01-31"
      },
      "createdAt": {
        "operator": "AFTER",
        "value": "2025-01-01T00:00:00Z"
      }
    },
    "pagination": {
      "pageNumber": 1,
      "pageSize": 50
    },
    "sort": [
      {
        "field": "createdAt",
        "order": "desc"
      }
    ],
    "savedSearch": {
      "id": "550e8400-e29b-41d4-a716-446655440000"
    },
    "format": "flat"
  }'

Responses

Successful search results

Bodyapplication/json
dataArray of objectsrequired

Search results - either flat rows or full vendor objects based on format parameter

data[].​objectstringrequired

Object type identifier for discriminating between flat and full response formats

Value"VENDOR_SEARCH_ROW"
Discriminator
data[].​idstring(uuid)required
data[].​friendlyIdstringrequired

Vendor ID

data[].​namestringrequired
data[].​statusstring or null
Enum"active""inactive""do_not_use"
data[].​taxIdstring or null

EIN or other tax ID

data[].​serviceArray of strings

Services provided

data[].​locationstring or null

Computed as "city, state"

data[].​citystring or null
data[].​statestring or null
data[].​zipstring or null

Postal code

data[].​countrystring or null
data[].​primaryContactNamestring or null
data[].​primaryContactEmailstring or null(email)
data[].​primaryContactPhonestring or null
data[].​paymentTermNamestring or null
data[].​quickbooksVendorIdstring or null

QuickBooks Online vendor ID

data[].​numberOfTimesUsedintegerrequired

Number of times used

data[].​lastUsedstring or null(date)

Last date used

data[].​createdAtstring(date-time)required
paginationobject(SearchPaginationInfo)required
pagination.​pageNumberintegerrequired

Current page number

Example: 1
pagination.​pageSizeintegerrequired

Number of results returned on this page

Example: 50
pagination.​totalPagesintegerrequired

Total number of pages available

Example: 25
totalResultsinteger>= 0required

Total number of matching results (excluding soft-deleted records)

Response
application/json
{ "data": [ {} ], "pagination": { "pageNumber": 1, "pageSize": 50, "totalPages": 25 }, "totalResults": 0 }

Vendor Contacts

Operations

Vendor Payment Methods

Operations

Saved Searches

Operations

Event Notifications

Webhooks