Reference
v2.0.0
Environments
The following environment instance URLs will be provided for development, testing and final production integrations. Please note the current status of each environment instance.
- Demo Server: https://api.demo.bomcheck.com/v2 (ACTIVE)
- Production Server: https://api.bomcheck.com/v2 (ACTIVE)
Authorization
Authentication and authorization via Bearer API tokens issued per company account and delivered by your BOMcheck service account manager. The token must be present in the Authorization header when making requests to BOMcheck API v2 endpoints:
Authorization: Bearer <token>
For more information about the use of Bearer token authentication, please see:
Submissions
Tiered Usage
Request calls made to all Submission endpoints will count towards your API tiered usage allowance. For more info please see Usage Allowance.
POST XML Upload
/submissions/xml
Launch BOMcheck functionality by uploading relevant IPC 1752 XMLs in the available class formats (more info in the XML Files section). Functional availability (per Scope Roadmap):
- Request Supplier Declarations: Upload 1752A/B Class C or D in Request/Reply mode.
- Create an RCD: Upload 1752A/B Class C in Distribute mode (coming soon).
- Create an FMD: Upload 1752A/B Class D in Distribute mode (coming soon).
Returns a SubmissionStatusDto
containing a unique submission number which can be used to poll the GET Submission Status endpoint to retrieve the status of your submission.
Request Body
The POST request body should be IPC 1752 XML raw content information in line with the IPC Material Declaration Standard and conform to Content-Type: application/xml
.
If the uploaded XML file passes initial HTTP checks the contents will be validated with any validations being available as part of the SubmissionStatusReport
object.
Request Process
Responses
SubmissionStatusDto (202 Accepted)
{
"submissionNumber": "c039b3142422",
"statusUrl": "https://api.bomcheck.com/v2/submissions/c039b3142422",
"reportUrl": "https://app.bomcheck.com/apiv2/submissions/c039b3142422"
}
Please also see HTTP Responses.
POST Supplier Request
/submissions/request
In Development
Please note the simplified Supplier Request endpoint is currently in development.
Simplified endpoint to easily launch supplier declaration requests via JSON payload without the need to construct and attach a valid IPC XML in Request/Reply mode. Follows request response flow of the POST XML Upload endpoint.
Request Example
{
"supplierDuns": "111111110", // Required, valid supplier DUNs
"supplierEmail": "supplier@bomcheck.net", // Required, valid supplier authorizer email address
"contactCc": "jbloggs@acme.com", // Optional, CC email must exist in BOMcheck
"partNumbers": ["ABC123", "DEF456", "XYZ999"], // Required, array of string part numbers
"partNumberOrigin": "itemNumber", // Optional, "itemNumber" = supplier part numbers (default), "requesterItemNumber" = our part numbers
"formatClass": "requestCthenD", // Optional, "C", "D" or "requestCthenD" (default)
"confidentiality": false, // Optional, Boolean true or false (default)
"regulationLists": ["EUROHS-0508", "EUREACH-0624", "Prop_65_substances", "BOMcheck_PFAS_List"], // Required, valid BOMcheck supported substance list identities
"respondByDate": "2026-01-01", // Required, ISO8601 formatted date string as YYYY-MM-DD
"message": "We request FMDs be made where possible. Yours faithfully ACME Electronics." // Optional, text message
}
GET Submission Status
/submissions/{submissionNumber}
Returns a SubmissionStatusReport
containing information on the current processing status of a previous submission to the POST XML Upload endpoint.
URI (Path) Parameters
submissionNumber
- Type: String
- Required: Yes
- Description: Returned as an attribute of the
SubmissionStatusDto
object or obtained from the BOMcheck API dashboard user interface. Should be provided as a query string parameter in the GET request URL.
Request Process
Responses
SubmissionStatusReport (200 OK)
{
"status": "PENDING",
"filename": "Partnumber12345.xml",
"submissionNumber": "c039b3142422",
"reportUrl": "https://app.bomcheck.com/apiv2/submissions/c039b3142422",
"refValue": "005056b7-b57b-4ed9-b1ae-c99fb9dec1e7",
"validations": [
{
"context": "175x:ZZZZZZZZZZZZZZZZ-AAAAAAAAAAA",
"level": "FAIL",
"code": "BR068"
}
],
"refType": "Part itemNumber",
"submissionDate": "2019-10-11T10:58:00.726928+03:00",
"dataUuid": "anyname.xml"
}
Please also see HTTP Responses.
Download
Tiered Usage
Request calls made to all Consume endpoints will count towards your API tiered usage allowance. For more info please see Usage Allowance.
GET Download
/download
Download supplier part compliance declaration data in IPC 1752 industry standard XML or BOMcheck detailed CSV file formats (more info in XML Files).
Query Parameters
format
- Type: String
- Required: Yes
- Description: Specifies the file format of the requested download.
- Valid Values:
- "1752A" = IPC XML file
- "1752B" = IPC XML file
- "CSV" = BOMcheck detailed CSV file
- Example:
/download?format=1752B
formatClass
- Type: String
- Required: No
- Default: "C"
- Description: Optional parameter specifying the IPC class of the requested download (Class C or Class D). If the requested format is CSV the class parameter will be ignored.
- Valid Values:
- "C" = Class C RCD
- "D" = Class D FMD
- "checkDthenC" = Class D if available, Class C as fallback
- Example:
/download?format=1752B&formatClass=D
supplier
- Type: String
- Required: Yes, parameter must be present with a valid value unless
partNumbers
parameter is present with a valid value. - Description: Unique nine-digit DUNS number identifying the target supplier. DUNs number must match exactly a supplier DUNs number available in BOMcheck, fuzzy search matching is not supported over API.
- Example:
/download?supplier=123456789
partNumbers
- Type: Array of strings
- Required: Yes, parameter must be present with a valid value unless
supplier
parameter is present with a valid value. - Description: Allows for download of compliance data for target part numbers. Part numbers must match exactly part numbers available in BOMcheck, fuzzy search matching is not supported over API.
- Example:
/download?partNumbers[]=ABC123&partNumbers[]=DEF456
startDate
- Type: ISO8601 formatted date string as YYYY-MM-DD
- Required: No
- Description: Optional parameter allows download of compliance data with an Approval Dates after the given start date.
- Example:
/download?partNumbers[]=ABC123&startDate=2020-01-01
Request Process
Responses
Download Response (200 OK)
Successful requests will returns a ZIP archive (Content-Type: application/zip
) containing one or many IPC XML files matching the specified request criteria. Files will conform to the following IPC XML examples:
Example XMLs
Please also see HTTP Responses.
Integration Data
In Development
Please note all Integration Data endpoints are currently in development.
Please see the Scope Roadmap for delivery timeline.
GET Substance Lists
/integration/substances
Retrieve BOMcheck supported substance list, substance category and CAS number data.
GET Exemption Lists
/integration/exemptions
Retrieve BOMcheck supported substance exemptions.
GET Supplier Data
/integration/suppliers
Retrieve BOMcheck supplier data including DUNs numbers and authorised contact details.
Query Parameters
All Integration Data endpoints accept optional query parameters in the GET request URL to allow appropriately formatted responses.
format
- Type: String
- Description: Specifies the file format response type.
- Required: No
- Default: "json"
- Valid Values: "json", "xml"
- Example:
/integration/suppliers?format=xml
output
- Type: String
- Description: Specifies the behaviour of the response type to either trigger a file download or return the content directly in the response.
- Required: No
- Default: "content"
- Valid Values: "content", "file"
- Example:
/integration/suppliers?format=xml&output=file
Meta Data
GET Ping API
/ping
Check the availability of the API.
Responses
{
"message": "OK",
"documentation": "https://docs.bomcheck.com/en/api-docs/v2/",
"status": "https://status.bomcheck.com/"
}
Please also see HTTP Responses.
GET Tier Quota
/quota
Check my organisations current API tier allowance and usage (see Tiered Usage).
Responses
{
"company": {
"name": "ACME Electronics",
"duns": "123456789"
},
"api:consume": {
"authorized": true,
"tier_limit": 1000,
"tier_usage": 123
},
"api:request": {
"authorized": true,
"tier_limit": 1000,
"tier_usage": 456
},
"api:declare": {
"authorized": true,
"tier_limit": 1000,
"tier_usage": 789
}
}
Please also see HTTP Responses.