> For the complete documentation index, see [llms.txt](https://dev.guardian.hedera.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://dev.guardian.hedera.com/static-spec-test/identity-and-access/accounts.md).

# Accounts

## Returns current session of the user.

> Returns current user session.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"AccountsSessionResponseDTO":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"did":{"type":"string"},"hederaAccountId":{"type":"string"},"role":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"permissionsGroup":{"type":"array","items":{"$ref":"#/components/schemas/PermissionGroupResponseDTO"}},"location":{"type":"string"}},"required":["id","username","role","permissions"]},"PermissionGroupResponseDTO":{"type":"object","properties":{"uuid":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"owner":{"type":"string","nullable":true}},"required":["uuid","roleId","roleName"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/session":{"get":{"description":"Returns current user session.","operationId":"AccountApi_getSession","parameters":[],"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsSessionResponseDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Returns current session of the user.","tags":["accounts"]}}}}
```

## Registers a new user account.

> Object that contain username, password and role fields.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"paths":{"/accounts/register":{"post":{"description":"Object that contain username, password and role fields.","operationId":"AccountApi_register","parameters":[],"requestBody":{"required":true,"description":"Register payload.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterUserDTO"}}}},"responses":{"201":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsResponseDTO"}}}},"409":{"description":"Conflict.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConflictErrorDTO"}}}},"422":{"description":"Unprocessable entity.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Registers a new user account.","tags":["accounts"]}}},"components":{"schemas":{"RegisterUserDTO":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"password_confirmation":{"type":"string"},"role":{"type":"string"}},"required":["username","password","password_confirmation","role"]},"AccountsResponseDTO":{"type":"object","properties":{"id":{"type":"string"},"username":{"type":"string"},"role":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}},"permissionsGroup":{"type":"array","items":{"$ref":"#/components/schemas/PermissionGroupResponseDTO"}},"location":{"type":"string"}},"required":["id","username","role"]},"PermissionGroupResponseDTO":{"type":"object","properties":{"uuid":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"owner":{"type":"string","nullable":true}},"required":["uuid","roleId","roleName"]},"ConflictErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"UnprocessableEntityErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}}}
```

## Registers and fully onboards a new user account.

> Creates a user account, Hedera account, DID, and cryptographic keys on behalf of the user. If hederaAccountId / hederaAccountKey are omitted the platform generates them.&#x20;

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"paths":{"/accounts/push/onboard":{"post":{"description":"Creates a user account, Hedera account, DID, and cryptographic keys on behalf of the user. If hederaAccountId / hederaAccountKey are omitted the platform generates them. ","operationId":"AccountApi_registerAndOnboard","parameters":[],"requestBody":{"required":true,"description":"Registration and optional Hedera / DID credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OnboardingDTO"}}}},"responses":{"202":{"description":"Task created — poll for completion.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Registers and fully onboards a new user account.","tags":["accounts"]}}},"components":{"schemas":{"OnboardingDTO":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"password_confirmation":{"type":"string"},"role":{"type":"string"},"hederaAccountId":{"type":"string","description":"Hedera account ID (e.g. 0.0.12345). Auto-generated from the operator account if omitted."},"hederaAccountKey":{"type":"string","description":"Hedera account private key. Required when hederaAccountId is provided; auto-generated if omitted."},"parent":{"type":"string","description":"Standard Registry username or DID. Required for USER role accounts to link them to their registry."},"vcDocument":{"description":"VC document to publish during profile setup.","allOf":[{"$ref":"#/components/schemas/SubjectDTO"}]},"didDocument":{"description":"Pre-created DID document. Auto-generated if omitted.","allOf":[{"$ref":"#/components/schemas/DidDocumentDTO"}]},"didKeys":{"description":"Private keys for the DID document methods.","type":"array","items":{"$ref":"#/components/schemas/DidKeyDTO"}},"useFireblocksSigning":{"type":"boolean","default":false,"description":"Use Fireblocks signing instead of local key."},"fireblocksConfig":{"description":"Fireblocks configuration (required when useFireblocksSigning is true).","allOf":[{"$ref":"#/components/schemas/FireblocksConfigDTO"}]}},"required":["username","password","password_confirmation","role"]},"SubjectDTO":{"type":"object","properties":{"@context":{"nullable":true,"type":"array","items":{"type":"string"}},"id":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["@context"]},"DidDocumentDTO":{"type":"object","properties":{"id":{"type":"string","nullable":false},"@context":{"nullable":true,"type":"array","items":{"type":"string"}},"alsoKnownAs":{"nullable":true,"type":"array","items":{"type":"string"}},"controller":{"nullable":true,"type":"array","items":{"type":"string"}},"verificationMethod":{"additionalProperties":true,"nullable":true,"type":"array","items":{"type":"object"}},"authentication":{"additionalProperties":true,"nullable":true,"type":"array","items":{"type":"object"}},"assertionMethod":{"additionalProperties":true,"nullable":true,"type":"array","items":{"type":"object"}},"keyAgreement":{"additionalProperties":true,"nullable":true,"type":"array","items":{"type":"object"}},"capabilityInvocation":{"additionalProperties":true,"nullable":true,"type":"array","items":{"type":"object"}},"capabilityDelegation":{"additionalProperties":true,"nullable":true,"type":"array","items":{"type":"object"}},"service":{"additionalProperties":true,"nullable":true,"type":"array","items":{"type":"object"}}},"required":["id","@context","alsoKnownAs","controller","verificationMethod","authentication","assertionMethod","keyAgreement","capabilityInvocation","capabilityDelegation","service"]},"DidKeyDTO":{"type":"object","properties":{"id":{"type":"string","nullable":false},"key":{"type":"string","nullable":false}},"required":["id","key"]},"FireblocksConfigDTO":{"type":"object","properties":{"fireBlocksVaultId":{"type":"string"},"fireBlocksAssetId":{"type":"string"},"fireBlocksApiKey":{"type":"string"},"fireBlocksPrivateiKey":{"type":"string","description":"API property name is `fireBlocksPrivateiKey` (typo preserved for compatibility)."}}},"TaskDTO":{"type":"object","properties":{"taskId":{"type":"string","description":"Task Id"},"expectation":{"type":"number","description":"Expected count of task phases"},"action":{"type":"string","description":"Task action"},"userId":{"type":"string","description":"User Id"}},"required":["taskId","expectation","action","userId"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}}}
```

## POST /accounts/login

> Logs user into the system.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"paths":{"/accounts/login":{"post":{"operationId":"AccountApi_login","parameters":[],"requestBody":{"required":true,"description":"Login payload.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginUserDTO"}}}},"responses":{"200":{"description":"Successful operation.","schema":{"oneOf":[{"$ref":"#/components/schemas/LoginSuccessResponseDTO"},{"$ref":"#/components/schemas/LoginOTPRequiredResponseDTO"}]},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsLoginResponseDTO"}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"422":{"description":"Unprocessable entity.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Logs user into the system.","tags":["accounts"]}}},"components":{"schemas":{"LoginUserDTO":{"type":"object","properties":{"username":{"type":"string"},"password":{"type":"string"},"otp":{"type":"string"}},"required":["username","password","otp"]},"LoginSuccessResponseDTO":{"type":"object","properties":{"did":{"type":"string"},"refreshToken":{"type":"string"},"role":{"type":"string"},"username":{"type":"string"},"weakPassword":{"type":"string"}},"required":["did","refreshToken","role","username","weakPassword"]},"LoginOTPRequiredResponseDTO":{"type":"object","properties":{"success":{"type":"boolean"},"otprequired":{"type":"boolean"}},"required":["success","otprequired"]},"AccountsLoginResponseDTO":{"type":"object","properties":{"username":{"type":"string"},"did":{"type":"string"},"role":{"type":"string"},"refreshToken":{"type":"string"},"weakPassword":{"type":"boolean"}},"required":["username","did","role","refreshToken"]},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"UnprocessableEntityErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}}}
```

## POST /accounts/change-password

> Change user password.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"ChangePasswordDTO":{"type":"object","properties":{"username":{"type":"string"},"oldPassword":{"type":"string"},"newPassword":{"type":"string"}},"required":["username","oldPassword","newPassword"]},"AccountsLoginResponseDTO":{"type":"object","properties":{"username":{"type":"string"},"did":{"type":"string"},"role":{"type":"string"},"refreshToken":{"type":"string"},"weakPassword":{"type":"boolean"}},"required":["username","did","role","refreshToken"]},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"UnprocessableEntityErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/change-password":{"post":{"operationId":"AccountApi_changePassword","parameters":[],"requestBody":{"required":true,"description":"User credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordDTO"}}}},"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountsLoginResponseDTO"}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"422":{"description":"Unprocessable entity.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableEntityErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Change user password.","tags":["accounts"]}}}}
```

## Returns access token.

> Returns access token.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"paths":{"/accounts/access-token":{"post":{"description":"Returns access token.","operationId":"AccountApi_getAccessToken","parameters":[],"requestBody":{"required":true,"description":"Object that contains a refresh token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessTokenRequestDTO"}}}},"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessTokenResponseDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Returns access token.","tags":["accounts"]}}},"components":{"schemas":{"AccessTokenRequestDTO":{"type":"object","properties":{"refreshToken":{"type":"string","description":"Refresh token"}},"required":["refreshToken"]},"AccessTokenResponseDTO":{"type":"object","properties":{"accessToken":{"type":"string","description":"Access token"}},"required":["accessToken"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}}}
```

