NAV

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:

The API is built around four core methods that enable the customer to access:

We envisage customers using the API to in one of two ways:

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

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:

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:

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 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

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:

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

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)

pageSize

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:

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.

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.

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.

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.

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.

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 GetSupplierDetailsOn 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 GetSupplierDetailsGetDocument as 'documentIdentifier' - the PDF file to be returned.

Schemas

The Hellios API includes 13 response schemas, as follows:

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.