MVMNT Carriers API

Carrier management operations

Operations 8

POST /carriers/filter Filter carriers #
POST /carriers Create a new carrier #
GET /carriers/{id} Get a carrier by ID #
PATCH /carriers/{id} Update a carrier #
DELETE /carriers/{id} Delete a carrier #
POST /carriers/search Search carriers #
GET /carriers/{id}/outstanding-bills Get carrier outstanding bills #
GET /carriers/{id}/bills-for-payment Get carrier bills available for payment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mvmnt-carriers-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mvmnt-carriers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: MVMNT Carriers API
  version: 1.0.0
  description: "The MVMNT API enables you to automate freight brokerage workflows by integrating\ndirectly with our Transportation Management System.\n\n## Authentication\n\nOAuth 2.0 client credentials flow. See [Authentication Guide](/getting-started/authentication)\nfor details.\n\n### Token Endpoint\n\n```\nPOST https://api.mvmnt.io/oauth2/token\n```\n\n#### Request\n\n**Headers:**\n```http\nContent-Type: application/x-www-form-urlencoded\n```\n\n**Body Parameters:**\n```\ngrant_type=client_credentials\nclient_id=YOUR_CLIENT_ID\nclient_secret=YOUR_CLIENT_SECRET\n```\n\n#### Example Request\n\n```bash\ncurl -X POST https://api.mvmnt.io/oauth2/token \\\n  -H \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=client_credentials\" \\\n  -d \"client_id=YOUR_CLIENT_ID\" \\\n  -d \"client_secret=YOUR_CLIENT_SECRET\"\n```\n\n#### Success Response\n\n**Status:** `200 OK`\n\n```json\n{\n  \"access_token\": \"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 3600\n}\n```\n\n**Response Fields:**\n- `access_token`: JWT Bearer token to use for API requests\n- `token_type`: Always `Bearer`\n- `expires_in`: Token lifetime in seconds (3600 = 1 hour)\n"
  contact:
    name: MVMNT Support
    email: support@mvmnt.io
    url: https://docs.mvmnt.io
  license:
    name: Proprietary
    url: https://mvmnt.io/legal/terms
  x-parsed-md-description:
    result:
    - $$mdtype: Node
      errors: []
      lines:
      - 0
      - 2
      inline: false
      attributes: {}
      children:
      - $$mdtype: Node
        errors: []
        lines:
        - 0
        - 2
        inline: false
        attributes: {}
        children:
        - $$mdtype: Node
          errors: []
          lines:
          - 0
          - 2
          inline: true
          attributes:
            content: The MVMNT API enables you to automate freight brokerage workflows by integrating
          children: []
          type: text
          annotations: []
          slots: {}
        - $$mdtype: Node
          errors: []
          lines:
          - 0
          - 2
          inline: true
          attributes: {}
          children: []
          type: softbreak
          annotations: []
          slots: {}
        - $$mdtype: Node
          errors: []
          lines:
          - 0
          - 2
          inline: true
          attributes:
            content: directly with our Transportation Management System.
          children: []
          type: text
          annotations: []
          slots: {}
        type: inline
        annotations: []
        slots: {}
      type: paragraph
      annotations: []
      slots: {}
    - $$mdtype: Node
      errors: []
      lines:
      - 3
      - 4
      inline: false
      attributes:
        level: 2
      children:
      - $$mdtype: Node
        errors: []
        lines:
        - 3
        - 4
        inline: false
        attributes: {}
        children:
        - $$mdtype: Node
          errors: []
          lines:
          - 3
          - 4
          inline: true
          attributes:
            content: Authentication
          children: []
          type: text
          annotations: []
          slots: {}
        type: inline
        annotations: []
        slots: {}
      type: heading
      annotations: []
      slots: {}
    - $$mdtype: Node
      errors: []
      lines:
      - 5
      - 6
      inline: false
      attributes: {}
      children:
      - $$mdtype: Node
        errors: []
        lines:
        - 5
        - 6
        inline: false
        attributes: {}
        children:
        - $$mdtype: Node
          errors: []
          lines:
          - 5
          - 6
          inline: true
          attributes:
            content: 'OAuth 2.0 client credentials flow. See '
          children: []
          type: text
          annotations: []
          slots: {}
        - $$mdtype: Node
          errors: []
          lines:
          - 5
          - 6
          inline: true
          attributes:
            href: /getting-started/authentication
          children:
          - $$mdtype: Node
            errors: []
            lines:
            - 5
            - 6
            inline: true
            attributes:
              content: Authentication Guide
            children: []
            type: text
            annotations: []
            slots: {}
          type: link
          annotations: []
          slots: {}
          redocly:::linkOriginal:href: /getting-started/authentication
        - $$mdtype: Node
          errors: []
          lines:
          - 5
          - 6
          inline: true
          attributes:
            content: ' for details.'
          children: []
          type: text
          annotations: []
          slots: {}
        type: inline
        annotations: []
        slots: {}
      type: paragraph
      annotations: []
      slots: {}