## Returns a list of users, excluding Standard Registry.

> Returns all users except those with role Standard Registry. Only users with the Standard Registry role are allowed to make the request.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"UserAccountDTO":{"type":"object","properties":{"username":{"type":"string"},"parent":{"type":"string"},"did":{"type":"string"}},"required":["username"]},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts":{"get":{"description":"Returns all users except those with role Standard Registry. Only users with the Standard Registry role are allowed to make the request.","operationId":"AccountApi_getAllAccounts","parameters":[],"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserAccountDTO"}}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Returns a list of users, excluding Standard Registry.","tags":["accounts"]}}}}
```

## Returns all Standard Registries.

> Returns all Standard Registries.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"StandardRegistryAccountDTO":{"type":"object","properties":{"username":{"type":"string"},"did":{"type":"string"}},"required":["username"]},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/standard-registries":{"get":{"description":"Returns all Standard Registries.","operationId":"AccountApi_getStandardRegistries","parameters":[],"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StandardRegistryAccountDTO"}}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Returns all Standard Registries.","tags":["accounts"]}}}}
```

## Returns all Standard Registries aggregated with polices and vcDocuments.

> Returns all Standard Registries aggregated with polices and vcDocuments

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"AggregatedDTOItem":{"type":"object","properties":{"did":{"type":"string"},"vcDocument":{"$ref":"#/components/schemas/VcDocumentDTO"},"policies":{"type":"array","items":{"$ref":"#/components/schemas/PolicyDTO"}},"username":{"type":"string"},"hederaAccountId":{"type":"string"}},"required":["did","vcDocument","policies","username","hederaAccountId"]},"VcDocumentDTO":{"type":"object","properties":{"id":{"type":"string"},"policyId":{"type":"string"},"hash":{"type":"string"},"signature":{"type":"number"},"status":{"type":"string","enum":["NEW","ISSUE","REVOKE","SUSPEND","RESUME","FAILED"]},"tag":{"type":"string"},"type":{"type":"string"},"createDate":{"type":"string"},"updateDate":{"type":"string"},"owner":{"type":"string"},"hederaStatus":{"type":"string"},"option":{"type":"object","additionalProperties":true},"topicId":{"type":"string"},"messageId":{"type":"string"},"document":{"$ref":"#/components/schemas/VcDTO"}}},"VcDTO":{"type":"object","properties":{"id":{"type":"string","nullable":true},"@context":{"type":"array","items":{"type":"string"}},"type":{"type":"array","items":{"type":"string"}},"credentialSubject":{"additionalProperties":true,"type":"array","items":{"type":"object"}},"issuer":{"oneOf":[{"type":"string"},{"type":"object","additionalProperties":true}]},"issuanceDate":{"type":"string"},"proof":{"nullable":true,"type":"object","allOf":[{"$ref":"#/components/schemas/ProofDTO"}]}},"required":["id","@context","type","credentialSubject","issuer","issuanceDate","proof"]},"ProofDTO":{"type":"object","properties":{"type":{"type":"string"},"created":{"type":"string"},"verificationMethod":{"type":"string"},"proofPurpose":{"type":"string"},"jws":{"type":"string"}},"required":["type","created","verificationMethod","proofPurpose","jws"]},"PolicyDTO":{"type":"object","properties":{"id":{"type":"string"},"uuid":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"topicDescription":{"type":"string"},"applicabilityConditions":{"type":"string"},"detailsUrl":{"type":"string"},"typicalProjects":{"type":"string"},"importantParameters":{"$ref":"#/components/schemas/PolicyImportantParametersDTO"},"policyTag":{"type":"string"},"status":{"type":"string","enum":["DRY-RUN","DRAFT","PUBLISH_ERROR","PUBLISH","DISCONTINUED","DEMO","VIEW"]},"creator":{"type":"string"},"owner":{"type":"string"},"topicId":{"type":"string"},"instanceTopicId":{"type":"string"},"messageId":{"type":"string"},"availability":{"type":"string","enum":["private","public"]},"codeVersion":{"type":"string"},"tools":{"type":"array","items":{"$ref":"#/components/schemas/PolicyToolDTO"}},"createDate":{"type":"string"},"version":{"type":"string"},"originalChanged":{"type":"string"},"editableParametersSettings":{"type":"array","items":{"$ref":"#/components/schemas/PolicyEditableFieldDTO"}},"config":{"type":"object","additionalProperties":true},"userRole":{"type":"string"},"userRoles":{"type":"array","items":{"type":"string"}},"userGroup":{"type":"object","additionalProperties":true,"nullable":true,"description":"Last active group in iteration order (not a separate summary). Often shown via groupLabel or uuid."},"userGroups":{"additionalProperties":true,"description":"Full list of group rows for this user in the policy (getGroupsByUser), including inactive.","type":"array","items":{"type":"object"}},"policyRoles":{"type":"array","items":{"type":"string"}},"policyNavigation":{"additionalProperties":true,"type":"array","items":{"type":"object"}},"policyTopics":{"additionalProperties":true,"type":"array","items":{"type":"object"}},"policyTokens":{"additionalProperties":true,"type":"array","items":{"type":"object"}},"policyGroups":{"additionalProperties":true,"type":"array","items":{"type":"object"}},"policyDocumentation":{"additionalProperties":true,"description":"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`).","type":"array","items":{"type":"object"}},"categories":{"type":"array","items":{"type":"string"}},"projectSchema":{"type":"string"},"tests":{"type":"array","items":{"$ref":"#/components/schemas/PolicyTestDTO"}},"ignoreRules":{"description":"Validation-only rules to hide matching warnings/infos (not persisted)","type":"array","items":{"$ref":"#/components/schemas/IgnoreRuleDTO"}}},"required":["id","uuid","name","description","topicDescription","policyTag","status","creator","owner","topicId","instanceTopicId","messageId","codeVersion","tools","createDate","version","editableParametersSettings","config","userRole","userRoles","userGroup","userGroups","policyRoles","policyNavigation","policyTopics","policyTokens","policyGroups","policyDocumentation","categories","projectSchema","tests"]},"PolicyImportantParametersDTO":{"type":"object","properties":{"atValidation":{"type":"string"},"monitored":{"type":"string"}}},"PolicyToolDTO":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string","nullable":true},"topicId":{"type":"string"},"messageId":{"type":"string"}},"required":["name","topicId","messageId"]},"PolicyEditableFieldDTO":{"type":"object","properties":{}},"PolicyTestDTO":{"type":"object","properties":{"id":{"type":"string","description":"Test ID"},"uuid":{"type":"string","description":"Test UUID"},"name":{"type":"string","description":"Test Name"},"policyId":{"type":"string","description":"Policy ID"},"owner":{"type":"string","description":"Test owner"},"status":{"type":"string","description":"Test status","enum":["New","Running","Stopped","Success","Failure"]},"date":{"type":"string","description":"Last start date"},"duration":{"type":"string","description":"Test duration"},"progress":{"type":"string","description":"Test progress"},"resultId":{"type":"string","description":"Test result"},"result":{"type":"string","description":"Test result"}},"required":["id","uuid","name","policyId","owner","status","date","duration","progress","resultId","result"]},"IgnoreRuleDTO":{"type":"object","properties":{"code":{"type":"string","description":"Stable message code, e.g. DEPRECATION_BLOCK"},"blockType":{"type":"string","description":"Limit by block type"},"property":{"type":"string","description":"Limit by property"},"contains":{"type":"string","description":"Substring filter applied to message text"},"severity":{"type":"string","description":"Type of message","enum":["warning","info"]}}},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/standard-registries/aggregated":{"get":{"description":"Returns all Standard Registries aggregated with polices and vcDocuments","operationId":"AccountApi_getAggregatedStandardRegistries","parameters":[],"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AggregatedDTOItem"}}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Returns all Standard Registries aggregated with polices and vcDocuments.","tags":["accounts"]}}}}
```

## Returns user's Hedera account balance.

> Requests current Hedera account balance.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"BalanceResponseDTO":{"type":"object","properties":{"balance":{"type":"string"},"unit":{"type":"string"},"user":{"$ref":"#/components/schemas/StandardRegistryAccountDTO"}},"required":["balance","unit","user"]},"StandardRegistryAccountDTO":{"type":"object","properties":{"username":{"type":"string"},"did":{"type":"string"}},"required":["username"]},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/balance":{"get":{"description":"Requests current Hedera account balance.","operationId":"AccountApi_getBalance","parameters":[],"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceResponseDTO"}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Returns user's Hedera account balance.","tags":["accounts"]}}}}
```

