NMFTA Document Management API

Endpoints for uploading, and managing supporting documents.

Operations 4

POST /documents Upload Supporting Documents #
GET /documents List Supporting Documents #
GET /documents/{invoiceNumber} Retrieve Supporting Documents #
DELETE /documents/{invoiceNumber} Delete Supporting Documents or Files #

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/nmfta-document-management-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

nmfta-document-management-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Invoice & Document Document Management API
  version: 1.0.0-public-preview
  contact:
    name: DSDC APIs Full Truckload
    url: https://github.com/dsdcapis/full-truckload
  license:
    name: DSDC Repository License
    url: https://github.com/dsdcapis/full-truckload/blob/main/LICENSE.md
  description: '# Overview


    NMFTA is on a journey with logistical and banking institutions to transform the electronic transfer of invoice data and supporting documents through an open-source API.'
tags:
- name: Document Management
  description: Endpoints for uploading, and managing supporting documents.
paths:
  /documents:
    post:
      operationId: uploadDocument
      summary: Upload Supporting Documents
      description: '## Request

        As a Carrier, I want to upload supporting documents for an invoice.

        - In a request, the Carrier MUST provide the Invoice Number to associate the document with the correct invoice.

        - In a request, the Carrier MUST designate the document type so that the acceptance of the response can be

        tracked on the Shipper/3rd Party side. This can range from the Invoice to the supported twenty-four (24) document types.

        - The request MUST include the document file in PDF, TIF, JPEG, or PNG format.

        - The maximum file size MUST not exceed 25 MB.

        - In a request, the Carrier MUST specify the document type so that the

        acceptance of the response can be tracked on the Shipper/3rd Party side. This

        can range from the Invoice to the supported twenty-four (24) document types.

        - Bill of Lading (BOL)

        - Catalog Page (CAT)

        - Communications & Correspondence (COMM)

        - Contract (CON)

        - Customer Specific Rules Tariff (RULE)

        - Dimension Certificate (DIM)

        - Detention Receipt (DTR)

        - Discount Matrix (DIS)

        - Freight Bill (FRB)

        - Fuel Tables (FUEL)

        - Invoice (INV)

        - Inspection Certificate (INSP)

        - Letter of Authority (LOA)

        - Lumper Receipt (LPR)

        - Material Safety Data Sheet (MSDS)

        - Packing Slip (PAC)

        - Photos (IMG)

        - Proof of Delivery (POD)

        - Quote (QUO)

        - Residential Dispute Support (RESI)

        - Spec Sheet (SPEC)

        - Scale (SCL)

        - Statement Bill (STB)

        - Weight & Inspection Certificate (W&I)


        ## Response

        - In a response, NMFTA MUST provide a response for successful or failure to transfer identification and values.

        - In a response, the Shipper/3rd Party MUST provide an acceptance or failure of transfer.'
      tags:
      - Document Management
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: ./schemas/schemas.yaml#/components/schemas/DocumentRequest
      responses:
        '201':
          description: Document uploaded successfully
          content:
            application/json:
              schema:
                $ref: ./schemas/schemas.yaml#/components/schemas/SuccessMessage
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '404':
          $ref: '#/components/responses/ErrorResponse'
    get:
      operationId: listDocuments
      summary: List Supporting Documents
      description: 'As a Carrier, I want to list all supporting documents for invoices.

        - The request MAY include optional query parameters such as Invoice Number, DOT Number, MC Number, or documentType to filter the results.

        - All query parameters are optional and can be used individually or in combination to filter results.'
      tags:
      - Document Management
      parameters:
      - name: invoiceNumber
        in: query
        description: Invoice number to filter the documents.
        schema:
          type: string
      - name: DOT
        in: query
        schema:
          type: string
          description: Department of Transportation identifier.
      - name: MC
        in: query
        schema:
          type: string
          description: Motor Carrier Identifier.
      - name: documentType
        in: query
        schema:
          type: array
          items:
            $ref: ./schemas/schemas.yaml#/components/schemas/DocumentType
          description: One or more document types to be retrieved (e.g., Invoice, BOL).
      responses:
        '200':
          description: Documents retrieved successfully
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: ./schemas/schemas.yaml#/components/schemas/DocumentResponse
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '404':
          $ref: '#/components/responses/ErrorResponse'
  /documents/{invoiceNumber}:
    get:
      operationId: getDocument
      summary: Retrieve Supporting Documents
      description: 'As a Carrier, I want to retrieve supporting documents for an invoice by its Invoice Number.

        - In a request, the Carrier MUST provide the Invoice Number in the path to retrieve the specific documents.'
      tags:
      - Document Management
      parameters:
      - name: invoiceNumber
        in: path
        required: true
        description: Invoice number to filter the documents.
        schema:
          type: string
      responses:
        '200':
          description: Document(s) retrieved successfully
          content:
            application/json:
              schema:
                $ref: ./schemas/schemas.yaml#/components/schemas/DocumentResponse
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '404':
          $ref: '#/components/responses/ErrorResponse'
    delete:
      operationId: deleteDocument
      summary: Delete Supporting Documents or Files
      description: 'Delete all supporting documents for an invoice, or specific files within the documents.

        - The request MUST provide the Invoice Number in the path to identify the documents to delete.

        - The request MAY include optional fileIds as a query parameter to delete specific files. If omitted, all documents for the invoice will be deleted.

        - The request MAY include optional comments as a query parameter for the deletion.'
      tags:
      - Document Management
      parameters:
      - name: invoiceNumber
        in: path
        required: true
        description: Invoice number to identify the documents.
        schema:
          type: string
      - name: fileIds
        in: query
        required: false
        description: List of file IDs to delete. If omitted, all documents for the invoice will be deleted.
        schema:
          type: array
          items:
            type: string
      - name: comments
        in: query
        required: false
        description: Optional comments related to the document deletion.
        schema:
          $ref: ./schemas/schemas.yaml#/components/schemas/Comment
      responses:
        '204':
          description: Document(s) or file(s) deleted successfully. No content returned.
          content:
            application/json:
              schema:
                $ref: ./schemas/schemas.yaml#/components/schemas/SuccessMessage
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '404':
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    ResultStatusCode:
      title: Result Status Code
      description: Numerical codes describing any logical status outcomes.  Not all codes apply to this API, but are included to encourage adoption of these standards across API specifications.
      oneOf:
      - const: '100'
        description: Informational General Information
      - const: '200'
        description: Warning Non-Critical Error
      - const: '300'
        description: Failure Data Error
      - const: '400'
        description: Failure Formatting Error
      - const: '500'
        description: Failure Business Logic Error
      - const: '600'
        description: Failure Carrier Specific Error
      - const: '700'
        description: Failure Unknown Reason
  responses:
    ErrorResponse:
      description: Error response
      content:
        application/json:
          schema:
            type: array
            items:
              $ref: '#/components/schemas/ResultStatusCode'