Sources
Every code, rule, limit and date on this site, and where it came from.
| What it supports | Source | Read |
|---|---|---|
| List of eFiling documents, their versions and library dates (CSV Template V3 and CSV User Guide V3 dated 2025-12-18; API Specifications V4 dated 2026-01-22; HTS list and citation/exclusion/disclaim guidance dated 2026-09-30; mail guidance dated 2026-10-20). | cpsc.gov | 2026-11-10 |
| The 83 column headers of the bulk upload template, their order and spelling, and CPSC's three example rows. | cpsc.gov | 2026-11-10 |
| CSV rules: required, contingent and optional columns; accepted values; length limits; dates as MM/CCYY and MM/DD/CCYY; no commas in any value; only CSV is accepted; codes separated by semi-colons; NOL lab entries carry testing exclusion codes; extra labs by adding Lab 3... columns; trade parties referenced by GLN or Alternate ID; upload steps; several test report details (Lab {#} Test Report ID, Test URL, Test Report Access Key) are separated with a semi-colon (p.10); "Each unique lab provided for a certificate must be numbered, starting at 1" (p.9); "If any of these column headers are missing, the upload attempt will fail" (p.7). | cpsc.gov | 2026-11-10 |
| ITL means a CPSC-accepted laboratory and needs a valid 4-digit CPSC ID; lot number and 'assigned by' are required together; phone length 20 in the API; the Registry currently requires a Last Test Date even for exclusion-only certificates (the upload date can be used); the Product Registry API error list: 2027 "Lab <#> was not found" (labs[#].cpscId), which is why a 4-digit lab ID missing from the accepted-laboratory list is a row error, and 3006 "Lab <#> could not find citation <#>" (labs[#].citationCodes), cited on the 4.10 page. These are API errors; the wording the CSV import screen shows is not published. | cpsc.gov | 2026-11-10 |
| Last Test Date is required when a lab of type ITL or LAB is given; POC Alternate ID or GLN required when the point of contact is Other. | cpsc.gov | 2026-11-10 |
| 589 HTS codes flagged CP1 (certificate data may be needed) or CP2 (certificate data is required), each with a product category; the change log; the statement that the list does not cover every HTS code where a certificate may be required. Category names are copied as CPSC spells them, including "Immitation Jewelry". | cpsc.gov | 2026-11-10 |
| 123 citation codes with CPC/GCC marks and notes, 6 'No Certificate Required' entries and 53 testing exclusion codes with the citation each applies to. Codes such as 4.10, 4.30 and 4.40 are stored as numbers in the workbook; they are read with the cell's display format. The workbook is titled "September 2026 Update" while its Document Library entry is dated 2025-12-18; pages show both, as "workbook titled September 2026 Update (CPSC library date 2025-12-18)". | cpsc.gov | 2026-11-10 |
| How citation codes are formed; when to use testing exclusion codes; Disclaim A and Disclaim B and their intended use codes. | cpsc.gov | 2026-11-10 |
| eFiling took effect 2026-07-08 for most imported regulated consumer products and takes effect 2027-01-08 for Foreign Trade Zone entries; the seven data elements; Full versus Reference message set; the Product Registry is not required for Full message sets; no Section 321 (de minimis) exemption; CPSC does not at this time intend to ask CBP to deny entry solely for failure to eFile and ACE initially sends warnings; disclaim messages are optional; consumer-to-consumer sales are commercial transactions. | cpsc.gov | 2026-11-10 |
| Mail shipments: eFiled certificates required for mail shipments, by Full or Reference message set, from 2027-01-20 (Entry Type 13). | cpsc.gov | 2026-11-10 |
| Certificate content (seven items), the attestation wording printed on the PDF certificates, testing exclusions named in place of test date and place, one product per certificate, de minimis entries included, certificates available within 24 hours on request; 16 CFR 1110.9(a): "An eFiled finished product certificate must be in the English language" (the row check for non-Latin letters and emoji); 16 CFR 1110.11(c): an exclusion is identified "in addition to listing all applicable rules" (the check for an exclusion code whose citation is not on the row). | ecfr.gov | 2026-11-10 |
| A children's product is one designed or intended primarily for children 12 or younger; a CPC rests on tests by a CPSC-accepted third-party laboratory; no specific certificate template or format is required. | cpsc.gov | 2026-11-10 |
| 739 CPSC-accepted testing laboratories with their 4-digit Lab IDs, names and locations (the page's own 'View all laboratories' then 'Download Data'). | cpsc.gov | 2026-11-10 |
| Naming of the parts of an HTS code: 8-digit U.S. subheadings are the legal rate lines and the 10-digit level is the statistical reporting number. Read from a search-result summary of the USITC page; the page itself returned an access error. | usitc.gov (search summary only) | 2026-11-10 |
| Excel's General format shows numbers of 12 or more digits in exponential (scientific) notation, quoted on /csv-template-v3-errors/; a value such as 8.85011E+11 in an identifier column is therefore treated as a damaged number and refused. | support.microsoft.com | 2026-11-10 |
| Excel keeps a maximum of 15 significant digits; later digits of a longer number become zeros. Basis for the check on identifiers of 16 or more digits that end in zeros. | learn.microsoft.com | 2026-11-10 |
| 'Lab {#} is Component?' accepts True / False / Yes / No (Field Details table, p.10). Re-read 2026-11-10 from a fresh download. The validator writes Y as Yes and N as No as a listed change and refuses 1, 0 and any other value. | cpsc.gov | 2026-11-10 |
Not verified
- The exact error messages the Product Registry shows on its import review screen. CPSC does not publish them; the site explains the rule behind each problem instead.
- Which punctuation the Registry accepts in fields the guide calls 'Alphanumeric'.
- Whether country must be a name or a code. The guide says only 'Alphanumeric, 50'.
- Any mapping from an HTS code to citation codes. CPSC publishes none; the site shows a labelled text match only.
- Whether the Registry accepts a quoted CSV field or a UTF-8 byte order mark. The built file has neither: double quotes are removed from values as a listed rewrite, and the builder refuses to write a cell that would need quoting.
- Which text encoding the Registry expects. The built file is UTF-8 without a byte order mark. Input saved by Excel as Windows-1252 is detected (it is not valid UTF-8) and converted; that detection is this tool's own logic, not a CPSC rule.
- Whether the CSV import shows the API's error 2027 or 3006 for an unknown lab ID or citation code. The API specification lists them; the CSV guide does not list import errors.
- Where the CSV template wants a rule that is excluded from testing and was not tested by any lab. 16 CFR 1110.11(c) says the rule is still listed; the CSV guide does not say in which column, so the tool raises a "Check", not an error.
- Whether the Registry accepts dates without leading zeros. CPSC's template examples are unpadded (6/20/2025) while the guide says MM/DD/CCYY; the tool accepts both and writes the padded form.
- The year range 1900 to 2100 for dates is this tool's sanity limit, not a CPSC rule.
- How the Registry treats a value that starts with =, +, - or @. The V3 file keeps such values as typed; only the broker sheet, which is opened in a spreadsheet, gets a leading apostrophe.
- Which legacy text encoding wrote a CSV file that is not UTF-8. The file does not say; the validator reads it as Windows-1252, shows every value with a non-ASCII character on its row, and makes values that look like another encoding (GBK, Big5, Shift-JIS, Mac Roman) row errors. A Mac Roman letter that lands on an apostrophe (for example the i-acute in a name) is shown for confirmation, not refused.
- Whether the Product Registry accepts a placeholder such as N/A as a Test Report ID. CPSC's guide makes the column optional; requiring a real-looking report ID (three or more characters, not a stand-in word) is this tool's own rule.
- Whether the Registry accepts 'Y' or 'N' for 'Lab {#} is Component?'. The guide lists only True / False / Yes / No, so the built file carries only those four.
- Rows with too few cells. A row with more cells than the header is reported as shifted and not checked further; a row that lost a value, so that everything after it moved one column left, cannot be told from a row with blank cells and is only caught by the field checks.
- Text that was encoded twice (for example é for é) is recognised by its pattern, which is this tool's own rule; the original letters are not recovered and the row is an error.
- What the Product Registry does with a row whose Is New? is N when no record with that ID exists, with two different addresses under one trade party ID, or with a reference that comes before the row that creates the party. The CSV guide says only that Y is required the first time and that later rows reuse the ID. The tool therefore holds back a row whose creating row is not in the built file, holds back rows that give one ID two different sets of details, and raises a "Check" for a reference placed above its creating row; none of this was tested against the Registry.
Fonts and code
- IBM Plex Sans (variable, Latin subset) via @fontsource-variable/ibm-plex-sans 5.3.0 OFL-1.1 (font)
- IBM Plex Mono 400 (Latin subset) via @fontsource/ibm-plex-mono 5.3.0 OFL-1.1 (font)
- No JavaScript libraries are shipped. The CSV parser, .xlsx reader, validator and PDF writer are written for this site.
Site built 2026-11-10.