LabTestUploadRequestBody
Upload/Update Pre-Created Lab Test request body.
Product list (items / styles / materials) is optional and type-specific:
only the Product list matching the Lab Test Form's Product Type may be provided
(items for Item, styles for Style, materials for Material). Omit the Product
list entirely if no Product needs to be updated; if provided, send ALL Products for
the test because the whole list is REPLACED.
- Item
- Style
- Material
2024-04-24items object[]nullable
Optional Item list. Only applicable when the Lab Test Form's Product Type is Item. Omit this field entirely if no Product needs to be updated. If provided, send ALL Items for the test because the whole Item list is REPLACED.
Possible values: <= 255 characters
Possible values: <= 255 characters
Possible values: <= 255 characters
Possible values: <= 255 characters
Possible values: <= 255 characters
Possible values: <= 255 characters
Possible values: <= 255 characters
Possible values: Value must match regular expression ^[A-Z]{2}$
Sample size. Used only when samples is omitted and the Product has no stored samples; otherwise it is derived from the sample count.
Possible values: <= 255 characters
samples object[]
Samples of this Product, each with its own details. Required when the Lab Test Form includes the Sample Information component.
Send the complete list, not a patch. Samples are matched by sampleName, and any
stored sample missing from the list is deleted. sampleSize then becomes the sample
count and unit the samples' shared unit, overriding both sent on the Product.
sampleName must be unique within the Product, and all samples must share one unit.
Sample name. Must not be blank (surrounding whitespace is trimmed) and must be unique within the Product.
Possible values: <= 255 characters
Lot ALot / batch number
Possible values: <= 255 characters
LB-2026-001Color
Possible values: <= 255 characters
NavySample amount
Possible values: >= 0
2Unit of the sample amount. All samples of a Product must share the same unit.
Possible values: <= 255 characters
pcsSample description
Front panel swatchtestResultAttachments object[]required
f85774e7-cb3a-4bf3-ab8a-92e22bed41actestPackages object[]nullable
testProperties object[]required
Possible values: [pass, fail, data, na]
Possible values: <= 255 characters
items object[]nullable
testConditions object[]nullable
Possible values: [pass, fail, data, na]
samples object[]nullable
Test condition readings and the samples each one applies to.
Send only one of these two fields, never both:
sampleNameswhen the Lab Test Form includes the Sample Information component.sampleNumberswhen it does not.
The reading recorded for these samples.
Grade 4-5The outcome recorded for these samples.
Possible values: [pass, fail, data]
passSamples identified by position in the Product's sample list, counting from 1. A number greater than the Product's sample size is rejected.
[1,2]Samples identified by their sampleName on the Product. Each name must match one of the Product's samples: names are checked against the samples sent in the same request when the request carries the Product, and against the Product's stored samples otherwise.
["Lot A","Lot B"]followUpAction objectnullable
attachments object[]nullable
Possible values: [critical, major, minor]
overallResult objectrequired
Possible values: [pass, fail, data]
passquestionnaire objectnullable
forTestExecution object[]required
labAgency object
Possible values: <= 255 characters
Possible values: <= 255 characters
iso alpha-2 country code
Possible values: <= 2 characters
Possible values: <= 255 characters
Possible values: <= 50 characters
contacts object[]
Possible values: <= 255 characters
Possible values: <= 255 characters
Possible values: <= 80 characters
Possible values: <= 80 characters
certifications object[]
Optional Certifications, keyed by the Item ID. An entry applies to one Item, or to every Item in its itemId list. Each ID must be an Item on the Lab Test (after the Item list in this request, if any, is applied), and may appear only once across all entries. Omit to leave all Certifications unchanged. When sent, the list REPLACES the Certifications of the Lab Test: an Item that is not listed has its Certifications cleared, so [] clears every Item. Within an entry, a field that is omitted is left unchanged, a field sent as null is cleared, and every field that is sent must be active in the Lab Test Form setup.
itemId string | string[]required
Item ID of an Item on the Lab Test, or a list of Item IDs to apply this entry to several Items at once.
- string
- string[]
ITEM-001Certificate Type value code, one of the values allowed in the Lab Test Form setup. null clears it.
GCCCitation Code value codes allowed in the Lab Test Form setup. [] or null clears them.
["4.1"]Exemption Code value codes allowed in the Lab Test Form setup. [] or null clears them.
["4.14.6"]CPSC eFiling Readiness. null clears it.
Possible values: [not_required, not_ready, ready]
readyProduct Registry Status. null clears it.
Possible values: [filed, not_filed]
not_filedcertificateFiles object[]nullable
The Product's certificate files. Omit to leave them unchanged. [] or null deletes them all. If provided, the Product's whole certificate file list is REPLACED: files whose fileId is not listed are deleted. A file the Product already has is kept, and its certificateId and issueDate updated, when its fileId is sent again.
Storage API file ID of the certificate file.
7d2c1e3a-5f4b-4c8e-9a61-2b3c4d5e6f70Certificate ID. Omit to leave it unchanged. null or an empty string clears it. Only accepted when Certificate ID is active in the Lab Test Form setup.
Possible values: <= 255 characters
GCC-2026-0001Certificate Issue Date (YYYY-MM-DD). Cannot be a date in the future (UTC). Only accepted when Certificate Issue Date is active in the Lab Test Form setup. Omit to leave it unchanged. null clears it.
2026-10-01{
"reportNumber": "string",
"originalReportNumber": "string",
"revisionNumber": 0,
"reportIssueDate": "2024-04-24",
"items": [
{
"itemId": "string",
"itemName": "string",
"itemDescription": "string",
"styleId": "string",
"styleName": "string",
"color": "",
"size": "string",
"originCountry": [
"string"
],
"sampleSize": 0,
"unit": "string",
"samples": [
{
"sampleName": "Lot A",
"lotBatchNumber": "LB-2026-001",
"color": "Navy",
"sampleAmount": 2,
"unit": "pcs",
"sampleDescription": "Front panel swatch"
}
]
}
],
"testResultAttachments": [
{
"fileId": "f85774e7-cb3a-4bf3-ab8a-92e22bed41ac",
"label": "string"
}
],
"testPackages": [
{
"id": "string",
"name": "string",
"type": "string"
}
],
"testProperties": [
{
"id": "string",
"name": "string",
"testPackageId": "string",
"testCategoryId": "string",
"testSubcategoryId": "string",
"testMethod": "string",
"result": "pass",
"reviewResult": "string",
"items": [
{
"itemId": "string",
"testConditions": [
{
"id": "string",
"name": "string",
"result": "pass",
"samples": [
{
"data": "Grade 4-5",
"result": "pass",
"sampleNumbers": [
1,
2
],
"sampleNames": [
"Lot A",
"Lot B"
]
}
],
"followUpAction": {
"comment": "string",
"attachments": [
{
"fileId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"label": "string"
}
],
"failureCategoryId": "string",
"failureCategoryName": "string",
"failureId": "string",
"failureName": "string",
"failureSeverity": "critical"
}
}
]
}
]
}
],
"overallResult": {
"result": "pass",
"reviewResult": "string"
},
"questionnaire": {
"forTestExecution": [
{
"integrationKey": "string",
"values": [
"string"
]
}
]
},
"labAgency": {
"localOrganizationId": "string",
"address": "string",
"city": "string",
"country": "string",
"province": "string",
"postal": "string",
"contacts": [
{
"name": "string",
"telephoneNumber": "string",
"mobileNumber": "string"
}
]
},
"certifications": [
{
"itemId": "ITEM-001",
"certificateType": "GCC",
"citationCodes": [
"4.1"
],
"exemptionCodes": [
"4.14.6"
],
"cpscEfilingReadiness": "ready",
"productRegistryStatus": "not_filed",
"certificateFiles": [
{
"fileId": "7d2c1e3a-5f4b-4c8e-9a61-2b3c4d5e6f70",
"certificateId": "GCC-2026-0001",
"issueDate": "2026-10-01"
}
]
}
]
}