servers:
- url: https://api.mvmnt.io/v1
  description: Production
security:
- BearerAuth: []
tags:
- name: Carriers
  description: Carrier management operations
paths:
  /carriers/filter:
    post:
      tags:
      - Carriers
      summary: Filter carriers
      description: 'Query carriers using flexible filter criteria with AND/OR logic.


        By default, only non-deleted carriers are returned (deletedAt: { isNull: true }).

        Override this by explicitly setting deletedAt filter criteria.


        Returns carriers of all types (TRUCKLOAD, AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL)

        with type-specific fields included based on carrier type.

        '
      operationId: filterCarriers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CarrierFilterRequest'
      responses:
        '200':
          description: Filtered carriers with pagination
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                - pageInfo
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Carrier'
                  pageInfo:
                    $ref: '#/components/schemas/PaginationInfo'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /carriers:
    post:
      tags:
      - Carriers
      summary: Create a new carrier
      description: 'Create a new carrier within an organization.


        The carrier type must be specified and determines which fields are available:

        - **TRUCKLOAD**: Includes insurance, safety rating, and FMCSA inspection fields

        - **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Include only base carrier fields


        Note: In the backend, null carrier type is represented as TRUCKLOAD in the public API.

        '
      operationId: createCarrier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CarrierInput'
            examples:
              truckload:
                summary: Truckload carrier with insurance
                value:
                  name: Swift Transportation Co
                  type: TRUCKLOAD
                  email: dispatch@swifttrans.com
                  phone: +1-555-987-6543
                  status: ACTIVE
                  mcNumber: MC-123456
                  dotNumber: '1234567'
                  insuranceCompany: State Farm Insurance
                  insuranceAutoLiabilityLimit: 1000000
                  rating: SATISFACTORY
                  inFmcsa: true
              air:
                summary: Air carrier
                value:
                  name: FedEx Express
                  type: AIR
                  email: cargo@fedex.com
                  phone: +1-555-123-4567
                  status: ACTIVE
                  iataCode: FX
              ltl:
                summary: LTL carrier
                value:
                  name: XPO Logistics
                  type: LTL
                  email: dispatch@xpo.com
                  phone: +1-555-456-7890
                  status: ACTIVE
                  scac: XPOL
      responses:
        '201':
          description: Carrier created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Carrier'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /carriers/{id}:
    get:
      tags:
      - Carriers
      summary: Get a carrier by ID
      description: 'Retrieve a single carrier by its unique identifier.


        The response will include type-specific fields based on the carrier''s type:

        - **TRUCKLOAD**: Includes insurance, safety rating, and FMCSA inspection fields

        - **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Include only base carrier fields

        '
      operationId: getCarrierById
      parameters:
      - $ref: '#/components/parameters/IdOrClientKey'
      responses:
        '200':
          description: Carrier found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Carrier'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    patch:
      tags:
      - Carriers
      summary: Update a carrier
      description: 'Partially update a carrier. 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


        The carrier type determines which fields can be updated:

        - **TRUCKLOAD**: Can update insurance, safety rating, and FMCSA fields

        - **AIR, CARTAGE, LINEHAUL, LTL, OCEAN, RAIL**: Can only update base carrier fields


        Changing the carrier type will affect which specialized fields are available.

        '
      operationId: updateCarrier
      parameters:
      - $ref: '#/components/parameters/IdOrClientKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CarrierPatch'
      responses:
        '200':
          description: Carrier updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Carrier'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    delete:
      tags:
      - Carriers
      summary: Delete a carrier
      description: 'Soft delete a carrier (sets deletedAt timestamp).


        The carrier will no longer appear in default queries but can be retrieved

        by explicitly filtering for deleted records.

        '
      operationId: deleteCarrier
      parameters:
      - $ref: '#/components/parameters/IdOrClientKey'
      responses:
        '204':
          description: Carrier deleted successfully
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /carriers/search:
    post:
      summary: Search carriers
      description: 'Search carriers using OpenSearch-powered full-text and field-specific search.


        This endpoint searches both:

        - **ONBOARDED carriers**: Carriers with profiles in your organization

        - **FMCSA carriers**: Public carrier records from FMCSA database


        Features:

        - Full-text search across multiple fields

        - Field-specific filtering with various operators

        - Sorting and pagination

        - Saved search preferences


        **Note:** Only active (non-deleted) carriers 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 carrier objects with all relationships

        '
      operationId: searchCarriers
      tags:
      - Carriers
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CarrierSearchRequest'
      responses:
        '200':
          description: Successful search results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarrierSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '422':
          $ref: '#/components/responses/ValidationError'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
  /carriers/{id}/outstanding-bills:
    get:
      summary: Get carrier outstanding bills
      description: 'List outstanding (unpaid) bills for a carrier.


        Returns bills with status `APPROVED_TO_PAY`.

        '
      operationId: getCarrierOutstandingBills
      tags:
      - Carriers
      parameters:
      - $ref: '#/components/parameters/IdOrClientKey'
      - $ref: '#/components/parameters/LookupBy'
      responses:
        '200':
          description: Outstanding bills retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutstandingBillsResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
  /carriers/{id}/bills-for-payment:
    get:
      summary: Get carrier bills available for payment
      description: 'List bills available for payment from a carrier.


        Returns bills with status `APPROVED_TO_PAY` and open balance.


        ## Carrier factor


        If the carrier has a factor configured, factor details are included.

        '
      operationId: getCarrierBillsForPayment
      tags:
      - Carriers
      parameters:
      - $ref: '#/components/parameters/IdOrClientKey'
      - $ref: '#/components/parameters/LookupBy'
      responses:
        '200':
          description: Bills for payment retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OutstandingBillsForPaymentResponse'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '404':
          $ref: '#/components/responses/NotFoundError'
