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

Filter customer contacts

Request

Query customer contacts using flexible filter criteria with AND/OR logic.

By default, only non-deleted customer contacts are returned (deletedAt: { isNull: true }). Override this by explicitly setting deletedAt filter criteria.

Security
BearerAuth
Bodyapplication/jsonrequired
filterobject(CustomerContactFilter)
Example: {"and":[{"isPrimary":{"equalTo":true}},{"contactTypes":{"includes":"BILLING"}}]}
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/customer-contacts/filter \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "filter": {
      "and": [
        {
          "isPrimary": {
            "equalTo": true
          }
        },
        {
          "contactTypes": {
            "includes": "BILLING"
          }
        }
      ]
    },
    "pageSize": 50
  }'

Responses

Filtered customer contacts with pagination

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

Object type identifier

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

Unique contact identifier

Example: "550e8400-e29b-41d4-a716-446655440000"
data[].​customerobject(CustomerReference)required
data[].​customer.​idstring(uuid)required

Customer UUID

Example: "550e8400-e29b-41d4-a716-446655440000"
data[].​customer.​keystring or null<= 512 characters

Client-defined reference ID if set

Example: "ERP-CUSTOMER-ACME"
data[].​customer.​namestringrequired

Customer company name

Example: "Acme Manufacturing Corp"
data[].​customer.​friendlyIdstringrequired

Human-readable customer identifier

Example: "A123456"
data[].​customer.​statusstringrequired

Customer status

Enum"PROSPECT""ACTIVE""INACTIVE""CHURNED"
Example: "ACTIVE"
data[].​customer.​phoneNumberstring or null

Primary phone number

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

Customer website URL

Example: "https://acme-manufacturing.com"
data[].​customer.​createdAtstring(date-time)required

When the customer was created

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

When the customer was last updated

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

When the customer was soft deleted (null if active)

Example: null
data[].​namestringrequired

Contact person's name (denormalized from ContactInfo for convenience)

Example: "John Smith"
data[].​contactInfoobjectrequired
data[].​contactInfo.​namestringrequired

Contact person's full name

Example: "John Smith"
data[].​contactInfo.​emailstring or null(email)

Email address

Example: "john.smith@example.com"
data[].​contactInfo.​phoneNumberstring or null

Phone number

Example: "+1-555-0100"
data[].​contactInfo.​titlestring or null

Job title or position

Example: "Operations Manager"
data[].​phoneExtensionstring or null

Phone extension specific to this contact role

Example: "1234"
data[].​isPrimarybooleanrequired

Whether this is the primary contact for the customer

Example: true
data[].​contactTypesArray of strings or null(CustomerContactType)

Types/roles this contact serves

Enum"ACCOUNT_MANAGER""BILLING""DOCK_SHIPPING""EMERGENCY""LOCATION_MANAGER""OWNER""PROCUREMENT""PURCHASING""RATES_PRICING""RECEIVING"
Example: ["BILLING","ACCOUNT_MANAGER"]
data[].​notificationsArray of strings or null(CustomerContactNotificationType)

Shipment notification types to send to this contact