## Generate an OTP secret for 2FA setup.

> Generate an OTP secret for 2FA setup.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"GenerateOPTResponseDTO":{"type":"object","properties":{"issuer":{"type":"string"},"user":{"type":"string"},"secret":{"type":"string"},"url":{"type":"string"},"config":{"$ref":"#/components/schemas/OTPConfigDTO"}},"required":["issuer","user","secret","url","config"]},"OTPConfigDTO":{"type":"object","properties":{"algo":{"type":"string"},"digits":{"type":"number"},"period":{"type":"number"},"secretSize":{"type":"number"}},"required":["algo","digits","period","secretSize"]},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/otp/generate":{"post":{"description":"Generate an OTP secret for 2FA setup.","operationId":"AccountApi_generateOtp","parameters":[],"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateOPTResponseDTO"}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Generate an OTP secret for 2FA setup.","tags":["accounts"]}}}}
```

## Confirm OTP setup.

> Confirm OTP setup by OTP token.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"OTPConfirmDTO":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]},"OTPConfirmResponseDTO":{"type":"object","properties":{"success":{"type":"boolean"},"backupCodes":{"type":"array","items":{"type":"string"}}},"required":["success","backupCodes"]},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/otp/confirm":{"post":{"description":"Confirm OTP setup by OTP token.","operationId":"AccountApi_confirmOtp","parameters":[],"requestBody":{"required":true,"description":"Configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPConfirmDTO"}}}},"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPConfirmResponseDTO"}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Confirm OTP setup.","tags":["accounts"]}}}}
```

