Introduction: Hellios API
Overview
Welcome to the Hellios API documentation.
The Hellios API has been built to allow Hellios' customers to access their supplier questionnaire information programmatically without needing to sign into the Hellios portal.
The Hellios API provides access to validated and published supplier information, including:
- Questionnaire and document statuses
- Contact information
- Risk Level
- HScore & Financial information
- Renewal date
- All answers to validated and published questionnaire questions
- All validated and published documents uploaded by the supplier
The API is built around four core methods that enable the customer to access:
- A list of all suppliers, both those tagged to their organisation and the wider pool within the community
- All information validated and published by Hellios for an individual supplier, including answers to specific questions
- All validated and published documents uploaded by each supplier
- A list of report labels
We envisage customers using the API to in one of two ways:
- To access validated and published supplier information on demand
- To download and locally cache validated and published supplier information in bulk
In both scenarios, the primary objective is to allow customers to integrate supplier information validated and published on the Hellios platform into their own systems.
Example Use Cases
The examples below show just some of the ways the Hellios API could be used.
In each case, the information could be for all suppliers on the Hellios platform or just those suppliers tagged to your organisation
- Get status information for suppliers
- Get validated and published questionnaire answers for suppliers
- Find suppliers whose information has recently changed
- Get an individual supplier's status information
- Get an individual supplier validated and published questionnaire answers
- Identify groups and volume of your suppliers based on common status (eg. Completed, Expired etc)
- Source a group of suppliers based on particular answers given / information provided
- Shortlist suppliers based on product/service code(s)
- Download documents for a specific supplier or for groups of suppliers (eg. insurance certificates, policy documents etc)
- Buyer specific information entered by the buyer on a supplier record
Principles
The API adheres to the principles of REST. It uses resource-oriented URLs, accepts form-encoded request bodies and returns JSON-encoded and XML-encoded responses. It uses standard HTTP response codes, authentication, and verbs, although please note that the Hellios API is read-only so only the GET HTTP verb is applicable.
Data format
Data can be returned from the Hellios API in either JSON or XML format to enable the widest possibility of integrations.
Direction
The Hellios API is READ-ONLY. Data can only be consumed, no changes or updates can be made via the API.
Throttling & Limits
The Hellios API enforces the following limits per customer:
Rate/hr -> 3600
- This is the max number of api calls within 1 hour and equals a steady state rate of 1 request per second.
Burst -> 5
- This is the max number of concurrent requests and equals a maximum of 5 requests per second.
Environments
The Hellios API is available for both Staging and Production environments. Separate authentication credentials will be required for each environment.
By providing access to the Hellios Staging environment, customers are able to post test data when developing their integration.
Authentication
Credentials
To access the Hellios API, you will need the following five credentials:
- Authentication URL
- External API Base URL
- Client ID
- Client Secret
- API Key
These credentials will be issued to you by Hellios.
Authentication process
Regardless of whether you are connecting to the Staging or Production environment, the method for authentication is the same, but please note that Staging and Production environments each require their own set of credentials.
The authentication process flow is summarised in the following diagram:
Step 1: Authenticate
Authentication is through the Hellios authentication server and requires the following credentials to be provided:
- Client ID
- Client Secret
The API call configuration is as follows:
URL: xxxxxxxx
Method: POST
Headers:
Content-Type application/x-www-form-urlencoded
Body:
grant_type=client_credentials&client_id={CLIENT ID HERE}&client_secret=
{CLIENT SECRET HERE}
Step 2: Authentication Token
If the request is successful you will receive an authentication token which you can use to get data from the Hellios API.
Step 3: Making an authenticated call to get data from the Hellios API
To make a call you will require the following:
- The token generated in step 1
- An API key which will be supplied by Hellios
The following sample code shows how the GetSuppliers method would be called for example. Note the 'Accept' header being used to specify whether the response is returned as XML or JSON.
URL: /v1_0/buyer/supplier?pageIndex=1&pageSize=10
Method: GET
Headers:
Authorization Bearer {Token generated on step 1}
x-api-key {Supplied by Hellios}
Accept application/xml OR application/json
Body:
Step 4: API response
The response will be received in the format requested in the Accept header (either XML or JSON.)
Expired authentication
If the response status is 401 unauthorized a new authentication request must be made using step 1 and step 2.
Troubleshooting other 401 response statuses
401 - Unauthorized
Check client secret and client id.
401 - Forbidden
Check api key is correct
Methods
The Hellios API includes four read-only methods, as follows:
GetSuppliers
GetSupplierDetails
GetDocument
GetReportLabels
GetSuppliers
The GetSuppliers
method can be used to retrieve a list of suppliers from the Hellios platform via the external API.
The method accepts various parameters to allow you to:
- Search for a specific group of suppliers
- Choose between all suppliers or only those tagged to your organisation
- Include 'expired' suppliers
GetSuppliers
is the typical starting point for most interactions with the Hellios API. The response includes the externalId
value for each supplier, which is required when using the GetSupplierDetails
method.
Endpoint
GET /v1_0/buyer/supplier
Parameters
The GetSuppliers
method accepts the following parameters.
searchTerm
Can be used to search for a specific group of suppliers or an individual supplier. The searchTerm
parameter accepts alphanumeric characters to search for
- Supplier name
- Location
- Company registration number
- Trading name, trading name2 or trading name 3
- Vendor ID to search for suppliers tagged to your organisation
- Hellios ID to search for an individual supplier.
When searching against supplier name(s), the search will look for a contained match to the characters specified in the search term, within any part of the supplier name. Please note: the search does not accept wildcard characters.
Type: String
Value(s): Alphanumeric characters (min 3 alphanumeric characters), Vendor ID or Hellios ID
Requirement: Optional
onlyTagged
To get data for only those suppliers tagged to your organisation, set this parameter to True.
Type: Boolean
Value(s): False (default), True
Requirement: Optional (if not specified, will default to False)
includeExpired
To include suppliers whose information has expired within your search results, set this parameter to True.
Type: Boolean
Value(s): False (default), True
Requirement: Optional (if not specified, will default to False)
We recommend specifying a page size to limit the total number of results returned via each API call. Use this parameter to set the number of records to be returned per page. All responses will include the number of pages of results available. Please note: pageSize
is a mandatory field.
Type: Integer ($int32)
Value(s): Numeric Integer (min. 1 / no max.)
Requirement: Required
pageIndex
Used in conjunction with the pageSize
parameter, pageIndex
allows a specific page of results to be returned. All responses will include the number of pages of results available. Please note: pageIndex
is a mandatory field.
Type: Integer ($int32)
Value(s): Numeric Integer (min. 1 / no max.)
Requirement: Required
GetSuppliers Response
Example JSON Response
{
"records": [
{
"externalId": "string",
"companyName": "string",
"location": "string",
"vendorId": "string",
"lastPublished": "2022-11-28T09:15:48.056Z",
"questionnaireStatus": "None",
"questionnaireRagStatus": "None",
"tagged": true,
"helliosId": "string",
"riskLevel": "None",
"documentRagStatus": "None",
"companyRegistrationNumber": "string",
"lastUpdate": "2022-11-28T09:15:48.056Z"
}
],
"totalNumberOfRecords": 0,
"totalNumberOfPages": 0,
"totalNumberOfTagged": 0
}
The GetSuppliers
method returns a collection of suppliers appropriate to the parameters specified when calling the API. For each supplier in the collection, the following attributes are returned.
GetSuppliers
also returns three additional attributes to assist with pagination of future API calls when utilising the pageSize
and pageIndex
parameters as set out above.
Attribute | Type | Description |
---|---|---|
records | SearchSuppliers.SupplierInfo[] | An array of suppliers that match the search criteria. |
totalNumberOfRecords | Integer | Number of supplier records returned in the results |
totalNumberOfPages | Integer | Number of pages of records returned |
totalNumberofTagged | Integer | Number of supplier records that are tagged to your organisation |
GetSupplierDetails
The GetSupplierDetails
method can be used to retrieve the information (questionnaire answers, statuses, document links) Hellios hold for a particular supplier.
It is designed to work in association with GetSuppliers
, and uses the externalId
value obtained through the GetSuppliers
response to identify which supplier to return data for.
Endpoint
GET /v1_0/buyer/supplierdetails/{supplierExternalId}
Parameters
The GetSupplierDetails
method accepts the following parameters.
supplierExternalId
Use supplierExternalId
to specify which supplier you want to retrieve information for.
Type: String
Value(s): externalId (obtained from GetSuppliers
method)
Requirement: Required
GetSupplierDetails Response
Example JSON Response
{
"supplier": {
"helliosId": "string",
"name": "string",
"latestHScore": {
"date": "2022-11-28T09:31:41.092Z",
"score": 0
},
"riskLevel": "None",
"smeLevel": "None",
"ragwStatus": "None",
"questionnaireStatus": "None",
"documentStatus": "None",
"overallStatus": "None",
"primaryContact": {
"firstName": "string",
"lastName": "string",
"jobTitle": "string",
"emailAddress": "string",
"phoneWork": "string",
"phoneMobile": "string"
},
"completionDeadlineDate": "2022-11-28T09:31:41.092Z",
"renewalDeadlineDate": "2022-11-28T09:31:41.092Z"
},
"specificFields": [
{
"id": "string",
"name": "string",
"type": "Document",
"options": [
{
"id": "string",
"text": "string",
}
],
"values": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fieldId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": "string"
}
],
}
],
"questionnaire": [
{
"reportLabel": "string",
"response": {
"values": ["string"],
"questionType": "None",
"repeatableGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
"document": {
"documentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fileName": "string"
},
"taxonomy": [
{
"taxonomyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"description": "string",
"code": "string"
}
]
},
},
"repeatableGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
]
}
The GetSupplierDetails
method returns all information held about the supplier requested. This includes core information, all statuses, questionnaire answers and document IDs. Please note: The response includes report labels, as they appear in the Hellios platform reporting tools UI. Report labels are similar, but not the same as the actual Questionnaire 'question' associated with each answer. To correlate an answer back to it's questionnaire questions, please use the GetAllReportLabels
method to retrieve a full list of report labels and corresponding questionnaire question text.
Attribute | Type | Description |
---|---|---|
supplier | GetSupplierDetails.SupplierDetails | Identification for the supplier, contact information and statuses |
specificFields | GetSupplierDetails.SpecificField[] | Fields/data that are defined by and specific to your organisation only (eg. Business units, comments.) These fields can be viewed in the Hellios platform via the 'Your information' screen. |
questionnaire | GetSupplierDetails.Question[] | An array of answers provided by the supplier when completing their questionnaire |
Please note: GetSupplierDetails
will only return validated and published data for suppliers.
Each response includes an element called "questionnaire" which contains the reportLabel (used to identify the question) and an answer. Each answer can be one of the following eight types:
- Free text
- Number
- Single select
- Date
- Multiple select (comma separated)
- True/False
- Document
- Taxonomy
The first six types are answers to a question given by the supplier when completing their questionnaire.
The Document type contains a unique identifier for an individual document associated to the supplier
The taxonomy type contains product/service codes selected by the supplier when completing their questionnaire
Examples
In the examples below, we have highlighted the answer values. For the first the six types, the answer is included within the "values" element. For documents, the answer is included in the "document" element and for taxonomy, the answer is included in the "taxonomy" element.
Free Text
{
"reportLabel": "1.1.3.1_Address1",
"response": {
"questionType": 1,
"repeatableGroupId": null,
"values": [
"Across the street, no 7"
],
"document": null,
"taxonomy": null
}
}
Number
{
"reportLabel": "1.3.6_CompAnnualRevenue",
"response": {
"questionType": 2,
"repeatableGroupId": null,
"values": [
"10000000"
],
"document": null,
"taxonomy": null
}
}
Single Select
{
"reportLabel": "1.1.3.6_Country",
"response": {
"questionType": 3,
"repeatableGroupId": null,
"values": [
"United Kingdom"
],
"document": null,
"taxonomy": null
}
}
Date
{
"reportLabel": "2.11.2.7_CEPlusExpiryDate",
"response":
{
"questionType": 4,
"repeatableGroupId": null,
"values": [
"2023-02-24T00:00:00.000+02:00"
],
"document": null,
"taxonomy": null
}
}
Multiple Select { "reportLabel": "1.4.2_SelectProviderTypes", "response": { "questionType": 5, "repeatableGroupId": null, "values": [ "Manufacturer", "Agent" ], "document": null, "taxonomy": null } }
True/False
{
"reportLabel": "2.11.2_AnnualIdentifyCritInfo",
"response":
{
"questionType": 6,
"repeatableGroupId": null,
"values": [
"false"
],
"document": null,
"taxonomy": null
}
}
Document
{
"reportLabel": "2.11.2.6_CEPlusCertUpload",
"response":
{
"questionType": 7,
"repeatableGroupId": null,
"values": null,
"document":
{
"documentId": "8505ef76-c265-4769-809b-cbc45e44bb6e",
"fileName": "pdf-test3.pdf"
},
"taxonomy": null
}
}
Taxonomy
{
"reportLabel": "1.4.1_SelectProductsServices",
"response":
{
"questionType": 8,
"repeatableGroupId": null,
"values": null,
"document": null,
"taxonomy": [
{
"taxonomyId": "98841548-93bb-47f6-b7c7-856e7a05e017",
"description": "Office Communications Equipment",
"code": "2.1.1"
}
]
}
}
Repeatable Groups
Some questions will include 'repeatable' answers, for example, financial information provided for the past three years would include the fields such as 'Revenue' and 'Gross Profit' for each financial year.
For this type of question, the answer will include a "repeatableGroupId" value as shown in the example below. Each group (in this case financial year) can be identified by a common "repeatableGroupId" value. In our example below, the 2022 'Financial Year', 'Revenue' and 'Profit/Loss' all contain the "repeatableGroupId" value '88b7a47b-af71-422a-872c-ffe5421f8efe'. Similarly, for the 2021 financial year values, the "repeatableGroupId" value is 'f822c705-4106-4839-b8a6-70b3d8d84287'.
{
"reportLabel": "2.3.1.1_FinancialYear",
"response": { "values": [ "2022" ], },
"repeatableGroupId": "88b7a47b-af71-422a-872c-ffe5421f8efe"
},
{
"reportLabel": "2.3.1.2_Revenue",
"response": { "values": [ "101" ] },
"repeatableGroupId": "88b7a47b-af71-422a-872c-ffe5421f8efe"
},
{
"reportLabel": "2.3.1.3_Profit/Loss",
"response": { "values": [ "10" ] },
"repeatableGroupId": "88b7a47b-af71-422a-872c-ffe5421f8efe"
}
{
"reportLabel": "2.3.1.1_FinancialYear",
"response": { "values": [ "2021" ], },
"repeatableGroupId": "f822c705-4106-4839-b8a6-70b3d8d84287"
},
{
"reportLabel": "2.3.1.2_Revenue",
"response": { "values": [ "202" ] },
"repeatableGroupId": "f822c705-4106-4839-b8a6-70b3d8d84287"
},
{
"reportLabel": "2.3.1.3_Profit/Loss",
"response": { "values": [ "20" ] },
"repeatableGroupId": "f822c705-4106-4839-b8a6-70b3d8d84287"
}
GetDocument
The GetDocument
method can be used to retrieve a specifc document related to a supplier (for example a supplier's Public Liability Insurance Certificate.) This method requires a document identifier to be provided, to identify the document required. Document IDs can be obtained using the GetSupplierDetails
method, detailed above.
Endpoint
GET /v1_0/buyer/supplier/document/{documentIdentifier}
Parameters
The GetDocument
method accepts the following parameters.
documentIdentifier
Use to specify which document you want to retrieve. The documentId value is a 16-digit, alphanumeric guid and will look similar to '1234-sdfsd-we34-QEW3'.
Type: String
Value(s): documentIdentifier (obtained from GetSupplierInformation
method)
Requirement: Required
GetDocument Response
The GetSuppliers
method returns the PDF file of the document requested.
Buyer Specific Fields
Please note that buyer specific fields can also be documents. In this instance, please use the GetDocument
method as per these instructions.
GetReportLabels
The GetReportLabels
method can be used to retrieve the actual question text that the supplier was presented with when providing their answers and information.
We recommend only using this method perodically as the data returned is large (all text for all questions is returned) and is purely for reference (lookup) purposes.
Typically this method would only be used when first building an integration with the Hellios API or when a new questionnaire is published, which currently happens perodically.
Endpoint
GET /v1_0/buyer/reportLabel
Parameters
The GetReportLabels
method does not require any parameters.
GetReportLabels Response
Example JSON Response
"questions": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"shortId": "string",
"content": "string",
"expiryDateForDocumentQuestion": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"answerType": "None",
"answerOptions": [
{
"value": "string"
}
],
"reportLabel": "string"
}
The GetReportLabels
method returns the following attributes.
Attribute | Type | Description |
---|---|---|
questions | GetReportLabels.Question[] | An array containing every question for the supplier |
How to use the Hellios API
In this section we'll walk through how to use the Hellios API in practice.
In most instances, the starting point will be to retrieve a list of suppliers using the GetSuppliers
method.
Aside from the pagination parameters, the GetSuppliers
method takes three other parameters that allow you to retrieve all suppliers, just the suppliers tagged to your organisation and even suppliers that have 'Expired'.
GetSuppliers
includes the following three parameters that you can set - searchTerm
, onlyTagged
and includeExpired
Here are some example scenarios to consider:
Example scenario 1: Bulk update supplier information
You want to update your systems with the latest supplier information from Hellios, but only for suppliers associated with your organisation.
searchTerm: N/A
- no need to specify a search term as you want all suppliersonlyTagged: True
- this limits the reponse to only include suppliers tagged to your organisationincludeExpired: True
- setting this to True ensures you bring back all relevant suppliers, including those that have expired
Next step: Use GetSupplierDetails
to return data for suppliers
Example scenario 2: Find information for a supplier
You want to find information for an individual supplier.
searchTerm: [Enter name of supplier]]
- use searchTerm to locate the supplier you want data foronlyTagged: False
- this is not relevant as you are searching for a specific supplierincludeExpired: True
- setting this to True ensures you bring back all suppliers, including those that have expired, in case the individual supplier you are looking for has expired
Next step: Use GetSupplierDetails
to return data for the specific supplier
Example scenario 3: Find suppliers with particular status and/or renewal date
You want to locate your organisation's suppliers with a particular status and/or renewal date.
searchTerm: N/A
- no need to specify a search term as you want all suppliersonlyTagged: True
- this limits the reponse to only include suppliers tagged to your organisationincludeExpired: True
- setting this to True ensures you bring back all relevant suppliers, including those that have expired
Next step: Use GetSupplierDetails
to return data for suppliers which you can then loop through to find those suppliers with a particular status and/or renewal date
Example scenario 4: Source group of suppliers based on answers given
You want to source a group of suppliers based on specific questions.
searchTerm: N/A
- no need to specify a search term as you want all suppliersonlyTagged: False
- set to false because you want all suppliers, not just those tagged to your organisationincludeExpired: True
- setting this to True ensures you bring back all relevant suppliers, including those that have expired
Next step: Use GetSupplierDetails
to return data for suppliers and loop through, using GetReportLabels
to determine which questions you want to check the data for.
Example scenario 5: Find suppliers whose documents have expired
You want to find all of your organisation's suppliers whose insurance documents have expired.
searchTerm: N/A
- no need to limit your search, you want to find all suppliersonlyTagged: True
- this limits the reponse to include only suppliers tagged to your organisationincludeExpired: True
- setting this to True ensures you bring back all relevant suppliers, including those that have expired, as they are still relevant to your requirement
Next step: Use GetSupplierDetails
to return data for suppliers and loop through, using GetReportLabels
to determine which questions you want to check the data for.
There are of course many other examples, but the ones listed above demonstrate how to approach using the GetSuppliers
to request just the suppliers you need.
Now you have your JSON list of suppliers, obtained using GetSuppliers
, you can either locate an individual supplier or a group of suppliers by parsing the JSON returned by GetSuppliers
.
Locating an individual supplier
GetSuppliers
returns an array of suppliers. If you didn't specify a searchTerm
within your GetSuppliers
request to limit your response, you will potentially have a large number of suppliers in your array. Parsing (looping through) the JSON returned by GetSuppliers
, will enable you to locate a specific supplier by querying the 'companyName' attribute.
Once you have located the supplier record, make note of the 'externalId' attribute. Pass this value into the GetSupplierDetails
method to pull all data for a specific individual supplier.
Looping through GetSuppliers response data
Unless you are limiting the response from GetSuppliers
by using 'searchTerm' to pinpoint specific suppliers (or an individual supplier), the volume of the data typically returned by will be substantial.
GetSuppliers
essentially returns an array of suppliers.
In many cases, it will be necessary to loop through the array of suppliers returned by GetSuppliers
. Core data such as the supplier's questionnaire status, risk level, renewal date etc is returned through GetSuppliers
so if you are looking to find suppliers based on this level of information, you simply need to filter the JSON data returned by GetSuppliers
.
However, often you will want to find suppliers based on data such as answers to specific questions, document validity or H score etc. In such cases, it is necessary to request a full dataset for each supplier using GetSupplierDetails
On each cycle of the loop, you will need to pass the 'externalId' value from GetSuppliers
into GetSupplierDetails
to get the full dataset of information for each supplier.
Finding answers to specific questions
At this point, you will have successfully pulled a list of relevant suppliers using GetSuppliers
, looped through this list and pulled the full dataset for each supplier. The data returned includes report labels as the reference point for questionnaire questions. These the same report labels that are used in the Hellios UI reporting and dashboard tools.
To help you match report labels with questionnaire questions, use the GetReportLabels
method to retrieve a full list of all current active report labels. Use this information as a 'lookup' reference to find the report label(s) for question(s) you are interested in.
To locate suppliers who have answered specific questions in a certain way, filter the data returned using the answers given per report label this data to locate the information you require.
Retrieving supplier documents
Also included within the data returned (per supplier) via GetSupplierDetails
are the unique identifiers and expiry dates of all documents relevant to that supplier. The data information can be used to find suppliers whose documents have expired for example. to obtain a copy of the actual document, pass the unique document identifier (documentId) from GetSupplierDetails
GetDocument as 'documentIdentifier' - the PDF file to be returned.
Schemas
The Hellios API includes 13 response schemas, as follows:
CompanyWatch.HScore
GetSupplierDetails.Answer
GetSupplierDetails.Contact
GetSupplierDetails.Document
GetSupplierDetails.Question
GetSupplierDetails.SpecificField
GetSupplierDetails.SpecificFieldOption
GetSupplierDetails.SpecificFieldValue
GetSupplierDetails.SupplierDetails
GetSupplierDetails.Taxonomy
SearchSuppliers.SupplierInfo
GetReportLabels.Question
GetReportLabels.AnswerOption
CompanyWatch.HScore
HScore Example
"latestHScore": {
"date": "2022-11-28T10:42:05.729Z",
"score": 0
}
The HScore
schema contains the following properties:
Attribute | Type | Description |
---|---|---|
date | Date/Time (yyyy-MM-ddThh:mm:ss:SSSZ) | Date of H-Score |
score | Integer | H-Score value |
GetSupplierDetails.Answer
Answer Example
"answer": {
"values": [
"string"
],
"questionType": "None",
"repeatableGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"document": {
"documentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fileName": "filename.pdf"
},
"taxonomy": {
"taxonomyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"description": "string",
"code": "string"
}
}
The Answer
schema is used in the GetSupplierDetails.Question schema and contains the following properties:
Attribute | Type | Description |
---|---|---|
values | String[] | The possible options to the question. |
questionType | Enum["None", "FreeText", "Number", "SingleSelect", "Date", "MultipleSelect", "YesNo", "Document", "Taxonomy"] | The input types of the questions. |
repeatableGroupId | UUID | The ID of the repeatableGroup this answer belongs to. |
document | GetSupplierDetails.Document | Document identifier and filename |
taxonomy | GetSupplierDetails.Taxonomy[] | The taxonomy type contains product/service codes selected by the supplier when completing their questionnaire |
GetSupplierDetails.Contact
Contact Example
"contact": {
"firstName": "John",
"lastName": "Smith",
"jobTitle": "CEO",
"emailAddress": "[email protected]",
"phoneWork": "phonenumber",
"phoneMobile": "mobilenumber"
}
The Contact
schema is used in the GetSupplierDetails.SupplierDetails schema and contains the following properties:
Attribute | Type | Description |
---|---|---|
firstName | String | The first name of the contact. |
lastName | String | The last name of the contact. |
jobTitle | String | The job title of the contact. |
emailAddress | String | The email address of the contact. |
phoneWork | String | The work phone number of the contact. |
phoneMobile | String | The mobile phone number of the contact. |
GetSupplierDetails.Document
Document Example
"document": {
"documentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fileName": "filename.pdf"
}
The Document
schema contains the following properties:
Attribute | Type | Description |
---|---|---|
documentId | UUID | The document's unique identifier. |
fileName | String | The document's file name. |
GetSupplierDetails.Question
Question Example
"question": {
"reportLabel": "string",
"response": {
"values": [
"string"
],
"questionType": "None",
"repeatableGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
"document": {
"documentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fileName": "string"
},
"taxonomy": [
{
"taxonomyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"description": "string",
"code": "string"
}
]
},
}
The Question
schema is returned from the GetSupplierDetails method and contains the following properties:
Attribute | Type | Description |
---|---|---|
reportLabel | String | Report label as visible via reporting module UI |
response | GetSupplierDetails.Answer | The type of question and the answers |
repeatableGroupId | UUID | The ID of the repeatableGroup this answer belongs to. |
GetSupplierDetails.SpecificField
SpecificField Example
"specificField":{
"id": "string",
"name": "string",
"type": "Document",
"options": [
{
"id": "string",
"text": "string"
}
],
"values": [
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fieldId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": "string"
}
]
}
The SpecificField
schema is returned from the GetSupplierDetails method and contains the following properties:
Attribute | Type | Description |
---|---|---|
id | UUID | The specific fields unique identifier |
name | String | The name of the specific field |
type | Enum["Document", "Text", "MultilineText", "Select", "MultiSelect", "Toggle"] | The input type of the options |
options | GetSupplierDetails.SpecificFieldOption[] | An array of the possible options for the specific field |
values | GetSupplierDetails.SpecificFieldValue[] | An array of current values of this field |
GetSupplierDetails.SpecificFieldOption
SpecificFieldOption Example
"specificFieldOption":{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"text": "string"
}
The SpecificFieldOption
schema is used in the GetSupplierDetails.SpecificField schema and contains the following properties:
Attribute | Type | Description |
---|---|---|
id | UUID | The specific field options unique identifier |
text | String | THe user friendly label of the option |
GetSupplierDetails.SpecificFieldValue
SpecificFieldValue Example
"specificFieldValue":{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"fieldId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": "string"
}
The SpecificFieldValue
schema is used in the GetSupplierDetails.SpecificField schema and contains the following properties:
Attribute | Type | Description |
---|---|---|
id | UUID | The specific field values unique identifier |
fieldId | UUID | The associated fields unique identifier |
value | String | The current value of the specific field |
GetSupplierDetails.SupplierDetails
SupplierDetails Example
"supplier": {
"helliosId": "string",
"name": "string",
"latestHScore": {
"date": "2022-11-28T10:59:14.694Z",
"score": 0
},
"riskLevel": "None",
"smeLevel": "None",
"ragwStatus": "None",
"questionnaireStatus": "None",
"documentStatus": "None",
"overallStatus": "None",
"primaryContact": {
"firstName": "string",
"lastName": "string",
"jobTitle": "string",
"emailAddress": "string",
"phoneWork": "string",
"phoneMobile": "string"
},
"completionDeadlineDate": "2022-11-28T10:59:14.694Z",
"renewalDeadlineDate": "2022-11-28T10:59:14.694Z"
}
The SupplierDetails
schema is returned from the GetSupplierDetails method and contains the following properties:
Attribute | Type | Description |
---|---|---|
helliosId | UUID | Unique Hellios ID issued to each supplier |
name | String | Name of the supplier |
latestHScore | CompanyWatch.HScore | Latest HScore for the supplier |
riskLevel | Enum["None", "Low", "Medium", "High"] | The risk level of the supplier |
smeLevel | Enum["None", "Micro", "Small", "Medium", "Large", "Undetermined"] | The size of the supplier |
ragwStatus | Enum["None", "Red", "Amber", "Green", "White"] | The RAG status of the supplier's questionnaire |
questionnaireStatus | Enum["None", "Invited", "InProgress", "Invalidation", "UpdateInValidation", "Completed", "RenewalInvited", "RenewalInProgress", "RenewalInValidation", "Expired", "DocumentUpdateInValidation"] | The status of the supplier's questionnaire |
documentStatus | Enum["None", "Red", "Amber", "Green", "White"] | The RAG status of the supplier's uploaded documents |
overallStatus | Enum["None", "Red", "Amber", "Green", "InValidation", "UpdateInValidation", "RenewalInValidation"] | The overall RAG status of the supplier (questionnaire and document RAG statuses combined) |
primaryContact | GetSupplierDetails.Contact | Primary contact for the supplier |
completionDeadlineDate | Date/Time (yyyy-MM-ddThh:mm:ss:SSSZ) | The deadline date for the supplier to complete and submit their questionnaire |
renewalDeadlineDate | Date/Time (yyyy-MM-ddThh:mm:ss:SSSZ) | The date by which the supplier is required to renew their information |
GetSupplierDetails.Taxonomy
Taxonomy Example
"taxonomy": {
"taxonomyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"description": "string",
"code": "string"
}
The Taxonomy
schema is used in the GetSupplierDetails.Question schema and contains the following properties:
Attribute | Type | Description |
---|---|---|
taxonomyId | UUID | The unique identifier of the taxonomy |
description | String | The description of the taxonomy |
code | String | The taxonomy product/service code |
SearchSuppliers.SupplierInfo
SupplierInfo Example
"supplierInfo":{
"externalId": "string",
"companyName": "string",
"location": "string",
"vendorId": "string",
"lastPublished": "2022-11-28T11:15:08.105Z",
"questionnaireStatus": "None",
"questionnaireRagStatus": "None",
"tagged": true,
"helliosId": "string",
"riskLevel": "None",
"documentRagStatus": "None",
"companyRegistrationNumber": "string",
"lastUpdate": "2022-11-28T11:15:08.105Z"
}
The SupplierInfo
schema is used in the GetSuppliers method and contains the following properties:
Attribute | Type | Description |
---|---|---|
externalId | UUID | Unique identifier for supplier (to be used with GetSupplierDetails method) |
name | String | Name of the supplier |
location | String | The suppliers city |
vendorId | UUID | Vendor ID value if supplier is tagged to your organisation |
lastPublished | Date/Time (yyyy-MM-ddThh:mm:ss:SSSZ) | Date when the supplier's information was last published |
questionnaireStatus | Enum["None", "Invited", "InProgress", "Invalidation", "UpdateInValidation", "Completed", "RenewalInvited", "RenewalInProgress", "RenewalInValidation", "Expired", "DocumentUpdateInValidation"] | The status of the supplier's questionnaire |
questionnaireRagStatus | Enum["None", "Red", "Amber", "Green", "White"] | The RAG status of the supplier's questionnaire |
tagged | Boolean | Denotes if the supplier is tagged to your organisation |
helliosId | UUID | Unique Hellios ID issued to each supplier |
riskLevel | Enum["None", "Low", "Medium", "High"] | The risk level of the supplier |
documentRagStatus | Enum["None", "Red", "Amber", "Green", "White"] | The RAG status of the supplier's uploaded documents |
companyRegistrationNumber | String | Legal registration number of the company |
lastUpdate | Date/Time (yyyy-MM-ddThh:mm:ss:SSSZ) | Time of last update to the supplier |
GetReportLabels.Question
Taxonomy Example
"question": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"shortId": "string",
"content": "string",
"expiryDateForDocumentQuestion": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"answerType": "None",
"answerOptions": [
{
"value": "string"
}
],
"reportLabel": "string"
}
The Question
schema is used in the GetReportLabels method and contains the following properties:
Attribute | Type | Description |
---|---|---|
id | UUID | The unique indentifer for the question |
shortId | String | A unique indentifer for the question |
content | String | The question text |
expiryDateForDocumentQuestion | UUID | If present, the id represents the question field that contains the contains the document expiry date |
answerType | Enum["None", "FreeText", "Number", "SingleSelect", "Date", "MultipleSelect", "YesNo", "Document", "Taxonomy"] | The input type of the question |
answerOptions | GetReportDetails.AnswerOption[] | An array of the possible options |
reportLabel | String | Report label as visible via reporting module UI |
GetReportLabels.AnswerOption
Taxonomy Example
"answerOption": {
"value": "string"
}
The AnswerOption
schema is used in the GetReportLabels.Question schema and contains the following properties:
Attribute | Type | Description |
---|---|---|
value | String | A possible answer to the question |
Response & Error Codes
Hellios uses standard response codes to show the result of a request. The following table shows the possible response codes and their meaning.
Error Code | Meaning |
---|---|
200 | Success - The request completed without issues. |
400 | Bad Request - Your request is invalid. |
401 | Unauthorized - Your Client ID and/or Client Secret is missing or wrong. |
401 | Forbidden - Your API key is missing or wrong. |
404 | Not Found - Method not found. |
429 | Too Many Requests - You have sent too many requests in a limited timeframe. |
5XX | Internal Server Error - We had a problem with our server. Try again later. |