Enum"SHIPMENT_DELIVERED""SHIPMENT_IN_TRANSIT""SHIPMENT_LOADING""SHIPMENT_OUT_FOR_DELIVERY""SHIPMENT_PICKED_UP""SHIPMENT_TENDER_REJECTED""SHIPMENT_UNLOADING"
Example: ["SHIPMENT_PICKED_UP","SHIPMENT_DELIVERED"]
data[].​invitedUserUserReference (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[].​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[].​keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-CONTACT-JOHN-001"
data[].​createdAtstring(date-time)read-onlyrequired

When the contact was created

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

When the contact 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 customer contact

Request

Create a new customer contact. The contactInfo will create a new Contact record, and the CustomerContact will reference it via parentContactId (managed internally).

Security
BearerAuth
Bodyapplication/jsonrequired
customerIdstring(uuid)required

Customer this contact belongs to

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

Contact person's name (should match contactInfo.name)

Example: "John Smith"
contactInfoobject(ContactInfoInput)required
contactInfo.​namestringrequired

Contact person's full name

Example: "John Smith"
contactInfo.​emailstring(email)

Email address

Example: "john.smith@example.com"
contactInfo.​phoneNumberstring

Phone number

Example: "+1-555-0100"
contactInfo.​titlestring

Job title or position

Example: "Operations Manager"
phoneExtensionstring

Phone extension specific to this contact role

Example: "1234"
isPrimaryboolean

Whether this is the primary contact for the customer

Default false
Example: true
contactTypesArray of strings(CustomerContactType)

Types/roles this contact serves

Items Enum"ACCOUNT_MANAGER""BILLING""DOCK_SHIPPING""EMERGENCY""LOCATION_MANAGER""OWNER""PROCUREMENT""PURCHASING""RATES_PRICING""RECEIVING"
Example: ["BILLING","ACCOUNT_MANAGER"]
notificationsArray of strings(CustomerContactNotificationType)

Shipment notification types to send to this contact

Items Enum"SHIPMENT_DELIVERED""SHIPMENT_IN_TRANSIT""SHIPMENT_LOADING""SHIPMENT_OUT_FOR_DELIVERY""SHIPMENT_PICKED_UP""SHIPMENT_TENDER_REJECTED""SHIPMENT_UNLOADING"
Example: ["SHIPMENT_PICKED_UP","SHIPMENT_DELIVERED"]
keystring<= 512 characters

Client-defined reference identifier

Example: "ERP-CONTACT-JOHN-001"
curl -i -X POST \
  https://docs.mvmnt.io/_mock/apis/openapi/customer-contacts \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "customerId": "550e8400-e29b-41d4-a716-446655440001",
    "name": "John Smith",
    "contactInfo": {
      "name": "John Smith",
      "email": "john.smith@example.com",
      "phoneNumber": "+1-555-0100",
      "title": "Operations Manager"
    },
    "phoneExtension": "1234",
    "isPrimary": true,
    "contactTypes": [
      "BILLING",
      "ACCOUNT_MANAGER"
    ],
    "notifications": [
      "SHIPMENT_PICKED_UP",
      "SHIPMENT_DELIVERED"
    ],
    "key": "ERP-CONTACT-JOHN-001"
  }'

Responses

Customer contact created successfully

Bodyapplication/json
objectstringread-only

Object type identifier

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

Unique contact identifier

Example: "550e8400-e29b-41d4-a716-446655440000"
customerobject(CustomerReference)required
customer.​idstring(uuid)required

Customer UUID

Example: "550e8400-e29b-41d4-a716-446655440000"
customer.​keystring or null<= 512 characters

Client-defined reference ID if set

Example: "ERP-CUSTOMER-ACME"
customer.​namestringrequired

Customer company name

Example: "Acme Manufacturing Corp"
customer.​friendlyIdstringrequired

Human-readable customer identifier

Example: "A123456"
customer.​statusstringrequired

Customer status

Enum"PROSPECT""ACTIVE""INACTIVE""CHURNED"
Example: "ACTIVE"
customer.​phoneNumberstring or null

Primary phone number

Example: "+1-555-123-4567"
customer.​websitestring or null

Customer website URL

Example: "https://acme-manufacturing.com"
customer.​createdAtstring(date-time)required

When the customer was created

Example: "2025-01-15T10:00:00Z"
customer.​updatedAtstring(date-time)required

When the customer was last updated

Example: "2025-01-15T14:30:00Z"
customer.​deletedAtstring or null(date-time)

When the customer was soft deleted (null if active)

Example: null
namestringrequired

Contact person's name (denormalized from ContactInfo for convenience)

Example: "John Smith"
contactInfoobjectrequired
contactInfo.​namestringrequired

Contact person's full name

Example: "John Smith"
contactInfo.​emailstring or null(email)

Email address

Example: "john.smith@example.com"
contactInfo.​phoneNumberstring or null

Phone number

Example: "+1-555-0100"
contactInfo.​titlestring or null

Job title or position

Example: "Operations Manager"
phoneExtensionstring or null

Phone extension specific to this contact role

Example: "1234"
isPrimarybooleanrequired

Whether this is the primary contact for the customer

Example: true
contactTypesArray of strings or null(CustomerContactType)

Types/roles this contact serves

