NMFTA Preliminary Freight Charges API
Access freight charges information
Access freight charges information
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/nmfta-preliminary-freight-charges-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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