## Get OTP status.

> Get OTP status for the current user.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"OTPStatusResponseDTO":{"type":"object","properties":{"enabled":{"type":"boolean"}},"required":["enabled"]},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/otp/status":{"get":{"description":"Get OTP status for the current user.","operationId":"AccountApi_getOtpStatus","parameters":[],"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPStatusResponseDTO"}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Get OTP status.","tags":["accounts"]}}}}
```

## Deactivate 2FA.

> Deactivate 2FA.

```json
{"openapi":"3.0.0","info":{"title":"Guardian","version":"0.0.1"},"tags":[{"name":"accounts"}],"servers":[{"url":"/api/v1","description":"version 1.0"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}},"schemas":{"EmptyResponseDTO":{"type":"object","properties":{}},"UnauthorizedErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]},"ForbiddenErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"},"error":{"type":"string"}},"required":["statusCode","message"]},"InternalServerErrorDTO":{"type":"object","properties":{"statusCode":{"type":"number"},"message":{"type":"string"}},"required":["statusCode","message"]}}},"paths":{"/accounts/otp/deactivate":{"post":{"description":"Deactivate 2FA.","operationId":"AccountApi_deactivateOtp","parameters":[],"responses":{"200":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyResponseDTO"}}}},"401":{"description":"Unauthorized request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnauthorizedErrorDTO"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForbiddenErrorDTO"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerErrorDTO"}}}}},"summary":"Deactivate 2FA.","tags":["accounts"]}}}}
```
