CPSC Regulatory Updates

Background

International shipments carrying CPSC-regulated consumer products (children's toys and similar goods) need the product's CPSC compliance-certificate data on their customs documentation, so it's available to US customs at import — a requirement as of 8 July 2026.

EasyPost's role is on the customs-documentation side only: EasyPost has added fields so you can attach the CPSC certificate identifiers to a shipment's customs items, so the data travels with the shipment.

EasyPost does not file with CPSC or register products on your behalf — you provide identifiers for a certificate you have already registered with CPSC, and they flow through as part of the shipment's customs data.

CPSC recognizes two ways to convey the certificate data: the full certificate data set, or the Reference method — where a pre-registered certificate is referenced by just three identifiers (Certifier ID + Product ID + Version ID). EasyPost's support starts with the Reference method, for products already registered with CPSC. Not-yet-registered products, exemptions, and disclaims are not currently supported.

  • Where the data lives — per item. A single parcel can hold multiple items with different certificates, so CPSC data lives on customs_item, not at the shipment level.
  • This guide covers the API fields you send (Part 1) first, then how carriers handle them (Part 2).

Part 1 — What You Send to EasyPost

To file a CPSC-regulated item under the Reference method, you supply three identifiers per item — the same three CPSC uses to look up your pre-registered certificate:

CPSC-required elementEasyPost customs_item fieldNotes
Certifier IDregulatory_info.cpsc.certifier_idThe certifying company registered in the CPSC Product Registry
Product IDOne of standardized_product_id, code, manufacturer_product_idSend the product identifiers you have — EasyPost maps them
Version IDregulatory_info.cpsc.version_idThe certificate version

All three live on customs_item (not the shipment — one parcel can carry multiple regulated items with different certificates) and apply anywhere customs_items are accepted: both /v2/shipments and /v2/orders.

On the API these fields are optional / nullable — but CPSC generally expects all three to file under the Reference method. The API won't reject a shipment that omits them, but CPSC may reject the entry. Supplying all three is recommended for any CPSC-regulated item.

Full example:

{
  "customs_item": {
    "description": "Children's toy building blocks",
    "quantity": 1,
    "value": "23.0",
    "hs_tariff_number": "9503000000",
    "origin_country": "CN",
    "standardized_product_id": "00012345600012",
    "regulatory_info": {
      "cpsc": {
        "certifier_id": "ACMEAPPAREL",
        "version_id": "v3"
      }
    }
  }
}

Product ID — the customs_item fields

Populate whichever of these you have — EasyPost handles mapping them for the carrier.

These are the same fields that carry the EU product identifiers (see the companion EU Regulatory Updates guide) — one set serves both regulatory bodies:

FieldMax lenCPSC Product ID typeAlso serves (EU)
standardized_product_id64GTINS-PID (C129)
manufacturer_product_id64Model / AlternateNS-PID (C128)
code (existing)SKUM-PID (C127)
  • code is your existing merchant product ID — keep populating it exactly as you do today.
  • Only manufacturer_product_id and standardized_product_id are new fields.

Certifier ID & Version ID — the regulatory_info object

Certifier ID and Version ID are certificate metadata, not product identifiers, so they live in a new regulatory_info object, namespaced by regulatory governing body (regulatory_info.cpsc).

FieldMax lenDescription
regulatory_info.cpsc.certifier_id64CPSC Certifier ID — the certifying company in the CPSC Product Registry
regulatory_info.cpsc.version_id64CPSC Version ID — a specific certificate version; increments on retest / material change
  • Blank values are not persisted — an empty cpsc object collapses to regulatory_info: null.
  • Each field is validated (max_length: 64, type String).
  • Scope: products already registered with CPSC (Reference method). Disclaim / exemption / not-yet-registered paths are not currently supported.

Part 2 — Carrier-Specific Implications

Carrier-specific use of these CPSC fields are being developed on a rolling basis, pending carrier API updates and EasyPost integration with the carrier APIs.

In preparation for the individual carrier support, we encourage you to implement these fields now, so that the data will be automatically sent to supported carriers as soon as support is rolled out.

Carrier delivery status (as of Sept, 2026):

CarrierProduct IDsCPSC regulatory_info
FedExsupport pendingsupport pending
UPSsupport pendingsupport pending
USPSsupport pendingsupport pending

FedEx

When CPSC delivery is wired, EasyPost will map the reference-method fields to the FedEx REST Ship API, inline at customsClearanceDetail.commodities[].regulatoryDetails[].referenceMessageSet:

EasyPost customs_item fieldFedEx REST field
Product IDregistryProductId
regulatory_info.cpsc.certifier_idcertifierId
regulatory_info.cpsc.version_idproductVersion

FedEx Web Services / SOAP API

FedEx Web Services / SOAP integration is deprecated - for proper support of CPSC, you should complete steps to migrate your carrier accounts to use the FedEx REST integration

FedEx has not added the CPSC fields to the legacy Web Services / SOAP path, and has announced no plans to do so.

If you cannot migrate to REST, the way to convey CPSC data is to pack the three reference identifiers into each item's description on the commercial invoice:

<description> – CPSC REGULATED  <Product ID> | <Certifier ID> | <Version ID>

Example: Children's Plastic Toy Car – CPSC REGULATED PRI-TOY-CAR-01 | ACMEAPPAREL | V1.0

UPS

UPS has not released CPSC support in their API as of Sept, 2026.

In anticipation of that support, you should start sending data through the fields documented above. When UPS updates their API, and EasyPost updates the UPS carrier integration, these fields will automatically be sent to UPS without any further changes on your part.

Summary

ChangeLayerWhat it does
standardized_product_idAPI (agnostic)GTIN product ID on customs_item (CPSC Product ID: GTIN; EU S-PID)
manufacturer_product_idAPI (agnostic)Manufacturer product ID on customs_item (CPSC Model / Alternate; EU NS-PID)
regulatory_info.cpsc.certifier_idAPI (agnostic)CPSC Certifier ID (Reference method)
regulatory_info.cpsc.version_idAPI (agnostic)CPSC Version ID (Reference method)
Carrier delivery — product IDsCarrierSending product IDs to carriers on the wire — not yet available
Carrier delivery — CPSCCarrierSending regulatory_info.cpsc to carriers (generic serialization) — not yet available

Regulatory date: CPSC eFiling mandatory July 2026.