CPSC Regulatory Updates
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).
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 element | EasyPost customs_item field | Notes |
|---|---|---|
| Certifier ID | regulatory_info.cpsc.certifier_id | The certifying company registered in the CPSC Product Registry |
| Product ID | One of standardized_product_id, code, manufacturer_product_id | Send the product identifiers you have — EasyPost maps them |
| Version ID | regulatory_info.cpsc.version_id | The 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"
}
}
}
}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:
| Field | Max len | CPSC Product ID type | Also serves (EU) |
|---|---|---|---|
standardized_product_id | 64 | GTIN | S-PID (C129) |
manufacturer_product_id | 64 | Model / Alternate | NS-PID (C128) |
code (existing) | — | SKU | M-PID (C127) |
codeis your existing merchant product ID — keep populating it exactly as you do today.- Only
manufacturer_product_idandstandardized_product_idare new fields.
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).
| Field | Max len | Description |
|---|---|---|
regulatory_info.cpsc.certifier_id | 64 | CPSC Certifier ID — the certifying company in the CPSC Product Registry |
regulatory_info.cpsc.version_id | 64 | CPSC Version ID — a specific certificate version; increments on retest / material change |
- Blank values are not persisted — an empty
cpscobject collapses toregulatory_info: null. - Each field is validated (
max_length: 64, typeString). - Scope: products already registered with CPSC (Reference method). Disclaim / exemption / not-yet-registered paths are not currently supported.
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):
| Carrier | Product IDs | CPSC regulatory_info |
|---|---|---|
| FedEx | support pending | support pending |
| UPS | support pending | support pending |
| USPS | support pending | support pending |
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 field | FedEx REST field |
|---|---|
| Product ID | registryProductId |
regulatory_info.cpsc.certifier_id | certifierId |
regulatory_info.cpsc.version_id | productVersion |
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 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.
| Change | Layer | What it does |
|---|---|---|
standardized_product_id | API (agnostic) | GTIN product ID on customs_item (CPSC Product ID: GTIN; EU S-PID) |
manufacturer_product_id | API (agnostic) | Manufacturer product ID on customs_item (CPSC Model / Alternate; EU NS-PID) |
regulatory_info.cpsc.certifier_id | API (agnostic) | CPSC Certifier ID (Reference method) |
regulatory_info.cpsc.version_id | API (agnostic) | CPSC Version ID (Reference method) |
| Carrier delivery — product IDs | Carrier | Sending product IDs to carriers on the wire — not yet available |
| Carrier delivery — CPSC | Carrier | Sending regulatory_info.cpsc to carriers (generic serialization) — not yet available |
Regulatory date: CPSC eFiling mandatory July 2026.