Enum"ACCOUNT_MANAGER""BILLING""DOCK_SHIPPING""EMERGENCY""LOCATION_MANAGER""OWNER""PROCUREMENT""PURCHASING""RATES_PRICING""RECEIVING"
Example: ["BILLING","ACCOUNT_MANAGER"]
notificationsArray of strings or null(CustomerContactNotificationType)

Shipment notification types to send to this contact

Enum"SHIPMENT_DELIVERED""SHIPMENT_IN_TRANSIT""SHIPMENT_LOADING""SHIPMENT_OUT_FOR_DELIVERY""SHIPMENT_PICKED_UP""SHIPMENT_TENDER_REJECTED""SHIPMENT_UNLOADING"
Example: ["SHIPMENT_PICKED_UP","SHIPMENT_DELIVERED"]
invitedUserUserReference (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
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
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-CONTACT-JOHN-001"
createdAtstring(date-time)read-onlyrequired

When the contact was created

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

When the contact was soft deleted (null if active)

Example: null
Response
application/json
{ "object": "CUSTOMER_CONTACT", "id": "550e8400-e29b-41d4-a716-446655440000", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "name": "John Smith", "contactInfo": { "name": "John Smith", "email": "john.smith@example.com", "phoneNumber": "+1-555-0100", "title": "Operations Manager" }, "phoneExtension": "1234", "isPrimary": true, "contactTypes": [ "BILLING", "ACCOUNT_MANAGER" ], "notifications": [ "SHIPMENT_PICKED_UP", "SHIPMENT_DELIVERED" ], "invitedUser": { "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 }, "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 }, "key": "ERP-CONTACT-JOHN-001", "createdAt": "2025-01-15T10:00:00Z", "deletedAt": null }

Get customer contact

Request

Retrieve a single customer contact 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/customer-contacts/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Customer contact found

Bodyapplication/json
objectstringread-only

Object type identifier

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

Unique contact identifier

Example: "550e8400-e29b-41d4-a716-446655440000"
customerobject(CustomerReference)required
customer.​idstring(uuid)required

Customer UUID

Example: "550e8400-e29b-41d4-a716-446655440000"
customer.​keystring or null<= 512 characters

Client-defined reference ID if set

Example: "ERP-CUSTOMER-ACME"
customer.​namestringrequired

Customer company name

Example: "Acme Manufacturing Corp"
customer.​friendlyIdstringrequired

Human-readable customer identifier

Example: "A123456"
customer.​statusstringrequired

Customer status

Enum"PROSPECT""ACTIVE""INACTIVE""CHURNED"
Example: "ACTIVE"
customer.​phoneNumberstring or null

Primary phone number

Example: "+1-555-123-4567"
customer.​websitestring or null

Customer website URL

Example: "https://acme-manufacturing.com"
customer.​createdAtstring(date-time)required

When the customer was created

Example: "2025-01-15T10:00:00Z"
customer.​updatedAtstring(date-time)required

When the customer was last updated

Example: "2025-01-15T14:30:00Z"
customer.​deletedAtstring or null(date-time)

When the customer was soft deleted (null if active)

Example: null
namestringrequired

Contact person's name (denormalized from ContactInfo for convenience)

Example: "John Smith"
contactInfoobjectrequired
contactInfo.​namestringrequired

Contact person's full name

Example: "John Smith"
contactInfo.​emailstring or null(email)

Email address

Example: "john.smith@example.com"
contactInfo.​phoneNumberstring or null

Phone number

Example: "+1-555-0100"
contactInfo.​titlestring or null

Job title or position

Example: "Operations Manager"
phoneExtensionstring or null

Phone extension specific to this contact role

Example: "1234"
isPrimarybooleanrequired

Whether this is the primary contact for the customer

Example: true
contactTypesArray of strings or null(CustomerContactType)

Types/roles this contact serves

Enum"ACCOUNT_MANAGER""BILLING""DOCK_SHIPPING""EMERGENCY""LOCATION_MANAGER""OWNER""PROCUREMENT""PURCHASING""RATES_PRICING""RECEIVING"
Example: ["BILLING","ACCOUNT_MANAGER"]
notificationsArray of strings or null(CustomerContactNotificationType)

Shipment notification types to send to this contact

Enum"SHIPMENT_DELIVERED""SHIPMENT_IN_TRANSIT""SHIPMENT_LOADING""SHIPMENT_OUT_FOR_DELIVERY""SHIPMENT_PICKED_UP""SHIPMENT_TENDER_REJECTED""SHIPMENT_UNLOADING"
Example: ["SHIPMENT_PICKED_UP","SHIPMENT_DELIVERED"]
invitedUserUserReference (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
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
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-CONTACT-JOHN-001"
createdAtstring(date-time)read-onlyrequired

When the contact was created

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

When the contact was soft deleted (null if active)

Example: null
Response
application/json
{ "object": "CUSTOMER_CONTACT", "id": "550e8400-e29b-41d4-a716-446655440000", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "name": "John Smith", "contactInfo": { "name": "John Smith", "email": "john.smith@example.com", "phoneNumber": "+1-555-0100", "title": "Operations Manager" }, "phoneExtension": "1234", "isPrimary": true, "contactTypes": [ "BILLING", "ACCOUNT_MANAGER" ], "notifications": [ "SHIPMENT_PICKED_UP", "SHIPMENT_DELIVERED" ], "invitedUser": { "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 }, "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 }, "key": "ERP-CONTACT-JOHN-001", "createdAt": "2025-01-15T10:00:00Z", "deletedAt": null }

Update customer contact

Request

Partially update a customer contact. 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

When updating contactInfo, the underlying Contact record is updated.

Security
BearerAuth
Path
idstringrequired

Resource ID (UUID) or client key

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

Contact person's name (should match contactInfo.name if updating both)

Example: "John Smith"
contactInfoContactInfoPatch (object) or null
Any of:

Partial contact information update. All fields are optional.

  • Omitted fields: Not modified (current value preserved)
  • Provided fields: Updated to the new value
  • Null values: Clear the field (set to null) where applicable
object ContactInfoPatch Recursive
phoneExtensionstring or null

Phone extension

Example: "1234"
isPrimaryboolean

Whether this is the primary contact

Example: true
contactTypesArray of strings or null(CustomerContactType)

Types/roles this contact serves (replaces entire array)

Enum"ACCOUNT_MANAGER""BILLING""DOCK_SHIPPING""EMERGENCY""LOCATION_MANAGER""OWNER""PROCUREMENT""PURCHASING""RATES_PRICING""RECEIVING"
Example: ["BILLING","ACCOUNT_MANAGER"]
notificationsArray of strings or null(CustomerContactNotificationType)

Notification types (replaces entire array)

Enum"SHIPMENT_DELIVERED""SHIPMENT_IN_TRANSIT""SHIPMENT_LOADING""SHIPMENT_OUT_FOR_DELIVERY""SHIPMENT_PICKED_UP""SHIPMENT_TENDER_REJECTED""SHIPMENT_UNLOADING"
Example: ["SHIPMENT_PICKED_UP","SHIPMENT_DELIVERED"]
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-CONTACT-JOHN-001"
curl -i -X PATCH \
  https://docs.mvmnt.io/_mock/apis/openapi/customer-contacts/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "John Smith",
    "contactInfo": {
      "name": "John Smith",
      "email": "john.smith@example.com",
      "phoneNumber": "+1-555-0100",
      "title": "Operations Manager"
    },
    "phoneExtension": "1234",
    "isPrimary": true,
    "contactTypes": [
      "BILLING",
      "ACCOUNT_MANAGER"
    ],
    "notifications": [
      "SHIPMENT_PICKED_UP",
      "SHIPMENT_DELIVERED"
    ],
    "key": "ERP-CONTACT-JOHN-001"
  }'

Responses

Customer contact updated successfully

Bodyapplication/json
objectstringread-only

Object type identifier

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

Unique contact identifier

Example: "550e8400-e29b-41d4-a716-446655440000"
customerobject(CustomerReference)required
customer.​idstring(uuid)required

Customer UUID

Example: "550e8400-e29b-41d4-a716-446655440000"
customer.​keystring or null<= 512 characters

Client-defined reference ID if set

Example: "ERP-CUSTOMER-ACME"
customer.​namestringrequired

Customer company name

Example: "Acme Manufacturing Corp"
customer.​friendlyIdstringrequired

Human-readable customer identifier

Example: "A123456"
customer.​statusstringrequired

Customer status

Enum"PROSPECT""ACTIVE""INACTIVE""CHURNED"
Example: "ACTIVE"
customer.​phoneNumberstring or null

Primary phone number

Example: "+1-555-123-4567"
customer.​websitestring or null

Customer website URL

Example: "https://acme-manufacturing.com"
customer.​createdAtstring(date-time)required

When the customer was created

Example: "2025-01-15T10:00:00Z"
customer.​updatedAtstring(date-time)required

When the customer was last updated

Example: "2025-01-15T14:30:00Z"
customer.​deletedAtstring or null(date-time)

When the customer was soft deleted (null if active)

Example: null
namestringrequired

Contact person's name (denormalized from ContactInfo for convenience)

Example: "John Smith"
contactInfoobjectrequired
contactInfo.​namestringrequired

Contact person's full name

Example: "John Smith"
contactInfo.​emailstring or null(email)

Email address

Example: "john.smith@example.com"
contactInfo.​phoneNumberstring or null

Phone number

Example: "+1-555-0100"
contactInfo.​titlestring or null

Job title or position

Example: "Operations Manager"
phoneExtensionstring or null

Phone extension specific to this contact role

Example: "1234"
isPrimarybooleanrequired

Whether this is the primary contact for the customer

Example: true
contactTypesArray of strings or null(CustomerContactType)

Types/roles this contact serves

Enum"ACCOUNT_MANAGER""BILLING""DOCK_SHIPPING""EMERGENCY""LOCATION_MANAGER""OWNER""PROCUREMENT""PURCHASING""RATES_PRICING""RECEIVING"
Example: ["BILLING","ACCOUNT_MANAGER"]
notificationsArray of strings or null(CustomerContactNotificationType)

Shipment notification types to send to this contact

Enum"SHIPMENT_DELIVERED""SHIPMENT_IN_TRANSIT""SHIPMENT_LOADING""SHIPMENT_OUT_FOR_DELIVERY""SHIPMENT_PICKED_UP""SHIPMENT_TENDER_REJECTED""SHIPMENT_UNLOADING"
Example: ["SHIPMENT_PICKED_UP","SHIPMENT_DELIVERED"]
invitedUserUserReference (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
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
keystring or null<= 512 characters

Client-defined reference identifier

Example: "ERP-CONTACT-JOHN-001"
createdAtstring(date-time)read-onlyrequired

When the contact was created

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

When the contact was soft deleted (null if active)

Example: null
Response
application/json
{ "object": "CUSTOMER_CONTACT", "id": "550e8400-e29b-41d4-a716-446655440000", "customer": { "id": "550e8400-e29b-41d4-a716-446655440000", "key": "ERP-CUSTOMER-ACME", "name": "Acme Manufacturing Corp", "friendlyId": "A123456", "status": "ACTIVE", "phoneNumber": "+1-555-123-4567", "website": "https://acme-manufacturing.com", "createdAt": "2025-01-15T10:00:00Z", "updatedAt": "2025-01-15T14:30:00Z", "deletedAt": null }, "name": "John Smith", "contactInfo": { "name": "John Smith", "email": "john.smith@example.com", "phoneNumber": "+1-555-0100", "title": "Operations Manager" }, "phoneExtension": "1234", "isPrimary": true, "contactTypes": [ "BILLING", "ACCOUNT_MANAGER" ], "notifications": [ "SHIPMENT_PICKED_UP", "SHIPMENT_DELIVERED" ], "invitedUser": { "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 }, "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 }, "key": "ERP-CONTACT-JOHN-001", "createdAt": "2025-01-15T10:00:00Z", "deletedAt": null }

Delete customer contact

Request

Soft delete a customer contact (sets deletedAt timestamp).

The contact 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/customer-contacts/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Customer contact deleted successfully

Response
No content

Customers

Operations

Locations

Operations

Location Contacts

Operations

Payment Terms

Operations

Teams

Operations

Users

Operations

Vendors

Operations

Vendor Contacts

Operations

Vendor Payment Methods

Operations

Saved Searches

Operations

Event Notifications

Webhooks