---
title: "CertificateAction"
url: "https://dev.4hse.com/api/certificateaction"
---

# CertificateAction

A **CertificateAction** links a certificate to a specific action, proving that the certificate satisfies that compliance requirement. It is the connection between the proof of compliance (the certificate) and the required action.

Requires an existing certificate and an existing action within the same project.

After creation, the system automatically recalculates the compliance status of matching compliance schedule entries (ActionSubscription) for the same action and the same resource as the certificate. Without this link, the certificate exists but has no effect on the compliance schedule.

The `date_expire` field is the expiration date specific to this link. If not provided, it is inherited from the certificate’s expiration date. The `is_date_inherited` field in responses indicates whether the date belongs to this link or is inherited from the certificate.

Use this API to:

-   Link a certificate to an action after creating the certificate
-   Find all certificate-action links for a certificate or an action
-   Check which certificate covers which action for a resource

Version

2.0.0

OpenAPI version

3.0.0

## Authentication

[Section titled “ Authentication ”](#authentication)

### OAuth2

[Section titled “OAuth2 ”](#oauth2)

**Security scheme type:** oauth2

**Flow type:** password

**Token URL:** [https://auth.4hse.com/realms/4hse/protocol/openid-connect/token](https://auth.4hse.com/realms/4hse/protocol/openid-connect/token)

### AccessToken

[Section titled “AccessToken ”](#accesstoken)

**Security scheme type:** apiKey

**Query parameter name:** access-token

## Operations

[Section titled “Operations”](#operations)

### index

[Section titled “index”](#operation-indexCertificateAction-post)

POST

/v2/certificate-action/index

-   

Returns a paginated list of certificate-action links.

Most useful filters:

-   `certificate_id`: all links for a specific certificate
-   `action_id`: all certificates linked to an action
-   `action_type`: filter by requirement type
-   `resource_id`: all links for a specific resource

## Authorizations

[Section titled “Authorizations ”](#authorizations)

-   **[OAuth2](/api/certificateaction/#oauth2)**
-   **[AccessToken](/api/certificateaction/#accesstoken)**

#### Request Body

[Section titled “Request Body ”](#request-body)

Parameters for searching certificate-action links

Select media typeapplication/json

object

**filter**

object

**certificate\_action\_id**

Unique identifier of the link.

string format: uuid

**certificate\_id**

The linked certificate.

string format: uuid

**action\_id**

The linked action.

string format: uuid

**date\_expire**

Expiration date. May be inherited from the certificate if not set on this link.

string format: date

**tenant\_id**

The project (company) this link belongs to.

string format: uuid

**action\_name**

Name of the linked action.

string

**action\_code**

Code of the linked action.

string

**action\_type**

Type of the linked action.

string

Allowed values: TRAINING HEALTH PER CHECK MAINTENANCE

**resource\_id**

The resource the certificate is issued to (from the certificate).

string format: uuid

**certificate\_name**

Name of the linked certificate.

string

**is\_date\_inherited**

Whether `date_expire` is inherited from the certificate (`1`) or set on this link (`0`).

integer

**date\_release**

Issue date of the linked certificate.

string format: date

**office\_name**

Name of the office where the action is defined.

string

**office\_id**

ID of the office where the action is defined.

string format: uuid

**per-page**

integer

default: 100 \>= 1

**page**

integer

default: 1 \>= 1

**sort**

Field to sort by. Prefix with minus for descending order (e.g. “-date\_expire”).

string

Allowed values: certificate\_action\_id action\_code action\_name action\_type resource\_id certificate\_name date\_expire date\_release office\_name

##### Example

```
{  "filter": {    "action_type": "TRAINING",    "certificate_id": "f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f9a0b1c"  },  "per-page": 10,  "page": 1,  "sort": "action_name"}
```

#### Responses

[Section titled “ Responses ”](#responses)

##### 200

[Section titled “200 ”](#200)

List of certificate-action links

Select media typeapplication/json

Array<object>

object

**certificate\_action\_id**

Unique identifier of the link.

string format: uuid

**certificate\_id**

The linked certificate.

string format: uuid

**action\_id**

The linked action.

string format: uuid

**date\_expire**

Expiration date. May be inherited from the certificate if not set on this link.

string format: date

**tenant\_id**

The project (company) this link belongs to.

string format: uuid

**action\_name**

Name of the linked action.

string

**action\_code**

Code of the linked action.

string

**action\_type**

Type of the linked action.

string

Allowed values: TRAINING HEALTH PER CHECK MAINTENANCE

**resource\_id**

The resource the certificate is issued to (from the certificate).

string format: uuid

**certificate\_name**

Name of the linked certificate.

string

**is\_date\_inherited**

Whether `date_expire` is inherited from the certificate (`1`) or set on this link (`0`).

integer

**date\_release**

Issue date of the linked certificate.

string format: date

**office\_name**

Name of the office where the action is defined.

string

**office\_id**

ID of the office where the action is defined.

string format: uuid

##### Example

```
[  {    "certificate_action_id": "a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d",    "certificate_id": "f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f9a0b1c",    "action_id": "c4d5e6f7-a8b9-0c1d-2e3f-4a5b6c7d8e9f",    "date_expire": "2029-01-15",    "tenant_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01",    "action_name": "Fire Safety Training Medium Risk",    "action_code": "FST-01",    "action_type": "TRAINING",    "resource_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",    "certificate_name": "Fire Safety Training Certificate",    "date_release": "2024-01-15",    "is_date_inherited": 0,    "office_name": "Rome North Site",    "office_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"  }]
```

#### Headers

[Section titled “Headers ”](#headers)

**X-Pagination-Current-Page**

integer

Current page

**X-Pagination-Page-Count**

integer

Total number of pages

**X-Pagination-Per-Page**

integer

Number of items per page

**X-Pagination-Total-Count**

integer

Total number of items

### create

[Section titled “create”](#operation-createCertificateAction-post)

POST

/v2/certificate-action/create

-   

Creates a new certificate-action link.

Requires `certificate_id`, `action_id`, and `tenant_id` (project\_id). The `certificate_action_id` is auto-generated if not provided.

After creation, the system automatically updates the compliance status of matching schedule entries. This is the step that actually transitions a subscription from `NEW` or `EXPIRED` to `VALID`.

The `date_expire` field is optional: if not provided, the expiration is inherited from the certificate.

## Authorizations

[Section titled “Authorizations ”](#authorizations)

-   **[OAuth2](/api/certificateaction/#oauth2)**
-   **[AccessToken](/api/certificateaction/#accesstoken)**

#### Request Body required

[Section titled “Request Body required ”](#request-body)

Certificate-action link to create

Select media typeapplication/json

object

**certificate\_action\_id**

Unique identifier of the link. Auto-generated if not provided on creation.

string format: uuid

**certificate\_id**

required

The certificate being linked. Pass the `certificate_id` obtained from the Certificate API.

string format: uuid

**action\_id**

required

The action the certificate is linked to. Pass the `action_id` obtained from the Action API.

string format: uuid

**date\_expire**

Expiration date specific to this link. If not provided, inherited from the certificate’s expiration date.

string format: date

**tenant\_id**

required

The project (company) this link belongs to. Pass the `project_id`.

string format: uuid

##### Example

```
{  "certificate_id": "f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f9a0b1c",  "action_id": "c4d5e6f7-a8b9-0c1d-2e3f-4a5b6c7d8e9f",  "tenant_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01"}
```

#### Responses

[Section titled “ Responses ”](#responses)

##### 201

[Section titled “201 ”](#201)

Certificate-action link created successfully

Select media typeapplication/json

object

**certificate\_action\_id**

Unique identifier of the link. Auto-generated if not provided on creation.

string format: uuid

**certificate\_id**

required

The certificate being linked. Pass the `certificate_id` obtained from the Certificate API.

string format: uuid

**action\_id**

required

The action the certificate is linked to. Pass the `action_id` obtained from the Action API.

string format: uuid

**date\_expire**

Expiration date specific to this link. If not provided, inherited from the certificate’s expiration date.

string format: date

**tenant\_id**

required

The project (company) this link belongs to. Pass the `project_id`.

string format: uuid

##### Example

```
{  "certificate_action_id": "a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d",  "certificate_id": "f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f9a0b1c",  "action_id": "c4d5e6f7-a8b9-0c1d-2e3f-4a5b6c7d8e9f",  "date_expire": "2029-01-15",  "tenant_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01"}
```

### view

[Section titled “view”](#operation-viewCertificateAction-get)

GET

/v2/certificate-action/view/{id}

-   

Retrieves a single certificate-action link by its ID.

## Authorizations

[Section titled “Authorizations ”](#authorizations)

-   **[OAuth2](/api/certificateaction/#oauth2)**
-   **[AccessToken](/api/certificateaction/#accesstoken)**

#### Path Parameters

[Section titled “Path Parameters ”](#path-parameters)

**id**

required

string format: uuid

The certificate\_action\_id to retrieve.

#### Responses

[Section titled “ Responses ”](#responses)

##### 200

[Section titled “200 ”](#200)

Certificate-action link found

Select media typeapplication/json

object

**certificate\_action\_id**

Unique identifier of the link.

string format: uuid

**certificate\_id**

The linked certificate.

string format: uuid

**action\_id**

The linked action.

string format: uuid

**date\_expire**

Expiration date. May be inherited from the certificate if not set on this link.

string format: date

**tenant\_id**

The project (company) this link belongs to.

string format: uuid

**action\_name**

Name of the linked action.

string

**action\_code**

Code of the linked action.

string

**action\_type**

Type of the linked action.

string

Allowed values: TRAINING HEALTH PER CHECK MAINTENANCE

**resource\_id**

The resource the certificate is issued to (from the certificate).

string format: uuid

**certificate\_name**

Name of the linked certificate.

string

**is\_date\_inherited**

Whether `date_expire` is inherited from the certificate (`1`) or set on this link (`0`).

integer

**date\_release**

Issue date of the linked certificate.

string format: date

**office\_name**

Name of the office where the action is defined.

string

**office\_id**

ID of the office where the action is defined.

string format: uuid

##### Example

```
{  "certificate_action_id": "a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d",  "certificate_id": "f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f9a0b1c",  "action_id": "c4d5e6f7-a8b9-0c1d-2e3f-4a5b6c7d8e9f",  "date_expire": "2029-01-15",  "tenant_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01",  "action_name": "Fire Safety Training Medium Risk",  "action_code": "FST-01",  "action_type": "TRAINING",  "resource_id": "e3a1f5d2-8c4b-4e7a-9f6d-2b1c3d4e5f6a",  "certificate_name": "Fire Safety Training Certificate",  "date_release": "2024-01-15",  "is_date_inherited": 0,  "office_name": "Rome North Site",  "office_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"}
```

##### 404

[Section titled “404 ”](#404)

Certificate-action link not found

### update

[Section titled “update”](#operation-updateCertificateAction-put)

PUT

/v2/certificate-action/update/{id}

-   

Updates an existing certificate-action link.

Typical use case: changing the `date_expire` specific to this link.

## Authorizations

[Section titled “Authorizations ”](#authorizations)

-   **[OAuth2](/api/certificateaction/#oauth2)**
-   **[AccessToken](/api/certificateaction/#accesstoken)**

#### Path Parameters

[Section titled “Path Parameters ”](#path-parameters)

**id**

required

string format: uuid

The certificate\_action\_id to update.

#### Request Body required

[Section titled “Request Body required ”](#request-body)

Fields to update

Select media typeapplication/json

object

**certificate\_action\_id**

Unique identifier of the link. Auto-generated if not provided on creation.

string format: uuid

**certificate\_id**

required

The certificate being linked. Pass the `certificate_id` obtained from the Certificate API.

string format: uuid

**action\_id**

required

The action the certificate is linked to. Pass the `action_id` obtained from the Action API.

string format: uuid

**date\_expire**

Expiration date specific to this link. If not provided, inherited from the certificate’s expiration date.

string format: date

**tenant\_id**

required

The project (company) this link belongs to. Pass the `project_id`.

string format: uuid

##### Example

```
{  "date_expire": "2030-01-15"}
```

#### Responses

[Section titled “ Responses ”](#responses)

##### 200

[Section titled “200 ”](#200)

Certificate-action link updated successfully

Select media typeapplication/json

object

**certificate\_action\_id**

Unique identifier of the link. Auto-generated if not provided on creation.

string format: uuid

**certificate\_id**

required

The certificate being linked. Pass the `certificate_id` obtained from the Certificate API.

string format: uuid

**action\_id**

required

The action the certificate is linked to. Pass the `action_id` obtained from the Action API.

string format: uuid

**date\_expire**

Expiration date specific to this link. If not provided, inherited from the certificate’s expiration date.

string format: date

**tenant\_id**

required

The project (company) this link belongs to. Pass the `project_id`.

string format: uuid

##### Example

```
{  "certificate_action_id": "a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d",  "date_expire": "2030-01-15"}
```

##### 404

[Section titled “404 ”](#404)

Certificate-action link not found

### delete

[Section titled “delete”](#operation-deleteCertificateAction-delete)

DELETE

/v2/certificate-action/delete/{id}

-   

Deletes a certificate-action link.

After deletion, the system automatically recalculates the compliance status of matching schedule entries. This may cause a subscription to revert to `EXPIRED` or `NEW`.

If `force=false` (default), the response lists related entities. If `force=true`, the link is deleted.

## Authorizations

[Section titled “Authorizations ”](#authorizations)

-   **[OAuth2](/api/certificateaction/#oauth2)**
-   **[AccessToken](/api/certificateaction/#accesstoken)**

#### Path Parameters

[Section titled “Path Parameters ”](#path-parameters)

**id**

required

string format: uuid

The certificate\_action\_id to delete.

#### Query Parameters

[Section titled “Query Parameters ”](#query-parameters)

**force**

boolean

If true, deletes the link. If false, returns a preview of affected entities.

#### Responses

[Section titled “ Responses ”](#responses)

##### 204

[Section titled “204 ”](#204)

Certificate-action link deleted successfully

##### 400

[Section titled “400 ”](#400)

Preview of entities that would be affected (returned when force=false)

## Webhooks

[Section titled “Webhooks”](#webhooks)

#### CERTIFICATE\_ACTION::CREATE

[Section titled “CERTIFICATE\_ACTION::CREATE”](#webhook-CERTIFICATE_ACTION::CREATE)

POST

Triggered when a new certificate-action link is created.

#### Request Body

[Section titled “Request Body ”](#request-body)

The newly created certificate-action link

Select media typeapplication/json

object

**certificate\_action\_id**

Unique identifier of the link. Auto-generated if not provided on creation.

string format: uuid

**certificate\_id**

required

The certificate being linked. Pass the `certificate_id` obtained from the Certificate API.

string format: uuid

**action\_id**

required

The action the certificate is linked to. Pass the `action_id` obtained from the Action API.

string format: uuid

**date\_expire**

Expiration date specific to this link. If not provided, inherited from the certificate’s expiration date.

string format: date

**tenant\_id**

required

The project (company) this link belongs to. Pass the `project_id`.

string format: uuid

##### Example

```
{  "certificate_action_id": "a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d",  "certificate_id": "f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f9a0b1c",  "action_id": "c4d5e6f7-a8b9-0c1d-2e3f-4a5b6c7d8e9f",  "date_expire": "2029-01-15",  "tenant_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01"}
```

#### Responses

[Section titled “ Responses ”](#responses)

##### 200

[Section titled “200 ”](#200)

Acknowledgment of the webhook event

#### CERTIFICATE\_ACTION::UPDATE

[Section titled “CERTIFICATE\_ACTION::UPDATE”](#webhook-CERTIFICATE_ACTION::UPDATE)

POST

Triggered when a certificate-action link is updated. Provides old/new values for changed fields.

#### Request Body

[Section titled “Request Body ”](#request-body)

Updated certificate-action with old and new values for changed fields

Select media typeapplication/json

object

**entity\_id**

required

The certificate\_action\_id of the updated link.

string format: uuid

**updated\_fields**

required

Each key is an updated field name, with its old and new values.

object

**_key_**

additional properties

object

**old**

**new**

##### Example

```
{  "entity_id": "a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d",  "updated_fields": {    "date_expire": {      "old": "2029-01-15",      "new": "2030-01-15"    }  }}
```

#### Responses

[Section titled “ Responses ”](#responses)

##### 200

[Section titled “200 ”](#200)

Acknowledgment of the webhook event

#### CERTIFICATE\_ACTION::DELETE

[Section titled “CERTIFICATE\_ACTION::DELETE”](#webhook-CERTIFICATE_ACTION::DELETE)

POST

Triggered when a certificate-action link is deleted.

#### Request Body

[Section titled “Request Body ”](#request-body)

The deleted certificate-action link

Select media typeapplication/json

object

**certificate\_action\_id**

Unique identifier of the link. Auto-generated if not provided on creation.

string format: uuid

**certificate\_id**

required

The certificate being linked. Pass the `certificate_id` obtained from the Certificate API.

string format: uuid

**action\_id**

required

The action the certificate is linked to. Pass the `action_id` obtained from the Action API.

string format: uuid

**date\_expire**

Expiration date specific to this link. If not provided, inherited from the certificate’s expiration date.

string format: date

**tenant\_id**

required

The project (company) this link belongs to. Pass the `project_id`.

string format: uuid

##### Example

```
{  "certificate_action_id": "a8b9c0d1-e2f3-4a5b-6c7d-8e9f0a1b2c3d",  "certificate_id": "f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f9a0b1c",  "action_id": "c4d5e6f7-a8b9-0c1d-2e3f-4a5b6c7d8e9f",  "tenant_id": "b5a7d602-3fc9-4e2a-9d1a-6e5b4c8f7a01"}
```

#### Responses

[Section titled “ Responses ”](#responses)

##### 200

[Section titled “200 ”](#200)

Acknowledgment of the webhook event

This site is protected by reCAPTCHA and the Google [Privacy Policy](https://policies.google.com/privacy) and [Terms of Service](https://policies.google.com/terms) apply.