Validate / CPSC eFiling Product Registry error codes
CPSC eFiling Product Registry error codes
The 54 error codes the Product Registry can return for an import, with the field each one points at.
54 rows
| Code | Message | Error field | Template V3 column | Usual cause |
|---|---|---|---|---|
| 1001 | The Product Name is invalid. | name | Product Name (Model) | |
| 1002 | The Trade/Brand Name is invalid. | tradeBrandName | Trade/Brand Name | |
| 1003 | The Product ID Type is invalid. | primaryProductIdType | Primary Product ID Type | Use one of the seven accepted types, spelled as in the template. Check it |
| 1004 | The Product ID is invalid. | primaryProductId | Primary Product ID | At most 19 characters. Check it |
| 1007 | The Product Identifier Type is invalid. | identType | GTIN / UPC / SKU / Model Number / Serial Number / Registered Number / Alternate Identifier (the column name) | |
| 1008 | The GTIN is invalid. | identifiers[#].identifier | GTIN | |
| 1009 | The UPC is invalid. | identifiers[#].identifier | UPC | |
| 1010 | The SKU is invalid. | identifiers[#].identifier | SKU | |
| 1011 | The Model Number is invalid. | identifiers[#].identifier | Model Number | |
| 1012 | The Serial Number is invalid. | identifiers[#].identifier | Serial Number | |
| 1013 | The Registered Number is invalid. | identifiers[#].identifier | Registered Number | |
| 1014 | The Alternate Identifier is invalid. | identifiers[#].identifier | Alternate Identifier | |
| 1015 | The Color is invalid. | color | Product/Model Color | |
| 1016 | The Style is invalid. | style | Product/Model Style | |
| 1017 | The Description is invalid. | description | Product/Model Description | |
| 1018 | The Manufacture Date is invalid. | manufactureDate | Manufacture Date | MM/CCYY, for example 06/2026. Check it |
| 1019 | The Production Start Date is invalid. | productionStartDate | Production Start Date | MM/DD/CCYY. Check it |
| 1020 | The Production End Date is invalid. | productionEndDate | Production End Date | MM/DD/CCYY. Check it |
| 1021 | The Lot Number is invalid. | lotNumber | Lot Number | |
| 1022 | The Lot Assigned By is invalid. | lotNumberAssignedBy | Lot Number Assigned By | Seller or Manufacturer. |
| 1023 | The Certificate Type is invalid. | certificateType | Certificate Type | GCC or CPC. |
| 1024 | The Last Test Date is invalid. | lastTestDate | Last Test Date | MM/DD/CCYY, for example 06/20/2026. Check it |
| 1025 | The Certificate Version is invalid. | versionId | New Version ID | At most 19 characters. |
| 1028 | The Product was not found. | versionIdToUpdate | Current Version ID | An update (Product Update = Y) must name a version that is already in the Registry. |
| 2002 | The Name for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.name | Manufacturer / Lab {#} / POC Name | |
| 2003 | The Alternate ID for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.alternateId | Manufacturer / Lab {#} / POC Alternate ID | |
| 2004 | The GLN for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.gln | Manufacturer / Lab {#} / POC GLN | |
| 2005 | The Alternate ID for the <TRADE_PARTY_TYPE> is already being used by an existing <TRADE_PARTY_TYPE>. | <TRADE_PARTY_TYPE>.alternateId | Manufacturer / Lab {#} / POC Alternate ID | The ID belongs to a party already in your Product Collection: set Is New? to N. |
| 2006 | The GLN for the <TRADE_PARTY_TYPE> is already being used by an existing <TRADE_PARTY_TYPE>. | <TRADE_PARTY_TYPE>.gln | Manufacturer / Lab {#} / POC GLN | The GLN belongs to a party already in your Product Collection: set Is New? to N. |
| 2007 | The Address Line 1 for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.addressLine1 | Manufacturer / Lab {#} / POC Address Line 1 | |
| 2008 | The Address Line 2 for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.addressLine2 | Manufacturer / Lab {#} / POC Address Line 2 | |
| 2009 | The Apartment/Suite Number for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.aptNumber | Manufacturer / Lab {#} / POC Apt/Suite Number | |
| 2010 | The Country for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.country | Manufacturer / Lab {#} / POC Country | |
| 2011 | The City for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.city | Manufacturer / Lab {#} / POC City | |
| 2012 | The State/Province for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.stateProvince | Manufacturer / Lab {#} / POC State/Province | |
| 2013 | The Zip/Postal Code for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.postalCode | Manufacturer / Lab {#} / POC Zip/Postal Code | |
| 2014 | The Phone Number for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.phone | Manufacturer / Lab {#} / POC Phone | |
| 2015 | The Email Address for the <TRADE_PARTY_TYPE> is invalid. | <TRADE_PARTY_TYPE>.email | Manufacturer / Lab {#} / POC Email | |
| 2016 | The Small Batch Manufacturer ID for the manufacturer is invalid. | manufacturer.sbmId | Small Batch Manufacturer CPSC ID | |
| 2019 | The Alternate ID for the <TRADE_PARTY_TYPE> is already being created in a previous bulk row. | <TRADE_PARTY_TYPE>.alternateId | Manufacturer / Lab {#} / POC Alternate ID | Keep Is New? = Y on the first row only; later rows reuse the ID with N. |
| 2020 | The GLN for the <TRADE_PARTY_TYPE> is already being created in a previous bulk row. | <TRADE_PARTY_TYPE>.gln | Manufacturer / Lab {#} / POC GLN | Keep Is New? = Y on the first row only; later rows reuse the GLN with N. |
| 2022 | The Point of Contact for Test Results Records type is invalid. | poc.type | Point of Contact (POC) for Test Result Records | Importer, Manufacturer, Laboratory, Broker or Other. |
| 2023 | The Laboratory Type for the <LAB_NUMBER> is invalid. | labs[#].type | Lab {#} Type | ITL, LAB or NOL. Check it |
| 2024 | The Alternate ID for the <TRADE_PARTY_TYPE> was not found. | <TRADE_PARTY_TYPE>.alternateId | Manufacturer / Lab {#} / POC Alternate ID | No party with that ID exists yet: create it with Is New? = Y and its details. |
| 2025 | The GLN for the <TRADE_PARTY_TYPE> was not found. | <TRADE_PARTY_TYPE>.gln | Manufacturer / Lab {#} / POC GLN | No party with that GLN exists yet: create it with Is New? = Y and its details. |
| 2026 | No Labs or Exclusions were specified. | N/A | Lab 1 Type and Lab 1 Citation Codes | Every certificate needs at least one lab entry with a citation or testing exclusion code. Check it |
| 2027 | Lab <#> was not found. | labs[#].cpscId | Lab {#} CPSC-ID | The 4-digit CPSC lab ID is not known to the Registry. Check it against the accepted-lab list. Check it |
| 3002 | Lab <#> has an invalid Test URL. | labs[#].testURL | Lab {#} Test URL | |
| 3003 | Lab <#> has an invalid Test Report ID. | labs[#].testReportId | Lab {#} Test Report ID | |
| 3004 | Lab <#> has an invalid Test Report Access Key. | labs[#].testReportAccessKey | Lab {#} Test Report Access Key | |
| 3005 | Lab <#> has an invalid Component Description. | labs[#].componentDescription | Lab {#} Component Description | |
| 3006 | Lab <#> could not find citation <#>. | labs[#].citationCodes | Lab {#} Citation Codes | The code is not in CPSC's citation code list. Excel may have dropped a trailing zero (4.10 became 4.1). Check it |
| 3007 | Lab <#> does not have a citation specified. | labs[#].citationCodes | Lab {#} Citation Codes | Add at least one code to that lab's Citation Codes. Check it |
| 3008 | Testing exclusion code not recognized. | exemptions | Lab {#} Citation Codes of a lab whose type is NOL | The code is not in CPSC's testing exclusion list. Check it |
Source: Error Code Dictionary, eFiling API Specifications Document V4 (CPSC library date 2026-01-22), read 2026-11-10. Code, message and error field are CPSC's.
How to read a code
1000-1999: Certificate data errorsCPSC eFiling API Specifications V4 (January 2026)
2000-2999: Trade party data errorsCPSC eFiling API Specifications V4 (January 2026)
3000-3999: Citation, exclusion and testing information errorsCPSC eFiling API Specifications V4 (January 2026)
- CPSC writes placeholders between angle brackets. <TRADE_PARTY_TYPE> becomes manufacturer, labs[#] or poc in a real response.
- Codes 1005, 1006, 1026, 1027, 2001, 2017, 2018, 2021 and 3001 are not in the dictionary.
- The "Template V3 column" and "Usual cause" columns are this site's reading: the API field names line up with the CSV columns, but CPSC publishes no table that pairs them.
- These are the errors of the API's /import endpoint. CPSC does not publish the wording the CSV import screen shows, so a CSV upload may word the same problem differently.
Catch them before the Registry does
Most of these come from a format slip: a date Excel rewrote, a code that lost its zero, a lab ID that is not on the list, a trade party created twice. The validator checks each of them row by row in your browser.
Questions
What does CPSC eFiling error 2027 mean?
Error 2027 is "Lab <#> was not found", on the field labs[#].cpscId. The 4-digit CPSC lab ID given for that lab is not known to the Product Registry.
What does CPSC eFiling error 3006 mean?
Error 3006 is "Lab <#> could not find citation <#>", on the field labs[#].citationCodes. A citation code given for that lab is not in CPSC's citation code list.
What do errors 2019 and 2020 mean?
Error 2019 is "The Alternate ID for the <TRADE_PARTY_TYPE> is already being created in a previous bulk row" and 2020 says the same for a GLN. The same new trade party is being created on more than one row of the file.