Fedex Logo

Introduction 

Use the Regulatory API to store per-product regulatory compliance data that you can reference when creating a shipment.

The Regulatory API supports data for the following regulators:

  • U.S. Consumer Product Safety Commission (CPSC) — Certificate of Compliance (CoC) data submitted as a disclaimer, a reference to the CPSC Product Registry, or a full certificate.

  • European Union Commission — de minimis removal — product identifiers required under the EU's removal of the €150 de minimis threshold, effective July 2026, to accompany low-value (< €150) B2C consignments entering the EU.

This API does not file entries directly with U.S. Customs and Border Protection (CBP), the EU Commission, or any other authority. 

The overall workflow which uses the Regulatory API is as follows:

  1. Use this API to store regulatory data for a product under a specific regulator and country. The details you need to provide may differ. For more details, see Creating a profile.
  2. Create a shipment using the Ship API. Ensure that each commodity carries a regulatoryDetails[] array and each element includes regulationCode, productId, productIdType.
  3. FedEx merges stored commodity profiles and shipment information.
  4. FedEx acts as the Importer of Record and files all necessary regulatory documents on your behalf.

For more details, see Using regulatory profiles and the Ship API.

Creating a profile

The flexibility of the Regulatory API minimizes integration surfaces and centralizes storage. Every profile uses the same top-level fields. Regulator-specific data is stored in a details[] array whose element shape is determined by regulationCode.  

Required top-level profile fields include the following:

  • regulationCode* – The regulatory agency for which the details apply. For example: CPSC or EU_DE_MINIMIS. This field’s value defines the element shape for detailed regulatory information. 
  • productId* – The merchant or customer’s product identifier.
  • productIdType* – The type of product identifier. For example: SKU, PART_NUMBER, REGISTERED_NUMBER, GTIN, UPC, EAN, MPN, and OTHER. 
  • countryOfImport* – The destination country of the import.
  • details[] – The shape of the elements in this array change depending on which regulator you’ve chosen for the shipment. For CPSC-regulated shipments, it holds Disclaim or Reference message sets; for EU_DE_MINIMIS-regulated shipments, it holds manufacturer identifiers. 

*These values are used to match values in a Ship API request’s regulatoryDetails[] array so that profile data can be merged into the shipment data.

Tip: This structure mirrors an entry in the Ship API’s commodities[].regulatoryDetails[] array. You can populate Ship API requests by copying directly from a stored profile. This is useful when you have a one-off shipment where profile details are out-of-date.  

POST to the Regulatory Profiles endpoint to create a regulatory profile.

For regulator-specific details, see the following sections. 

CPSC profiles

The Regulatory API stores the CoC data that CBP and CPSC require alongside the ACE entry via the PGA Message Set. Create a profile where regulationCode = "CPSC" and countryOfImport = "US."  

One of the following three message sets must be populated in a details[] element.

In addition to the required regulationCode, productId, productIdType, and countryOfImport, use details[] to provide the message sets:  

  • disclaimMessageSet – The data needed for the disclaimer.

    • disclaimCode – A = The product is not regulated by CPSC; B = data is not required per agency guidance. 
    • intendedUseCode –  Base code + subcode. For example: "130.003".
    • intendedUseDescription – Free text. Required only when intendedUseCode = "980.000" (For Other Use). 
  • referenceMessageSet – The data needed for the reference.

    • productVersion – The product certificate version identifier currently associated with the certificate in the CPSC Product Registry. 
    • certificateId – The Certifier ID issued to you by the CPSC Product Registry.
  • fullMessageSet – Full certificate data. Refer to the Regulatory Endpoint information for full object and field descriptions, details, and examples. Primary data includes: 

    • productDetails
    • manufacturerDetails
    • lotDetails
    • certifierEntity
    • pointOfContact
    • citationDetails

Note: You must manage CPSC Product Registry entries with CPSC directly. This API references CPSC registry IDs for reference filings but does not create, read, or update CPSC registry records.

EU de minimis removal profiles

The Regulatory API supports the data obligations introduced by the EU’s removal of the €150 de minimis threshold. To create a profile, set regulationCode = EU_DE_MINIMIS, countryOfImport to any EU27 member state, and  include regulatory details for the commodity. 

The productId field is your alphanumeric product identifier. The EU treats this as the merchant SKU for the consignment.

In addition to the required regulationCode, productId, productIdType, and countryOfImport, use details[] to provide: 

  • merchantProductId – The merchant’s product identifier. This is distinct from productId if you use separate merchant- and SKU-level identifiers; if not, set this equal to productId.
  • nonStandardManufacturerProductId –  The manufacturer’s internal SKU or ID. For example: SH123456-L. 
  • standardManufacturerProductId – A standard identifier such as GTIN, UPC, or EAN. For example: 01233456789012. Use the literal string "NA" when the product has no standard identifier.

The API emits a non-blocking REGP_EU_MISSING_IDENTIFIERS warning when an EU_DE_MINIMIS profile is stored without any of the three identifiers populated. 

Using regulatory profiles and the Ship API

You can reference regulatory data stored by the Regulatory API from the Ship API. Details from regulatory profiles are incorporated into the shipment downstream after the shipment is created. 

Common workflows that leverage the Ship API and/or the Regulatory API include:

  1. A profile-first approach. Register each product once using the Regulatory API and then provide only productId + productIdType + regulationCode in regulatoryDetails[] for commodities in your shipment. Details are merged into the shipment from the registered profile. 

  2. An inline-only approach. Each commodity in your shipment includes productId + productIdType + regulationCode + fully populated details[]. Full CPSC data cannot be carried inline; this pattern is restricted to disclaim and reference CPSC message sets and the EU_DE_MINIMIS regulator.

  3. A hybrid approach. For a particular shipment, you can override existing Regulatory API data. Include productId + productIdType + regulationCode + select details[]. Inline details data overrides any data stored by the Regulatory API. Any details data that’s not included in shipment’s inline details but is present in the profile is merged after the shipment is created. 

CLOSE

Response

Copy