NMFTA Preliminary Freight Charges API

Access freight charges information

Operations 1

POST /v1/preliminary-freight-charges/ Post to Subscription defined endpoint PFC information #

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-preliminary-freight-charges-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-preliminary-freight-charges-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: (PFC) Preliminary Freight Charges API
  description: "The Preliminary Freight Charges (PFC) API proactively notifies responsible parties (debtors or their authorized agents, including consignees when designated as agents) that a motor carrier has created a freight bill for a shipment associated with that party. Further notifications occur when the bill is updated or removed from their account.\n\n## Key Features\n- Proactive freight charge visibility throughout shipment lifecycle\n- Real-time notifications via subscription-based push API\n- Standardized event codes and change log tracking\n- Unified API supporting both detailed data and change log consumption\n\n## Important Notes\n- PFC is not an invoice or legal document\n- PFC should not be construed as a request for payment\n- The PFC process concludes once the invoice is produced and no further updates are expected\n- Monitoring begins immediately upon onboarding, including any shipments currently in flight\n- Access is restricted to debtors and/or authorized agents only (including consignees when authorized)\n- Data options, notification frequency, and data retention may be limited by carrier capabilities, as defined in the NMFTA PFC PRD\n- Notifications are triggered by changes to shipment-level attributes that affect freight charges, including:\n  - Changes to the Shipper, Consignee, or Bill-To party\n  - Changes to the account number used for pricing\n  - Modifications to payment terms\n  - Addition or removal of accessorial charges (including waived $0 charges)\n  - Shipment characteristic changes that affect rating\n- Customers may choose to process detailed data, change logs, or both, depending on implementation preference\n"
  version: 1.0.4
  x-prd-version: December 2025
  contact:
    name: NMFTA Digital LTL Council
    email: support@nmfta.org
  license:
    name: NMFTA License
    url: https://www.nmfta.org/license
tags:
- name: Preliminary Freight Charges
  description: Access freight charges information
