Policies
Create, publish, and manage environmental policy workflows.
Returns all policies. Add Api-Version: 2 header to use status filter. Each item may include userGroups (all group rows for this user on that policy, including inactive) and userGroup (the last active group in server orderโhandy for UI labels, e.g. groupLabel or uuid). Typically, for Standard Registry on dry-run policies, userRole and userGroup reflect the last active role (often a virtual user), and userGroups contains the group rows for that role; when the last active role is Administrator, userGroups is []. For regular users, userGroups usually show roles on published policies.
The number of pages to skip before starting to collect the result set
0The numbers of items to return
20Policy type
localFilter by policy name.
Example PolicyFilter by policy version.
1.0.0Use "2" for this endpoint (supports status filter).
2Successful operation. Two examples: regular user (userGroups usually reflect roles on published policies) and Standard Registry (dry-run: last active role and its userGroups; Administrator has userGroups []). Other combinations are possible depending on policy state and assignments.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Api-Version: 2
Accept: */*
[
{
"uuid": "b7e7d5ff-2675-4018-ac08-47609bc5a437",
"name": "Verra VM0007 Policy",
"version": "1",
"description": "REDD+ Methodology Framework",
"status": "PUBLISH",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"topicId": "0.0.8381081",
"instanceTopicId": "0.0.8381318",
"messageId": "1774508369.453794000",
"availability": "private",
"userRoles": [
"Project_Proponent"
],
"userGroups": [
{
"uuid": "d5c3ff1e-7e83-4ed9-a122-839c5843707d",
"role": "VVB(manager)",
"groupName": "VVBs",
"groupLabel": "",
"active": false,
"id": "69c4d9881e6768b3a86de534"
},
{
"uuid": "923b88ff-8ee8-429f-b32a-0a8799e6954e",
"role": "Project_Proponent",
"groupName": "Project_Proponent",
"groupLabel": "",
"active": false,
"id": "69c4da1f1e6768b3a86de558"
},
{
"uuid": "65347d9b-391e-4d2d-8758-039e3fd42490",
"role": "Project_Proponent",
"groupName": "Project_Proponent",
"groupLabel": "AnotherProponent",
"active": true,
"id": "69c4da671e6768b3a86de55e"
}
],
"userRole": "Project_Proponent",
"userGroup": {
"uuid": "65347d9b-391e-4d2d-8758-039e3fd42490",
"role": "Project_Proponent",
"groupName": "Project_Proponent",
"groupLabel": "AnotherProponent",
"active": true,
"id": "69c4da671e6768b3a86de55e"
},
"tests": [],
"id": "69c4d51ac4f45966decb4710"
},
{
"uuid": "1e95fab1-7b3e-4692-a16c-d977032be0d1",
"name": "CDM AMS-III.AR Policy",
"version": "1",
"description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
"status": "PUBLISH",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"topicId": "0.0.8366207",
"instanceTopicId": "0.0.8366841",
"messageId": "1774427068.001165000",
"availability": "private",
"userRoles": [
"VVB"
],
"userGroups": [
{
"uuid": "5ff7e8cc-d399-48be-ae4c-0c90e240d1d6",
"role": "VVB",
"groupName": "VVB",
"groupLabel": null,
"active": true,
"id": "69c4d3e0340a8cb2868e3095"
}
],
"userRole": "VVB",
"userGroup": {
"uuid": "5ff7e8cc-d399-48be-ae4c-0c90e240d1d6",
"role": "VVB",
"groupName": "VVB",
"groupLabel": null,
"active": true,
"id": "69c4d3e0340a8cb2868e3095"
},
"tests": [],
"id": "69c38f81462c9c1141de2df2"
}
]Creates a new policy. Only users with the Standard Registry role are allowed to make the request.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Successful operation. Returns the full policy list (same as GET /policies) after creation.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 273
{
"name": "New policy",
"applicabilityConditions": "",
"detailsUrl": "",
"typicalProjects": "",
"topicDescription": "",
"description": "Policy description",
"categories": [
"69c2cfc534d008dac266432c",
"69c2cfc534d008dac2664316",
""
],
"importantParameters": {
"atValidation": "",
"monitored": ""
}
}[
{
"createDate": "2026-03-26T08:00:30.081Z",
"uuid": "8fe6f490-a978-4eb0-9d81-772dc62ae970",
"name": "New policy",
"description": "Policy description",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"topicId": "0.0.8381928",
"codeVersion": "1.5.1",
"tools": [],
"userRoles": [
"Administrator"
],
"userGroups": [],
"userRole": "Administrator",
"userGroup": null,
"tests": [],
"id": "69c4e782c4f45966decb5091"
},
{
"createDate": "2026-03-26T07:13:06.988Z",
"uuid": "9b4a5fb8-7775-4aac-8d88-8876d3ab3fc5",
"name": "VM0042",
"version": "Dry Run",
"description": "",
"status": "DRY-RUN",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"policyRoles": [
"Project Proponent",
"VVB"
],
"policyGroups": [],
"topicId": "0.0.8381520",
"instanceTopicId": "0.0.1774509251971",
"policyTag": "Tag_1774509146169",
"codeVersion": "1.5.1",
"tools": [
{
"name": "AR-AM Tool 04",
"version": null,
"topicId": "0.0.5664329",
"messageId": "1741365085.279118931"
},
{
"name": "Tool 24",
"version": null,
"topicId": "0.0.5703543",
"messageId": "1741724529.286080000"
},
{
"name": "AR Tool 14",
"version": null,
"topicId": "0.0.5738458",
"messageId": "1742305279.639972851"
}
],
"userRoles": [
"Administrator"
],
"userGroups": [],
"userRole": "Administrator",
"userGroup": null,
"tests": [],
"id": "69c4dc82c4f45966decb4cdd"
},
{
"createDate": "2026-03-26T06:41:30.240Z",
"uuid": "b7e7d5ff-2675-4018-ac08-47609bc5a437",
"name": "Verra VM0007 Policy",
"version": "1",
"description": "REDD+ Methodology Framework",
"status": "PUBLISH",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"policyRoles": [
"Project_Proponent",
"VVB",
"VVB(manager)"
],
"policyGroups": [
{
"name": "VVBs",
"creator": "VVB(manager)",
"members": [
"VVB"
],
"groupRelationshipType": "Multiple",
"groupAccessType": "Private"
},
{
"name": "Project_Proponent",
"creator": "Project_Proponent",
"members": [
"Project_Proponent"
],
"groupRelationshipType": "Single",
"groupAccessType": "Private"
}
],
"topicId": "0.0.8381081",
"instanceTopicId": "0.0.8381318",
"policyTag": "Tag_1774507267355",
"messageId": "1774508369.453794000",
"codeVersion": "1.5.1",
"tools": [],
"userRoles": [
"Administrator"
],
"userGroups": [],
"userRole": "Administrator",
"userGroup": null,
"tests": [],
"id": "69c4d51ac4f45966decb4710"
},
{
"createDate": "2026-03-25T08:34:23.327Z",
"uuid": "42d2531a-d2e0-44fe-8601-057633c1b9bd",
"name": "CDM AMS-II.J Policy",
"version": "2",
"description": "Demand-Side Activities for Efficient Lighting Technologies",
"status": "PUBLISH",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"policyRoles": [
"Project Participant",
"VVB"
],
"policyGroups": [],
"topicId": "0.0.8366933",
"instanceTopicId": "0.0.8366950",
"policyTag": "Tag_1774427637162",
"messageId": "1774427841.463316056",
"codeVersion": "1.5.1",
"tools": [
{
"name": "Tool 07",
"version": null,
"topicId": "0.0.2175383",
"messageId": "1706867530.884259218"
}
],
"userRoles": [
"Administrator"
],
"userGroups": [],
"userRole": "Administrator",
"userGroup": null,
"tests": [],
"id": "69c39e0f462c9c1141de2f0b"
},
{
"createDate": "2026-03-25T07:32:17.567Z",
"uuid": "1e95fab1-7b3e-4692-a16c-d977032be0d1",
"name": "CDM AMS-III.AR Policy",
"version": "1",
"description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
"status": "PUBLISH",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"policyRoles": [
"Project Participant",
"VVB"
],
"policyGroups": [],
"topicId": "0.0.8366207",
"instanceTopicId": "0.0.8366841",
"policyTag": "Tag_1774423895959",
"messageId": "1774427068.001165000",
"codeVersion": "1.5.1",
"tools": [
{
"name": "Tool 33",
"version": null,
"topicId": "0.0.4865949",
"messageId": "1726593517.484578000"
},
{
"name": "Tool 19",
"version": null,
"topicId": "0.0.2196124",
"messageId": "1706869798.177938003"
},
{
"name": "Tool 21",
"version": null,
"topicId": "0.0.2203279",
"messageId": "1706873385.455822873"
},
{
"name": "Tool 07",
"version": null,
"topicId": "0.0.2175383",
"messageId": "1706867530.884259218"
}
],
"userRoles": [
"Administrator"
],
"userGroups": [],
"userRole": "Administrator",
"userGroup": null,
"tests": [],
"id": "69c38f81462c9c1141de2df2"
}
]Returns policies that have a records topic (draft/dry-run/demo/view), excluding the policy identified by policyId. There is no request bodyโonly the path segment. The path value is used to omit that policy from the result (e.g. the record-import dialog so โanother policyโ does not include the one you are open on).
Policy id to exclude from the returned list. Pass the current policy id from the client context; the server uses this value only for that exclusion filter.
69aeb71ef8c5b278e3bab4e5Successful operation.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/with-imported-records/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"id": "f3b2a9c1e4d5678901234567",
"name": "Policy name"
}
]Migrate policy data. Only users with the Standard Registry role are allowed to make the request.
start_newPossible values: Array of migration issues per document. Empty array when migration completed without per-document errors. Each item includes id and message (e.g. JSON_SCHEMA_VALIDATION_ERROR).
Document or entity id related to the error
Error message
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/migrate-data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1576
{
"policies": {
"src": "69c63ecb2737af139ce96bf1",
"dst": "69c642562737af139ce96e7c"
},
"vcs": [
"69c63f5634e3e2878e651c4f",
"69c63f6a34e3e2878e651c62",
"69c63fe534e3e2878e651c71",
"69c63ff834e3e2878e651c7d",
"69c6402a34e3e2878e651c8a",
"69c6403d34e3e2878e651c96",
"69c6404c34e3e2878e651ca1"
],
"vps": [
"69c6405934e3e2878e651ca6"
],
"schemas": {
"#a63f77de-b9ca-46c7-aa4c-fe8ef89fe50a&1.0.0": "#8e8198b8-86ae-477c-a996-f7fa1e229614&1.0.0",
"#a0f1bcdd-911d-496d-958f-01b55e01ea3b&1.0.0": "#f9fbc33a-b91f-4b9a-9ab7-9dc2ece4a756&1.0.0",
"#c6832572-8a62-4da0-ae0b-7f8b7abb47d4&1.0.0": "#6046253d-b414-4ea1-8d5a-c883a02e4e15&1.0.0"
},
"groups": {},
"roles": {
"Registrant": "Registrant"
},
"migrateState": true,
"editedVCs": {},
"blocks": {
"9fd3f431-d96f-459e-b1fa-af74d50b88f2": "ebe327ef-1eda-4266-9100-04bcf7b741ba",
"f876c7cc-5e8a-4a47-a2da-3ef4c99ed8d9": "3a82b6fc-c141-46cb-9ce4-b413a278e707",
"ca500f4d-104c-4440-920a-c4c942149971": "22d8d663-0179-48f9-9375-a7f095b5959b",
"9fcb7585-8422-48ef-acea-faeed5b0c931": "b6faca4f-2220-4665-a1ef-a649d5598cbf",
"a7c2402b-c0ab-47db-82f3-a18f87852194": "d28ec286-9e18-4c21-abe4-ca8713f83639",
"5c9ece32-4c10-443a-beaa-cd5e2c1cfefe": "83bfc30f-a2e1-475f-9124-fdafd2a8445f",
"138c7d6a-3b08-43a3-b741-c2d0dd635573": "35e8eb6b-fcd1-4a0f-881d-dc8f0df6c0c0",
"34aed736-c0b2-40b7-8aa5-69b1478c86e8": "c6c02969-624b-4a23-a929-a27d43d6923a",
"b7d6aad4-23a9-4f5b-8037-a0e9475abf05": "e8fa9426-a33c-41aa-b8c3-20c40d51d246",
"51fdfac6-86b6-41f9-a613-ac5868e214d7": "1c9baf00-8410-4a7b-a5ef-d39a86a03773"
},
"tokens": {},
"tokensMap": {
"0.0.8393265": "0.0.8393387"
},
"migrateRetirePools": true,
"retireContractId": ""
}[]Migrate policy data asynchronous. Only users with the Standard Registry role are allowed to make the request.
start_newPossible values: Created task.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/push/migrate-data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1576
{
"policies": {
"src": "69c63ecb2737af139ce96bf1",
"dst": "69c642562737af139ce96e7c"
},
"vcs": [
"69c63f5634e3e2878e651c4f",
"69c63f6a34e3e2878e651c62",
"69c63fe534e3e2878e651c71",
"69c63ff834e3e2878e651c7d",
"69c6402a34e3e2878e651c8a",
"69c6403d34e3e2878e651c96",
"69c6404c34e3e2878e651ca1"
],
"vps": [
"69c6405934e3e2878e651ca6"
],
"schemas": {
"#a63f77de-b9ca-46c7-aa4c-fe8ef89fe50a&1.0.0": "#8e8198b8-86ae-477c-a996-f7fa1e229614&1.0.0",
"#a0f1bcdd-911d-496d-958f-01b55e01ea3b&1.0.0": "#f9fbc33a-b91f-4b9a-9ab7-9dc2ece4a756&1.0.0",
"#c6832572-8a62-4da0-ae0b-7f8b7abb47d4&1.0.0": "#6046253d-b414-4ea1-8d5a-c883a02e4e15&1.0.0"
},
"groups": {},
"roles": {
"Registrant": "Registrant"
},
"migrateState": true,
"editedVCs": {},
"blocks": {
"9fd3f431-d96f-459e-b1fa-af74d50b88f2": "ebe327ef-1eda-4266-9100-04bcf7b741ba",
"f876c7cc-5e8a-4a47-a2da-3ef4c99ed8d9": "3a82b6fc-c141-46cb-9ce4-b413a278e707",
"ca500f4d-104c-4440-920a-c4c942149971": "22d8d663-0179-48f9-9375-a7f095b5959b",
"9fcb7585-8422-48ef-acea-faeed5b0c931": "b6faca4f-2220-4665-a1ef-a649d5598cbf",
"a7c2402b-c0ab-47db-82f3-a18f87852194": "d28ec286-9e18-4c21-abe4-ca8713f83639",
"5c9ece32-4c10-443a-beaa-cd5e2c1cfefe": "83bfc30f-a2e1-475f-9124-fdafd2a8445f",
"138c7d6a-3b08-43a3-b741-c2d0dd635573": "35e8eb6b-fcd1-4a0f-881d-dc8f0df6c0c0",
"34aed736-c0b2-40b7-8aa5-69b1478c86e8": "c6c02969-624b-4a23-a929-a27d43d6923a",
"b7d6aad4-23a9-4f5b-8037-a0e9475abf05": "e8fa9426-a33c-41aa-b8c3-20c40d51d246",
"51fdfac6-86b6-41f9-a613-ac5868e214d7": "1c9baf00-8410-4a7b-a5ef-d39a86a03773"
},
"tokens": {},
"tokensMap": {
"0.0.8393265": "0.0.8393387"
},
"migrateRetirePools": true,
"retireContractId": ""
}{
"taskId": "147d8d77-4eea-43f3-b20e-2e83971a398f",
"expectation": 4,
"action": "Migrate data",
"userId": "69c2cfc021d39e7b6d15e236"
}Resume migration asynchronous. Only users with the Standard Registry role are allowed to make the request.
69aeb71ef8c5b278e3bab4e5Created task.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Missing or empty runId in body.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/push/migrate-data/resume HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 36
{
"runId": "69c2cfc021d39e7b6d15e236"
}{
"taskId": "147d8d77-4eea-43f3-b20e-2e83971a398f",
"expectation": 4,
"action": "Migrate data",
"userId": "69c2cfc021d39e7b6d15e236"
}Retry failed migration items asynchronous. Only users with the Standard Registry role are allowed to make the request.
Migration run id whose failed items should be retried.
69aeb71ef8c5b278e3bab4e5Created task.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Missing or empty runId in body.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/push/migrate-data/retry-failed HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 36
{
"runId": "69c2cfc021d39e7b6d15e236"
}{
"taskId": "147d8d77-4eea-43f3-b20e-2e83971a398f",
"expectation": 4,
"action": "Migrate data",
"userId": "69c2cfc021d39e7b6d15e236"
}Returns latest migration run status for source/destination pair. Only users with the Standard Registry role are allowed to make the request.
69aeb71ef8c5b278e3bab4e569aeb71ef8c5b278e3bab4e5Migration run status.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/migrate-data/status?srcPolicyId=69aeb71ef8c5b278e3bab4e5&dstPolicyId=69aeb71ef8c5b278e3bab4e5 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"runId": "69c643902737af139ce96ee7",
"srcPolicyId": "69c63ecb2737af139ce96bf1",
"dstPolicyId": "69c642562737af139ce96e7c",
"status": "completed",
"startedAt": "2026-03-27T08:45:04.532Z",
"finishedAt": "2026-03-27T09:09:55.412Z",
"summary": {
"vcDocument": {
"total": 7,
"success": 7,
"failed": 0,
"cursorLastId": "69c643a82737af139ce96f35"
},
"vpDocument": {
"total": 1,
"success": 1,
"failed": 0,
"cursorLastId": "69c643b42737af139ce96f5d"
},
"roleVcDocument": {
"total": 0,
"success": 0,
"failed": 0,
"cursorLastId": null
},
"policyRole": {
"total": 1,
"success": 1,
"failed": 0,
"cursorLastId": "69c63f3934e3e2878e651c48"
},
"policyState": {
"total": 3,
"success": 0,
"failed": 3,
"cursorLastId": "69c63f4134e3e2878e651c4b"
},
"mintRequest": {
"total": 1,
"success": 1,
"failed": 0,
"cursorLastId": "69c6405934e3e2878e651cab"
},
"mintTransaction": {
"total": 1,
"success": 1,
"failed": 0,
"cursorLastId": "69c6405934e3e2878e651cb0"
},
"multiDocument": {
"total": 0,
"success": 0,
"failed": 0,
"cursorLastId": null
},
"aggregateVc": {
"total": 0,
"success": 0,
"failed": 0,
"cursorLastId": null
},
"splitDocument": {
"total": 0,
"success": 0,
"failed": 0,
"cursorLastId": null
},
"documentState": {
"total": 11,
"success": 11,
"failed": 0,
"cursorLastId": "69c643a82737af139ce96f4b"
},
"token": {
"total": 0,
"success": 0,
"failed": 0,
"cursorLastId": null
},
"retirePool": {
"total": 0,
"success": 0,
"failed": 0,
"cursorLastId": null
}
},
"isDryRun": false,
"failedItems": [
{
"createDate": "2026-03-27T08:45:04.584Z",
"updateDate": "2026-03-27T09:09:55.401Z",
"srcPolicyId": "69c63ecb2737af139ce96bf1",
"dstPolicyId": "69c642562737af139ce96e7c",
"entityType": "policyState",
"srcEntityId": "69c63f4134e3e2878e651c4b",
"runId": "69c643902737af139ce96ee7",
"attemptCount": 2,
"errorMessage": "Error: Destination block mapping not found for policyState",
"firstFailedAt": "2026-03-27T08:45:04.583Z",
"lastFailedAt": "2026-03-27T09:09:55.397Z",
"id": "69c643902737af139ce96eec"
},
{
"createDate": "2026-03-27T08:45:04.582Z",
"updateDate": "2026-03-27T09:09:55.401Z",
"srcPolicyId": "69c63ecb2737af139ce96bf1",
"dstPolicyId": "69c642562737af139ce96e7c",
"entityType": "policyState",
"srcEntityId": "69c6401d34e3e2878e651c86",
"runId": "69c643902737af139ce96ee7",
"attemptCount": 2,
"errorMessage": "Error: Destination block mapping not found for policyState",
"firstFailedAt": "2026-03-27T08:45:04.581Z",
"lastFailedAt": "2026-03-27T09:09:55.397Z",
"id": "69c643902737af139ce96eeb"
},
{
"createDate": "2026-03-27T08:45:04.580Z",
"updateDate": "2026-03-27T09:09:55.400Z",
"srcPolicyId": "69c63ecb2737af139ce96bf1",
"dstPolicyId": "69c642562737af139ce96e7c",
"entityType": "policyState",
"srcEntityId": "69c63fd734e3e2878e651c6d",
"runId": "69c643902737af139ce96ee7",
"attemptCount": 2,
"errorMessage": "Error: Destination block mapping not found for policyState",
"firstFailedAt": "2026-03-27T08:45:04.580Z",
"lastFailedAt": "2026-03-27T09:09:55.397Z",
"id": "69c643902737af139ce96eea"
}
]
}
]
}Returns migration runs.
010Filter by migration run status: running, completed, failed, stopped. Multiple values are passed as a comma-separated list. In Swagger UI, select several values from the list by holding Ctrl (Windows/Linux) or Command (macOS).
Migration runs.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/migrate-data/runs HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"runId": "f3b2a9c1e4d5678901234567",
"srcPolicyId": "f3b2a9c1e4d5678901234567",
"dstPolicyId": "f3b2a9c1e4d5678901234567",
"status": "string",
"isDryRun": true,
"startedAt": "string",
"finishedAt": "string",
"summary": "string",
"failedItems": [
{
"srcPolicyId": {},
"dstPolicyId": {},
"entityType": {},
"srcEntityId": {},
"runId": {},
"attemptCount": {},
"errorCode": {},
"errorMessage": {},
"firstFailedAt": {},
"lastFailedAt": {}
}
]
}
],
"count": 0,
"pageIndex": 0,
"pageSize": 0
}Creates a new policy. Only users with the Standard Registry role are allowed to make the request.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/push HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 273
{
"name": "New policy",
"applicabilityConditions": "",
"detailsUrl": "",
"typicalProjects": "",
"topicDescription": "",
"description": "Policy description",
"categories": [
"69c2cfc534d008dac266432c",
"69c2cfc534d008dac2664316",
""
],
"importantParameters": {
"atValidation": "",
"monitored": ""
}
}{
"taskId": "89e1e62a-7976-4e24-8dd3-997da02dc81e",
"expectation": 8,
"action": "Create policy",
"userId": "69c2cfc021d39e7b6d15e236"
}Clones policy. Only users with the Standard Registry role are allowed to make the request.
Source policy id to clone. The new policy is created asynchronously; optional overrides in the body apply name, topicDescription, description, and policyTag (see clone/import flow).
69aeb71ef8c5b278e3bab4e569aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/push/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 132
{
"policyTag": "Tag_1774613972836",
"name": "ClonedPolicy",
"topicDescription": "Topic description text",
"description": "Description text"
}{
"taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
"expectation": 5,
"action": "Clone policy",
"userId": "69c2cfc021d39e7b6d15e236"
}Remove policy. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
DELETE /api/v1/policies/push/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
"expectation": 5,
"action": "Delete policy",
"userId": "69c2cfc021d39e7b6d15e236"
}Remove multiple policies by their IDs. Only users with the Standard Registry role are allowed to make the request.
Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/push/delete-multiple HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 69
{
"policyIds": [
"69c673f3fbdb94688e7eea7f",
"69c67548fbdb94688e7eeb98"
]
}{
"taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
"expectation": 3,
"action": "Delete policies",
"userId": "69c2cfc021d39e7b6d15e236"
}Retrieves policy configuration for the specified policy ID for users who have API permission to read, execute, manage, or audit policies and access to that policy.
Policy Id
69aeb71ef8c5b278e3bab4e5Policy configuration.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"codeVersion": "1.0.0",
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "NEW",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
}Updates policy configuration for the specified policy ID. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e569aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Policy configuration.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Resource not found.
Internal server error.
PUT /api/v1/policies/{policyId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2763
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"applicabilityConditions": "",
"detailsUrl": "",
"typicalProjects": "",
"importantParameters": {
"atValidation": "",
"monitored": ""
},
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"instanceTopicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"availability": "private",
"codeVersion": "1.0.0",
"tools": [
{
"name": "Tool 33",
"version": "1.0.0",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517"
}
],
"schemaTemplate": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": "text",
"editableParametersSettings": [
{}
],
"config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"policyDocumentation": [
{
"name": "create_device",
"description": "Send event to create_device",
"target": "create_device",
"method": "POST",
"alias": "monitoring-reports/create",
"url": "/api/v1/policies/{policyId}/tag/create_device/blocks",
"dmrvUrl": "/api/v1/dmrv/{policyId}/monitoring-reports/create"
}
],
"categories": [
"text"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "New",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": "text"
}
],
"ignoreRules": [
{
"code": "text",
"blockType": "text",
"property": "text",
"contains": "text",
"severity": "warning"
}
]
}{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"codeVersion": "1.0.0",
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "NEW",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
}Returns JSON null when the current user is not in a local disconnected state for this policy. Returns the policy configuration (PolicyDTO) when the user is disconnected (same enrichment as policy info for the viewer).
Policy Id
69aeb71ef8c5b278e3bab4e5null if not disconnected; otherwise the policy object for the disconnected user.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/disconnected HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Returns a list of documented API actions with relative URLs for the specified policy.
Policy Id
69aeb71ef8c5b278e3bab4e5Policy documentation entries.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/about HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{}
]Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e51.0.0privatePossible values: Record policy actions
falseSuccessful operation.
Unauthorized request.
Forbidden
Internal server error.
PUT /api/v1/policies/{policyId}/publish HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 81
{
"policyVersion": "1.0.0",
"policyAvailability": "private",
"recordingEnabled": false
}{
"policies": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"codeVersion": "1.0.0",
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "NEW",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": {}
}
],
"ignoreRules": [
{
"code": {},
"blockType": {},
"property": {},
"contains": {},
"severity": {}
}
]
}
],
"isValid": true,
"errors": {
"blocks": [
{
"id": "f3b2a9c1e4d5678901234567",
"name": "string",
"errors": [
{}
],
"warnings": [
{}
],
"infos": [
{}
],
"isValid": true
}
],
"errors": [
"string"
],
"warnings": [
"string"
],
"infos": [
"string"
]
}
}Publishes the policy with the specified (internal) policy ID onto IPFS, sends a message featuring its IPFS CID into the corresponding Hedera topic. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e51.0.0privatePossible values: Record policy actions
falseSuccessful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
PUT /api/v1/policies/push/{policyId}/publish HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 81
{
"policyVersion": "1.0.0",
"policyAvailability": "private",
"recordingEnabled": false
}{
"taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
"expectation": 13,
"action": "Publish policy",
"userId": "69c2cfc021d39e7b6d15e236"
}Switches the specified policy into dry-run mode asynchronously and returns the task of the operation, so that its progress can be tracked. Dry-run mode is intended for testing and simulation without executing real transactions. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
PUT /api/v1/policies/push/{policyId}/dry-run HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}{
"taskId": "c51e15d5-b484-49e9-b267-84b1de3585b4",
"expectation": 6,
"action": "Dry-run policy",
"userId": "69c2cfc021d39e7b6d15e236"
}Switches the specified policy into dry-run mode and returns the resulting validation payload. Dry-run mode is intended for testing and simulation without executing real transactions. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Successful operation.
Unauthorized request.
Forbidden
Internal server error.
PUT /api/v1/policies/{policyId}/dry-run HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}{
"policies": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"codeVersion": "1.0.0",
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "NEW",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": {}
}
],
"ignoreRules": [
{
"code": {},
"blockType": {},
"property": {},
"contains": {},
"severity": {}
}
]
}
],
"isValid": true,
"errors": {
"blocks": [
{
"id": "f3b2a9c1e4d5678901234567",
"name": "string",
"errors": [
{}
],
"warnings": [
{}
],
"infos": [
{}
],
"isValid": true
}
],
"errors": [
"string"
],
"warnings": [
"string"
],
"infos": [
"string"
]
}
}Discontinues the policy. For an immediate discontinue, send an empty JSON object {}. For a scheduled discontinue, send a body with date as an ISO-8601 timestamp (UTC). Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5UTC instant when the policy should be discontinued (omit for immediate).
2026-03-30T20:00:00.000ZSuccessful operation.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Internal server error.
PUT /api/v1/policies/{policyId}/discontinue HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}[
{
"id": "f3b2a9c1e4d5678901234567",
"uuid": "f3b2a9c1e4d5678901234567",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "string",
"creator": "string",
"owner": "string",
"topicId": "f3b2a9c1e4d5678901234567",
"messageId": "f3b2a9c1e4d5678901234567",
"codeVersion": "1.0.0",
"createDate": "string",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "string",
"tests": [
{
"id": "f3b2a9c1e4d5678901234567",
"uuid": "f3b2a9c1e4d5678901234567",
"name": "Test Name",
"policyId": "f3b2a9c1e4d5678901234567",
"owner": "string",
"status": "string",
"date": "string",
"duration": 0,
"progress": 0,
"resultId": "f3b2a9c1e4d5678901234567",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
}
]Return policy to editing. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Successful operation.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Internal server error.
PUT /api/v1/policies/{policyId}/draft HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"id": "f3b2a9c1e4d5678901234567",
"uuid": "f3b2a9c1e4d5678901234567",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "string",
"creator": "string",
"owner": "string",
"topicId": "f3b2a9c1e4d5678901234567",
"messageId": "f3b2a9c1e4d5678901234567",
"codeVersion": "1.0.0",
"createDate": "string",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "string",
"tests": [
{
"id": "f3b2a9c1e4d5678901234567",
"uuid": "f3b2a9c1e4d5678901234567",
"name": "Test Name",
"policyId": "f3b2a9c1e4d5678901234567",
"owner": "string",
"status": "string",
"date": "string",
"duration": 0,
"progress": 0,
"resultId": "f3b2a9c1e4d5678901234567",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
}
]Validates the policy configuration provided in the request body. Only users with the Standard Registry role are allowed to make the request.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Validation result.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/validate HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2763
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"applicabilityConditions": "",
"detailsUrl": "",
"typicalProjects": "",
"importantParameters": {
"atValidation": "",
"monitored": ""
},
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"instanceTopicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"availability": "private",
"codeVersion": "1.0.0",
"tools": [
{
"name": "Tool 33",
"version": "1.0.0",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517"
}
],
"schemaTemplate": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": "text",
"editableParametersSettings": [
{}
],
"config": {
"ANY_ADDITIONAL_PROPERTY": "anything"
},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"policyDocumentation": [
{
"name": "create_device",
"description": "Send event to create_device",
"target": "create_device",
"method": "POST",
"alias": "monitoring-reports/create",
"url": "/api/v1/policies/{policyId}/tag/create_device/blocks",
"dmrvUrl": "/api/v1/dmrv/{policyId}/monitoring-reports/create"
}
],
"categories": [
"text"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "New",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": "text"
}
],
"ignoreRules": [
{
"code": "text",
"blockType": "text",
"property": "text",
"contains": "text",
"severity": "warning"
}
]
}{
"policy": {
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"codeVersion": "1.0.0",
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "NEW",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
},
"results": {
"blocks": [
{
"id": "f3b2a9c1e4d5678901234567",
"name": "string",
"errors": [
{}
],
"warnings": [
{}
],
"infos": [
{}
],
"isValid": true
}
],
"errors": [
"string"
],
"warnings": [
"string"
],
"infos": [
"string"
]
}
}Disconnects the user from the selected policy. On success the response body is the boolean true.
Policy Id
69aeb71ef8c5b278e3bab4e5Returns true when the disconnect succeeds.
trueUnauthorized request.
Forbidden
Internal server error.
PUT /api/v1/policies/{policyId}/disconnect HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
trueRestores the userโs participation in the policy after disconnection. On success the response body is the boolean true.
Policy Id
69aeb71ef8c5b278e3bab4e5Returns true when the reconnect succeeds.
trueUnauthorized request.
Forbidden
Internal server error.
PUT /api/v1/policies/{policyId}/reconnect HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
trueReturns policy navigation. Optional savepointIds (stringified JSON array) scopes navigation to a dry-run savepoint state when provided.
Policy Id
69aeb71ef8c5b278e3bab4e5Optional. Savepoint ids as a JSON array of strings, passed as a single query value (stringified JSON). Parsed with the rest of the query and sent to the engine.
["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]Successful operation.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/navigation HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"result": "ok"
}Returns groups for the current user. Optional savepointIds (stringified JSON array) scopes groups to a dry-run savepoint state when provided.
Policy Id
69aeb71ef8c5b278e3bab4e5Optional. JSON array of savepoint id strings, sent as a single query value (stringified JSON). Invalid values yield 400.
["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]Successful operation.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/groups HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"result": "ok"
}Sets the active group for the current user on this policy. Send uuid: null to enter Default State (not tied to a specific group); from there you may create a new group if you want. Send uuid with an existing group identifier to switch to that group.
Policy Id
69aeb71ef8c5b278e3bab4e5An existing group uuid, or JSON null for Default State.
Successful operation.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/groups HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 13
{
"uuid": null
}{
"result": "ok"
}Get policy documents. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Document type.
Include document field.
trueThe number of pages to skip before starting to collect the result set
0The numbers of items to return
20JSON array of document index rows (fields vary by stored record). X-Total-Count is the total matching rows for paging.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/documents HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"schema": "#16462e4c-4553-4b91-8ff8-ea3a1094a744&1.0.0",
"owner": "did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161",
"messageId": "1774621651.173557000",
"id": "69c693d288a9ebd936dfcb2d"
}
]Get policy documents with filters.
Policy Id
69aeb71ef8c5b278e3bab4e5Text search
ExampleSchemas
["#001, #002"]Owners
["001, 002"]Tokens
["001, 002"]Related
["001, 002"]The number of pages to skip before starting to collect the result set
0The numbers of items to return
20Documents.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/search-documents HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
"string"
]Exports policy documents and related filtered data as a ZIP archive.
Policy Id
69aeb71ef8c5b278e3bab4e5Ids
["001, 002"]Text search
ExampleSchemas
["#001, #002"]Owners
["001, 002"]Tokens
["001, 002"]Related
["001, 002"]Successful operation. Response zip file.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/export-documents HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
stringGet policy document owners.
Policy Id
69aeb71ef8c5b278e3bab4e5JSON array of distinct document-owner DIDs (strings). X-Total-Count matches array length for Standard Registry; other roles receive a single-element array.
Hedera DID of a document owner
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/document-owners HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
"did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"did:hedera:testnet:BftZd6RVk1D5yXC64g25b9TmhAvNLwki271mWgDAu7yW_0.0.8361161"
]Get policy tokens.
Policy Id
69aeb71ef8c5b278e3bab4e5Token Ids.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/tokens HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
"string"
]Downloads a ZIP archive (served with .data filename extension) containing policy migration/export content. Typical entries include policy.json, blocks.json, users.json, userTopic.json, plus folders generated from loaders such as vcs/, vps/, tokens/, and related files (multiDocuments/, documentStates/, mintRequests/, mintTransactions/, retirePools/). Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5ZIP binary payload with exported policy data and related entities for migration/import.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binary (zip archive)Upload policy data. Only users with the Standard Registry role are allowed to make the request.
Uploaded policy.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8
"binary"{
"createDate": "2026-03-26T10:10:06.439Z",
"updateDate": "2026-03-26T10:11:37.309Z",
"uuid": "a3336ac3-ae33-4397-85ab-0dbed992c99b",
"name": "iRec_4_1774519806406",
"version": "3",
"description": "iRec Description",
"topicDescription": "iRec Description",
"configFileId": "69c5065988275585de0ab308",
"status": "PUBLISH",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161",
"policyRoles": [],
"policyGroups": [],
"policyTopics": [],
"policyTokens": [],
"topicId": "0.0.8382928",
"instanceTopicId": "0.0.8382933",
"synchronizationTopicId": "0.0.8382934",
"commentsTopicId": "0.0.8382936",
"policyTag": "Tag_1774519783335",
"messageId": "1774519889.760696000",
"codeVersion": "1.5.1",
"hash": "35nNHbsFioMqSKBbv67YcL2KvHsQEu821T2hNdV3LWvk",
"hashMapFileId": "69c5065988275585de0ab30a",
"tools": [],
"availability": "private",
"locationType": "local",
"recordsTopicId": "0.0.8382935",
"autoRecordSteps": true,
"contentFileId": "69c5064588275585de0ab2f0",
"config": {},
"hashMap": {},
"id": "69c937108f421b1354945d4b"
}Returns a ZIP archive (DEFLATE) with virtual keys and DID documents for the policy dry run / demo context. The response uses Content-Type: application/virtual-keys and Content-Disposition: attachment with a .vk filename derived from the policy name. Archive layout: folder virtualKeys/ โ one .json file per virtual key (participant DIDs, excluding the Standard Registry owner DID); folder dids/ โ one .json file per DID document. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Binary body: ZIP archive as described in the operation summary (not JSON).
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/virtual-keys HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binaryImports the same ZIP layout as GET /policies/{policyId}/virtual-keys exports: folders virtualKeys/ and dids/ with JSON files. Send raw archive bytes with Content-Type: binary/octet-stream (e.g. a .vk file from export). Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Import finished successfully. The response body is JSON null (no object payload).
Null on success.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/virtual-keys HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8
"binary"No content
Maps each block tag to its instance UUID for this policy. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Record of block tag โ block instance UUID.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/tag-block-map HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"Choose_Roles": "67b1ba6f-732b-49fe-b96c-2bc65d2bfef5",
"header": "eba62c72-d50d-4deb-92e1-efb320b999d8",
"approve_PP": "de7655e2-abb4-4c11-9c9d-d9045863655f",
"pp_grid_sr": "342d3226-60b8-440f-ae74-4d9d4e9b1502",
"pp_grid_sr_documents_to_approve": "75a79a7a-9e5d-451b-ac9a-0cae1c74e0c5",
"pp_grid_sr_documents_approved": "721563a4-ac0b-41fd-ac3c-648f603c266f",
"pp_grid_sr_documents_approved_rejected": "2cef948f-5331-40d7-8605-db8996949074",
"pp_grid_sr_history": "d8a519e6-8154-441e-b0c5-ce9354ee3e20",
"approve_pp_documents_btn": "ba9bbaff-777c-4cea-b57c-88f5e66738e8",
"revoke_pp_sr_btn": "52566539-55b9-401e-a7ae-5c155e3c4e84",
"revoke_pp_sr": "c5625a1d-4211-4c86-a807-138bef4ed683",
"save_revoke_pp_sr": "b0f38345-c568-4846-bc16-a001f324c1be",
"approve_VVB": "7df235de-8a3a-4b6a-b7e4-afbbb1e07789",
"vvb_grid_sr": "7dcca0c2-686d-4f6e-ae6f-9047a062b21e",
"vvb_grid_sr_documents_to_approve": "a81f2eb8-c463-40c0-9a99-1b54b4330d13",
"vvb_grid_sr_documents_approved": "5eb49aed-e645-4cce-ac66-478f33e43ecb",
"vvb_grid_sr_documents_approved_rejected": "94d0f573-d925-487c-93c5-197ae62b835c",
"history_addon_35a0bfb0-72a2-4dde-a107-ce356544a9c7": "779fc971-2db2-402e-b74e-3a93c4d3fee1",
"approve_documents_btn": "11957409-363d-4c9a-ad63-b44e22f095b9",
"revoke_vvb_sr_btn": "4484e430-afdd-464b-9908-736f9f8691ca",
"revoke_vvb_sr": "07ecfe0c-4764-4e4d-845d-1b906a74c673",
"save_revoke_vvb_sr": "ef7b5c39-efb5-4c4c-8705-38d47a05c098",
"return_vvb_to_wait": "c257b2c4-415e-4580-a1ca-b7978ae18e2a",
"project_Pipeline": "ca3f48e7-46e0-4a9a-b808-0a8635950fc3",
"project_grid_sr": "4e31d57a-4c68-49a3-bd32-3971df87bc4e",
"project_grid_sr_waiting_for_validation": "9ea132db-8394-4f3d-b622-5468458ccb94",
"project_grid_sr_validated_revoked": "42e89bd3-3f7b-4b3b-8de2-d5e9f568b966",
"project_grid_sr_rejected": "28902755-9f7d-4b56-96f2-901bb11985c4",
"sr_project_grid_history": "57e1bff5-28cd-407e-b011-43d2cffd99f3",
"sr_validate_project_btn": "3dfdf39a-9e20-4622-b8cf-588083c3e643",
"sr_save_validated_project": "391cd16e-3250-4630-a1a8-83e5567b9d6d",
"sr_reassign_validated_project": "2e841cf4-90fe-4828-ab4e-2c6cb6ba931c",
"sr_save_reassigned_validated_project_hedera": "c3970f63-517f-471b-b883-a09436634926",
"sr_save_reassigned_validated_project_db": "5a6c1aaf-aab0-4356-a2ba-54885479401b",
"sr_save_rejected_project": "4931d0ac-102f-42b2-943f-fb2f5ee4747e",
"sr_reassign_rejected_project": "4231d33a-da43-43f6-b71b-4777f3241407",
"sr_save_reassigned_rejected_project_hedera": "ed395fc3-f4e2-465c-a69f-c4f731683036",
"sr_save_reassigned_rejected_project_db": "b375e199-3b1d-4d52-be48-153a77272f7c",
"sr_revoke_project_btn": "f641ac31-b3db-4797-bf09-41399cc092d1",
"sr_revoke_project": "e5d52ff6-000c-4024-b80c-810bd0487a89",
"sr_save_revoked_projects": "6a5d7596-34d5-4be1-bc5c-002504c3c8a8",
"Monitoring_Reports_sr": "d1ede253-2ad7-4e72-88e1-28d1caa8fbf7",
"report_grid_sr": "6e844eaf-2209-4bc1-a615-dddd2b091414",
"report_grid_sr_verified_approved_reports": "d4e2a6dd-dc93-4871-830d-74d6b6393cc5",
"report_grid_sr_approved_revoked": "e68c4e8d-cc14-4779-871d-0d7fd1ea991f",
"report_grid_sr_rejected": "544c78ea-9298-4579-87f2-0a77d08f93c7",
"history_addon_97744a6d-4bd6-4281-9075-3695b76475f1": "251ad205-4bf8-4b3f-a3bc-748db5da2c9d",
"sr_approve_report_btn": "bdee1b47-ce92-439e-91ae-851c9248540c",
"sr_save_approved_report": "4e443dd1-913f-446d-8fb9-40e14290fdd0",
"sr_reassign_approved_report": "cc29360f-e5ec-4d0f-bae3-e79491426b37",
"sr_save_reassigned_approved_report_hedera": "90f82730-9304-4620-98a2-aa4487e713a0",
"sr_save_reassigned_approved_report_db": "c5b54039-1ad3-454c-acda-fd85ba79cf41",
"mintToken": "e9557770-0664-41c7-977d-b90e02705a58",
"sr_save_rejected_report": "f7873839-57e1-41dd-8ea1-c5247f458a1f",
"sr_reassign_rejected_report": "52babd73-4b65-4d67-a1c1-7c8b24631731",
"sr_save_reassigned_rejected_report_hedera": "bd6127a3-556e-4366-a73b-28979db863fb",
"sr_save_reassigned_rejected_report_db": "9adb9ed4-7cfa-4417-90ca-cfd2db637473",
"sr_revoke_report_btn": "e8351d12-0ef0-4c13-8429-7c7461636879",
"sr_revoke_reports": "501467ae-149f-4ca6-a0a5-af6312d50334",
"sr_save_revoked_reports": "46422837-79c1-45b6-ade8-96f80a1af585",
"VP": "dca1dc1e-8b6e-4d32-a2ed-f750c7408fee",
"vp_grid": "76a5c371-2d7a-4669-a5c5-5e74b2e43922",
"vp_grid_vp_documents": "903eb680-1d02-4eb1-b2d2-92c9b6089957",
"TrustChain": "193f034e-f621-4187-92e8-4e02c23ae556",
"trustChainBlock": "267d727f-b405-465e-bc0a-bb09f121b308",
"MintTokenItem": "5ef14a78-bd0b-4460-9f5c-2f9b947b8b52",
"ReportMonitoringReportApproved": "92390fb9-c377-4be5-95f7-8111d739ce5e",
"ReportMonitoringReportVerified": "0e21256b-4217-4bad-8cbf-4f6a1f0c8f82",
"AutomaticMonitoringReport": "9ab4f8d7-4b20-4fb9-99cd-1d8e0e685d61",
"ReportMonitoringReportCreated": "6c6ca33b-1b17-473c-a0c4-f86c773ab85e",
"ReportProjectValidation": "18d32be0-b899-4d12-b36f-ce23f45694d3",
"AutomaticProject": "224bc884-fe6a-46e6-bec0-7888d7a54d1e",
"ReportProjectCreated": "8b0c9803-c6a0-4c13-83f6-b02a7844c44b",
"pp_step": "38ebef4b-0b4e-4724-b19f-81bb8b8c4c8a",
"create_pp_profile": "a091d4c6-aa73-40d8-8c52-b33eb4f8dd00",
"preset_pp_profile": "05ac6b40-f5e9-43aa-9e20-bffbfe3be525",
"save_pp_profile_hedera": "0d5f03aa-cfe9-46bb-bc36-48d994750806",
"save_pp_profile_db": "e290fad5-25de-461c-8c52-35df7c90d68e",
"pp_wait_for_approve": "70e31450-e940-47ea-8e1b-e2b6da708fb2",
"save_approved_pp": "bc9ec5a6-7bf6-4625-a0d4-6ec14dcd100b",
"reassign_approved_pp": "f4300ce7-b62f-4bf7-8f90-fce944c01453",
"save_reassigned_approved_pp_hedera": "101fbcb2-7410-4eb6-ac0b-aad62dfa61ad",
"save_reassigned_approved_pp_db": "d8bd023e-26ef-4e5f-bc29-327a099dfc2d",
"Project Participant_header": "b7c48ef6-9eff-4696-8967-41cb25efe008",
"pp_document": "3e907e60-c851-4803-963d-193b85f2de15",
"pp_profile_grid": "0852f759-da33-4a64-950f-bde731c87112",
"pp_documents": "7d591df9-2869-418c-ba72-29a43daf2177",
"pp_documents_rejected": "02b132cc-f987-4ed2-a050-1f6070aa4754",
"pp_documents_history": "2738651e-be9f-4e7d-a51d-89a842238d89",
"pp_revoke_profile": "d4bd6553-3ff4-474b-9cd2-b020ad87ab00",
"pp_revoke_profile_documents": "999824d8-0a96-426e-8853-597d6406a377",
"pp_save_revoked_profile_documents": "177d6b7b-eb34-4420-a852-3e5f015902ff",
"Projects_pp": "84fb55a8-1107-427a-8c82-a77016698d6e",
"project_grid_pp_2": "d4482a69-7390-48c1-8e76-d06ef487c85b",
"project_grid_pp_2_waiting_to_validate_projects": "da8f13f6-afdf-444a-bd91-98dfd7924c41",
"project_grid_pp_2_validated_projects": "166a3df0-b133-4b2b-80dc-20e45c7fb031",
"project_grid_pp_2_validated_revoked_projects_own": "00e46aee-09ff-423a-8a1b-3dacc4a88226",
"project_grid_pp_2_rejected_projects_own": "e178f60e-ef66-4ba0-81fb-3afbc49cfcc7",
"history_addon_4f31ccda-2486-4cc8-8c7b-647283e8f093": "745524f9-ee8d-4200-b767-cabb36a2d0e8",
"new_project": "ee6dea12-94ce-4e88-ab39-a0b5183a761d",
"add_project_bnt": "0110af34-bfd0-4ff5-b7f8-b821462f37ff",
"pp_set_profile_to_project": "865c907e-61de-49b7-bc18-48a98fa47d8a",
"pp_profile_project": "5d26570a-8b95-4f6b-9ade-b2f66d60d0fc",
"save_project_form_pp_hedera": "ff8d0501-e896-4865-a58c-f89a77486ac8",
"save_project_form_pp": "56f64879-69e6-45aa-8d7e-d6d99ade8ddc",
"tool_19_project": "84a5d3b0-223d-4ee6-8e26-9dab6f3aa31c",
"tool_19_project:get_tool_19": "4ccdf064-9966-46d9-84b3-56d97d68dac8",
"tool_19_project:calc_tool_19": "4a91f065-e631-4c9a-bcdc-49d3170b0862",
"tool_19_project:set_tool_19": "472bedb8-bfa9-4e97-9ad0-b253b30ad043",
"tool_21_project": "12e30f68-e7b7-4427-aa9a-7d7f75c22900",
"tool_21_project:get_tool_21": "b7984eab-893a-497f-ba73-3e6d4c0b7ce0",
"tool_21_project:set_tool_21": "16f57f36-48db-4989-adb1-ddb276fc23f1",
"tool_33_project": "dac9b2e4-cccd-4125-8e13-6bdb4c7d83f8",
"tool_33_project:get_tool_33": "805c54af-bea3-4351-b07c-cf30af8b8ecb",
"tool_33_project:calc_tool_33": "52974f49-497d-403b-9616-829da32590fe",
"tool_33_project:set_tool_33": "caabfe37-e697-45d0-a4d8-506b5917560e",
"tool_07_project": "a740d560-f27f-49b4-8484-c3c41acfc7a6",
"tool_07_project:get_tool_07": "5c961ffe-a69a-40b7-bdbc-6d860b963dbd",
"tool_07_project:calc_tool_07": "a1cc5525-6c22-4fda-8c95-1de20864ae40",
"tool_07_project:set_tool_07": "88db65b4-38e1-4395-8f7a-f1f9b2c9cb0b",
"calculate_project_fields": "48e0c5b9-2037-486f-9e62-a4a72a737174",
"save_project_hedera": "913db0c4-9a5f-4880-89e7-199f0b9f4893",
"save_project": "579b91a8-5843-475a-9df4-0cd62a193bd5",
"new_report": "9a3f8b47-d5f2-4a30-ae30-8591325cec5e",
"add_report_bnt": "3fce7522-70a5-4941-8885-70f889d76744",
"save_report_form_pp_hedera": "5c3542f5-10c9-45e4-9e4f-f19337311450",
"save_report_form_pp": "df353891-48aa-4e1d-a7f2-254b4eed845d",
"tool_19_report": "a6142f4e-2833-4682-b90a-13e470fac3e5",
"tool_19_report:get_tool_19": "f79682a5-ec6f-4880-bd16-5cf79a47646f",
"tool_19_report:calc_tool_19": "199a7094-d437-4cd2-a868-28d89c5e4003",
"tool_19_report:set_tool_19": "d34c7e63-362b-44c4-b09c-7e22ca0204b1",
"tool_21_report": "682bceb0-aca3-459e-868b-5071769e0010",
"tool_21_report:get_tool_21": "6adbef57-40b4-4605-a14a-396cff579f9b",
"tool_21_report:set_tool_21": "e98d3b99-0336-493a-9437-d8c987a055af",
"tool_33_report": "3015c9e1-0fd1-49dd-9e99-5e4360b03843",
"tool_33_report:get_tool_33": "c0efbc98-7bd2-4ab2-99ea-156d38cb8582",
"tool_33_report:calc_tool_33": "e7a04257-8aa2-46f0-a2de-356d7d4c0a23",
"tool_33_report:set_tool_33": "855895bd-3cc4-4f2a-b56f-24d7c2903341",
"tool_07_report": "ca9c2f91-0137-4bff-b4ae-122c779ebc8a",
"tool_07_report:get_tool_07": "a85a2235-f39e-4661-9149-ce960a1232c1",
"tool_07_report:calc_tool_07": "68e09c24-dda7-44dd-8cc5-cd99e97dc9bf",
"tool_07_report:set_tool_07": "a4ebe74e-170f-4a95-a9c1-181382a8aeb4",
"calculate_report_fields": "84efaf85-e863-4227-8398-36d502112803",
"save_report_form_hedera": "a49433cd-9d55-4f89-9ec5-657389be864c",
"save_report": "ee19553c-3125-4beb-b46f-4ff625c3bf61",
"revoke_project_pp_btn": "85579c1a-da55-48ad-a158-9aea06cdf875",
"revoke_project_pp": "a09c849a-09f6-45fb-90dc-38c8ae376cf4",
"send_revoke_project_pp": "5549e44e-abd3-452a-8b94-199decf5d90e",
"Monitoring_Reports_pp": "ad0195d8-f851-44ac-a6e0-a516e54aa0a8",
"report_grid_pp": "b6b93966-5db4-4cf5-bf6c-04caa79efa56",
"report_grid_pp_reports_verified": "ca93cd28-c825-42e4-8235-8b051b15fb50",
"report_grid_pp_reports_waiting_for_verification": "7e58d3ff-2b5b-4dbc-82ab-0803b9b6a69e",
"report_grid_pp_reports_rejected": "2f91b842-d120-47c0-8988-7d10898e0b9f",
"report_by_project": "5eb3bd9f-508a-4f34-878a-caeec03f5cc6",
"report_grid_pp_projects": "cc29afb5-44cc-4743-ab06-61ff78f2e367",
"history_addon_1797768b-5cff-4271-a075-b47d47414f42": "a9fdaf82-c435-4624-9667-fcf7b8aeba77",
"assign_vvb": "3764ff77-1d04-4685-83ff-4e40e943b02b",
"assign_vvb_documents": "8060701d-0503-4322-8566-155156f657f3",
"save_assign": "caa9d743-4e7c-4849-b180-6ded8ae547de",
"revoke_report_pp_btn": "c1bfcfd6-ef0f-431a-a647-132fd8896aee",
"revoke_report_pp": "b8e58e5c-168e-4dfa-ab57-22cc81709276",
"send_revoke_report_pp": "c395bd76-2e9d-4201-9d8f-d8ee2b02eed3",
"tokens": "9c69a673-99de-43ae-a3cb-1180e47a7419",
"tokens_grid": "96b059a2-fd03-4af6-92bd-b8cf7cfc8cab",
"tokens_grid_tokens": "36e9f937-a265-4133-9449-dbac4502a339",
"save_rejected_pp": "1087c34d-4a52-4ddf-b608-02c6b1af23e6",
"reassign_rejected_pp": "053512e1-ead8-423c-b643-ed2b823fb0e5",
"save_reassigned_rejected_pp_hedera": "6970ea93-234d-46f6-86fb-b10841bdfeef",
"save_reassigned_rejected_pp_db": "da466bdf-2cff-4732-a730-35af6a8681fc",
"rewrite_pp": "fa15cdb3-13a9-40e8-b1b5-9fb40f4d3d61",
"pp_rejected": "8e7ae449-f7a6-444d-9a4f-73bfeb63facc",
"return_pp_btn": "17ced663-b5fb-4f05-bf6d-57617215adbd",
"VVB": "65e4019a-cf24-4399-a036-b0736c46d147",
"new_VVB": "7dccf230-bae6-4e28-a330-670b974e2c0e",
"create_new_vvb": "4c06fc97-f3a8-429d-a1a2-e0c406f69ff0",
"rejected_vvb_docs": "3aaeea11-d9f6-4bd6-b3ef-8ea34fb7c6c6",
"save_new_approve_document_hedera": "54dc2457-6fbc-4c4f-b6ff-43c88f632795",
"save_new_approve_document": "4e7c4631-3720-4e65-b8ca-a93b1814eb32",
"wait_for_approve": "a46dd8eb-cba4-427e-bec7-529b5e6741ce",
"update_approve_document_status": "f08795df-218f-44f1-8067-fec69e3439ca",
"reassign_vc_vvb": "52a85cef-d272-4412-b178-fd70f164a789",
"save_vc_vvb_hedera": "cfed0069-5303-422a-889b-e64728193bbf",
"save_vc_vvb": "c97eb5df-9bc9-4f7a-8e9c-202aea60f3a8",
"VVB_Header": "3e94224b-1271-4daf-a4c6-8dc83466fac3",
"VVB Documents": "fe7f6083-df0d-4484-82c7-b2667a493ba3",
"vvb_grid": "aef5a12f-2104-4363-a0b8-1de0d9cf2dfd",
"vvb_grid_documents": "3a766cbe-64c4-4981-9ebf-00c0b91a2bf9",
"vvb_grid_documents_rejected": "5e19229a-d4af-4d86-ad80-2a8d8f2f5337",
"history_addon_eb2f56e0-f2d6-4288-bffe-ee08f89d60ab": "b59d9cda-644e-45b3-b2f8-ae35b1ac787b",
"revoke_vvb_own_document_btn": "4f1c84fd-86ed-42c3-87b7-c76e054b63b8",
"revoke_vvb_own_document": "16080f49-a76a-42c4-b914-426d5d0fe9e7",
"save_revoked_vvb_own_document": "d27b561b-e5a2-4bf8-944e-8e977eea82ee",
"return_vvb_to_request": "96a50c03-a562-41e6-801e-50b56a0f3bb5",
"Monitoring_Reports_vvp": "bfa2879f-37a5-43f3-8046-8aae903628a1",
"report_grid_vvb": "d29b2e1f-2176-4978-b189-c6dd30530f80",
"report_grid_vvb_reports": "c446e056-3631-4092-ae6d-b7a432aacdc8",
"report_grid_vvb_reports(approved)": "4c2e2765-cfc1-4fdc-b1b3-37ab0e7cd6e8",
"report_grid_vvb_reports(rejected)": "a7aa15ce-f271-4e28-9812-82bfd7ef5aa7",
"history_addon_a40f0da4-e982-481c-a23e-b86f7e76e770": "85b1cab4-ba3c-4e5f-a1da-7270082013c5",
"approve_report_btn": "710427a1-85ce-4745-8e25-d87d6e0998f7",
"mint_events": "9980537e-f8d8-4dc4-8d80-17b07891f0e7",
"approve_report_status": "21e27f70-b4ab-4a65-8b60-0f351671bc2e",
"reassign_report": "c3a99ced-d1bf-4282-ac9e-eda9764f4d3d",
"set_relationships_to_report_vvb": "6b47557b-df51-44c5-be4e-5ad311944c77",
"vvb_own_documents_relationships": "305c7fb4-50bb-4b1a-afa2-8beb0c9a7bec",
"save_reassign_report_hedera": "c93e6a61-65f8-4d3d-9f67-bb1d2f48b8d2",
"save_reassign_report": "df3240b6-112a-4138-8e00-801931583a28",
"reject_report_status": "f4f1db2e-cd0f-4662-aa0f-a320a3296747",
"reassign_rejected_report": "69dd0278-04c0-41bd-a950-fcd5dd1a23ee",
"set_relationships_to_rejected_vvb": "54e168f0-3ebc-4af1-ac8e-ee89c3221542",
"vvb_own_documents_relationships_rejected": "69e5d217-7c34-47f7-8dd1-26ad2dfafbf3",
"save_reassign_rejected_report_hedera": "ccb1148f-7496-4739-b921-d0ddbc31d6a2",
"save_reassign_rejected_report": "49e0ff43-aa52-44af-9bf2-5b3861c4144a",
"revoke_reassign_report_btn": "783618ca-1efa-4d31-b42b-5dc09826cb38",
"revoke_reassign_report": "66173aee-a100-43fd-b6df-71c9b4b97d6d",
"save_revoke_reassign_report": "d8cdb61b-1ea6-4658-bf39-3f4db876247a",
"update_approve_document_status_2": "fbe5b897-990e-4108-862b-e65356301617",
"reassign_rejected_vvb": "69247fb9-8146-4c3f-89bb-56c562419a5e",
"reassign_rejected_vvb_hedera": "b7c10574-8462-48ed-a099-3444e3af95a7",
"save_reassign_rejected_vvb": "b1a12acd-9d41-4174-8f10-58bbe8aaeaa4",
"rewrite_vvb": "5e1cdd40-8687-4279-bb27-479fa7ba1356",
"vvb_rejected": "65d9c1f5-94af-45fd-b483-6fa33d92c4e8",
"return_vvb_btn": "b81d06d9-35f8-476a-91d5-e86bd570ab68"
}Returns data from the root policy block. Users with permission to execute or manage the policy can make this request. If the root block is not available to the caller at the current policy stage or time, the request may fail.
Policy Id
69aeb71ef8c5b278e3bab4e5Optional. Savepoint ids (JSON array or stringified JSON). Parsed and passed with the rest of the query object to the engine.
["69c2cfc021d39e7b6d15e236"]Successful operation.
Unauthorized request.
Forbidden
Internal server error.
Block Unavailable.
GET /api/v1/policies/{policyId}/blocks HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "f3b2a9c1e4d5678901234567",
"blockType": "string",
"blocks": [
{}
]
}Returns the block payload for the specified UUID. Within a policy, different roles may see different blocks at different stages or moments of the workflow. If the requested block is not available to the callerโs role at this time, the API responds with 422 Unprocessable Entity and message: "Block Unavailable" (see response example).
Policy Id
69aeb71ef8c5b278e3bab4e5Block Identifier
9db028d2-03ad-4d49-a178-cf4b67f8c147Optional. Savepoint ids (JSON array or stringified JSON). Parsed and passed with the rest of the query object to the engine.
["69c2cfc021d39e7b6d15e236"]Block document. The OpenAPI schema is a minimal BlockDTO; actual responses include additional fields per block typeโsee the example.
Unauthorized request.
Forbidden
Block not available to the current role at this policy stage or time (including when the userโs role does not match the block configuration).
Internal server error.
Block Unavailable.
GET /api/v1/policies/{policyId}/blocks/{uuid} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "3e907e60-c851-4803-963d-193b85f2de15",
"blockType": "interfaceContainerBlock",
"actionType": "local",
"readonly": false,
"uiMetaData": {
"type": "blank",
"title": "Documents"
},
"blocks": [
{
"uiMetaData": {
"fields": [
{
"title": "Owner",
"name": "document.issuer",
"tooltip": "",
"type": "text"
},
{
"title": "Text",
"name": "document.credentialSubject.0.field0",
"tooltip": "",
"type": "text"
},
{
"title": "Operation",
"name": "",
"tooltip": "",
"type": "block",
"action": "",
"url": "",
"dialogContent": "",
"dialogClass": "",
"dialogType": "",
"bindBlock": "pp_revoke_profile",
"bindGroup": "pp_documents"
},
{
"title": "Operation",
"name": "option.status",
"tooltip": "",
"type": "text",
"action": "",
"url": "",
"dialogContent": "",
"dialogClass": "",
"dialogType": "",
"bindBlock": "",
"width": "250px"
},
{
"title": "Document",
"name": "document",
"tooltip": "",
"type": "button",
"action": "dialog",
"url": "",
"dialogContent": "VC",
"dialogClass": "",
"dialogType": "json",
"bindBlock": "",
"content": "View Document",
"uiClass": "link"
}
]
},
"content": "interfaceDocumentsSourceBlock",
"blockType": "interfaceDocumentsSourceBlock",
"id": "0852f759-da33-4a64-950f-bde731c87112"
},
null,
null,
null
]
}Sends block-specific input to the block identified by uuid and returns the block action result.
Policy Id
69aeb71ef8c5b278e3bab4e5Block Identifier
9db028d2-03ad-4d49-a178-cf4b67f8c147Optional engine timeout in milliseconds. Forwarded to guardian-service and clamped there to the range 10 ms to 1 hour.
60000Example: 60000Optional. Parsed as boolean in the API Gateway. If true, waits for a response from the remote policy action.
trueExample: trueSuccessful operation.
Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
Block Unavailable.
POST /api/v1/policies/{policyId}/blocks/{uuid} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}{
"id": "f3b2a9c1e4d5678901234567",
"blockType": "string",
"blocks": [
{}
]
}Returns paginated mint requests for the specified policy with optional filters.
Policy Id
69aeb71ef8c5b278e3bab4e5Status filter (error, pending, success)
errorAccount ID filter
0.0.6046379VP Message ID filter
1775659196.584626142The number of pages to skip before starting to collect the result set
0The numbers of items to return
20Mint requests.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/mint-requests HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"amount": 100,
"tokenId": "0.0.6046500",
"tokenType": "FUNGIBLE",
"target": "0.0.6046379",
"vpMessageId": "1774449622.177353801",
"isMintNeeded": false,
"isTransferNeeded": false,
"wasTransferNeeded": false,
"memo": "f3b2a9c1e4d5678901234567",
"metadata": null,
"error": null,
"processDate": "2026-03-25T14:40:28.853Z",
"policyId": "69b83f18cd6b7c4adf4139bc",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"id": "69c3ff9de85d8b6ef99ef870"
},
{
"amount": 50,
"tokenId": "0.0.6046500",
"tokenType": "NON_FUNGIBLE",
"target": "0.0.6046379",
"vpMessageId": "1774449700.283746192",
"isMintNeeded": true,
"isTransferNeeded": false,
"wasTransferNeeded": false,
"memo": "a1b2c3d4e5f6789012345678",
"metadata": null,
"error": "INSUFFICIENT_PAYER_BALANCE",
"processDate": "2026-03-25T15:30:37.191Z",
"policyId": "69b83f18cd6b7c4adf4139bc",
"owner": "did:hedera:testnet:EthnLQfQnh8x6vKyegyekhy72oSAok6cH59pfVssKLDw_0.0.8200599",
"id": "69c3ff9de85d8b6ef99ef871"
}
]Retries failed mint/transfer operations for the specified VP message within the given policy. Fire-and-forget: the endpoint performs synchronous validation (policy access, owner check, per-request cooldown / in-progress checks) and returns as soon as validation passes; the actual Hedera mint/transfer runs in the background. Poll GET /policies/{policyId}/mint-requests to observe progress and final state.
Policy Id
69aeb71ef8c5b278e3bab4e5VP Message Id
1774449700.283746192Validation passed; retry has been queued (fire-and-forget). warnings contains any per-request messages surfaced synchronously during validation (e.g. cooldown or already-in-progress); an empty array means every request was accepted for background processing. message is set only when no retry was needed because every mint request for the VP is already fully minted and transferred.
Unauthorized request.
Forbidden. Only the policy owner can retry mint requests.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/{policyId}/mint/{vpMessageId}/retry HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"warnings": []
}Sends block-specific input to the block identified by uuid and returns the action result together with sync event metadata. Set history=true to include the full steps history.
Policy Id
69aeb71ef8c5b278e3bab4e5Block Identifier
9db028d2-03ad-4d49-a178-cf4b67f8c147History
trueTimeout
60000Example: 60000Wait for a response from the remote policy
trueExample: trueSuccessful operation.
Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
Block Unavailable.
POST /api/v1/policies/{policyId}/blocks/{uuid}/sync-events HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}{
"result": "ok"
}Requests block data by tag. Users with permission to execute or manage the policy can make this request. The block tag is case-sensitive. Works the same way as GET /policies/{policyId}/blocks/{uuid}. The only difference is that this route identifies the target block by tagName instead of uuid.
Policy Id
69aeb71ef8c5b278e3bab4e5Block name (Tag)
block-tagOptional. Savepoint ids (JSON array or stringified JSON). Parsed and passed with the rest of the query object to the engine.
["69c2cfc021d39e7b6d15e236"]Successful operation.
Unauthorized request.
Forbidden
Internal server error.
Block Unavailable.
GET /api/v1/policies/{policyId}/tag/{tagName}/blocks HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "f3b2a9c1e4d5678901234567",
"blockType": "string",
"blocks": [
{}
]
}Works the same way as POST /policies/{policyId}/blocks/{uuid}. The difference is that this route identifies the target block by tagName instead of uuid.
Policy Id
69aeb71ef8c5b278e3bab4e5Block name (Tag)
block-tagOptional engine timeout in milliseconds. Forwarded to guardian-service and clamped there to the range 10 ms to 1 hour.
60000Example: 60000Optional. If true, waits for a response from the remote policy action.
trueExample: trueSuccessful operation.
Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
Block Unavailable.
POST /api/v1/policies/{policyId}/tag/{tagName}/blocks HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}{
"id": "f3b2a9c1e4d5678901234567",
"blockType": "string",
"blocks": [
{}
]
}Works the same way as POST /policies/{policyId}/blocks/{uuid}/sync-events. The difference is that this route identifies the target block by tagName instead of uuid.
Policy Id
69aeb71ef8c5b278e3bab4e5Block name (Tag)
block-tagHistory
trueTimeout
60000Example: 60000Wait for a response from the remote policy
trueExample: trueSuccessful operation.
Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
Block Unavailable.
POST /api/v1/policies/{policyId}/tag/{tagName}/blocks/sync-events HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}{
"result": "ok"
}Resolves the block identified by tagName within the policy and returns its block UUID as { id }. Users with permission to execute or manage the policy can make this request. The block tag is case-sensitive.
Policy Id
69aeb71ef8c5b278e3bab4e5Block name (Tag). Case-sensitive.
block-tagResolved block identifier.
9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
GET /api/v1/policies/{policyId}/tag/{tagName} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "9db028d2-03ad-4d49-a178-cf4b67f8c147"
}Returns the UUID chain for the specified block, starting with the requested block and continuing through its parents up to the root block. Users with permission to execute or manage the policy can make this request.
Policy Id
69aeb71ef8c5b278e3bab4e5Block Identifier
9db028d2-03ad-4d49-a178-cf4b67f8c147Successful operation.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/blocks/{uuid}/parents HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
"9ea132db-8394-4f3d-b622-5468458ccb94",
"4e31d57a-4c68-49a3-bd32-3971df87bc4e",
"ca3f48e7-46e0-4a9a-b808-0a8635950fc3",
"eba62c72-d50d-4deb-92e1-efb320b999d8",
"4b80c383-2354-47f6-b07d-c5e3b07b8533"
]Returns block descriptions. Only users with the Standard Registry role are allowed to make the request.
Block descriptions.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/blocks/about HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"result": "ok"
}Returns a zip file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5ZIP archive containing the exported policy file.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/export/file HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binaryReturns the Hedera message ID for the specified published policy together with related policy metadata: internal id, name, description, version, and owner DID. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Hedera message ID and related policy metadata.
69c38f81462c9c1141de2df2CDM AMS-III.AR PolicySubstituting fossil fuel-based lighting with LED/CFL lighting systems11774427068.001165000did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/export/message HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"id": "69c38f81462c9c1141de2df2",
"name": "CDM AMS-III.AR Policy",
"description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
"version": "1",
"messageId": "1774427068.001165000",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8361161"
}Returns a xlsx file containing the published policy and all associated artifacts, i.e. schemas and VCs. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5ZIP/XLSX binary payload returned as a file download.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/export/xlsx HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
binaryImports a new policy and all associated artifacts into the local DB using the provided Hedera topic message ID. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. originalTracking=true stores the imported policy original hash/message linkage for later change tracking. Only users with the Standard Registry role are allowed to make the request.
The topic ID of policy version.
0.0.00000001Import policy in demo mode.
trueSave original state of the policy
trueHedera topic message id
Created policy.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/import/message HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 70
{
"messageId": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}[
{
"id": "f3b2a9c1e4d5678901234567",
"uuid": "f3b2a9c1e4d5678901234567",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "string",
"creator": "string",
"owner": "string",
"topicId": "f3b2a9c1e4d5678901234567",
"messageId": "f3b2a9c1e4d5678901234567",
"codeVersion": "1.0.0",
"createDate": "string",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "string",
"tests": [
{
"id": "f3b2a9c1e4d5678901234567",
"uuid": "f3b2a9c1e4d5678901234567",
"name": "Test Name",
"policyId": "f3b2a9c1e4d5678901234567",
"owner": "string",
"status": "string",
"date": "string",
"duration": 0,
"progress": 0,
"resultId": "f3b2a9c1e4d5678901234567",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
}
]Starts asynchronous import of a new policy and all associated artifacts into the local DB using the provided Hedera topic message ID. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. originalTracking=true stores the imported policy original hash/message linkage for later change tracking. Only users with the Standard Registry role are allowed to make the request.
The topic ID of policy version.
0.0.00000001Import policy in demo mode.
trueSave original state of the policy
trueHedera topic message id
Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/push/import/message HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 70
{
"messageId": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}{
"taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
"expectation": 17,
"action": "Import policy message",
"userId": "69c2cfc021d39e7b6d15e236"
}Previews the policy identified by the provided Hedera topic message ID without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request.
Hedera topic message id
Policy preview.
1773670900.8192645170.0.6046379Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/import/message/preview HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 70
{
"messageId": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}{
"policy": {
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"codeVersion": "1.0.0",
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "NEW",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
},
"messageId": "1773670900.819264517",
"schemas": [
{}
],
"tags": [
{}
],
"moduleTopicId": "0.0.6046379"
}Previews the policy identified by the provided Hedera topic message ID without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request.
Hedera topic message id
Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/push/import/message/preview HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 70
{
"messageId": "text",
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "anything"
}
}{
"taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
"expectation": 4,
"action": "Preview policy message",
"userId": "69c2cfc021d39e7b6d15e236"
}Imports a new policy and all associated artifacts, such as schemas and VCs, from the provided ZIP file into the local DB. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. Only users with the Standard Registry role are allowed to make the request.
The topic ID of policy version.
0.0.00000001Import policy in demo mode.
trueCreated policy.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/import/file HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8
"binary"[
{
"id": "f3b2a9c1e4d5678901234567",
"uuid": "f3b2a9c1e4d5678901234567",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "string",
"creator": "string",
"owner": "string",
"topicId": "f3b2a9c1e4d5678901234567",
"messageId": "f3b2a9c1e4d5678901234567",
"codeVersion": "1.0.0",
"createDate": "string",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "string",
"tests": [
{
"id": "f3b2a9c1e4d5678901234567",
"uuid": "f3b2a9c1e4d5678901234567",
"name": "Test Name",
"policyId": "f3b2a9c1e4d5678901234567",
"owner": "string",
"status": "string",
"date": "string",
"duration": 0,
"progress": 0,
"resultId": "f3b2a9c1e4d5678901234567",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
}
]Imports a new policy and all associated artifacts, such as schemas and VCs, from the provided ZIP file into the local DB. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. The optional metadata file is a JSON payload used for import settings such as tool message remapping and importRecords. Only users with the Standard Registry role are allowed to make the request.
The topic ID of policy version.
0.0.00000001Import policy in demo mode.
truePolicy archive (ZIP format).
Optional JSON file (for example metadata.json) with content like { "tools": { "1706867530.884259218": "1774367941.594676930" }, "importRecords": true }.
Created policy.
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Policy nameDescriptionDescriptionTagDRAFTPossible values: did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.60463790.0.60463791773670900.819264517privatePossible values: 1.0.02026-03-03T17:25:53.312Z1.0.0Installer["Installer"]Full list of group rows for this user in the policy (getGroupsByUser), including inactive.
[{"uuid":"9db028d2-03ad-4d49-a178-cf4b67f8c147","role":"Installer","groupLabel":"Label","groupName":"Name","active":true}]["Registrant"][{"role":"Registrant","steps":[{"block":"Block tag","level":1,"name":"Step name"}]}][{"name":"Project","description":"Project","memoObj":"topic","static":false,"type":"any"}][{"tokenName":"Token name","tokenSymbol":"Token symbol","tokenType":"non-fungible","decimals":"","changeSupply":true,"enableAdmin":true,"enableFreeze":true,"enableKYC":true,"enableWipe":true,"templateTokenTag":"token_template_0"}][{"name":"Group name","creator":"Registrant","groupAccessType":"Private","groupRelationshipType":"Multiple","members":["Registrant"]}]User-configured policy API documentation entries. The alias may be a single slug (create-device) or a path of slugs separated by / (monitoring-reports/create).
[{"name":"create_device","description":"Send event to create_device","target":"create_device","method":"POST","alias":"monitoring-reports/create","url":"/api/v1/policies/{policyId}/tag/create_device/blocks","dmrvUrl":"/api/v1/dmrv/{policyId}/monitoring-reports/create"}]9db028d2-03ad-4d49-a178-cf4b67f8c147Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/import/file-metadata HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 43
{
"policyFile": "binary",
"metadata": "binary"
}[
{
"createDate": "2026-03-28T18:27:11.922Z",
"uuid": "e6f6664e-1c89-4fa1-82c6-a8ba8e1b13c9",
"name": "CDM AMS-III.AR Policy",
"description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417238",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417238",
"policyRoles": [
"Project Participant",
"VVB"
],
"policyGroups": [],
"topicId": "0.0.8417334",
"instanceTopicId": null,
"policyTag": "Tag_1774722384863",
"codeVersion": "1.5.1",
"tools": [
{
"name": "Tool 33_modified",
"version": "1.8.8",
"topicId": "0.0.8417180",
"messageId": "1774721982.046674000"
},
{
"name": "Tool 19_modified",
"version": "1.7.7",
"topicId": "0.0.8417160",
"messageId": "1774721939.774362000"
},
{
"name": "Tool 21_modified",
"version": "3",
"topicId": "0.0.8417140",
"messageId": "1774721890.353019000"
},
{
"name": "Tool 07_modified",
"version": "7",
"topicId": "0.0.8360425",
"messageId": "1774367941.594676930"
}
],
"userRoles": [
"Administrator"
],
"userGroups": [],
"userRole": "Administrator",
"userGroup": null,
"tests": [],
"id": "69c81d7fc778760bac62cf66"
}
]Starts asynchronous import of a new policy and all associated artifacts, such as schemas and VCs, from the provided ZIP file into the local DB. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. originalTracking=true stores the imported policy original ZIP/hash linkage for later change tracking. Only users with the Standard Registry role are allowed to make the request.
The topic ID of policy version.
0.0.00000001Import policy in demo mode.
trueSave original state of the policy
trueSuccessful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/push/import/file HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8
"binary"{
"taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
"expectation": 15,
"action": "Import policy file",
"userId": "69c2cfc021d39e7b6d15e236"
}Starts asynchronous import of a new policy and all associated artifacts, such as schemas and VCs, from the provided ZIP file into the local DB. versionOfTopicId imports the policy as a new version of an existing policy topic instead of creating a new one. demo=true imports the policy in demo mode and starts it as a demo policy. originalTracking=true stores the imported policy original ZIP/hash linkage for later change tracking. The optional metadata file is a JSON payload used for import settings such as tool message remapping and importRecords. Only users with the Standard Registry role are allowed to make the request.
The topic ID of policy version.
0.0.00000001Import policy in demo mode.
trueSave original state of the policy
truePolicy archive (ZIP format).
Optional JSON file (for example metadata.json) with content like { "tools": { "1706867530.884259218": "1774367941.594676930" }, "importRecords": true }.
Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/push/import/file-metadata HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 43
{
"policyFile": "binary",
"metadata": "binary"
}{
"taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
"expectation": 15,
"action": "Import policy file",
"userId": "69c2cfc021d39e7b6d15e236"
}Previews the policy from a zip file without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request.
Policy preview.
1773670900.8192645170.0.6046379Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/import/file/preview HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8
"binary"{
"policy": {
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Policy name",
"description": "Description",
"topicDescription": "Description",
"policyTag": "Tag",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"topicId": "0.0.6046379",
"messageId": "1773670900.819264517",
"codeVersion": "1.0.0",
"createDate": "2026-03-03T17:25:53.312Z",
"version": "1.0.0",
"originalChanged": true,
"config": {},
"userRole": "Installer",
"userRoles": [
"Installer"
],
"userGroup": {
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
},
"userGroups": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"role": "Installer",
"groupLabel": "Label",
"groupName": "Name",
"active": true
}
],
"policyRoles": [
"Registrant"
],
"policyNavigation": [
{
"role": "Registrant",
"steps": [
{
"block": "Block tag",
"level": 1,
"name": "Step name"
}
]
}
],
"policyTopics": [
{
"name": "Project",
"description": "Project",
"memoObj": "topic",
"static": false,
"type": "any"
}
],
"policyTokens": [
{
"tokenName": "Token name",
"tokenSymbol": "Token symbol",
"tokenType": "non-fungible",
"decimals": "",
"changeSupply": true,
"enableAdmin": true,
"enableFreeze": true,
"enableKYC": true,
"enableWipe": true,
"templateTokenTag": "token_template_0"
}
],
"policyGroups": [
{
"name": "Group name",
"creator": "Registrant",
"groupAccessType": "Private",
"groupRelationshipType": "Multiple",
"members": [
"Registrant"
]
}
],
"categories": [
"string"
],
"projectSchema": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"tests": [
{
"id": "69aeb71ef8c5b278e3bab4e5",
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"name": "Test Name",
"policyId": "69aeb71ef8c5b278e3bab4e5",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"status": "NEW",
"date": "2026-03-03T17:25:53.312Z",
"duration": 0,
"progress": 0,
"resultId": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"result": {}
}
],
"ignoreRules": [
{
"code": "string",
"blockType": "string",
"property": "string",
"contains": "string",
"severity": "warning"
}
]
},
"messageId": "1773670900.819264517",
"schemas": [
{}
],
"tags": [
{}
],
"moduleTopicId": "0.0.6046379"
}Imports new policy and all associated artifacts, such as schemas and VCs, from the provided xlsx file into the local DB. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Import result for the updated policy.
69aeb71ef8c5b278e3bab4e5Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/import/xlsx?policyId=69aeb71ef8c5b278e3bab4e5 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8
"binary"{
"policyId": "69c38f81462c9c1141de2df2",
"errors": []
}Imports new policy and all associated artifacts, such as schemas and VCs, from the provided xlsx file into the local DB. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Optional comma-separated schema ids used by the async XLSX import flow.
69c2cfc021d39e7b6d15e236,69c2cfc021d39e7b6d15e237Successful operation.
Task Id
9db028d2-03ad-4d49-a178-cf4b67f8c147Expected count of task phases
8Task action
Create toolUser Id
69bcfd90c98df6ceb05e8a78Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/push/import/xlsx?policyId=69aeb71ef8c5b278e3bab4e5 HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8
"binary"{
"taskId": "9901fd45-5360-4269-879d-a20332eb8e65",
"expectation": 15,
"action": "Import policy file",
"userId": "69c2cfc021d39e7b6d15e236"
}Previews the policy from a xlsx file without loading it into the local DB. Only users with the Standard Registry role are allowed to make the request.
Preview payload parsed from the XLSX file.
Unauthorized request.
Forbidden
Unprocessable entity.
Internal server error.
POST /api/v1/policies/import/xlsx/preview HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: binary/octet-stream
Accept: */*
Content-Length: 8
"binary"{
"schemas": [
{
"iri": "#60283eee-79a8-46ef-adf3-79775ea1192c",
"name": "Monitoring Report",
"description": "Monitoring Report",
"version": "",
"status": "DRAFT"
}
],
"tools": [
{
"uuid": "1706867530.884259218",
"name": "1706867530.884259218",
"messageId": "1706867530.884259218",
"worksheet": "Combined Margin. Is gri (tool)"
}
],
"errors": [
{
"type": "error",
"text": "Failed to parse variables.",
"message": "Error: G5: Type not found.",
"worksheet": "Monitoring Report"
}
]
}Returns virtual users for the selected dry-run policy. Optional savepointIds can be provided as a stringified JSON array to read users from a specific savepoint context. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Optional stringified JSON array of savepoint ids used to read users from a specific savepoint context.
["69c68bf7fbdb94688e7ef0d4","69c68c51fbdb94688e7ef0f8"]Virtual users for the current dry-run state or the selected savepoints.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/users HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"active": true,
"did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"username": "Administrator",
"hederaAccountId": "0.0.6046379",
"id": "69c83b92cebecbe1c023104d"
},
{
"active": false,
"did": "did:hedera:testnet:DoabcYQtNM3kqxAv6DiWadYRF6LYNqGX85ZtZFZibjTA_0.0.8417999",
"username": "Virtual User 2",
"hederaAccountId": "0.0.1774730673941",
"id": "69c83db1cebecbe1c0231117"
}
]Returns a virtual user from the selected dry-run policy by its DID. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Virtual User DID
did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599Virtual user.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/user/{did} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"createDate": "2026-03-28T20:47:45.739Z",
"updateDate": "2026-03-28T20:47:45.739Z",
"dryRunId": "69c83b44cebecbe1c0231007",
"dryRunClass": "VirtualUsers",
"systemMode": false,
"status": "NEW",
"signature": 0,
"option": {
"status": "NEW"
},
"hederaStatus": "NEW",
"uuid": "0ff5fb0d-98dd-4289-8369-6db2b84517f1",
"entity": "NONE",
"iri": "0ff5fb0d-98dd-4289-8369-6db2b84517f1",
"readonly": false,
"system": false,
"active": false,
"codeVersion": "1.0.0",
"did": "did:hedera:testnet:6K6LvvNnSQ1RboTi23rsXuH3guur1qUKxWt2zPhPdiNp_0.0.8417999",
"username": "Virtual User 3",
"hederaAccountId": "0.0.1774730865730",
"isMintNeeded": true,
"isTransferNeeded": false,
"wasTransferNeeded": false,
"id": "69c83e71cebecbe1c0231182"
}Creates a new virtual user for the selected dry-run policy and returns the created user object. Use Api-Version: 2. Optional savepointIds in the request body scopes creation to a specific savepoint context. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Use "2" for this endpoint (returns the created dry-run virtual user object).
2["67c85d2fcebecbe1c0231522","67c85d35cebecbe1c0231523"]Created virtual user.
Virtual User 3did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.82005990.0.1774730865730falseUnauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/user HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Api-Version: 2
Content-Type: application/json
Accept: */*
Content-Length: 72
{
"savepointIds": [
"67c85d2fcebecbe1c0231522",
"67c85d35cebecbe1c0231523"
]
}{
"username": "Virtual User 3",
"did": "did:hedera:testnet:6K6LvvNnSQ1RboTi23rsXuH3guur1qUKxWt2zPhPdiNp_0.0.8417999",
"hederaAccountId": "0.0.1774730865730",
"active": false
}Sets the active dry-run virtual user by DID and returns the updated virtual users list. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5DID of the virtual user to activate.
did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599Virtual users for the dry-run policy after the active user change.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/login HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 85
{
"did": "did:hedera:testnet:9VywBBXBtcV2RW7Whak6aJ9GR7PsKsiJaymAeWnBVvUB_0.0.8417999"
}[
{
"active": false,
"did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"username": "Administrator",
"hederaAccountId": "0.0.6046379",
"id": "69c83b92cebecbe1c023104d"
},
{
"active": true,
"did": "did:hedera:testnet:9VywBBXBtcV2RW7Whak6aJ9GR7PsKsiJaymAeWnBVvUB_0.0.8417999",
"username": "Virtual User 1",
"hederaAccountId": "0.0.1774731899661",
"id": "69c8427bcebecbe1c02311eb"
}
]Runs the provided block configuration in dry-run mode with the supplied event/document payload and returns execution logs, errors, input, and output documents. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Dry-run execution result for the requested block.
Logs
Errors
Input documents
Output documents
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/block HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 411
{
"block": {
"id": "f6c7c294-24a2-4f60-a131-03d023bda7c7",
"blockType": "policyRolesBlock",
"defaultActive": true,
"permissions": [
"NO_ROLE"
],
"onErrorAction": "no-action",
"uiMetaData": {
"title": "Registration",
"description": "Choose a role"
},
"roles": [
"Registrant"
],
"tag": "choose_role",
"children": [],
"events": [],
"artifacts": []
},
"data": {
"type": "json",
"input": "RunEvent",
"output": "CreateGroup",
"document": {
"role": "Registrant"
}
}
}{
"input": {
"documents": [
{
"policyId": "69aeb71ef8c5b278e3bab4e5",
"tag": "test",
"hash": "",
"document": {
"id": "urn:uuid:00000000-0000-0000-0000-000000000000",
"type": [
"VerifiableCredential"
],
"issuer": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"issuanceDate": "2026-03-03T17:25:53.312Z",
"@context": [
"https://www.w3.org/2018/credentials/v1"
],
"credentialSubject": [
{
"role": "Registrant"
}
],
"proof": {
"type": "Ed25519Signature2018",
"created": "2026-03-03T17:25:53.312Z",
"verificationMethod": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599#did-root-key",
"proofPurpose": "assertionMethod",
"jws": "..."
}
},
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"group": null,
"hederaStatus": "NEW",
"signature": 0
}
]
},
"output": [],
"errors": [],
"logs": [
"Building...",
"Done",
"Running..."
]
}Returns stored dry-run history entries for the specified block tag, including recorded document payloads and related metadata. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Block tag (e.g. choose_role).
choose_roleArray of dry-run document records for the block tag.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/block/{tagName}/history HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"createDate": "2026-03-29T06:49:28.919Z",
"updateDate": "2026-03-29T06:49:28.929Z",
"dryRunId": "69c83b44cebecbe1c0231007",
"dryRunClass": "VcDocumentCollection",
"systemMode": false,
"owner": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999",
"hash": "FJDt4cKy7t8MdGg9b7U2RB29N4Rk3kUUBFSTT6RuQMR4",
"document": {
"id": "urn:uuid:d7c5e170-a1fe-4e85-b280-ff2c697104ad",
"type": [
"VerifiableCredential"
],
"issuer": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999",
"issuanceDate": "2026-03-29T06:49:28.123Z",
"@context": [
"https://www.w3.org/2018/credentials/v1",
"ipfs://bafkreib2ey4mdnzp7gkgj5ecldu2a46ulkwzvnwzec3xjpsubcwua6rwce"
],
"credentialSubject": [
{
"role": "Registrant",
"userId": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999",
"policyId": "69c83b44cebecbe1c0231007",
"groupOwner": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999",
"groupName": "Registrant",
"@context": [
"ipfs://bafkreib2ey4mdnzp7gkgj5ecldu2a46ulkwzvnwzec3xjpsubcwua6rwce"
],
"id": "urn:uuid:d7c5e170-a1fe-4e85-b280-ff2c697104ad",
"type": "UserRole&1.0.0"
}
],
"proof": {
"type": "Ed25519Signature2018",
"created": "2026-03-29T06:49:28Z",
"verificationMethod": "did:hedera:testnet:8d2RiS1SmDUnHdmFZHc8NvaU3WqKMrdsorE6aRHzLpij_0.0.8417999#did-root-key",
"proofPurpose": "assertionMethod",
"jws": "eyJhbGciOiJFZERTQSIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..0AG-g08EnArujEU_Q5D0dJH19rlprc0fKGiIoG3FKGNuBzlT8Ro-Oj9G10njLdHnnHGxsyrm4sR_GrxvtS78Cw"
}
},
"documentFileId": "69c8cb78bc0d9cc64682b7d4",
"status": "NEW",
"signature": 0,
"type": "user-role",
"policyId": "69c83b44cebecbe1c0231007",
"tag": "choose_role",
"messageId": "1774.766968878",
"topicId": "0.0.1774730127150",
"relationships": null,
"option": {
"status": "NEW"
},
"hederaStatus": "NEW",
"schema": "#UserRole&1.0.0",
"uuid": "4fa46122-c52a-45b4-983c-84c7d0be64d9",
"entity": "NONE",
"iri": "4fa46122-c52a-45b4-983c-84c7d0be64d9",
"readonly": false,
"system": false,
"active": false,
"codeVersion": "1.0.0",
"group": null,
"isMintNeeded": true,
"isTransferNeeded": false,
"wasTransferNeeded": false,
"relayerAccount": null,
"tableFileIds": [],
"id": "69c8cb78bc0d9cc64682b7d1"
}
]Returns the list of savepoints for the policy (Dry Run only).
69aeb71ef8c5b278e3bab4e5List of dry-run savepoints.
Unauthorized request.
Policy is not in Dry Run mode.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/savepoints HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"items": [
{
"createDate": "2026-03-29T06:57:06.670Z",
"updateDate": "2026-03-29T06:57:06.670Z",
"policyId": "69c83b44cebecbe1c0231007",
"name": "Third (last) savepoint",
"parentSavepointId": "69c8cd3a81910b160912c315",
"savepointPath": [
"69c8cd3481910b160912c300",
"69c8cd3a81910b160912c315",
"69c8cd4281910b160912c328"
],
"isDeleted": false,
"isCurrent": true,
"id": "69c8cd4281910b160912c328"
},
{
"createDate": "2026-03-29T06:56:58.465Z",
"updateDate": "2026-03-29T06:56:58.465Z",
"policyId": "69c83b44cebecbe1c0231007",
"name": "Second savepoint",
"parentSavepointId": "69c8cd3481910b160912c300",
"savepointPath": [
"69c8cd3481910b160912c300",
"69c8cd3a81910b160912c315"
],
"isDeleted": false,
"isCurrent": false,
"id": "69c8cd3a81910b160912c315"
},
{
"createDate": "2026-03-29T06:56:52.583Z",
"updateDate": "2026-03-29T06:56:52.583Z",
"policyId": "69c83b44cebecbe1c0231007",
"name": "First savepoint",
"parentSavepointId": null,
"savepointPath": [
"69c8cd3481910b160912c300"
],
"isDeleted": false,
"isCurrent": false,
"id": "69c8cd3481910b160912c300"
}
]
}Creates a new savepoint for the policy (Dry Run only). Returns { savepoint } with the created record (same shape as items in GET /savepoints).
69aeb71ef8c5b278e3bab4e5Before publishing changes["root-block","sub-block"]Response includes savepoint: the created dry-run savepoint record.
Unauthorized request.
Policy is not in Dry Run mode.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/savepoints HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 79
{
"name": "Before publishing changes",
"savepointPath": [
"root-block",
"sub-block"
]
}{
"savepoint": {
"createDate": "2026-03-29T06:59:01.000Z",
"updateDate": "2026-03-29T06:59:01.000Z",
"policyId": "69c83b44cebecbe1c0231007",
"name": "Third (last) savepoint",
"parentSavepointId": "69c8cd3a81910b160912c315",
"savepointPath": [
"69c8cd3481910b160912c300",
"69c8cd3a81910b160912c315",
"69c8cd4281910b160912c328"
],
"isDeleted": false,
"isCurrent": true,
"id": "69c8cd5081910b160912c33a"
}
}Returns the number of savepoints for the policy (Dry Run only).
69aeb71ef8c5b278e3bab4e5Include deleted savepoints in count
falseDry-run savepoints count.
{"count":5}Unauthorized request.
Policy is not in Dry Run mode.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/savepoints/count HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"count": 5
}Restores Dry Run state to the selected savepoint. Returns { savepoint } with the updated savepoint record (same shape as POST /savepoints).
Policy identifier.
69aeb71ef8c5b278e3bab4e5Savepoint id to apply.
69b8115f3dc0fa022156fb89Response includes savepoint: the applied dry-run savepoint record after restore.
Unauthorized request.
Policy is not in Dry Run mode.
Forbidden
Internal server error.
PUT /api/v1/policies/{policyId}/savepoints/{savepointId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"savepoint": {
"createDate": "2026-03-29T06:59:01.000Z",
"updateDate": "2026-03-29T06:59:01.000Z",
"policyId": "69c83b44cebecbe1c0231007",
"name": "Third (last) savepoint",
"parentSavepointId": "69c8cd3a81910b160912c315",
"savepointPath": [
"69c8cd3481910b160912c300",
"69c8cd3a81910b160912c315",
"69c8cd4281910b160912c328"
],
"isDeleted": false,
"isCurrent": true,
"id": "69c8cd5081910b160912c33a"
}
}Updates the name of a Dry Run savepoint for the policy.
69aeb71ef8c5b278e3bab4e569b8115f3dc0fa022156fb89Updated checkpoint nameUpdated savepoint metadata.
Name is required.
Unauthorized request.
Policy is not in Dry Run mode.
Forbidden
Internal server error.
PATCH /api/v1/policies/{policyId}/savepoints/{savepointId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 34
{
"name": "Updated checkpoint name"
}{
"savepoint": {
"createDate": "2026-03-29T06:59:01.000Z",
"updateDate": "2026-03-29T06:59:01.000Z",
"policyId": "69c83b44cebecbe1c0231007",
"name": "Third (last) savepoint",
"parentSavepointId": "69c8cd3a81910b160912c315",
"savepointPath": [
"69c8cd3481910b160912c300",
"69c8cd3a81910b160912c315",
"69c8cd4281910b160912c328"
],
"isDeleted": false,
"isCurrent": true,
"id": "69c8cd5081910b160912c33a"
}
}Deletes the specified savepoints for the policy (Dry Run only). When the policy has more than one savepoint and skipCurrentSavepointGuard is false, the current savepoint cannot be deleted and the request fails. When skipCurrentSavepointGuard is true, that guard is bypassed; the UI uses this mode for "delete all savepoints". Leaf savepoints are hard-deleted, while savepoints with children are marked as deleted.
69aeb71ef8c5b278e3bab4e5["69aeb71ef8c5b278e3bab4e5"]If false, and the policy has more than one savepoint, the current savepoint cannot be deleted. If true, that guard is bypassed (used by the UI for deleting all savepoints).
falseDeletion result. hardDeletedIds contains only savepoints that were hard-deleted. This array can be empty when the request causes only soft deletes (for example, deleting savepoints that still have children). If the current savepoint is included while the guard is enforced, the request fails instead of returning an empty result.
Unauthorized request.
Policy is not in Dry Run mode.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/savepoints/delete HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 79
{
"savepointIds": [
"69aeb71ef8c5b278e3bab4e5"
],
"skipCurrentSavepointGuard": false
}{
"hardDeletedIds": []
}Clear dry-run state. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Dry-run state restart result.
Unauthorized request.
Policy is not in Dry Run mode.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/restart HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"createDate": "2026-03-29T08:22:18.508Z",
"uuid": "eaee9611-4f1a-44e4-93f0-7fc7c81d9b9f",
"name": "CDM AMS-III.AR Policy",
"version": "Dry Run",
"description": "Substituting fossil fuel-based lighting with LED/CFL lighting systems",
"status": "DRY-RUN",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"topicId": "0.0.8425763",
"policyTag": "Tag_1774772501756",
"codeVersion": "1.5.1",
"id": "69c8e13a81910b160912c709"
},
{
"createDate": "2026-03-29T08:22:19.897Z",
"uuid": "de1b156b-26fd-48d2-b7f3-b237bde9e2d3",
"name": "CDM AMS-II.J Policy",
"version": "Dry Run",
"description": "Demand-Side Activities for Efficient Lighting Technologies",
"status": "DRY-RUN",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"topicId": "0.0.8425767",
"policyTag": "Tag_1774772516671",
"codeVersion": "1.5.1",
"id": "69c8e13b81910b160912c74a"
},
{
"createDate": "2026-03-29T08:24:59.784Z",
"uuid": "f934eef5-59c7-4cab-b997-1be01d478084",
"name": "CDM AMS-III.BB",
"description": "CDM AMS-III.BB. policy",
"status": "DRAFT",
"creator": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"topicId": "0.0.8425809",
"policyTag": "Tag_1774772670088",
"codeVersion": "1.5.1",
"id": "69c8e1db81910b160912c8ca"
}
]Returns virtual Hedera transactions generated during the policy dry-run. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5The number of pages to skip before starting to collect the result set
0The numbers of items to return
20Transactions.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/transactions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"createDate": "2026-03-29T08:37:56.615Z",
"type": "TopicMessageSubmitTransaction",
"hederaAccountId": "0.0.1774773370443",
"id": "69c8e4e481910b160912c8f1"
},
{
"createDate": "2026-03-29T08:37:53.627Z",
"type": "TopicMessageSubmitTransaction",
"hederaAccountId": "0.0.1774773370443",
"id": "69c8e4e181910b160912c8f0"
}
]Returns dry-run artifacts/documents generated for the policy. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5The number of pages to skip before starting to collect the result set
0The numbers of items to return
20Artifacts.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/artifacts HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"createDate": "2026-03-29T08:37:56.683Z",
"updateDate": "2026-03-29T08:37:56.694Z",
"dryRunId": "69c8e13b81910b160912c74a",
"dryRunClass": "VcDocumentCollection",
"systemMode": false,
"owner": "did:hedera:testnet:CeNjDpdEQUizTejk8FhX9uzyTg3zUjp2GCk23NsETJPG_0.0.8417999",
"hash": "J1jAp7nAXQvV1qsZ4dAg64w6rYFt3AXBnRb6c94WgnxL",
"document": {},
"documentFileId": "69c8e4e43dcb07295bf82382",
"documentFields": [],
"status": "NEW",
"signature": 0,
"type": "project",
"policyId": "69c8e13b81910b160912c74a",
"tag": "save_project",
"messageId": "1774.773476613",
"startMessageId": "1774.773476613",
"topicId": "0.0.1774773413061",
"relationships": [],
"option": {},
"hederaStatus": "ISSUE",
"schema": "#f69fb091-6a2c-4883-87fb-b571f32d0459",
"accounts": {},
"tokens": null,
"uuid": "01372cfa-5e92-44c2-8c26-a87f832f5255",
"entity": "NONE",
"iri": "01372cfa-5e92-44c2-8c26-a87f832f5255",
"readonly": false,
"system": false,
"active": false,
"codeVersion": "1.0.0",
"group": "00546354-dc9b-4d68-9d02-e58e62a9c7be",
"messageHash": "CRxH77p9bmY9rxmKG38ja8KHDnpw9Vzb9ti163uZjW3U",
"messageIds": [],
"isMintNeeded": true,
"isTransferNeeded": false,
"wasTransferNeeded": false,
"edited": false,
"relayerAccount": "0.0.1774773370443",
"tableFileIds": [],
"id": "69c8e4e43dcb07295bf8237f"
}
]Returns IPFS file records generated during the policy dry-run. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5The number of pages to skip before starting to collect the result set
20The numbers of items to return
20Files.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/ipfs HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
{
"createDate": "2026-03-29T08:22:32.046Z",
"documentURL": "66a64d1c-6c20-4465-bf00-0f28d1379acc",
"id": "69c8e14881910b160912c786"
}
]Returns the current mock configuration for the policy's dry-run session, including the master enabled flag and the per-block enable/disable map.
Policy Id
69aeb71ef8c5b278e3bab4e5Config
trueUnauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/mock/config HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"enabled": true,
"blocks": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"enabled": true
}
]
}Updates the mock configuration โ master toggle and/or per-block overrides.
Policy Id
69aeb71ef8c5b278e3bab4e5trueConfig
trueUnauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/mock/config HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 90
{
"enabled": true,
"blocks": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"enabled": true
}
]
}{
"enabled": true,
"blocks": [
{
"uuid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"enabled": true
}
]
}Returns all currently stored mock entries (IPFS, Topics, Tokens, and API) for this policy.
Policy Id
69aeb71ef8c5b278e3bab4e5Config
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/mock/data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"ipfs": [
{
"cid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"content": "text"
}
],
"topics": [
{
"topicId": "0.0.6046379",
"topic": {
"id": "0.0.6046379",
"memo": "memo",
"payer_account_id": "0.0.6046379",
"topic_id": "0.0.6046379"
},
"messages": [
{
"consensus_timestamp": "1773670900.819264517",
"id": "1773670900.819264517",
"message": "base64",
"payer_account_id": "0.0.6046379",
"sequence_number": "0.0.6046379",
"topicId": "0.0.6046379",
"topic_id": "0.0.6046379"
}
]
}
],
"tokens": [
{
"id": "0.0.6046379",
"token_id": "0.0.6046379",
"treasury_account_id": "0.0.6046379",
"name": "Name",
"symbol": "Symbol",
"decimals": 1,
"type": "FUNGIBLE_COMMON",
"admin_key": true,
"freeze_key": true,
"kyc_key": true,
"supply_key": true,
"wipe_key": true
}
],
"api": [
{
"request": {
"method": "GET",
"responseType": "JSON",
"url": "http://localhost:4200/"
},
"response": "JSON"
}
],
"users": [
{
"username": "username",
"did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"hederaAccountId": "0.0.6046379",
"hederaAccountKey": "text",
"document": {
"id": "text",
"@context": [
"text"
],
"alsoKnownAs": [
"text"
],
"controller": [
"text"
],
"verificationMethod": [
{}
],
"authentication": [
{}
],
"assertionMethod": [
{}
],
"keyAgreement": [
{}
],
"capabilityInvocation": [
{}
],
"capabilityDelegation": [
{}
],
"service": [
{}
]
}
}
]
}Saves (creates or updates) mock data entries. The request body follows the same schema as the GET response above. Existing entries for the same key are overwritten; all other existing entries are preserved.
Policy Id
69aeb71ef8c5b278e3bab4e5Data
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/mock/data HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1216
{
"ipfs": [
{
"cid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"content": "text"
}
],
"topics": [
{
"topicId": "0.0.6046379",
"topic": {
"id": "0.0.6046379",
"memo": "memo",
"payer_account_id": "0.0.6046379",
"topic_id": "0.0.6046379"
},
"messages": [
{
"consensus_timestamp": "1773670900.819264517",
"id": "1773670900.819264517",
"message": "base64",
"payer_account_id": "0.0.6046379",
"sequence_number": "0.0.6046379",
"topicId": "0.0.6046379",
"topic_id": "0.0.6046379"
}
]
}
],
"tokens": [
{
"id": "0.0.6046379",
"token_id": "0.0.6046379",
"treasury_account_id": "0.0.6046379",
"name": "Name",
"symbol": "Symbol",
"decimals": 1,
"type": "FUNGIBLE_COMMON",
"admin_key": true,
"freeze_key": true,
"kyc_key": true,
"supply_key": true,
"wipe_key": true
}
],
"api": [
{
"request": {
"method": "GET",
"responseType": "JSON",
"url": "http://localhost:4200/"
},
"response": "JSON"
}
],
"users": [
{
"username": "username",
"did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"hederaAccountId": "0.0.6046379",
"hederaAccountKey": "text",
"document": {
"id": "text",
"@context": [
"text"
],
"alsoKnownAs": [
"text"
],
"controller": [
"text"
],
"verificationMethod": [
{}
],
"authentication": [
{}
],
"assertionMethod": [
{}
],
"keyAgreement": [
{}
],
"capabilityInvocation": [
{}
],
"capabilityDelegation": [
{}
],
"service": [
{}
]
}
}
]
}{
"ipfs": [
{
"cid": "9db028d2-03ad-4d49-a178-cf4b67f8c147",
"content": "text"
}
],
"topics": [
{
"topicId": "0.0.6046379",
"topic": {
"id": "0.0.6046379",
"memo": "memo",
"payer_account_id": "0.0.6046379",
"topic_id": "0.0.6046379"
},
"messages": [
{
"consensus_timestamp": "1773670900.819264517",
"id": "1773670900.819264517",
"message": "base64",
"payer_account_id": "0.0.6046379",
"sequence_number": "0.0.6046379",
"topicId": "0.0.6046379",
"topic_id": "0.0.6046379"
}
]
}
],
"tokens": [
{
"id": "0.0.6046379",
"token_id": "0.0.6046379",
"treasury_account_id": "0.0.6046379",
"name": "Name",
"symbol": "Symbol",
"decimals": 1,
"type": "FUNGIBLE_COMMON",
"admin_key": true,
"freeze_key": true,
"kyc_key": true,
"supply_key": true,
"wipe_key": true
}
],
"api": [
{
"request": {
"method": "GET",
"responseType": "JSON",
"url": "http://localhost:4200/"
},
"response": "JSON"
}
],
"users": [
{
"username": "username",
"did": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599",
"hederaAccountId": "0.0.6046379",
"hederaAccountKey": "text",
"document": {
"id": "text",
"@context": [
"text"
],
"alsoKnownAs": [
"text"
],
"controller": [
"text"
],
"verificationMethod": [
{}
],
"authentication": [
{}
],
"assertionMethod": [
{}
],
"keyAgreement": [
{}
],
"capabilityInvocation": [
{}
],
"capabilityDelegation": [
{}
],
"service": [
{}
]
}
}
]
}Imports mock data from a previously exported .mock file and merges it into the current mock dataset.
Policy Id
69aeb71ef8c5b278e3bab4e5Successful operation.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/mock/import HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 6
"text"{}Exports all stored mock data as a downloadable compressed '.mock' file (zip), which contains separate files for each data type. The response is streamed with 'Content-Disposition: attachment'.
Policy Id
69aeb71ef8c5b278e3bab4e5Successful operation. Response zip file.
No content
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/dry-run/mock/export HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
No content
Triggers a mocked external API call on behalf of a policy block whose logic executes on the 'frontend' (client-side code blocks). The server resolves the request against the stored API mock entries and returns the configured response.
Policy Id
69aeb71ef8c5b278e3bab4e5GEThttp://localhost/Successful operation
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/mock/request/api HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 63
{
"type": "GET",
"url": "http://localhost/",
"body": {},
"headers": {}
}{}Triggers a mocked IPFS file retrieval on behalf of a policy block whose logic executes on the 'frontend'. The server resolves the CID against the stored IPFS mock entries and returns the configured payload.
Policy Id
69aeb71ef8c5b278e3bab4e59db028d2-03ad-4d49-a178-cf4b67f8c147Successful operation.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/dry-run/mock/request/ipfs HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 46
{
"cid": "9db028d2-03ad-4d49-a178-cf4b67f8c147"
}binaryReturns the current multi-policy link settings for the policy. Users with permission to execute or manage the policy can make this request.
Policy Id
69aeb71ef8c5b278e3bab4e5Successful operation.
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/multiple HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"uuid": null,
"instanceTopicId": "0.0.8425949",
"mainPolicyTopicId": "0.0.8425949",
"synchronizationTopicId": "0.0.8425951",
"owner": "did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999",
"type": null
}Creates or updates the multi-policy link for the current policy. For a main policy, call GET /policies/{policyId}/multiple and reuse the returned mainPolicyTopicId and synchronizationTopicId. For a sub-policy, use the link generated by the main policy owner; it contains both mainPolicyTopicId and synchronizationTopicId. Users with permission to execute or manage the policy can make this request.
Policy Id
69aeb71ef8c5b278e3bab4e5Topic ID of the main policy.
Synchronization topic ID shared between linked policies.
Successful operation.
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/multiple HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 74
{
"mainPolicyTopicId": "0.0.8425949",
"synchronizationTopicId": "0.0.8425951"
}{
"createDate": "2026-03-29T09:02:23.828Z",
"updateDate": "2026-03-29T09:02:23.828Z",
"uuid": "1f847dbc-c9ef-41e7-a453-558f3b368aca",
"instanceTopicId": "0.0.8425949",
"mainPolicyTopicId": "0.0.8425949",
"synchronizationTopicId": "0.0.8425951",
"owner": "did:hedera:testnet:2Tak8KVd1K33DWvDFqmKVaihNfzvfGEYehXr3UZ1dGHV_0.0.8417999",
"type": "Main",
"user": "0.0.6046457",
"policyOwner": "0.0.6046379",
"id": "69c8ea9881910b160912cf0e"
}Add policy test. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5One or more uploaded test files.
Successful operation.
Test ID
69aeb71ef8c5b278e3bab4e5Test UUID
9db028d2-03ad-4d49-a178-cf4b67f8c147Test Name
Test NamePolicy ID
69aeb71ef8c5b278e3bab4e5Test owner
did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599Test status
NewPossible values: Last start date
2026-03-03T17:25:53.312ZTest duration
0Test progress
0Test result
9db028d2-03ad-4d49-a178-cf4b67f8c147Test result
Bad request (e.g. no files to upload).
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/test HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: multipart/form-data
Accept: */*
Content-Length: 20
{
"tests": [
"binary"
]
}[
{
"createDate": "2026-03-29T09:24:23.762Z",
"updateDate": "2026-03-29T09:24:23.762Z",
"uuid": "12164c83-3f6e-4135-b6e8-186bed0cb502",
"name": "CDM_AMS_III",
"policyId": "69c8efa181910b160912d0f4",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"status": "New",
"date": null,
"result": null,
"resultId": null,
"progress": 0,
"error": null,
"duration": 57359,
"file": "69c8efc781910b160912d165",
"id": "69c8efc781910b160912d167"
}
]Get policy test. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Test Id
69b8115f3dc0fa022156fb89Successful operation.
Test ID
69aeb71ef8c5b278e3bab4e5Test UUID
9db028d2-03ad-4d49-a178-cf4b67f8c147Test Name
Test NamePolicy ID
69aeb71ef8c5b278e3bab4e5Test owner
did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599Test status
NewPossible values: Last start date
2026-03-03T17:25:53.312ZTest duration
0Test progress
0Test result
9db028d2-03ad-4d49-a178-cf4b67f8c147Test result
Unauthorized request.
Forbidden
Internal server error.
GET /api/v1/policies/{policyId}/test/{testId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"createDate": "2026-03-29T09:24:23.762Z",
"updateDate": "2026-03-29T09:27:29.815Z",
"uuid": "12164c83-3f6e-4135-b6e8-186bed0cb502",
"name": "CDM_AMS_III",
"policyId": "69c8efa181910b160912d0f4",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"status": "Failure",
"date": "2026-03-29T09:26:29.897Z",
"result": {
"info": {
"documents": 5,
"tokens": 0
},
"total": 83,
"details": {
"documents": [],
"recorded": []
},
"documents": []
},
"resultId": null,
"progress": null,
"error": null,
"duration": 57359,
"file": "69c8efc781910b160912d165",
"id": "69c8efc781910b160912d167"
}Delete policy test. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Test Id
69aeb71ef8c5b278e3bab4e5Successful operation.
Unauthorized request.
Forbidden
Internal server error.
DELETE /api/v1/policies/{policyId}/test/{testId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
trueStart policy test. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Test Id
69aeb71ef8c5b278e3bab4e5Successful operation.
Test ID
69aeb71ef8c5b278e3bab4e5Test UUID
9db028d2-03ad-4d49-a178-cf4b67f8c147Test Name
Test NamePolicy ID
69aeb71ef8c5b278e3bab4e5Test owner
did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599Test status
NewPossible values: Last start date
2026-03-03T17:25:53.312ZTest duration
0Test progress
0Test result
9db028d2-03ad-4d49-a178-cf4b67f8c147Test result
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/test/{testId}/start HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"createDate": "2026-03-29T09:24:23.762Z",
"updateDate": "2026-03-29T09:24:23.762Z",
"uuid": "12164c83-3f6e-4135-b6e8-186bed0cb502",
"name": "CDM_AMS_III",
"policyId": "69c8efa181910b160912d0f4",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"status": "Running",
"date": "2026-03-29T09:26:29.897Z",
"result": null,
"resultId": "96374bd4-5ab4-4993-8e66-c192eb79204f",
"progress": 0,
"error": null,
"duration": 57359,
"file": "69c8efc781910b160912d165",
"id": "69c8efc781910b160912d167"
}Stop policy test. Only users with the Standard Registry role are allowed to make the request.
Policy Id
69aeb71ef8c5b278e3bab4e5Test Id
69aeb71ef8c5b278e3bab4e5Successful operation.
Test ID
69aeb71ef8c5b278e3bab4e5Test UUID
9db028d2-03ad-4d49-a178-cf4b67f8c147Test Name
Test NamePolicy ID
69aeb71ef8c5b278e3bab4e5Test owner
did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8200599Test status
NewPossible values: Last start date
2026-03-03T17:25:53.312ZTest duration
0Test progress
0Test result
9db028d2-03ad-4d49-a178-cf4b67f8c147Test result
Unauthorized request.
Forbidden
Internal server error.
POST /api/v1/policies/{policyId}/test/{testId}/stop HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"createDate": "2026-03-29T09:24:23.762Z",
"updateDate": "2026-03-29T09:24:23.762Z",
"uuid": "12164c83-3f6e-4135-b6e8-186bed0cb502",
"name": "CDM_AMS_III",
"policyId": "69c8efa181910b160912d0f4",
"owner": "did:hedera:testnet:Cvzp5kKVUuipBCQjcF54fBjdicvaKsB8zHeQ6Qq22U2Z_0.0.8417999",
"status": "Stopped",
"date": "2026-03-29T09:26:29.897Z",
"result": null,
"resultId": null,
"progress": 0,
"error": null,
"duration": 57359,
"file": "69c8efc781910b160912d165",
"id": "69c8efc781910b160912d167"
}