components:
  schemas:
    PaymentTermReference:
      type: object
      description: 'Enhanced reference to a payment term resource (returned in responses).

        Includes full payment term details in addition to id/key.

        '
      required:
      - id
      - name
      - createdAt
      - updatedAt
      properties:
        id:
          type: string
          format: uuid
          description: Payment term UUID
          example: 550e8400-e29b-41d4-a716-446655440000
        key:
          type:
          - string
          - 'null'
          maxLength: 512
          description: Client-defined reference ID if set
          example: ERP-PAYTERM-NET30
        name:
          type: string
          description: Payment term name
          example: Net 30
        description:
          type:
          - string
          - 'null'
          description: Payment term description or notes
          example: Payment due 30 days from invoice date
        days:
          type:
          - integer
          - 'null'
          description: Number of days until payment is due
          example: 30
        quickPayFee:
          type:
          - number
          - 'null'
          format: float
          description: Quick pay fee percentage (e.g., 0.05 for 5%)
          example: 0.05
          x-parsed-md-description:
            result:
            - $$mdtype: Node
              errors: []
              lines:
              - 0
              - 1
              inline: false
              attributes: {}
              children:
              - $$mdtype: Node
                errors: []
                lines:
                - 0
                - 1
                inline: false
                attributes: {}
                children:
                - $$mdtype: Node
                  errors: []
                  lines:
                  - 0
                  - 1
                  inline: true
                  attributes:
                    content: Quick pay fee percentage (e.g., 0.05 for 5%)
                  children: []
                  type: text
                  annotations: []
                  slots: {}
                type: inline
                annotations: []
                slots: {}
              type: paragraph
              annotations: []
              slots: {}
        apOnly:
          type:
          - boolean
          - 'null'
          description: Whether this payment term is for accounts payable only
          example: false
        doNotUse:
          type:
          - boolean
          - 'null'
          description: Flag to prevent using this payment term for new transactions
          example: false
        createdAt:
          type: string
          format: date-time
          description: When the payment term was created
          example: '2025-01-15T10:00:00Z'
        updatedAt:
          type: string
          format: date-time
          description: When the payment term was last updated
          example: '2025-01-15T14:30:00Z'
        deletedAt:
          type:
          - string
          - 'null'
          format: date-time
          description: When the payment term was soft deleted (null if active)
          example: null
    CarrierFilterRequest:
      type: object
      description: Request body for filtering carriers
      properties:
        filter:
          $ref: '#/components/schemas/CarrierFilter'
          description: 'Filter criteria (optional - omit to return all carriers).


            Note: deletedAt automatically defaults to { isNull: true } unless explicitly overridden.

            '
        pageSize:
          type: integer
          minimum: 1
          maximum: 250
          default: 50
          description: Number of results per page
        cursor:
          type: string
          description: Pagination cursor for next page
      example:
        filter:
          and:
          - type:
              equalTo: TRUCKLOAD
          - status:
              equalTo: ACTIVE
          - inFmcsa:
              equalTo: true
        pageSize: 50
    TruckloadCarrierInput:
      allOf:
      - $ref: '#/components/schemas/CarrierInputBase'
      - type: object
        description: Input for creating a truckload carrier
        required:
        - type
        properties:
          type:
            type: string
            enum:
            - TRUCKLOAD
            description: Carrier type discriminator (must be TRUCKLOAD)
            example: TRUCKLOAD
          insuranceCompany:
            type: string
            description: Insurance company name
            example: State Farm Insurance
          insuranceAgent:
            type: string
            description: Insurance agent name
            example: John Smith
          insuranceAgentPhone:
            type: string
            description: Insurance agent phone number
            example: +1-555-123-4567
          insuranceAuthorityDate:
            type: string
            format: date-time
            description: Date insurance authority was granted
            example: '2025-01-01T00:00:00Z'
          insuranceExpirationDate:
            type: string
            format: date-time
            description: Insurance policy expiration date
            example: '2025-12-31T23:59:59Z'
          insuranceAutoLiabilityLimit:
            type: number
            format: float
            description: Auto liability insurance limit (in dollars)
            example: 1000000
          insuranceCargoLiabilityLimit:
            type: number
            format: float
            description: Cargo liability insurance limit (in dollars)
            example: 100000
          insuranceGeneralLiabilityLimit:
            type: number
            format: float
            description: General liability insurance limit (in dollars)
            example: 1000000
          rating:
            type: string
            description: Carrier safety rating
            example: SATISFACTORY
          ratingDate:
            type: string
            format: date
            description: Date of last safety rating
            example: '2025-01-15'
          reviewType:
            type: string
            description: Type of safety review conducted
            example: COMPLIANCE_REVIEW
          reviewDate:
            type: string
            format: date
            description: Date of last safety review
            example: '2025-01-15'
          operatingAbility:
            type: string
            description: FMCSA operating authority status
            example: AUTHORIZED
          inFmcsa:
            type: boolean
            description: Whether carrier is registered in FMCSA database
            example: true
          usDriverInspections:
            type: integer
            description: Total number of US driver inspections
            example: 100
          usDriverInspectionsOos:
            type: integer
            description: Number of US driver inspections resulting in out-of-service
            example: 5
          usDriverInspectionsOosPct:
            type: number
            format: float
            description: Percentage of US driver inspections resulting in out-of-service
            example: 5
          usVehicleInspections:
            type: integer
            description: Total number of US vehicle inspections
            example: 150
          usVehicleInspectionsOos:
            type: integer
            description: Number of US vehicle inspections resulting in out-of-service
            example: 8
          usVehicleInspectionsOosPct:
            type: number
            format: float
            description: Percentage of US vehicle inspections resulting in out-of-service
            example: 5.33
    CarrierBase:
      type: object
      required:
      - id
      - name
      - friendlyId
      - status
      - createdAt
      - updatedAt
      properties:
        object:
          type: string
          enum:
          - CARRIER
          readOnly: true
          description: Object type identifier
          example: CARRIER
        id:
          type: string
          format: uuid
          readOnly: true
          description: Unique carrier identifier
          example: 550e8400-e29b-41d4-a716-446655440000
        friendlyId:
          type: string
          readOnly: true
          description: Human-readable carrier identifier
          example: C123456
        type:
          allOf:
          - $ref: '#/components/schemas/CarrierType'
          description: Carrier operation type (discriminator field)
        name:
          type: string
          description: Carrier legal name
          example: Swift Transportation Co
        dbaName:
          type:
          - string
          - 'null'
          description: Doing Business As name
          example: Swift Logistics
        key:
          type:
          - string
          - 'null'
          maxLength: 512
          description: Client-defined reference identifier
          example: ERP-CARRIER-SWIFT-001
        email:
          type:
          - string
          - 'null'
          format: email
          description: Primary email address
          example: dispatch@swifttrans.com
        phone:
          type:
          - string
          - 'null'
          description: Primary phone number
          example: +1-555-987-6543
        website:
          type:
          - string
          - 'null'
          description: Company website URL
          example: https://swifttrans.com
        status:
          type: string
          description: Carrier status
          example: ACTIVE
        statusReason:
          type:
          - string
          - 'null'
          description: Reason for current status
          example: Active and in good standing
        notes:
          type:
          - string
          - 'null'
          description: Internal notes about the carrier
          example: Preferred carrier for midwest routes
        corporateAddress:
          anyOf:
          - $ref: '#/components/schemas/Address'
          - type: 'null'
          description: Corporate headquarters address
        billingAddress:
          anyOf:
          - $ref: '#/components/schemas/Address'
          - type: 'null'
          description: Billing address for invoices
        mcNumber:
          type:
          - string
          - 'null'
          description: Motor Carrier (MC) number
          example: MC-123456
        dotNumber:
          type:
          - string
          - 'null'
          description: Department of Transportation (DOT) number
          example: '1234567'
        scac:
          type:
          - string
          - 'null'
          description: Standard Carrier Alpha Code
          example: SWFT
        einNumber:
          type:
          - string
          - 'null'
          description: Employer Identification Number
          example: 12-3456789
        ffNumber:
          type:
          - string
          - 'null'
          description: Freight Forwarder (FF) number
          example: FF-123456
        mxNumber:
          type:
          - string
          - 'null'
          description: Mexico carrier registration number
          example: MX-123456
        rfcNumber:
          type:
          - string
          - 'null'
          description: RFC (Mexico tax ID) number
          example: ABCD123456XYZ
        iataCode:
          type:
          - string
          - 'null'
          description: International Air Transport Association code
          example: AA
        equipments:
          type: array
          description: Equipment types this carrier operates
          items:
            $ref: '#/components/schemas/CarrierEquipment'
          example:
          - VAN
          - REEFER
        isHazmat:
          type:
          - boolean
          - 'null'
          description: Whether carrier is certified to transport hazardous materials
          example: false
        tsaApproved:
          type:
          - boolean
          - 'null'
          description: Whether carrier is TSA approved
          example: true
        trucks:
          type:
          - integer
          - 'null'
          description: Number of trucks in fleet
          example: 50
        trailers:
          type:
          - integer
          - 'null'
          description: Number of trailers in fleet
          example: 100
        drivers:
          type:
          - integer
          - 'null'
          description: Number of drivers employed
          example: 75
        powerUnits:
          type:
          - integer
          - 'null'
          description: Number of power units
          example: 50
        currency:
          anyOf:
          - $ref: '#/components/schemas/Currency'
          - type: 'null'
          description: Preferred currency for transactions
        paymentTerm:
          anyOf:
          - $ref: '#/components/schemas/PaymentTermReference'
          - type: 'null'
          description: Payment terms for this carrier
        isFactoringPreferred:
          type:
          - boolean
          - 'null'
          description: Whether carrier prefers factoring for payment
          example: false
        goldenCarrierId:
          type:
          - string
          - 'null'
          format: uuid
          description: Reference to golden carrier record (for deduplication)
          example: 7c9e6679-7425-40de-944b-e07fc1f90ae7
        paymentMethods:
          type: array
          description: Payment methods configured for this carrier
          items:
            $ref: '#/components/schemas/CarrierPaymentMethodReference'
        contacts:
          type: array
          description: Contacts for this carrier
          items:
            $ref: '#/components/schemas/CarrierContactReference'
        createdAt:
          type: string
          format: date-time
          readOnly: true
          description: When the carrier was created
          example: '2025-01-15T10:00:00Z'
        updatedAt:
          type: string
          format: date-time
          readOnly: true
          description: When the carrier was last updated
          example: '2025-01-15T14:30:00Z'
        deletedAt:
          type:
          - string
          - 'null'
          format: date-time
          readOnly: true
          description: When the carrier was soft deleted (null if active)
          example: null
    RailCarrier:
      allOf:
      - $ref: '#/components/schemas/CarrierBase'
      - type: object
        description: Rail freight carrier
        required:
        - type
        properties:
          type:
            type: string
            enum:
            - RAIL
            description: Carrier type discriminator
            example: RAIL
    UUIDSearchCriteria:
      type: object
      required:
      - operator
      description: Search criteria for UUID fields
      properties:
        operator:
          type: string
          enum:
          - EQUALS
          - NOT_EQUALS
          - ONE_OF
          - NOT_ONE_OF
          - EXISTS
          - DOES_NOT_EXIST
          description: '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:
          type: array
          items:
            type: string
            format: uuid
          description: Array of UUIDs for ONE_OF or NOT_ONE_OF operators
          example:
          - 550e8400-e29b-41d4-a716-446655440000
          - 550e8400-e29b-41d4-a716-446655440001
      example:
        operator: EQUALS
        values:
        - 550e8400-e29b-41d4-a716-446655440000
    Error:
      type: object
      required:
      - error
      - message
      properties:
        error:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
    PaymentMethodType:
      type: string
      description: Payment method type
      enum:
      - ACH_WIRE
      - ZELLE
      - VENMO
      - ACH
      - CHECK
      - WIRE
      - CAD_EFT
      - TRIUMPH_PAY
      - COMCHECK
      - EFS
      - ECHECK
      example: ACH
    ValidationError:
      type: object
      required:
      - error
      - message
      - details
      properties:
        error:
          type: string
          description: Error code
          example: validation_error
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          description: Validation error details
          items:
            type: object
            required:
            - field
            - message
            properties:
              field:
                type: string


# --- truncated at 32 KB (121 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mvmnt/refs/heads/main/openapi/mvmnt-carriers-api-openapi.yml