paths:
  /v1/preliminary-freight-charges/:
    post:
      summary: Post to Subscription defined endpoint PFC information
      description: Post to Subscription defined endpoint PFC information.
      operationId: postFreightCharges
      tags:
      - Preliminary Freight Charges
      responses:
        '200':
          description: Freight charges history
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PreliminaryFreightCharge'
components:
  schemas:
    PreliminaryFreightCharge:
      description: 'Submits a completed Preliminary Freight Charges (PFC) transaction to the endpoint defined by the subscription.

        The payload includes shipment details, charges, references, origin/destination, and other supporting data.

        The response returns a historical list of matched PFCs associated with the submission.

        '
      type: object
      required:
      - pfc
      - payment
      - shipmentTotals
      - referenceNumbers
      - origin
      - destination
      - billTo
      - commodities
      - charges
      properties:
        pfc:
          type: object
          required:
          - uniqueID
          - function
          - date
          - version
          - isTest
          properties:
            uniqueID:
              type: string
              example: 1234567890EXLA
              description: 'Unique ID for this transaction


                Concatenate PRO + SCAC + Ship date (YYYYMMDD ie 20240224), strip special characters.

                '
            header:
              type: object
              properties:
                function:
                  type: string
                  example: PFC1
                  description: 'The version of PFC


                    Valid Values: PFC1, PFC2 and so on

                    '
            date:
              type: string
              example: '2024-11-20T00:00:00.000'
              description: 'Date of the status being reported


                Valid Formats:

                * YYYY-MM-DDTHH:mm:ss.sss (ISO 8601)

                '
            version:
              type: string
              example: v1.0
              description: 'Indicates which minor version of the Digital LTL Council PFC spec you are consuming


                Valid values: v1.0

                '
            isTest:
              type: boolean
              example: false
              description: Indicates whether or not the submitted request is intended to be a test or not.
        payment:
          type: object
          required:
          - terms
          properties:
            terms:
              type: string
              example: Prepaid
              description: 'Freight Billing Terms for the shipment


                Valid Values:

                * Prepaid

                * Collect

                * Third Party

                '
        shipmentTotals:
          type: object
          required:
          - pickupDate
          - grossWeight
          - weightUnit
          - handlingUnits
          properties:
            pickupDate:
              type: string
              example: '2022-11-20T00:00:00.000'
              description: 'Actual ship date


                Valid Formats:

                * YYYY-MM-DDTHH:mm:ss.sss (ISO 8601)

                '
            grossWeight:
              type: integer
              example: 2000
              description: Total weight of the entire shipment, including handling units (tare weight)
            netWeight:
              type: integer
              example: 1975
              description: Total weight of the entire shipment, not including handling units (tare weight)
            weightUnit:
              type: string
              example: Pounds
              description: 'The unit of measurement for weight


                Valid Values: Pounds or Kilograms

                '
            handlingUnits:
              type: integer
              example: 2
              description: Handling unit count for the entire shipment
            linearLength:
              type: integer
              example: 56
              description: Linear length for the entire shipment
            dimensionsUnit:
              type: string
              example: inches
              default: inches
              description: 'The unit of measurement for dimensions. Defaults to Inches (Imperial) if not passed


                Valid Values: Inches or Centimeters

                '
            cube:
              type: integer
              example: 128
              description: Cubic volume of the entire shipment (total length X total width X total height).
            cubeDimensionsUnit:
              type: string
              example: Feet
              default: feet
              description: 'The unit of measurement for cubic dimensions. Defaults to Feet (Imperial) if not passed.


                Valid Values: Feet or Meters

                '
            declaredValue:
              type: integer
              example: 700
              description: Total monetary value of the shipment in USD (sometimes needed for cross-border moves)
            currency:
              type: string
              example: USD
              default: USD
              description: 'Optional attribute to indicate currency of declaredValue. Defaults to USD


                Valid values:

                * CAD

                * MXN

                * USD

                '
        accessorials:
          type: object
          properties:
            codes:
              type: array
              description: 'An array to hold the list of services requested for the shipment

                '
              items:
                type: string
              example:
              - LFTD
        referenceNumbers:
          type: object
          required:
          - pro
          properties:
            pro:
              type: string
              description: Shipper's pre-assigned PRO number for the requested carrier.
              example: '0011234567'
            quoteId:
              type: string
              description: The quote (estimate) number provided by the carrier after submitting a rate quote request
              example: E556724
            shipmentId:
              type: string
              description: Shipment Id (SID) number for the shipment as provided by the shipper
              example: SID556724
            masterBol:
              type: string
              description: Master Bill of Lading number for the shipment as provided by the shipper
              example: MBL98472578
            trailerId:
              type: string
              description: When passed, indicates that the shipment is associated to a specific, spotted trailer as provided by the shipper
              example: TID65821
            manifestId:
              type: string
              description: When passed, indicates that the shipment is associated to a manifest that includes multiple shipments, possibly across multiple spotted trailers. Provided by the shipper
              example: M653247
            bol:
              type: array
              items:
                type: string
              example:
              - BL1285647
            po:
              type: array
              items:
                type: object
                properties:
                  number:
                    type: string
                    example: '554238'
                    description: The Purchase Order number as provided by the shipper
                  pieces:
                    type: integer
                    example: 5
                    description: Total pieces associated with the Purchase Order as provided by the shipper
                  weight:
                    type: string
                    example: '150'
                    description: Total weight associated with the Purchase Order as provided by the shipper
                  weightUnit:
                    type: string
                    example: Pounds
                    description: 'The unit of measurement for weight. Defaults to Pounds (Imperial) if not passed.


                      Valid Values: Pounds or Kilograms

                      '
                  palletized:
                    type: boolean
                    example: true
                    description: Indicates whether or not the pieces associated with the purchase order are on a pallet/slip/skid or not as provided by the shipper
                  additionalShipperInfo:
                    type: string
                    example: Freight must always stay upright
                    description: Additional information from the shipper per line item
            additionalReferences:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                    example: Customer Reference ID
                    description: 'Indicates the name of the reference number being provided as provided by the shipper

                      '
                  value:
                    type: string
                    example: CRID12345
                    description: Additional reference number that correlates to the additional reference name as provided by the shipper
        origin:
          type: object
          required:
          - account
          - name
          - address1
          - city
          - stateProvince
          - postalCode
          - country
          properties:
            account:
              type: string
              description: Company's account number/id for the origin
              example: '12345'
            locationId:
              type: string
              description: Company's location ID for the origin
              example: '808'
            name:
              type: string
              description: Company name associated with the origin location
              example: Closets Closets Closets
            address1:
              type: string
              description: Primary address line for the origin location
              example: 12 S. Closets Place
            address2:
              type: string
              description: Secondary address line for origin location
              example: ste 3
            city:
              type: string
              description: City Name for the origin location
              example: Los Angeles
            stateProvince:
              type: string
              description: 'Two letter state/province code for the state/province location

                '
              example: CA
            postalCode:
              type: string
              example: '90001'
              description: "The 5-digit (or 6-characters for Canada) zip code for the origin location\nValid formats:\n  * 12345-1234 (5 digits + 4 - USA)\n  * 12345 (5 digits - USA/MEX)\n  * A1A1A1 (6 characters - CAN)\n  * A1A1A (5 characters - CAN)\n"
            country:
              type: string
              example: USA
              description: 'Three letter country code for the origin location

                '
        destination:
          type: object
          required:
          - account
          - name
          - address1
          - city
          - stateProvince
          - postalCode
          - country
          properties:
            account:
              type: string
              description: Company's account number/id for the destination
              example: '12345'
            locationId:
              type: string
              description: Company's location ID for the destination
              example: '808'
            name:
              type: string
              description: Company name associated with the destination location
              example: Closets Closets Closets
            address1:
              type: string
              description: Primary address line for the destination location
              example: 12 S. Closets Place
            address2:
              type: string
              description: Secondary address line for destination location
              example: ste 3
            city:
              type: string
              description: City Name for the destination location
              example: Los Angeles
            stateProvince:
              type: string
              description: 'Two letter state/province code for the state/province destination location

                '
              example: CA
            postalCode:
              type: string
              example: '90001'
              description: 'The 5-digit (or 6-characters for Canada) zip code for the destination location

                '
            country:
              type: string
              example: USA
              description: 'Three letter country code for the destination location

                '
        billTo:
          type: object
          required:
          - account
          - name
          - address1
          - city
          - stateProvince
          - postalCode
          - country
          properties:
            account:
              type: string
              description: Company's account number/id for the billTo
              example: '12345'
            locationID:
              type: string
              description: Company's location ID for the billTo
              example: '808'
            name:
              type: string
              description: Company name associated with the billTo location
              example: Closets Closets Closets
            address1:
              type: string
              description: Primary address line for the billTo location
              example: 12 S. Closets Place
            address2:
              type: string
              description: Secondary address line for billTo location
              example: ste 3
            city:
              type: string
              description: City Name for the billTo location
              example: Los Angeles
            stateProvince:
              type: string
              description: 'Two letter state/province code for the state/province billTo location

                '
              example: CA
            postalCode:
              type: string
              example: '90001'
              description: 'The 5-digit (or 6-characters for Canada) zip code for the billTo location

                '
            country:
              type: string
              example: USA
              description: 'Three letter country code for the billTo location

                '
        commodities:
          type: object
          required:
          - handlingUnits
          properties:
            handlingUnits:
              type: array
              items:
                type: object
                required:
                - count
                - type
                - weight
                - weightUnit
                - length
                - width
                - height
                - dimensionUnit
                properties:
                  count:
                    type: integer
                    example: 2
                    description: Number of Handling units being described
                  type:
                    type: string
                    example: SKD
                    description: Type of the handling units being described
                  tareWeight:
                    type: integer
                    example: 5
                    description: Weight of the skids/pallets/slips used in the shipment
                  weight:
                    type: integer
                    example: 1500
                    description: Total weight for the specified handling units
                  weightUnit:
                    type: string
                    example: Pounds
                    description: 'The unit of measurement for weight


                      Valid Values: Pounds or Kilograms

                      '
                  length:
                    type: integer
                    example: 48
                    description: The length of the handling unit being described
                  width:
                    type: integer
                    example: 48
                    description: The width of the handling unit being described
                  height:
                    type: integer
                    example: 48
                    description: The height of the handling unit being described
                  dimensionUnit:
                    type: string
                    example: Inches
                    description: 'The unit of measurement for dimensions


                      Valid Values: Inches or Centimeters

                      '
                  stackable:
                    type: boolean
                    example: false
                    description: Identifies whether or not the freight being described can be stacked on one another
                  lineItems:
                    type: array
                    items:
                      type: object
                      required:
                      - description
                      - weight
                      - weightUnit
                      - pieces
                      - packagingType
                      - classification
                      properties:
                        description:
                          type: string
                          example: Small frameless mirrors
                          description: Description of the freight being described
                        weight:
                          type: integer
                          example: 1500
                          description: Total weight for the specified lineItem
                        weightUnit:
                          type: string
                          example: Pounds
                          description: 'The unit of measurement for weight


                            Valid Values: Pounds or Kilograms

                            '
                        pieces:
                          type: integer
                          example: 3
                          description: Number of individual pieces for the line item being described
                        packagingType:
                          type: string
                          example: box
                          description: Packaging type for the individual pieces of the line item being described
                        classification:
                          type: string
                          example: '55'
                          description: Classification of the line item being described
                        nmfc:
                          type: string
                          example: '86900'
                          description: NMFC of the code being described
                        nmfcSub:
                          type: string
                          example: '3'
                          description: The Sub value for the NMFC of the freight being described
        charges:
          type: object
          required:
          - grossCharges
          - discountAmount
          - discountPercent
          - fuelSurchargePercent
          - fuelSurchargeAmount
          - currencyType
          - preliminaryTotalCharges
          properties:
            grossCharges:
              type: number
              example: 858.55
              description: Gross charges for the shipment
            discountAmount:
              type: number
              example: 657.65
              description: Amount of Discount applied to the shipment
            discountPercent:
              type: integer
              example: 77
              description: Percent of Discount applied to the shipment
            totalTareWeight:
              type: integer
              example: 770
              description: Total weight of the skids/pallets/slips used in the shipment
            tareWeightAmount:
              type: number
              example: 50
              description: Charges for Tare Weight
            deficitWeight:
              type: number
              example: 20.63
              description: Added deficit weight
            fuelSurchargePercent:
              type: integer
              example: 31
              description: Fuel Charge Percent
            fuelSurchargeAmount:
              type: number
              example: 62.88
              description: Fuel Charge Amount
            currencyType:
              type: string
              example: USD
              description: 'Attribute to indicate currency of monetary charges. Defaults to USD


                Valid Values:

                * CAD

                * MXN

                * USD

                '
            weightUnit:
              type: string
              example: Pounds
              description: 'The unit of measurement for weight charges


                Valid Values: Pounds or Kilograms

                '
            detail:
              type: string
              example: House/Residential Delivery Fee
              description: All other items in the section are standard. This line(s) would be other charges, accessorials, etc. There can be none, one or many
            preliminaryTotalCharges:
              type: number
              example: 263.78
              description: Preliminary Charges at the time of this notification
            class:
              type: array
              description: Array of class based charges detail
              items:
                type: object
                properties:
                  freightClass:
                    description: 'NMFC freight class (e.g., 55 = fairly dense freight like metal parts or bottled beverages). Standard values range from 50 to 500.

                      '
                    type: string
                    example: '55'
                  cwt:
                    type: integer
                    description: Cents per hundred weight
                    example: 125
            changeLog:
              type: array
              description: An Event is recorded for every event that had an impact for the processed day/API event
              items:
                type: object
                properties:
                  eventCategoryName:
                    type: string
                    example: Limited Access
                    description: Event Category Name
                  eventCode:
                    type: string
                    example: LTDAD
                    description: Standard DLC Event Code
                  eventSubCode:
                    type: string
                    example: FARM
                    description: Standard DLC Event Sub Code
                  carrierCode:
                    type: string
                    example: DBRS
                    description: Optional Carrier Event Code
                  carrierDescription:
                    type: string
                    example: Debris hauled away
                    description: Optional Carrier Event Description
                  weightAndResearchDocAvailable:
                    type: boolean
                    example: false
                    description: Indicates if a Weight and Research document is available from the Carrier for this event
            changeLogMessages:
              type: array
              description: Messages as apply to parent change log entry
              items:
                type: object
                properties:
                  informationalMessage:
                    type: string
                    example: The shipment has incurred a charge for an Inside Delivery Fee
                    description: Informational message related to the change log entry