NAV Navigation
JavaScript Shell

Unbound CASP API v1.0.2007

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Unbound’s Crypto Asset Security Platform ("CASP") provides the advanced technology and the architecture to secure crypto asset transactions. The crypto asset solution contains the CASP service and different end points (humans or BOTs).

CASP provides the framework to create Accounts, which hold multiple Vaults where secrets are stored. Access control is managed by the Quorum Policy for all of the Participants.

For information about using these APIs, see the Unbound CASP Developers Guide, or the API references:

For more information about CASP, see:

For more information about the BIP standards, see:

Email: Unbound Tech Support Web: Unbound Tech Support

General Status

Get CASP service status

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/status',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/status \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/status

Verifies that the service is healthy and operational

Parameters

Name In Type Required Description
withDetails query boolean false Include system details

Example responses

200 Response

{
  "version": "string",
  "instanceId": "string",
  "ukc": {
    "healthy": true,
    "errorMessage": "string",
    "version": "string"
  },
  "db": {
    "healthy": true,
    "errorMessage": "string",
    "version": "string",
    "schemaVersion": "string"
  },
  "nativeCrypto": {
    "healthy": true,
    "errorMessage": "string",
    "version": "string"
  },
  "fcm": {
    "healthy": true,
    "errorMessage": "string",
    "version": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
500 Internal Server Error Get status failed, the service is not operational Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» version string true none none
» instanceId string true none none
» ukc object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
» db object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
»» schemaVersion string false none CASP schema version
» nativeCrypto object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
» fcm object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

List supported ledgers

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/ledgers',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/ledgers \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/ledgers

List ledgers that CASP can parse their transactions.

Example responses

200 Response

[
  {
    "ledgerName": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» ledgerName string true none The name of the ledger

Reload CASP configuration

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/reloadconfig',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/reloadconfig \
  -H 'Accept: application/json'

POST /casp/api/v1.0/mng/reloadconfig

Read "casp.conf" file and reload configuration

Example responses

200 Response

{
  "version": "string",
  "instanceId": "string",
  "ukc": {
    "healthy": true,
    "errorMessage": "string",
    "version": "string"
  },
  "db": {
    "healthy": true,
    "errorMessage": "string",
    "version": "string",
    "schemaVersion": "string"
  },
  "nativeCrypto": {
    "healthy": true,
    "errorMessage": "string",
    "version": "string"
  },
  "fcm": {
    "healthy": true,
    "errorMessage": "string",
    "version": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
429 Too Many Requests Too many requests. Only one request every 5 minutes is allowed. Inline
500 Internal Server Error Reload configuration failed. The service is not operational. Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» version string true none none
» instanceId string true none none
» ukc object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
» db object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
»» schemaVersion string false none CASP schema version
» nativeCrypto object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
» fcm object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version

Status Code 429

Name Type Required Restrictions Description
» version string true none none
» instanceId string true none none
» ukc object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
» db object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
»» schemaVersion string false none CASP schema version
» nativeCrypto object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version
» fcm object true none none
»» healthy boolean true none Is entity healthy
»» errorMessage string false none Error message in case entity is not healthy
»» version string false none Entity version

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Authentication

Refer to the Authentication section in the Unbound CASP Developers Guide

List API Keys

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/apikeys',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/auth/apikeys \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/auth/apikeys

List API Keys for CASP service

Example responses

200 Response

[
  {
    "clientId": "string",
    "tokenType": "BEARER",
    "expiry_in": 0,
    "scope": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Unauthorized: Invalid request Inline
500 Internal Server Error Internal error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» clientId string true none API key client_id
» tokenType string true none API key token type
» expiry_in integer(int64) true none API key expiry in
» scope string true none API key scope

Enumerated Values

Property Value
tokenType BEARER

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Create API Key

Code samples

const inputBody = '{
  "client_id": "string",
  "client_role": "Super_User",
  "scope": "string",
  "grant_type": "client_credentials",
  "password": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/apikeys',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/auth/apikeys \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/auth/apikeys

Create API Key for CASP service

Body parameter

{
  "client_id": "string",
  "client_role": "Super_User",
  "scope": "string",
  "grant_type": "client_credentials",
  "password": "string"
}

Parameters

Name In Type Required Description
body body object true Create API key request
» client_id body string true Owner client ID auth token will be issued for
» client_role body string true Auth token owner role.
» scope body string true Auth token scope. Value MUST be set to "/mng"
» grant_type body string true Request's grant type
» password body string true Auth token owner password

Enumerated Values

Parameter Value
» client_role Super_User
» client_role Security_Officer
» client_role Trader
» grant_type client_credentials

Example responses

201 Response

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": 0,
  "scope": "string"
}

Responses

Status Meaning Description Schema
201 Created API key created Inline
401 Unauthorized Unauthorized: Authentication data is invalid Inline
409 Conflict API key cannot be generated Inline
500 Internal Server Error Create API key failed Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» access_token string true none Oauth Token for CASP service
» token_type string false none Oauth Token type
» expires_in integer(int64) false none Expiration in seconds
» scope string false none Oauth token scope

Status Code 401

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Revoke an API key

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/apikeys/{client_id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/auth/apikeys/{client_id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/auth/apikeys/{client_id}

Revoke an API key

Parameters

Name In Type Required Description
client_id path string true Client_id

Example responses

400 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK An API key was successfully removed None
400 Bad Request Unauthorized: Invalid request Inline
500 Internal Server Error API key removal failed Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get access and refresh token

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/tokens/2fa',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/auth/tokens/2fa \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/auth/tokens/2fa

Get access token for CASP service

Example responses

201 Response

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": 0,
  "scope": "string",
  "refresh_token": "string"
}

Responses

Status Meaning Description Schema
201 Created Access and refresh tokens created Inline
202 Accepted 2FA is still pending None
401 Unauthorized Token expired or missing None
403 Forbidden 2FA request declined None
500 Internal Server Error Get OAuth tokens failed Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» access_token string true none Oauth Token for CASP service
» token_type string false none Oauth Token type
» expires_in integer(int64) false none Expiration in seconds
» scope string false none Oauth token scope
» refresh_token string true none Oauth Token for CASP service

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Revoke an access token

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/token/{token_owner}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/auth/token/{token_owner} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/auth/token/{token_owner}

Revoke an access token

Parameters

Name In Type Required Description
token_owner path string true token_owner

Example responses

400 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK An access token was successfully removed None
400 Bad Request Unauthorized: Invalid request Inline
500 Internal Server Error An access token removal failed Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get password complexity

Code samples


fetch('/casp/api/v1.0/mng/errors/password_quality_error',
{
  method: 'GET'

})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/errors/password_quality_error

GET /casp/api/v1.0/mng/errors/password_quality_error

Get password complexity

Parameters

Name In Type Required Description
format query string false Response format

Responses

Status Meaning Description Schema
200 OK OK None

Get access and refresh tokens (deprecated)

Code samples

const inputBody = '{
  "grant_type": "password",
  "username": "string",
  "client_id": "string",
  "password": "string",
  "refreshtoken": "string",
  "refresh_token": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/auth/tokens',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/auth/tokens \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST /casp/api/v1.0/mng/auth/tokens

Get access token for CASP service

Body parameter

{
  "grant_type": "password",
  "username": "string",
  "client_id": "string",
  "password": "string",
  "refreshtoken": "string",
  "refresh_token": "string"
}

Parameters

Name In Type Required Description
body body object true Get oauth tokens request
» grant_type body string true Request's grant type
» username body string false none
» client_id body string false none
» password body string false password
» refreshtoken body string false none
» refresh_token body string false refresh token

Enumerated Values

Parameter Value
» grant_type password
» grant_type refresh_token

Example responses

201 Response

{
  "access_token": "string",
  "token_type": "string",
  "expires_in": 0,
  "scope": "string",
  "refresh_token": "string"
}

Responses

Status Meaning Description Schema
201 Created Access and refresh tokens created Inline
401 Unauthorized Unauthorized: Authentication data is invalid Inline
409 Conflict Auth tokens cannot be generated Inline
500 Internal Server Error Get OAuth tokens failed Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» access_token string true none Oauth Token for CASP service
» token_type string false none Oauth Token type
» expires_in integer(int64) false none Expiration in seconds
» scope string false none Oauth token scope
» refresh_token string true none Oauth Token for CASP service

Status Code 401

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Revoke an access token (deprecated)

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/tokens/{token_owner}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/auth/tokens/{token_owner} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/auth/tokens/{token_owner}

Revoke an access token

Parameters

Name In Type Required Description
token_owner path string true token_owner

Example responses

400 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK An access token was successfully removed None
400 Bad Request Unauthorized: Invalid request Inline
500 Internal Server Error An access token removal failed Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Attributes

List attribute templates

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/attributeTemplates',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/attributeTemplates \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/attributeTemplates

List attribute templates

Parameters

Name In Type Required Description
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending.

The column name can be one of the following: ID, Type, Description
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "id": "string",
      "description": "string",
      "type": "string",
      "range": {
        "minimum": 0,
        "maximum": 0
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error List attribute templates failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» id string true none Vault attribute ID
»» description string false none Vault attribute description
»» type string true none Vault attribute type
»» range object false none Vault attribute range
»»» minimum number false none lower limit
»»» maximum number false none upper limit

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Create attribute template

Code samples

const inputBody = '{
  "id": "string",
  "description": "string",
  "type": "STRING",
  "range": {
    "minimum": 0,
    "maximum": 0
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/attributeTemplates',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/attributeTemplates \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/attributeTemplates

Create attribute template

Body parameter

{
  "id": "string",
  "description": "string",
  "type": "STRING",
  "range": {
    "minimum": 0,
    "maximum": 0
  }
}

Parameters

Name In Type Required Description
body body object true Create attribute template request body
» id body string true Vault attribute ID
» description body string false Vault attribute description
» type body string true Vault attribute Type
» range body object false Vault attribute ranges
»» minimum body number false lower limit
»» maximum body number false upper limit

Enumerated Values

Parameter Value
» type STRING
» type NUMERIC
» type BOOLEAN
» type DATE

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "minimum": 0,
    "maximum": 0
  }
}

Responses

Status Meaning Description Schema
200 OK Attribute template created successfully Inline
400 Bad Request Bad request Inline
500 Internal Server Error Create attribute template failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Vault attribute ID
» description string false none Vault attribute description
» type string true none Vault attribute type
» range object false none Vault attribute range
»» minimum number false none lower limit
»» maximum number false none upper limit

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Update attribute template

Code samples

const inputBody = '{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "minimum": 0,
    "maximum": 0
  }
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/attributeTemplates/{attributeTemplateId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/attributeTemplates/{attributeTemplateId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/attributeTemplates/{attributeTemplateId}

Update attribute template

Body parameter

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "minimum": 0,
    "maximum": 0
  }
}

Parameters

Name In Type Required Description
attributeTemplateId path string true Attribute template ID
body body object true Update attribute template request body
» id body string true Vault attribute ID
» description body string true Vault attribute description
» type body string true Vault attribute type
» range body object true Vault attribute range
»» minimum body number false lower limit
»» maximum body number false upper limit

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "minimum": 0,
    "maximum": 0
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad request Inline
404 Not Found Attribute template not found Inline
500 Internal Server Error Update account failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Vault attribute ID
» description string false none Vault attribute description
» type string true none Vault attribute type
» range object false none Vault attribute range
»» minimum number false none lower limit
»» maximum number false none upper limit

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Delete attribute template

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/attributeTemplates/{attributeTemplateId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/attributeTemplates/{attributeTemplateId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/attributeTemplates/{attributeTemplateId}

Delete attribute template

Parameters

Name In Type Required Description
attributeTemplateId path string true Attribute template ID

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "minimum": 0,
    "maximum": 0
  }
}

Responses

Status Meaning Description Schema
200 OK Attribute template created successfully Inline
400 Bad Request Bad request Inline
404 Not Found Attribute template not found Inline
500 Internal Server Error Delete attribute template failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Vault attribute ID
» description string false none Vault attribute description
» type string true none Vault attribute type
» range object false none Vault attribute range
»» minimum number false none lower limit
»» maximum number false none upper limit

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Edit vault attributes

Code samples

const inputBody = '{
  "newVaultAttributes": {
    "property1": "string",
    "property2": "string"
  },
  "description": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/vaults/{vaultId}/attributes',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/vaults/{vaultId}/attributes \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/vaults/{vaultId}/attributes

Edit vault attributes

Body parameter

{
  "newVaultAttributes": {
    "property1": "string",
    "property2": "string"
  },
  "description": "string"
}

Parameters

Name In Type Required Description
vaultId path string true vault ID
body body object true Updated vault attributes
» newVaultAttributes body object false none
»» additionalProperties body string false none
» description body string false none

Example responses

200 Response

{
  "operationID": "string",
  "kind": "CREATE_VAULT",
  "status": "PENDING",
  "statusText": "string",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "string",
  "stakingPolicyID": "string",
  "groups": [
    {
      "name": "string",
      "members": [
        {
          "approvedAt": "string",
          "id": "string",
          "isApproved": true,
          "name": "string",
          "status": "STARTED",
          "approvalGroupAccount": {
            "id": "string",
            "name": "string"
          },
          "label": "string",
          "isGlobal": true,
          "isActive": true,
          "globalStatus": "string",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policy": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "recipientVaultInfo": {
    "recipientVaultID": "string",
    "recipientVaultName": "string"
  },
  "newVaultAttributes": {
    "property1": "string",
    "property2": "string"
  },
  "oldVaultAttributes": {
    "property1": "string",
    "property2": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad request Inline
404 Not Found Item not found Inline
500 Internal Server Error Operation failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» operationID string true none Operation ID
» kind string true none Request kind
» status string true none Operation status
» statusText string true none Operation status text
» createdAt string true none Operation creation time
» vaultID string true none Vault ID
» description string true none Description of the operation
» isApproved boolean true none Approval state for the operation
» accountID string true none Account ID for the operation
» stakingPolicyID string false none Staking Policy ID for the operation
» groups [object] true none Operation approval groups
»» name string true none Approval group name
»» members [object] true none A list of participants in the group
»»» approvedAt string true none ParticipantWithVault approval time
»»» id string true none ParticipantWithVault ID
»»» isApproved boolean true none ParticipantWithVault approval state
»»» name string true none ParticipantWithVault name
»»» status string true none ParticipantWithVault task status
»»» approvalGroupAccount object true none none
»»»» id string true none Account ID
»»»» name string true none Account name
»»» label string true none ParticipantWithVault label
»»» isGlobal boolean true none ParticipantWithVault global state
»»» isActive boolean true none none
»»» globalStatus string true none none
»»» isOffline boolean true none none
»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»» isOffline boolean true none Group is offline - conclude only offline participants
» policy object false none Operation approval groups
»» id string true none Policy id
»» name string true none Policy name
» vaultName string true none Item name for the operation
» recipientVaultInfo object false none Recipient vault info
»» recipientVaultID string false none none
»» recipientVaultName string false none none
» newVaultAttributes object true none new vault attributes
»» additionalProperties string false none none
» oldVaultAttributes object true none old vault attributes
»» additionalProperties string false none none

Enumerated Values

Property Value
kind CREATE_VAULT
kind ADD_MEMBER
kind SIGN
status PENDING
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status DECLINED
status CANCELED
status FAILED
status ERROR
status STARTED
status DONE
status DECLINED

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status of vault attributes operation

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/operations/updateVaultAttributes/{operationid}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/operations/updateVaultAttributes/{operationid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/operations/updateVaultAttributes/{operationid}

Returns the operation metadata. The Operation ID parameter must be from an 'EDIT_VAULT_ATTRIBUTES' operation.

Parameters

Name In Type Required Description
operationid path string true Operation ID

Example responses

200 Response

{
  "operationID": "string",
  "kind": "CREATE_VAULT",
  "status": "PENDING",
  "statusText": "string",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "string",
  "stakingPolicyID": "string",
  "groups": [
    {
      "name": "string",
      "members": [
        {
          "approvedAt": "string",
          "id": "string",
          "isApproved": true,
          "name": "string",
          "status": "STARTED",
          "approvalGroupAccount": {
            "id": "string",
            "name": "string"
          },
          "label": "string",
          "isGlobal": true,
          "isActive": true,
          "globalStatus": "string",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policy": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "recipientVaultInfo": {
    "recipientVaultID": "string",
    "recipientVaultName": "string"
  },
  "newVaultAttributes": {
    "property1": "string",
    "property2": "string"
  },
  "oldVaultAttributes": {
    "property1": "string",
    "property2": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Operation not found Inline
500 Internal Server Error Get Operation status failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» operationID string true none Operation ID
» kind string true none Request kind
» status string true none Operation status
» statusText string true none Operation status text
» createdAt string true none Operation creation time
» vaultID string true none Vault ID
» description string true none Description of the operation
» isApproved boolean true none Approval state for the operation
» accountID string true none Account ID for the operation
» stakingPolicyID string false none Staking Policy ID for the operation
» groups [object] true none Operation approval groups
»» name string true none Approval group name
»» members [object] true none A list of participants in the group
»»» approvedAt string true none ParticipantWithVault approval time
»»» id string true none ParticipantWithVault ID
»»» isApproved boolean true none ParticipantWithVault approval state
»»» name string true none ParticipantWithVault name
»»» status string true none ParticipantWithVault task status
»»» approvalGroupAccount object true none none
»»»» id string true none Account ID
»»»» name string true none Account name
»»» label string true none ParticipantWithVault label
»»» isGlobal boolean true none ParticipantWithVault global state
»»» isActive boolean true none none
»»» globalStatus string true none none
»»» isOffline boolean true none none
»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»» isOffline boolean true none Group is offline - conclude only offline participants
» policy object false none Operation approval groups
»» id string true none Policy id
»» name string true none Policy name
» vaultName string true none Item name for the operation
» recipientVaultInfo object false none Recipient vault info
»» recipientVaultID string false none none
»» recipientVaultName string false none none
» newVaultAttributes object true none new vault attributes
»» additionalProperties string false none none
» oldVaultAttributes object true none old vault attributes
»» additionalProperties string false none none

Enumerated Values

Property Value
kind CREATE_VAULT
kind ADD_MEMBER
kind SIGN
status PENDING
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status DECLINED
status CANCELED
status FAILED
status ERROR
status STARTED
status DONE
status DECLINED

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Accounts

Refer to the Accounts section in the Unbound CASP Developers Guide

Create a new account

Code samples

const inputBody = '{
  "name": "string",
  "isGlobal": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/accounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/accounts

Create a new account managed by the CASP service

Body parameter

{
  "name": "string",
  "isGlobal": true
}

Parameters

Name In Type Required Description
body body object true Create accounts request
» name body string true Account name
» isGlobal body boolean false Is account global

Example responses

201 Response

{
  "id": "string",
  "name": "string",
  "isGlobal": true,
  "isDeletable": true,
  "creationTime": "string",
  "stats": {
    "participants": {
      "total": 0,
      "inactive": 0
    },
    "operations": {
      "total": 0,
      "pending": 0
    },
    "vaults": {
      "total": 0,
      "inactive": 0,
      "pending": 0
    },
    "stakingPolicies": {
      "total": 0,
      "inactive": 0,
      "pending": 0
    }
  }
}

Responses

Status Meaning Description Schema
201 Created OK Inline
409 Conflict Account already exists Inline
500 Internal Server Error Create account failed Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» id string true none Account ID
» name string true none Account name
» isGlobal boolean true none Is global account
» isDeletable boolean true none Is account can be deleted
» creationTime string true none Account creation time
» stats object true none none
»» participants object true none none
»»» total integer(int32) true none Total number of participants in the account
»»» inactive integer(int32) true none Total number of inactive participants in the account
»» operations object true none none
»»» total integer(int32) true none The number of operations from the account
»»» pending integer(int32) true none The number of operations that are still pending
»» vaults object true none none
»»» total integer(int32) true none The number of vaults that belong to this account
»»» inactive integer(int32) true none The number of inactive vaults that belong to this account
»»» pending integer(int32) true none The number of pending for activation vaults that belong to this account
»» stakingPolicies object true none none
»»» total integer(int32) true none The number of staking policies that belong to this account
»»» inactive integer(int32) true none The number of inactive staking policies that belong to this account
»»» pending integer(int32) true none The number of pending for activation staking policies that belong to this account

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

List accounts

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/accounts

List all accounts managed by the CASP service.

Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.

Parameters

Name In Type Required Description
withStats query boolean false Include additional info per account
filter query string false Search the account names
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: Name, Global
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "id": "string",
      "name": "string",
      "isGlobal": true,
      "isDeletable": true,
      "creationTime": "string",
      "stats": {
        "participants": {
          "total": 0,
          "inactive": 0
        },
        "operations": {
          "total": 0,
          "pending": 0
        },
        "vaults": {
          "total": 0,
          "inactive": 0,
          "pending": 0
        },
        "stakingPolicies": {
          "total": 0,
          "inactive": 0,
          "pending": 0
        }
      }
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
404 Not Found Not found Inline
500 Internal Server Error List accounts failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» id string true none Account ID
»» name string true none Account name
»» isGlobal boolean true none Is global account
»» isDeletable boolean true none Is account can be deleted
»» creationTime string true none Account creation time
»» stats object true none none
»»» participants object true none none
»»»» total integer(int32) true none Total number of participants in the account
»»»» inactive integer(int32) true none Total number of inactive participants in the account
»»» operations object true none none
»»»» total integer(int32) true none The number of operations from the account
»»»» pending integer(int32) true none The number of operations that are still pending
»»» vaults object true none none
»»»» total integer(int32) true none The number of vaults that belong to this account
»»»» inactive integer(int32) true none The number of inactive vaults that belong to this account
»»»» pending integer(int32) true none The number of pending for activation vaults that belong to this account
»»» stakingPolicies object true none none
»»»» total integer(int32) true none The number of staking policies that belong to this account
»»»» inactive integer(int32) true none The number of inactive staking policies that belong to this account
»»»» pending integer(int32) true none The number of pending for activation staking policies that belong to this account

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get account details

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/{accountId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/accounts/{accountId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/accounts/{accountId}

Get account information about a specific account

Parameters

Name In Type Required Description
accountId path string true Account ID
withStats query boolean false Return detailed information about the account

Example responses

200 Response

[
  {
    "id": "string",
    "name": "string",
    "isGlobal": true,
    "isDeletable": true,
    "creationTime": "string",
    "stats": {
      "participants": {
        "total": 0,
        "inactive": 0
      },
      "operations": {
        "total": 0,
        "pending": 0
      },
      "vaults": {
        "total": 0,
        "inactive": 0,
        "pending": 0
      },
      "stakingPolicies": {
        "total": 0,
        "inactive": 0,
        "pending": 0
      }
    }
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Not found Inline
500 Internal Server Error Get account details failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Account ID
» name string true none Account name
» isGlobal boolean true none Is global account
» isDeletable boolean true none Is account can be deleted
» creationTime string true none Account creation time
» stats object true none none
»» participants object true none none
»»» total integer(int32) true none Total number of participants in the account
»»» inactive integer(int32) true none Total number of inactive participants in the account
»» operations object true none none
»»» total integer(int32) true none The number of operations from the account
»»» pending integer(int32) true none The number of operations that are still pending
»» vaults object true none none
»»» total integer(int32) true none The number of vaults that belong to this account
»»» inactive integer(int32) true none The number of inactive vaults that belong to this account
»»» pending integer(int32) true none The number of pending for activation vaults that belong to this account
»» stakingPolicies object true none none
»»» total integer(int32) true none The number of staking policies that belong to this account
»»» inactive integer(int32) true none The number of inactive staking policies that belong to this account
»»» pending integer(int32) true none The number of pending for activation staking policies that belong to this account

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Update an existing account

Code samples

const inputBody = '{
  "name": "string",
  "isGlobal": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/{accountId}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/accounts/{accountId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/accounts/{accountId}

Update the parameters for a specific account

Body parameter

{
  "name": "string",
  "isGlobal": true
}

Parameters

Name In Type Required Description
accountId path string true Account ID
body body object true Update account request
» name body string true Account name
» isGlobal body boolean false Is account global

Example responses

404 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
404 Not Found Account not found Inline
409 Conflict Can't change global property, Account already has participants Inline
500 Internal Server Error Update account failed Inline

Response Schema

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Delete an account

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/{accountId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/accounts/{accountId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/accounts/{accountId}

Delete an existing account. Only accounts with no vaults or participants may be deleted.

Parameters

Name In Type Required Description
accountId path string true Account ID

Example responses

403 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
403 Forbidden Forbidden Inline
404 Not Found Account not found Inline
500 Internal Server Error Delete account failed Inline

Response Schema

Status Code 403

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Operators

Create a new operator

Code samples

const inputBody = '{
  "name": "string",
  "loginName": "string",
  "password": "string",
  "role": "Super_User",
  "enable2fa": true,
  "isApprover": true,
  "accountId": "string",
  "email": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/users',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/auth/users \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/auth/users

Create a new user with the user type "operator".

Body parameter

{
  "name": "string",
  "loginName": "string",
  "password": "string",
  "role": "Super_User",
  "enable2fa": true,
  "isApprover": true,
  "accountId": "string",
  "email": "string"
}

Parameters

Name In Type Required Description
body body object true Create user request
» name body string false User's name
» loginName body string true User's login name
» password body string true User's password
» role body string false User's role
» enable2fa body boolean false Is 2FA enabled for this user
» isApprover body boolean false is this user also an approver
» accountId body string false User's account id. Needed only when creating a participant
» email body string false User's email. needed only when creating a participant

Enumerated Values

Parameter Value
» role Super_User
» role Security_Officer
» role Trader

Example responses

201 Response

{
  "id": "string",
  "name": "string",
  "loginName": "string",
  "status": "string",
  "role": "string",
  "isParticipant": true,
  "enable2fa": true,
  "activationCode": "string",
  "email": "string",
  "locked": true,
  "pushEnabled": true,
  "deviceType": "string",
  "creationTime": "string",
  "modificationTime": "string",
  "lastLoginTime": "string"
}

Responses

Status Meaning Description Schema
201 Created New operator created successfully Inline
400 Bad Request Bad Request Inline
401 Unauthorized Unauthorized: Invalid user name or password Inline
409 Conflict User already exists Inline
500 Internal Server Error Create new operator failed Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» id string true none User ID
» name string true none User name
» loginName string true none User login name
» status string true none User status
» role string true none User role
» isParticipant boolean true none Is user also an participant
» enable2fa boolean true none Is 2FA enabled
» activationCode string false none User activation code for 2FA
» email string false none User's email
» locked boolean true none Is user locked
» pushEnabled boolean true none User has push notifications enabled
» deviceType string false none User/Participant device type
» creationTime string true none User creation time
» modificationTime string true none User last modification time
» lastLoginTime string false none User last login time

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 401

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

List operators

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/auth/users \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/auth/users

List operators

Parameters

Name In Type Required Description
filter query string false Search the users names
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending.

The column name can be one of the following: Name, Status, Email
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

[
  {
    "id": "string",
    "name": "string",
    "loginName": "string",
    "status": "string",
    "role": "string",
    "isParticipant": true,
    "enable2fa": true,
    "activationCode": "string",
    "email": "string",
    "locked": true,
    "pushEnabled": true,
    "deviceType": "string",
    "creationTime": "string",
    "modificationTime": "string",
    "lastLoginTime": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Unauthorized: Invalid request Inline
500 Internal Server Error Internal error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none User ID
» name string true none User name
» loginName string true none User login name
» status string true none User status
» role string true none User role
» isParticipant boolean true none Is user also an participant
» enable2fa boolean true none Is 2FA enabled
» activationCode string false none User activation code for 2FA
» email string false none User's email
» locked boolean true none Is user locked
» pushEnabled boolean true none User has push notifications enabled
» deviceType string false none User/Participant device type
» creationTime string true none User creation time
» modificationTime string true none User last modification time
» lastLoginTime string false none User last login time

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Change operator password

Code samples

const inputBody = '{
  "value": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/auth/password',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/auth/password \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

PUT /casp/api/v1.0/mng/auth/password

Change operator's password to the CASP service

Body parameter

{
  "value": "string"
}

Parameters

Name In Type Required Description
body body object true Change user's password request
» value body string true User's password

Example responses

401 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized: Invalid operator name or password Inline
500 Internal Server Error Change password failed Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Reset operator password

Code samples

const inputBody = '{
  "password": "string",
  "mustChangePassword": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/users/{username}/password',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/auth/users/{username}/password \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/auth/users/{username}/password

Reset operator's password to the CASP service

Body parameter

{
  "password": "string",
  "mustChangePassword": true
}

Parameters

Name In Type Required Description
username path string true Username
body body object true Change user's password request
» password body string true User's password
» mustChangePassword body boolean false User must change password. default value: true

Example responses

401 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
401 Unauthorized Unauthorized: Invalid operator name or password Inline
500 Internal Server Error Change password failed Inline

Response Schema

Status Code 401

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Update operator

Code samples

const inputBody = '{
  "name": "string",
  "loginName": "string",
  "status": "ACTIVATED",
  "role": "Super_User",
  "email": "string",
  "locked": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/users/{user_name}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/auth/users/{user_name} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/auth/users/{user_name}

Update operator

Body parameter

{
  "name": "string",
  "loginName": "string",
  "status": "ACTIVATED",
  "role": "Super_User",
  "email": "string",
  "locked": true
}

Parameters

Name In Type Required Description
user_name path string true User Name
body body object true Update user's state
» name body string false new user name
» loginName body string false new user login name
» status body string false User status
» role body string false User's role
» email body string false none
» locked body boolean false Is user locked

Enumerated Values

Parameter Value
» status ACTIVATED
» status SUSPENDED
» status REVOKED
» role Super_User
» role Security_Officer
» role Trader

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "loginName": "string",
  "status": "string",
  "role": "string",
  "isParticipant": true,
  "enable2fa": true,
  "activationCode": "string",
  "email": "string",
  "locked": true,
  "pushEnabled": true,
  "deviceType": "string",
  "creationTime": "string",
  "modificationTime": "string",
  "lastLoginTime": "string"
}

Responses

Status Meaning Description Schema
200 OK An operator was successfully updated Inline
400 Bad Request Unauthorized: Invalid request Inline
500 Internal Server Error A user removal failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none User ID
» name string true none User name
» loginName string true none User login name
» status string true none User status
» role string true none User role
» isParticipant boolean true none Is user also an participant
» enable2fa boolean true none Is 2FA enabled
» activationCode string false none User activation code for 2FA
» email string false none User's email
» locked boolean true none Is user locked
» pushEnabled boolean true none User has push notifications enabled
» deviceType string false none User/Participant device type
» creationTime string true none User creation time
» modificationTime string true none User last modification time
» lastLoginTime string false none User last login time

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get operator

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/users/{user_name}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/auth/users/{user_name} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/auth/users/{user_name}

Get operator

Parameters

Name In Type Required Description
user_name path string true User Name

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "loginName": "string",
  "status": "string",
  "role": "string",
  "isParticipant": true,
  "enable2fa": true,
  "activationCode": "string",
  "email": "string",
  "locked": true,
  "pushEnabled": true,
  "deviceType": "string",
  "creationTime": "string",
  "modificationTime": "string",
  "lastLoginTime": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Unauthorized: Invalid request Inline
500 Internal Server Error Internal error Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none User ID
» name string true none User name
» loginName string true none User login name
» status string true none User status
» role string true none User role
» isParticipant boolean true none Is user also an participant
» enable2fa boolean true none Is 2FA enabled
» activationCode string false none User activation code for 2FA
» email string false none User's email
» locked boolean true none Is user locked
» pushEnabled boolean true none User has push notifications enabled
» deviceType string false none User/Participant device type
» creationTime string true none User creation time
» modificationTime string true none User last modification time
» lastLoginTime string false none User last login time

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Remove an operator

Code samples


const headers = {
  'Accept':'*/*',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/users/{user_name}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/auth/users/{user_name} \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/auth/users/{user_name}

Remove an operator

Parameters

Name In Type Required Description
user_name path string true User Name

Example responses

400 Response

Responses

Status Meaning Description Schema
200 OK A user was successfully removed None
400 Bad Request Unauthorized: Invalid request Inline
500 Internal Server Error Operator removal failed Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Test push notification

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/{id}/testnotification',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/participants/{id}/testnotification \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/participants/{id}/testnotification

Sends a test push notification to a specific participant (if available)

Parameters

Name In Type Required Description
id path string true Participant ID

Example responses

404 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
404 Not Found Participant not found Inline
409 Conflict Cannot test push notifications Inline
500 Internal Server Error Testing push notification failed Inline

Response Schema

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Reactivate an operator

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/users/{user_name}/reactivate',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/auth/users/{user_name}/reactivate \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/auth/users/{user_name}/reactivate

Activate an existing operator, regenerate the activation code, and re-add the operator to all relevant vaults. Used when the activation code was lost or the operator gets a new phone.

This request returns an error (403) if there is a pending request for the user to join a vault.

Parameters

Name In Type Required Description
user_name path string true User name

Example responses

200 Response

{
  "id": "string",
  "activationCode": "string",
  "name": "string",
  "rejoinOperationIds": [
    "string"
  ],
  "failedToRejoinVaults": [
    {
      "vaultId": "string",
      "vaultName": "string",
      "error": "string"
    }
  ],
  "serverAuthenticationKey": "string",
  "serverEncryptionKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
403 Forbidden not allowed Inline
404 Not Found User not found Inline
500 Internal Server Error Regenerate activation code failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none ParticipantWithVault ID
» activationCode string true none Activation code for the specified participant
» name string true none ParticipantWithVault name
» rejoinOperationIds [string] true none Rejoin operationIds
» failedToRejoinVaults [object] true none Rejoin operation failed on vault
»» vaultId string true none Vault ID
»» vaultName string true none Vault Name
»» error string true none Rejoin error
» serverAuthenticationKey string false none The server authentication key
» serverEncryptionKey string false none The server encryption key

Status Code 403

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Participants

Refer to the Participants section in the Unbound CASP Developers Guide

Create a new participant

Code samples

const inputBody = '{
  "name": "string",
  "email": "string",
  "role": "string",
  "offline": true
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/{accountId}/participants',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/accounts/{accountId}/participants \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/accounts/{accountId}/participants

Create a new participant in the specified account

Body parameter

{
  "name": "string",
  "email": "string",
  "role": "string",
  "offline": true
}

Parameters

Name In Type Required Description
accountId path string true Account ID
body body object true Create participant request
» name body string true Participant name
» email body string true Participant email
» role body string false Participant role
» offline body boolean false An offline participant

Example responses

201 Response

{
  "id": "string",
  "activationCode": "string",
  "name": "string",
  "rejoinOperationIds": [
    "string"
  ],
  "failedToRejoinVaults": [
    {
      "vaultId": "string",
      "vaultName": "string",
      "error": "string"
    }
  ],
  "serverAuthenticationKey": "string",
  "serverEncryptionKey": "string"
}

Responses

Status Meaning Description Schema
201 Created New participant created successfully Inline
404 Not Found Account not found Inline
406 Not Acceptable Email is not valid Inline
409 Conflict Participant already exists Inline
500 Internal Server Error Create new participant failed Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» id string true none ParticipantWithVault ID
» activationCode string true none Activation code for the specified participant
» name string true none ParticipantWithVault name
» rejoinOperationIds [string] true none Rejoin operationIds
» failedToRejoinVaults [object] true none Rejoin operation failed on vault
»» vaultId string true none Vault ID
»» vaultName string true none Vault Name
»» error string true none Rejoin error
» serverAuthenticationKey string false none The server authentication key
» serverEncryptionKey string false none The server encryption key

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

List participants

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/{accountId}/participants',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/accounts/{accountId}/participants \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/accounts/{accountId}/participants

List all participants in the account, which can be both humans and BOT's. An option is provided to include the suspended and revoked participants.

Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.

Parameters

Name In Type Required Description
accountId path string true Account ID
withGlobal query boolean false Include participants which take part in this account vaults and belong to a different global account
withDeactivated query boolean false Include suspended and revoked participants
filter query string false Search the participant names
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending.

The column name can be one of the following: Name, Status, Email
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "id": "string",
      "accountID": "string",
      "name": "string",
      "email": "string",
      "status": "NOT_ACTIVATED",
      "isActive": true,
      "accountName": "string",
      "role": "string",
      "pushEnabled": true,
      "offline": true,
      "activeOperations": 0,
      "deviceType": "IOS",
      "creationTime": "string",
      "modificationTime": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
404 Not Found Account not found Inline
500 Internal Server Error List participant per account failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» id string true none Participant ID
»» accountID string true none Participant account ID
»» name string true none Participant name
»» email string true none Participant email
»» status string true none Participant status
»» isActive boolean true none Participant activation state
»» accountName string true none Participant account name
»» role string true none Participant role
»» pushEnabled boolean true none Is the push notifications enabled for this participant
»» offline boolean true none Participant is offline
»» activeOperations integer(int64) true none Participant is offline
»» deviceType string false none Participant device type
»» creationTime string true none Participant creation time
»» modificationTime string true none Participant last modification time

Enumerated Values

Property Value
status NOT_ACTIVATED
status ACTIVATED
status DEACTIVATED
status SUSPENDED
status REVOKED
deviceType IOS
deviceType ANDROID
deviceType BOT

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get participant information

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/participants/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/participants/{id}

Get details of a participant

Parameters

Name In Type Required Description
id path string true Participant ID

Example responses

200 Response

{
  "id": "string",
  "accountID": "string",
  "name": "string",
  "email": "string",
  "status": "NOT_ACTIVATED",
  "isActive": true,
  "accountName": "string",
  "role": "string",
  "pushEnabled": true,
  "offline": true,
  "activeOperations": 0,
  "deviceType": "IOS",
  "creationTime": "string",
  "modificationTime": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Participant not found Inline
500 Internal Server Error Get participant failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Participant ID
» accountID string true none Participant account ID
» name string true none Participant name
» email string true none Participant email
» status string true none Participant status
» isActive boolean true none Participant activation state
» accountName string true none Participant account name
» role string true none Participant role
» pushEnabled boolean true none Is the push notifications enabled for this participant
» offline boolean true none Participant is offline
» activeOperations integer(int64) true none Participant is offline
» deviceType string false none Participant device type
» creationTime string true none Participant creation time
» modificationTime string true none Participant last modification time

Enumerated Values

Property Value
status NOT_ACTIVATED
status ACTIVATED
status DEACTIVATED
status SUSPENDED
status REVOKED
deviceType IOS
deviceType ANDROID
deviceType BOT

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Update an existing participant

Code samples

const inputBody = '{
  "name": "string",
  "email": "string",
  "role": "string",
  "status": "ACTIVATED",
  "deviceType": "IOS"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/participants/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/participants/{id}

Update a participant's details. Participant name and other attributes can be changed. It can also be used to suspend a participant by setting status to SUSPENDED, and activate a participant by setting status to ACTIVATED, or completely revoke a participant by setting status to REVOKED

Body parameter

{
  "name": "string",
  "email": "string",
  "role": "string",
  "status": "ACTIVATED",
  "deviceType": "IOS"
}

Parameters

Name In Type Required Description
id path string true Participant ID
force query boolean false Force update of participant status. Warning: Using this flag can result in an unusable vault!
body body object true Update participant request
» name body string false ParticipantWithVault name
» email body string false ParticipantWithVault email
» role body string false ParticipantWithVault role
» status body string false ParticipantWithVault status
» deviceType body string false Participant device type

Enumerated Values

Parameter Value
» status ACTIVATED
» status DEACTIVATED
» status SUSPENDED
» status REVOKED
» deviceType IOS
» deviceType ANDROID
» deviceType BOT

Example responses

404 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
404 Not Found Participant not found Inline
409 Conflict Cannot suspend participant Inline
500 Internal Server Error Update participant failed Inline

Response Schema

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Delete a participant

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/participants/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/participants/{id}

Deletes a participant. A participant can be deleted only if it has no related vaults.

Parameters

Name In Type Required Description
id path string true Participant ID

Example responses

403 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
403 Forbidden Forbidden Inline
404 Not Found Participant not found Inline
500 Internal Server Error Delete participant failed Inline

Response Schema

Status Code 403

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Test push notification

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/auth/users/{user_name}/testnotification',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/auth/users/{user_name}/testnotification \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/auth/users/{user_name}/testnotification

Sends a test push notification to a specific user

Parameters

Name In Type Required Description
user_name path string true login name

Example responses

404 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
404 Not Found User not found Inline
409 Conflict Cannot test push notifications Inline
500 Internal Server Error Testing push notification failed Inline

Response Schema

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Participant group info

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/participants/{id}/approvalGroups',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/participants/{id}/approvalGroups \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/participants/{id}/approvalGroups

Retrieve information about a participant's groups.

Parameters

Name In Type Required Description
id path string true Participant ID

Example responses

200 Response

[
  {
    "vaultId": "string",
    "vaultName": "string",
    "stakingPolicyId": "string",
    "stakingPolicyName": "string",
    "type": "string",
    "policy": "string",
    "policyId": "string",
    "name": "string",
    "requiredApprovals": 0,
    "totalMembersCount": 0,
    "activeMembersCount": 0,
    "status": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Participant not found Inline
500 Internal Server Error Get participant groups failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» vaultId string true none Vault ID
» vaultName string true none Vault name
» stakingPolicyId string true none Staking Policy ID
» stakingPolicyName string true none Staking Policy name
» type string true none Group type
» policy string false none Policy name
» policyId string false none Policy Id
» name string true none Group name
» requiredApprovals integer(int32) true none Number of group required approvals
» totalMembersCount integer(int32) true none Number of group participants
» activeMembersCount integer(int32) true none Number of active participants in group
» status string false none Participant status on group (only for suspended and revoked statuses)

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Reactivate a participant

Code samples

const inputBody = '{
  "vaults": [
    "string"
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/{id}/reactivate',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/participants/{id}/reactivate \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/participants/{id}/reactivate

Activate an existing participant, regenerate the activation code, and re-add the participant to all relevant vaults. Used when the activation code was lost or the participant gets a new phone.

This request returns an error (403) if there is a pending request for the user to join a vault.

Body parameter

{
  "vaults": [
    "string"
  ]
}

Parameters

Name In Type Required Description
id path string true Participant ID
body body object true Regenerate activation code request
» vaults body [string] false List of vaultIds to trigger 'rejoin' operation

Example responses

200 Response

{
  "id": "string",
  "activationCode": "string",
  "name": "string",
  "rejoinOperationIds": [
    "string"
  ],
  "failedToRejoinVaults": [
    {
      "vaultId": "string",
      "vaultName": "string",
      "error": "string"
    }
  ],
  "serverAuthenticationKey": "string",
  "serverEncryptionKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
403 Forbidden Reactivation is not allowed Inline
404 Not Found Participant not found Inline
500 Internal Server Error Regenerate activation code failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none ParticipantWithVault ID
» activationCode string true none Activation code for the specified participant
» name string true none ParticipantWithVault name
» rejoinOperationIds [string] true none Rejoin operationIds
» failedToRejoinVaults [object] true none Rejoin operation failed on vault
»» vaultId string true none Vault ID
»» vaultName string true none Vault Name
»» error string true none Rejoin error
» serverAuthenticationKey string false none The server authentication key
» serverEncryptionKey string false none The server encryption key

Status Code 403

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Participant change warnings

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/participants/{id}/statusChangeWarnings/{status}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/participants/{id}/statusChangeWarnings/{status} \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/participants/{id}/statusChangeWarnings/{status}

Returns warnings associated with a potential change in participant status. The user and desired status are given as parameters, and the resulting warning is returned. Depending on the status change, the vault, group, or policy may become unusable.

Parameters

Name In Type Required Description
id path string true Participant ID
vaultId query string false Vault ID
policyId query string false Policy ID
status path string true Status

Example responses

200 Response

[
  {
    "vaultId": "string",
    "vaultName": "string",
    "stakingPolicyId": "string",
    "stakingPolicyName": "string",
    "type": "string",
    "policy": "string",
    "policyId": "string",
    "name": "string",
    "requiredApprovals": 0,
    "totalMembersCount": 0,
    "activeMembersCount": 0,
    "status": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Participant not found Inline
500 Internal Server Error Get participant change warnings failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» vaultId string true none Vault ID
» vaultName string true none Vault name
» stakingPolicyId string true none Staking Policy ID
» stakingPolicyName string true none Staking Policy name
» type string true none Group type
» policy string false none Policy name
» policyId string false none Policy Id
» name string true none Group name
» requiredApprovals integer(int32) true none Number of group required approvals
» totalMembersCount integer(int32) true none Number of group participants
» activeMembersCount integer(int32) true none Number of active participants in group
» status string false none Participant status on group (only for suspended and revoked statuses)

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Activate offline participant

Code samples

const inputBody = 'string';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/participants/{participantid}/activateOffline',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/participants/{participantid}/activateOffline \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

POST /casp/api/v1.0/mng/participants/{participantid}/activateOffline

Activate a participant in CASP

Body parameter

"string"

Parameters

Name In Type Required Description
participantid path string true Participant ID
body body string true Offline activation request

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "email": "string",
  "role": "string",
  "accountID": "string",
  "accountName": "string",
  "status": "NOT_ACTIVATED",
  "loginName": "string",
  "responseSignKey": "string",
  "creationTime": "string",
  "modificationTime": "string",
  "lastLoginTime": "string",
  "approver": true,
  "admin": true
}

Responses

Status Meaning Description Schema
200 OK Participant activated successfully Inline
400 Bad Request Bad request Inline
404 Not Found Participant not found Inline
406 Not Acceptable Participant keys are invalid Inline
500 Internal Server Error Activate participant failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Participant ID
» name string true none Participant name
» email string true none Participant email
» role string true none Participant role
» accountID string true none Participant account ID
» accountName string true none Participant account alias
» status string true none Participant status
» loginName string false none User login name
» responseSignKey string true none Transaction sign key for transaction verifications
» creationTime string true none Participant creation time
» modificationTime string true none Participant last modification time
» lastLoginTime string false none User last login time
» approver boolean false none Participant has approver capabilities
» admin boolean false none Participant has authentication capabilities

Enumerated Values

Property Value
status NOT_ACTIVATED
status ACTIVATED
status DEACTIVATED

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get offline operations

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/{id}/offlineoperations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/participants/{id}/offlineoperations \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/participants/{id}/offlineoperations

Get offline participant operations

Parameters

Name In Type Required Description
id path string true Participant ID

Example responses

200 Response

{
  "data": "string",
  "tag": "string",
  "iv": "string",
  "key": "string",
  "participantId": "string",
  "sig": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Participant not found Inline
405 Method Not Allowed Not allowed Inline
500 Internal Server Error Get participant failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» data string true none Participant ID
» tag string false none none
» iv string false none none
» key string false none none
» participantId string false none none
» sig string true none Participant ID

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 405

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Set offline operation results

Code samples

const inputBody = 'string';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/{id}/offlineoperations',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/participants/{id}/offlineoperations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/participants/{id}/offlineoperations

Set offline participant operation results

Body parameter

"string"

Parameters

Name In Type Required Description
id path string true Participant ID
body body string true Offline participant operation results

Example responses

404 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
404 Not Found Participant not found Inline
405 Method Not Allowed Not allowed Inline
500 Internal Server Error Get participant failed Inline

Response Schema

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 405

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Trusted Systems

List trusted system info

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/trusted',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/trusted \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/trusted

Get trusted CASP instance info

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "instanceId": "string",
      "encryptionKey": "string",
      "signKey": "string",
      "description": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
500 Internal Server Error List trusted system failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total items
» items [object] true none Trusted instances
»» instanceId string true none the instance ID
»» encryptionKey string true none The encryption key
»» signKey string true none The signing key
»» description string false none Instance description

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get trusted system info

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/trusted/me',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/trusted/me \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/trusted/me

Get trusted system info

Example responses

200 Response

{
  "instanceId": "string",
  "encryptionKey": "string",
  "signKey": "string",
  "description": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
500 Internal Server Error Get trusted system details failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» instanceId string true none the instance ID
» encryptionKey string true none The encryption key
» signKey string true none The signing key
» description string false none Instance description

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Add trusted system

Code samples

const inputBody = 'string';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/trusted',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/trusted \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/trusted

Get trusted CASP instance info

Body parameter

"string"

Parameters

Name In Type Required Description
body body string true Add trusted system request

Example responses

200 Response

{
  "instanceId": "string",
  "encryptionKey": "string",
  "signKey": "string",
  "description": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad request Inline
409 Conflict Instance already trusted Inline
500 Internal Server Error Add trusted CASP instance failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» instanceId string true none the instance ID
» encryptionKey string true none The encryption key
» signKey string true none The signing key
» description string false none Instance description

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Edit trusted system

Code samples

const inputBody = '{
  "instanceId": "string",
  "description": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/trusted',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/trusted \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/trusted

Trusted Systems

Body parameter

{
  "instanceId": "string",
  "description": "string"
}

Parameters

Name In Type Required Description
body body object true Add trusted system request
» instanceId body string true Instance ID
» description body string false Instance description

Example responses

200 Response

{
  "instanceId": "string",
  "encryptionKey": "string",
  "signKey": "string",
  "description": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Instance not found Inline
500 Internal Server Error Add trusted CASP instance failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» instanceId string true none the instance ID
» encryptionKey string true none The encryption key
» signKey string true none The signing key
» description string false none Instance description

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Stop trusting system

Code samples


const headers = {
  'Accept':'*/*',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/trusted/{instanceId}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/trusted/{instanceId} \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/trusted/{instanceId}

Stop trusting system

Parameters

Name In Type Required Description
instanceId path string true Instance ID

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Instance not found Inline
500 Internal Server Error List trusted system failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total items
» items [object] true none Trusted instances
»» instanceId string true none the instance ID
»» encryptionKey string true none The encryption key
»» signKey string true none The signing key
»» description string false none Instance description

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Import account

Code samples

const inputBody = 'string';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/import',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/accounts/import \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/accounts/import

Import account from a trusted system

Body parameter

"string"

Parameters

Name In Type Required Description
body body string true import account request

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "isGlobal": true,
  "isDeletable": true,
  "creationTime": "string",
  "stats": {
    "participants": {
      "total": 0,
      "inactive": 0
    },
    "operations": {
      "total": 0,
      "pending": 0
    },
    "vaults": {
      "total": 0,
      "inactive": 0,
      "pending": 0
    },
    "stakingPolicies": {
      "total": 0,
      "inactive": 0,
      "pending": 0
    }
  }
}

Responses

Status Meaning Description Schema
200 OK Account imported successfully Inline
400 Bad Request Bad request Inline
500 Internal Server Error Import account failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Account ID
» name string true none Account name
» isGlobal boolean true none Is global account
» isDeletable boolean true none Is account can be deleted
» creationTime string true none Account creation time
» stats object true none none
»» participants object true none none
»»» total integer(int32) true none Total number of participants in the account
»»» inactive integer(int32) true none Total number of inactive participants in the account
»» operations object true none none
»»» total integer(int32) true none The number of operations from the account
»»» pending integer(int32) true none The number of operations that are still pending
»» vaults object true none none
»»» total integer(int32) true none The number of vaults that belong to this account
»»» inactive integer(int32) true none The number of inactive vaults that belong to this account
»»» pending integer(int32) true none The number of pending for activation vaults that belong to this account
»» stakingPolicies object true none none
»»» total integer(int32) true none The number of staking policies that belong to this account
»»» inactive integer(int32) true none The number of inactive staking policies that belong to this account
»»» pending integer(int32) true none The number of pending for activation staking policies that belong to this account

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Export account

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/{accountId}/export',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/accounts/{accountId}/export \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/accounts/{accountId}/export

Export account to a trusted system

Parameters

Name In Type Required Description
accountId path string true Account ID
trustedInstanceId query string false Trusted CASP instance ID

Example responses

200 Response

{
  "instanceId": "string",
  "type": "string",
  "data": "string",
  "signature": "string"
}

Responses

Status Meaning Description Schema
200 OK Account exported successfully Inline
404 Not Found Account not found Inline
406 Not Acceptable Cannot export to specified instance ID Inline
500 Internal Server Error Export account failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» instanceId string false none none
» type string false none none
» data string false none none
» signature string false none none

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Import vault

Code samples

const inputBody = 'string';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/vaults/import',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/vaults/import \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/vaults/import

Import vault from a trusted system

Body parameter

"string"

Parameters

Name In Type Required Description
body body string true import vault request body

Example responses

200 Response

{
  "description": "string",
  "groups": [
    {
      "name": "string",
      "members": [
        {
          "approvedAt": "string",
          "id": "string",
          "isApproved": true,
          "name": "string",
          "status": "STARTED",
          "approvalGroupAccount": {
            "id": "string",
            "name": "string"
          },
          "label": "string",
          "isGlobal": true,
          "isActive": true,
          "globalStatus": "string",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true,
      "sparePartiesLeft": 0
    }
  ],
  "id": "string",
  "name": "string",
  "accountID": "string",
  "status": "NOT_INITIALIZED",
  "statusText": "string",
  "isActive": true,
  "cryptoKind": "ECDSA",
  "curveName": "string",
  "providerKind": "string",
  "providerData": "string",
  "hierarchy": "string",
  "policies": [
    {
      "name": "string",
      "id": "string",
      "description": "string",
      "enabled": true,
      "timeZone": "string",
      "groups": [
        {
          "name": "string",
          "members": [
            {
              "approvedAt": "string",
              "id": "string",
              "isApproved": true,
              "name": "string",
              "status": "STARTED",
              "approvalGroupAccount": {
                "id": "string",
                "name": "string"
              },
              "label": "string",
              "isGlobal": true,
              "isActive": true,
              "globalStatus": "string",
              "isOffline": true
            }
          ],
          "requiredApprovals": 0,
          "order": 0,
          "deactivateAllowed": true,
          "isOffline": true
        }
      ],
      "rules": {
        "weeklyTimeSlots": [
          {
            "days": "string",
            "timeStart": "string",
            "timeEnd": "string"
          }
        ],
        "amountRange": {
          "property1": {
            "minimum": 0,
            "maximum": 0
          },
          "property2": {
            "minimum": 0,
            "maximum": 0
          }
        },
        "whiteList": [
          "string"
        ],
        "derivedWhiteList": [
          {
            "chainCode": "string",
            "publicKey": "string",
            "level": 0,
            "parentFingerprint": "string",
            "childNumber": 0
          }
        ]
      },
      "isOffline": true
    }
  ],
  "isOffline": true,
  "stakingPolicyVaultInfo": {
    "stakingPolicyID": "string",
    "stakingPolicyName": "string",
    "memberType": "CUSTOMER"
  },
  "approvalStructure": "QUORUM",
  "attributes": {
    "property1": "string",
    "property2": "string"
  },
  "creationTime": "string",
  "modificationTime": "string"
}

Responses

Status Meaning Description Schema
200 OK Vault imported successfully Inline
406 Not Acceptable Exported data originated from an untrusted CASP instance Inline
500 Internal Server Error Import vault failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» description string true none Vault description
» groups [object] true none Vault approval groups
»» name string true none Approval group name
»» members [object] true none A list of participants in the group
»»» approvedAt string true none ParticipantWithVault approval time
»»» id string true none ParticipantWithVault ID
»»» isApproved boolean true none ParticipantWithVault approval state
»»» name string true none ParticipantWithVault name
»»» status string true none ParticipantWithVault task status
»»» approvalGroupAccount object true none none
»»»» id string true none Account ID
»»»» name string true none Account name
»»» label string true none ParticipantWithVault label
»»» isGlobal boolean true none ParticipantWithVault global state
»»» isActive boolean true none none
»»» globalStatus string true none none
»»» isOffline boolean true none none
»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»» isOffline boolean true none Group is offline - conclude only offline participants
»» sparePartiesLeft integer(int32) true none Count Spare Parties left By Group Name
» id string true none Vault ID
» name string true none Vault name
» accountID string true none Vault account ID
» status string true none Vault textual status
» statusText string true none Vault status text
» isActive boolean true none Vault active state
» cryptoKind string false none Type of cryptographic algorithm
» curveName string true none Vault's curve
» providerKind string false none Coin type that created the vault
» providerData string true none This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed.
» hierarchy string true none Vault hierarchy
» policies [object] false none Vault policies
»» name string true none policy name
»» id string true none policy id
»» description string false none Policy description
»» enabled boolean false none is the policy enabled, default is TRUE
»» timeZone string false none Policy time zone
»» groups [object] true none Approval groups
»»» name string true none Approval group name
»»» members [object] true none A list of participants in the group
»»»» approvedAt string true none ParticipantWithVault approval time
»»»» id string true none ParticipantWithVault ID
»»»» isApproved boolean true none ParticipantWithVault approval state
»»»» name string true none ParticipantWithVault name
»»»» status string true none ParticipantWithVault task status
»»»» approvalGroupAccount object true none none
»»»»» id string true none Account ID
»»»»» name string true none Account name
»»»» label string true none ParticipantWithVault label
»»»» isGlobal boolean true none ParticipantWithVault global state
»»»» isActive boolean true none none
»»»» globalStatus string true none none
»»»» isOffline boolean true none none
»»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»»» isOffline boolean true none Group is offline - conclude only offline participants
»» rules object false none Policy rules
»»» weeklyTimeSlots [object] false none none
»»»» days string true none Days of the week in comma separated list. e.g. 0,1,3 for Sunday, Monday and Wednesday
»»»» timeStart string true none Time of day in the following format: HH:MM
»»»» timeEnd string true none Time of day in the following format: HH:MM
»»» amountRange object false none withdrawal amountRange
»»»» additionalProperties object false none none
»»»»» minimum number false none lower limit
»»»»» maximum number false none upper limit
»»» whiteList [string] false none none
»»» derivedWhiteList [object] false none none
»»»» chainCode string false none none
»»»» publicKey string false none none
»»»» level integer(int32) true none none
»»»» parentFingerprint string false none none
»»»» childNumber integer(int32) true none none
»» isOffline boolean false none is policy offline, default is TRUE
» isOffline boolean false none is offline/online vault property
» stakingPolicyVaultInfo object false none This field holds information of staking pool id and vault member type
»» stakingPolicyID string false none none
»» stakingPolicyName string false none none
»» memberType string false none none
» approvalStructure string true none Is Vault approval structure
» attributes object false none Vault's attributes
»» additionalProperties string false none none
» creationTime string true none Vault creation time
» modificationTime string true none Vault last modification time

Enumerated Values

Property Value
status STARTED
status DONE
status DECLINED
status NOT_INITIALIZED
status INITIALIZED
status DEACTIVATED
cryptoKind ECDSA
cryptoKind EDDSA
status STARTED
status DONE
status DECLINED
memberType CUSTOMER
memberType STAKE
approvalStructure QUORUM
approvalStructure POLICY
approvalStructure STAKING_POLICIES

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Export vault

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/vaults/{vaultId}/export',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/vaults/{vaultId}/export \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/vaults/{vaultId}/export

Export vault to a trusted system

Parameters

Name In Type Required Description
vaultId path string true Participant ID
trustedInstanceId query string false Trusted CASP instance ID

Example responses

200 Response

{
  "instanceId": "string",
  "type": "string",
  "data": "string",
  "signature": "string"
}

Responses

Status Meaning Description Schema
200 OK Vault exported successfully Inline
404 Not Found Vault not found Inline
406 Not Acceptable Cannot export to specified instance ID Inline
500 Internal Server Error Export vault failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» instanceId string false none none
» type string false none none
» data string false none none
» signature string false none none

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Import participant

Code samples

const inputBody = 'string';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/import',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/participants/import \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/participants/import

Import participant from a trusted system

Body parameter

"string"

Parameters

Name In Type Required Description
body body string true import participant request

Example responses

200 Response

{
  "id": "string",
  "accountID": "string",
  "name": "string",
  "email": "string",
  "status": "NOT_ACTIVATED",
  "isActive": true,
  "accountName": "string",
  "role": "string",
  "pushEnabled": true,
  "offline": true,
  "activeOperations": 0,
  "deviceType": "IOS",
  "creationTime": "string",
  "modificationTime": "string"
}

Responses

Status Meaning Description Schema
200 OK Participant imported successfully Inline
406 Not Acceptable Exported data originated from an untrusted CASP instance Inline
500 Internal Server Error Import participant failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none Participant ID
» accountID string true none Participant account ID
» name string true none Participant name
» email string true none Participant email
» status string true none Participant status
» isActive boolean true none Participant activation state
» accountName string true none Participant account name
» role string true none Participant role
» pushEnabled boolean true none Is the push notifications enabled for this participant
» offline boolean true none Participant is offline
» activeOperations integer(int64) true none Participant is offline
» deviceType string false none Participant device type
» creationTime string true none Participant creation time
» modificationTime string true none Participant last modification time

Enumerated Values

Property Value
status NOT_ACTIVATED
status ACTIVATED
status DEACTIVATED
status SUSPENDED
status REVOKED
deviceType IOS
deviceType ANDROID
deviceType BOT

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Export participant

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/participants/{participantId}/export',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/participants/{participantId}/export \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/participants/{participantId}/export

Export participant to a trusted system

Parameters

Name In Type Required Description
participantId path string true Participant ID
trustedInstanceId query string false Trusted CASP instance ID

Example responses

200 Response

{
  "instanceId": "string",
  "type": "string",
  "data": "string",
  "signature": "string"
}

Responses

Status Meaning Description Schema
200 OK Participant exported successfully Inline
404 Not Found Participant not found Inline
406 Not Acceptable Cannot export to specified instance ID Inline
500 Internal Server Error Export participant failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» instanceId string false none none
» type string false none none
» data string false none none
» signature string false none none

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Import operation

Code samples

const inputBody = 'string';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/operations/import',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/operations/import \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/operations/import

Import operation from a trusted system

Body parameter

"string"

Parameters

Name In Type Required Description
body body string true import account request

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK Account imported successfully Inline
400 Bad Request Bad request Inline
406 Not Acceptable Exported data originated from an untrusted CASP instance Inline
500 Internal Server Error Import account failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» operationID string true none Operation ID
» kind string true none Request kind
» status string true none Operation status
» statusText string true none Operation status text
» createdAt string true none Operation creation time
» vaultID string true none Vault ID
» description string true none Description of the operation
» isApproved boolean true none Approval state for the operation
» accountID string true none Account ID for the operation
» stakingPolicyID string false none Staking Policy ID for the operation
» groups [object] true none Operation approval groups
»» name string true none Approval group name
»» members [object] true none A list of participants in the group
»»» approvedAt string true none ParticipantWithVault approval time
»»» id string true none ParticipantWithVault ID
»»» isApproved boolean true none ParticipantWithVault approval state
»»» name string true none ParticipantWithVault name
»»» status string true none ParticipantWithVault task status
»»» approvalGroupAccount object true none none
»»»» id string true none Account ID
»»»» name string true none Account name
»»» label string true none ParticipantWithVault label
»»» isGlobal boolean true none ParticipantWithVault global state
»»» isActive boolean true none none
»»» globalStatus string true none none
»»» isOffline boolean true none none
»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»» isOffline boolean true none Group is offline - conclude only offline participants
» policy object false none Operation approval groups
»» id string true none Policy id
»» name string true none Policy name
» vaultName string true none Item name for the operation
» recipientVaultInfo object false none Recipient vault info
»» recipientVaultID string false none none
»» recipientVaultName string false none none

Enumerated Values

Property Value
kind CREATE_VAULT
kind ADD_MEMBER
kind SIGN
status PENDING
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status DECLINED
status CANCELED
status FAILED
status ERROR
status STARTED
status DONE
status DECLINED

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Export operation

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/operations/{operationid}/export',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/operations/{operationid}/export \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/operations/{operationid}/export

Export operation to a trusted system

Parameters

Name In Type Required Description
operationid path string true Operation ID
trustedInstanceId query string false Trusted CASP instance ID

Example responses

200 Response

{
  "instanceId": "string",
  "type": "string",
  "data": "string",
  "signature": "string"
}

Responses

Status Meaning Description Schema
200 OK Operation exported successfully Inline
404 Not Found Operation not found Inline
406 Not Acceptable Cannot export to specified instance ID Inline
500 Internal Server Error Export operation failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» instanceId string false none none
» type string false none none
» data string false none none
» signature string false none none

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

List UKC vault keys

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/vaults/{vaultId}/ukcKeys',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/vaults/{vaultId}/ukcKeys \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/vaults/{vaultId}/ukcKeys

List UKC vault keys

Parameters

Name In Type Required Description
vaultId path string true Vault ID

Example responses

200 Response

[
  {
    "ukcKeyId": "string"
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Vault not found Inline
500 Internal Server Error List UKC keys failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» ukcKeyId string true none The key UKC key ID

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Trusted systems audit

Code samples


const headers = {
  'Accept':'application/json',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/audit/trustedSystems',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/trustedSystems \
  -H 'Accept: application/json' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/audit/trustedSystems

Trusted systems audit

Parameters

Name In Type Required Description
Accept header string false none
fullValidation query boolean false Validate trusted systems audit and check it is not corrupted
fromDate query string false Search trusted systems audit by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search trusted systems audit by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
trustedInstanceID query string false Search the trusted systems audit by trusted instance ID
accountID query string false Search the trusted systems audit by account ID
filter query string false Search the trusted systems audit by operationID or participantID or vaultID, partial word search is allowed
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is descending.

The column name can be one of the following: timestamp
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "auditSeverity": "string",
      "event": "string",
      "initiatorId": "string",
      "initiatorName": "string",
      "timestamp": "string",
      "duration": 0,
      "error": "string",
      "details": "string",
      "accountId": "string",
      "accountName": "string",
      "version": 0,
      "operationId": "string",
      "operationKind": "string",
      "operationStatus": "string",
      "trustedInstanceId": "string",
      "vaultId": "string",
      "vaultName": "string",
      "participantId": "string",
      "participantName": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad request Inline
500 Internal Server Error Get trusted systems audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» operationId string false none none
»» operationKind string false none none
»» operationStatus string false none none
»» trustedInstanceId string false none none
»» vaultId string false none none
»» vaultName string false none none
»» participantId string false none none
»» participantName string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Staking Policy Operations

List staking policies

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/{accountId}/stakingPolicies',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/accounts/{accountId}/stakingPolicies \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/accounts/{accountId}/stakingPolicies

List all staking policies in the account. By default only active staking policies are listed.

Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.

Parameters

Name In Type Required Description
accountId path string true Account ID
withDeactivated query boolean false Include deactivated vaults
filter query string false Search the vault names and descriptions
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending.

The column name can be one of the following: Name, Provider, Description, Status
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false Maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "cryptoKind": "ECDSA",
      "providerKind": "string",
      "isActive": true,
      "status": "NOT_INITIALIZED",
      "statusText": "string",
      "providerData": "string",
      "pendingOperations": 0,
      "hierarchy": "NONE",
      "isDeletable": true,
      "approvalStructure": "QUORUM",
      "creationTime": "string",
      "modificationTime": "string",
      "stakingPolicyVaultInfo": {
        "stakingPolicyID": "string",
        "stakingPolicyName": "string",
        "memberType": "CUSTOMER"
      },
      "offline": true
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
404 Not Found Account not found Inline
500 Internal Server Error List staking policies per account failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» id string true none Vault ID
»» name string true none Vault name
»» description string true none Vault description
»» cryptoKind string false none Type of cryptographic algorithm
»» providerKind string false none Coin type that created the vault
»» isActive boolean true none Vault active state
»» status string true none Vault status
»» statusText string true none Vault status text
»» providerData string true none This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed.
»» pendingOperations integer(int64) true none Vault pending requests
»» hierarchy string true none Vault status text
»» isDeletable boolean true none Is Vault able to be deleted
»» approvalStructure string true none Is Vault approval structure
»» creationTime string true none Vault creation time
»» modificationTime string true none Vault last modification time
»» stakingPolicyVaultInfo object false none none
»»» stakingPolicyID string false none none
»»» stakingPolicyName string false none none
»»» memberType string false none none
»» offline boolean true none Is Vault is offline

Enumerated Values

Property Value
cryptoKind ECDSA
cryptoKind EDDSA
status NOT_INITIALIZED
status INITIALIZED
status DEACTIVATED
hierarchy NONE
hierarchy BIP32
hierarchy BIP44
approvalStructure QUORUM
approvalStructure POLICY
approvalStructure STAKING_POLICIES
memberType CUSTOMER
memberType STAKE

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Create new staking policy

Code samples

const inputBody = '{
  "name": "string",
  "description": "string",
  "groups": [
    {
      "name": "string",
      "requiredApprovals": 1,
      "members": [
        {
          "id": "string"
        }
      ],
      "isOffline": true
    }
  ],
  "customerToStakeApprovalPolicies": [
    {
      "name": "string",
      "description": "string",
      "enabled": true,
      "isOffline": true,
      "timeZone": "string",
      "groups": [
        {
          "name": "string",
          "requiredApprovals": 1,
          "members": [
            {
              "id": "string"
            }
          ],
          "isOffline": true
        }
      ],
      "rules": {
        "weeklyTimeSlots": [
          {
            "days": "string",
            "timeStart": "string",
            "timeEnd": "string"
          }
        ],
        "amountRange": {
          "property1": {
            "minimum": 0,
            "maximum": 0
          },
          "property2": {
            "minimum": 0,
            "maximum": 0
          }
        },
        "whiteList": [
          "string"
        ],
        "derivedWhiteList": [
          {
            "chainCode": "string",
            "publicKey": "string",
            "level": 0,
            "parentFingerprint": "string",
            "childNumber": 0
          }
        ]
      }
    }
  ],
  "stakeToCustomerApprovalPolicies": [
    {
      "name": "string",
      "description": "string",
      "enabled": true,
      "isOffline": true,
      "timeZone": "string",
      "groups": [
        {
          "name": "string",
          "requiredApprovals": 1,
          "members": [
            {
              "id": "string"
            }
          ],
          "isOffline": true
        }
      ],
      "rules": {
        "weeklyTimeSlots": [
          {
            "days": "string",
            "timeStart": "string",
            "timeEnd": "string"
          }
        ],
        "amountRange": {
          "property1": {
            "minimum": 0,
            "maximum": 0
          },
          "property2": {
            "minimum": 0,
            "maximum": 0
          }
        },
        "whiteList": [
          "string"
        ],
        "derivedWhiteList": [
          {
            "chainCode": "string",
            "publicKey": "string",
            "level": 0,
            "parentFingerprint": "string",
            "childNumber": 0
          }
        ]
      }
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/accounts/{accountId}/stakingPolicies',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/accounts/{accountId}/stakingPolicies \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/accounts/{accountId}/stakingPolicies

This request starts the process of creating a new staking policy. The staking policy is created only after the participants approve the staking policy creation.

Body parameter

{
  "name": "string",
  "description": "string",
  "groups": [
    {
      "name": "string",
      "requiredApprovals": 1,
      "members": [
        {
          "id": "string"
        }
      ],
      "isOffline": true
    }
  ],
  "customerToStakeApprovalPolicies": [
    {
      "name": "string",
      "description": "string",
      "enabled": true,
      "isOffline": true,
      "timeZone": "string",
      "groups": [
        {
          "name": "string",
          "requiredApprovals": 1,
          "members": [
            {
              "id": "string"
            }
          ],
          "isOffline": true
        }
      ],
      "rules": {
        "weeklyTimeSlots": [
          {
            "days": "string",
            "timeStart": "string",
            "timeEnd": "string"
          }
        ],
        "amountRange": {
          "property1": {
            "minimum": 0,
            "maximum": 0
          },
          "property2": {
            "minimum": 0,
            "maximum": 0
          }
        },
        "whiteList": [
          "string"
        ],
        "derivedWhiteList": [
          {
            "chainCode": "string",
            "publicKey": "string",
            "level": 0,
            "parentFingerprint": "string",
            "childNumber": 0
          }
        ]
      }
    }
  ],
  "stakeToCustomerApprovalPolicies": [
    {
      "name": "string",
      "description": "string",
      "enabled": true,
      "isOffline": true,
      "timeZone": "string",
      "groups": [
        {
          "name": "string",
          "requiredApprovals": 1,
          "members": [
            {
              "id": "string"
            }
          ],
          "isOffline": true
        }
      ],
      "rules": {
        "weeklyTimeSlots": [
          {
            "days": "string",
            "timeStart": "string",
            "timeEnd": "string"
          }
        ],
        "amountRange": {
          "property1": {
            "minimum": 0,
            "maximum": 0
          },
          "property2": {
            "minimum": 0,
            "maximum": 0
          }
        },
        "whiteList": [
          "string"
        ],
        "derivedWhiteList": [
          {
            "chainCode": "string",
            "publicKey": "string",
            "level": 0,
            "parentFingerprint": "string",
            "childNumber": 0
          }
        ]
      }
    }
  ]
}

Parameters

Name In Type Required Description
accountId path string true Account ID
body body object true Create Staking Policy Request
» name body string true Staking Policy name
» description body string false Staking Policy description
» groups body [object] true Staking Policy approval groups
»» name body string true Vault group name
»» requiredApprovals body integer(int32) true Vault group required approvals
»» members body [object] true Vault group participants
»»» id body string true Participant ID
»» isOffline body boolean true Vault group isOffline property
» customerToStakeApprovalPolicies body [object] true Staking Policy CustomerToStakeApproval policies set
»» name body string true policy name
»» description body string false Policy description
»» enabled body boolean false is the policy enabled, default is TRUE
»» isOffline body boolean false Is policy offline, for offline vaults default is true, for online vaults default is false
»» timeZone body string false Policy time zone, default is UTC
»» groups body [object] true none
»»» name body string true Vault group name
»»» requiredApprovals body integer(int32) true Vault group required approvals
»»» members body [object] true Vault group participants
»»»» id body string true Participant ID
»»» isOffline body boolean true Vault group isOffline property
»» rules body object false Policy rules
»»» weeklyTimeSlots body [object] false none
»»»» days body string true Days of the week in comma separated list. e.g. 0,1,3 for Sunday, Monday and Wednesday
»»»» timeStart body string true Time of day in the following format: HH:MM
»»»» timeEnd body string true Time of day in the following format: HH:MM
»»» amountRange body object false withdrawal amountRange
»»»» additionalProperties body object false none
»»»»» minimum body number false lower limit
»»»»» maximum body number false upper limit
»»» whiteList body [string] false none
»»» derivedWhiteList body [object] false none
»»»» chainCode body string false none
»»»» publicKey body string false none
»»»» level body integer(int32) true none
»»»» parentFingerprint body string false none
»»»» childNumber body integer(int32) true none
» stakeToCustomerApprovalPolicies body [object] true Staking Policy StakeToCustomerApproval policies set
»» name body string true policy name
»» description body string false Policy description
»» enabled body boolean false is the policy enabled, default is TRUE
»» isOffline body boolean false Is policy offline, for offline vaults default is true, for online vaults default is false
»» timeZone body string false Policy time zone, default is UTC
»» groups body [object] true none
»»» name body string true Vault group name
»»» requiredApprovals body integer(int32) true Vault group required approvals
»»» members body [object] true Vault group participants
»»»» id body string true Participant ID
»»» isOffline body boolean true Vault group isOffline property
»» rules body object false Policy rules
»»» weeklyTimeSlots body [object] false none
»»»» days body string true Days of the week in comma separated list. e.g. 0,1,3 for Sunday, Monday and Wednesday
»»»» timeStart body string true Time of day in the following format: HH:MM
»»»» timeEnd body string true Time of day in the following format: HH:MM
»»» amountRange body object false withdrawal amountRange
»»»» additionalProperties body object false none
»»»»» minimum body number false lower limit
»»»»» maximum body number false upper limit
»»» whiteList body [string] false none
»»» derivedWhiteList body [object] false none
»»»» chainCode body string false none
»»»» publicKey body string false none
»»»» level body integer(int32) true none
»»»» parentFingerprint body string false none
»»»» childNumber body integer(int32) true none

Example responses

201 Response

{
  "id": "string",
  "name": "string",
  "description": "string",
  "accountID": "string"
}

Responses

Status Meaning Description Schema
201 Created New staking policy created successfully Inline
400 Bad Request Bad Request Inline
404 Not Found Missing data Inline
409 Conflict Staking policy name already exists Inline
500 Internal Server Error Create staking policy failed Inline

Response Schema

Status Code 201

Name Type Required Restrictions Description
» id string true none Vault ID
» name string true none Vault name
» description string true none Vault description
» accountID string true none Vault account ID

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 409

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get staking policy info

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{id}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/stakingPolicies/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/stakingPolicies/{id}

Get details of a staking policy

Parameters

Name In Type Required Description
id path string true Staking Policy ID

Example responses

200 Response

{
  "description": "string",
  "groups": [
    {
      "name": "string",
      "members": [
        {
          "approvedAt": "string",
          "id": "string",
          "isApproved": true,
          "name": "string",
          "status": "STARTED",
          "approvalGroupAccount": {
            "id": "string",
            "name": "string"
          },
          "label": "string",
          "isGlobal": true,
          "isActive": true,
          "globalStatus": "string",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true,
      "sparePartiesLeft": 0
    }
  ],
  "id": "string",
  "name": "string",
  "accountID": "string",
  "status": "NOT_INITIALIZED",
  "statusText": "string",
  "isActive": true,
  "cryptoKind": "ECDSA",
  "curveName": "string",
  "providerKind": "string",
  "providerData": "string",
  "hierarchy": "string",
  "policies": [
    {
      "name": "string",
      "id": "string",
      "description": "string",
      "enabled": true,
      "timeZone": "string",
      "groups": [
        {
          "name": "string",
          "members": [
            {
              "approvedAt": "string",
              "id": "string",
              "isApproved": true,
              "name": "string",
              "status": "STARTED",
              "approvalGroupAccount": {
                "id": "string",
                "name": "string"
              },
              "label": "string",
              "isGlobal": true,
              "isActive": true,
              "globalStatus": "string",
              "isOffline": true
            }
          ],
          "requiredApprovals": 0,
          "order": 0,
          "deactivateAllowed": true,
          "isOffline": true
        }
      ],
      "rules": {
        "weeklyTimeSlots": [
          {
            "days": "string",
            "timeStart": "string",
            "timeEnd": "string"
          }
        ],
        "amountRange": {
          "property1": {
            "minimum": 0,
            "maximum": 0
          },
          "property2": {
            "minimum": 0,
            "maximum": 0
          }
        },
        "whiteList": [
          "string"
        ],
        "derivedWhiteList": [
          {
            "chainCode": "string",
            "publicKey": "string",
            "level": 0,
            "parentFingerprint": "string",
            "childNumber": 0
          }
        ]
      },
      "isOffline": true
    }
  ],
  "isOffline": true,
  "stakingPolicyVaultInfo": {
    "stakingPolicyID": "string",
    "stakingPolicyName": "string",
    "memberType": "CUSTOMER"
  },
  "approvalStructure": "QUORUM",
  "attributes": {
    "property1": "string",
    "property2": "string"
  },
  "creationTime": "string",
  "modificationTime": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Staking policy not found Inline
500 Internal Server Error Get staking policy details failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» description string true none Vault description
» groups [object] true none Vault approval groups
»» name string true none Approval group name
»» members [object] true none A list of participants in the group
»»» approvedAt string true none ParticipantWithVault approval time
»»» id string true none ParticipantWithVault ID
»»» isApproved boolean true none ParticipantWithVault approval state
»»» name string true none ParticipantWithVault name
»»» status string true none ParticipantWithVault task status
»»» approvalGroupAccount object true none none
»»»» id string true none Account ID
»»»» name string true none Account name
»»» label string true none ParticipantWithVault label
»»» isGlobal boolean true none ParticipantWithVault global state
»»» isActive boolean true none none
»»» globalStatus string true none none
»»» isOffline boolean true none none
»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»» isOffline boolean true none Group is offline - conclude only offline participants
»» sparePartiesLeft integer(int32) true none Count Spare Parties left By Group Name
» id string true none Vault ID
» name string true none Vault name
» accountID string true none Vault account ID
» status string true none Vault textual status
» statusText string true none Vault status text
» isActive boolean true none Vault active state
» cryptoKind string false none Type of cryptographic algorithm
» curveName string true none Vault's curve
» providerKind string false none Coin type that created the vault
» providerData string true none This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed.
» hierarchy string true none Vault hierarchy
» policies [object] false none Vault policies
»» name string true none policy name
»» id string true none policy id
»» description string false none Policy description
»» enabled boolean false none is the policy enabled, default is TRUE
»» timeZone string false none Policy time zone
»» groups [object] true none Approval groups
»»» name string true none Approval group name
»»» members [object] true none A list of participants in the group
»»»» approvedAt string true none ParticipantWithVault approval time
»»»» id string true none ParticipantWithVault ID
»»»» isApproved boolean true none ParticipantWithVault approval state
»»»» name string true none ParticipantWithVault name
»»»» status string true none ParticipantWithVault task status
»»»» approvalGroupAccount object true none none
»»»»» id string true none Account ID
»»»»» name string true none Account name
»»»» label string true none ParticipantWithVault label
»»»» isGlobal boolean true none ParticipantWithVault global state
»»»» isActive boolean true none none
»»»» globalStatus string true none none
»»»» isOffline boolean true none none
»»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»»» isOffline boolean true none Group is offline - conclude only offline participants
»» rules object false none Policy rules
»»» weeklyTimeSlots [object] false none none
»»»» days string true none Days of the week in comma separated list. e.g. 0,1,3 for Sunday, Monday and Wednesday
»»»» timeStart string true none Time of day in the following format: HH:MM
»»»» timeEnd string true none Time of day in the following format: HH:MM
»»» amountRange object false none withdrawal amountRange
»»»» additionalProperties object false none none
»»»»» minimum number false none lower limit
»»»»» maximum number false none upper limit
»»» whiteList [string] false none none
»»» derivedWhiteList [object] false none none
»»»» chainCode string false none none
»»»» publicKey string false none none
»»»» level integer(int32) true none none
»»»» parentFingerprint string false none none
»»»» childNumber integer(int32) true none none
»» isOffline boolean false none is policy offline, default is TRUE
» isOffline boolean false none is offline/online vault property
» stakingPolicyVaultInfo object false none This field holds information of staking pool id and vault member type
»» stakingPolicyID string false none none
»» stakingPolicyName string false none none
»» memberType string false none none
» approvalStructure string true none Is Vault approval structure
» attributes object false none Vault's attributes
»» additionalProperties string false none none
» creationTime string true none Vault creation time
» modificationTime string true none Vault last modification time

Enumerated Values

Property Value
status STARTED
status DONE
status DECLINED
status NOT_INITIALIZED
status INITIALIZED
status DEACTIVATED
cryptoKind ECDSA
cryptoKind EDDSA
status STARTED
status DONE
status DECLINED
memberType CUSTOMER
memberType STAKE
approvalStructure QUORUM
approvalStructure POLICY
approvalStructure STAKING_POLICIES

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Update staking policies

Code samples

const inputBody = '[
  {
    "name": "string",
    "id": "string",
    "description": "string",
    "enabled": true,
    "timeZone": "string",
    "rules": {
      "weeklyTimeSlots": [
        {
          "days": "string",
          "timeStart": "string",
          "timeEnd": "string"
        }
      ],
      "amountRange": {
        "property1": {
          "minimum": 0,
          "maximum": 0
        },
        "property2": {
          "minimum": 0,
          "maximum": 0
        }
      },
      "whiteList": [
        "string"
      ],
      "derivedWhiteList": [
        {
          "chainCode": "string",
          "publicKey": "string",
          "level": 0,
          "parentFingerprint": "string",
          "childNumber": 0
        }
      ]
    },
    "isOffline": true
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/{policySetType}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/{policySetType} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/{policySetType}

Update staking policies

Body parameter

[
  {
    "name": "string",
    "id": "string",
    "description": "string",
    "enabled": true,
    "timeZone": "string",
    "rules": {
      "weeklyTimeSlots": [
        {
          "days": "string",
          "timeStart": "string",
          "timeEnd": "string"
        }
      ],
      "amountRange": {
        "property1": {
          "minimum": 0,
          "maximum": 0
        },
        "property2": {
          "minimum": 0,
          "maximum": 0
        }
      },
      "whiteList": [
        "string"
      ],
      "derivedWhiteList": [
        {
          "chainCode": "string",
          "publicKey": "string",
          "level": 0,
          "parentFingerprint": "string",
          "childNumber": 0
        }
      ]
    },
    "isOffline": true
  }
]

Parameters

Name In Type Required Description
stakingPolicyId path string true Staking Policy ID
policySetType path string true Policy Set Type
body body array[object] true Policy Update Details

Example responses

200 Response

{
  "operationID": "string",
  "kind": "CREATE_VAULT",
  "status": "PENDING",
  "statusText": "string",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "string",
  "stakingPolicyID": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad request Inline
404 Not Found Staking Policy not found Inline
500 Internal Server Error Update staking policies failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» operationID string true none Operation ID
» kind string true none Request kind
» status string true none Operation status
» statusText string true none Operation status text
» createdAt string true none Operation creation time
» vaultID string true none Vault ID
» description string true none Description of the operation
» isApproved boolean true none Approval state for the operation
» accountID string true none Account ID for the operation
» stakingPolicyID string false none Staking Policy ID for the operation

Enumerated Values

Property Value
kind CREATE_VAULT
kind ADD_MEMBER
kind SIGN
status PENDING
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status DECLINED
status CANCELED
status FAILED
status ERROR

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Update staking policy info

Code samples

const inputBody = '{
  "name": "string",
  "description": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'*/*',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{id}',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/stakingPolicies/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: */*' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/stakingPolicies/{id}

Updates the details of an existing staking policy. The staking policy name and description can be updated.

Body parameter

{
  "name": "string",
  "description": "string"
}

Parameters

Name In Type Required Description
id path string true Staking Policy ID
body body object true Update Staking Policy Request
» name body string false Vault name
» description body string false Vault description

Example responses

404 Response

Responses

Status Meaning Description Schema
200 OK OK None
202 Accepted Staking Policy update accepted and needs to be approved by admin quorum. None
404 Not Found Staking Policy not found Inline
500 Internal Server Error Update staking policy failed Inline

Response Schema

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Add member to admin group

Code samples

const inputBody = '{
  "participantID": "string",
  "description": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/adminGroups/{approvalGroupName}/members',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/adminGroups/{approvalGroupName}/members \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/adminGroups/{approvalGroupName}/members

This API is used if a participant becomes unavailable or leaves an account and needs to be replaced with a new participant. A new participant may be added to an existing staking pool, but requires the approval of the existing staking policy quorum.

Body parameter

{
  "participantID": "string",
  "description": "string"
}

Parameters

Name In Type Required Description
stakingPolicyId path string true Staking Policy ID
approvalGroupName path string true Approval Group name
body body object true Add Staking Policy admin quorum group participant details
» participantID body string true Participant ID
» description body string false Description

Example responses

200 Response

{
  "operation": {
    "operationID": "string",
    "kind": "CREATE_VAULT",
    "status": "PENDING",
    "statusText": "string",
    "createdAt": "string",
    "vaultID": "string",
    "description": "string",
    "isApproved": true,
    "accountID": "string",
    "stakingPolicyID": "string",
    "groups": [
      {
        "name": "string",
        "members": [
          {
            "approvedAt": "string",
            "id": "string",
            "isApproved": true,
            "name": "string",
            "status": "STARTED",
            "approvalGroupAccount": {
              "id": "string",
              "name": "string"
            },
            "label": "string",
            "isGlobal": true,
            "isActive": true,
            "globalStatus": "string",
            "isOffline": true
          }
        ],
        "requiredApprovals": 0,
        "order": 0,
        "deactivateAllowed": true,
        "isOffline": true
      }
    ],
    "policy": {
      "id": "string",
      "name": "string"
    },
    "vaultName": "string",
    "recipientVaultInfo": {
      "recipientVaultID": "string",
      "recipientVaultName": "string"
    }
  },
  "participant": {
    "id": "string",
    "accountID": "string",
    "name": "string",
    "email": "string",
    "status": "NOT_ACTIVATED",
    "isActive": true,
    "accountName": "string",
    "role": "string",
    "pushEnabled": true,
    "offline": true,
    "activeOperations": 0,
    "deviceType": "IOS",
    "creationTime": "string",
    "modificationTime": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Item not found Inline
405 Method Not Allowed Not allowed Inline
500 Internal Server Error Add participant failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» operation object true none Operation
»» operationID string true none Operation ID
»» kind string true none Request kind
»» status string true none Operation status
»» statusText string true none Operation status text
»» createdAt string true none Operation creation time
»» vaultID string true none Vault ID
»» description string true none Description of the operation
»» isApproved boolean true none Approval state for the operation
»» accountID string true none Account ID for the operation
»» stakingPolicyID string false none Staking Policy ID for the operation
»» groups [object] true none Operation approval groups
»»» name string true none Approval group name
»»» members [object] true none A list of participants in the group
»»»» approvedAt string true none ParticipantWithVault approval time
»»»» id string true none ParticipantWithVault ID
»»»» isApproved boolean true none ParticipantWithVault approval state
»»»» name string true none ParticipantWithVault name
»»»» status string true none ParticipantWithVault task status
»»»» approvalGroupAccount object true none none
»»»»» id string true none Account ID
»»»»» name string true none Account name
»»»» label string true none ParticipantWithVault label
»»»» isGlobal boolean true none ParticipantWithVault global state
»»»» isActive boolean true none none
»»»» globalStatus string true none none
»»»» isOffline boolean true none none
»»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»»» isOffline boolean true none Group is offline - conclude only offline participants
»» policy object false none Operation approval groups
»»» id string true none Policy id
»»» name string true none Policy name
»» vaultName string true none Item name for the operation
»» recipientVaultInfo object false none Recipient vault info
»»» recipientVaultID string false none none
»»» recipientVaultName string false none none
» participant object true none ParticipantWithVault
»» id string true none Participant ID
»» accountID string true none Participant account ID
»» name string true none Participant name
»» email string true none Participant email
»» status string true none Participant status
»» isActive boolean true none Participant activation state
»» accountName string true none Participant account name
»» role string true none Participant role
»» pushEnabled boolean true none Is the push notifications enabled for this participant
»» offline boolean true none Participant is offline
»» activeOperations integer(int64) true none Participant is offline
»» deviceType string false none Participant device type
»» creationTime string true none Participant creation time
»» modificationTime string true none Participant last modification time

Enumerated Values

Property Value
kind CREATE_VAULT
kind ADD_MEMBER
kind SIGN
status PENDING
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status DECLINED
status CANCELED
status FAILED
status ERROR
status STARTED
status DONE
status DECLINED
status NOT_ACTIVATED
status ACTIVATED
status DEACTIVATED
status SUSPENDED
status REVOKED
deviceType IOS
deviceType ANDROID
deviceType BOT

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 405

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Add member to policy

Code samples

const inputBody = '{
  "participantID": "string",
  "description": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/{policySetType}/{policyId}/{approvalGroupName}/members',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/{policySetType}/{policyId}/{approvalGroupName}/members \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/{policySetType}/{policyId}/{approvalGroupName}/members

This API is used if a participant becomes unavailable or leaves an account and needs to be replaced with a new participant. A new participant may be added to an existing policy, but requires the approval of the existing staking policy quorum.

Body parameter

{
  "participantID": "string",
  "description": "string"
}

Parameters

Name In Type Required Description
stakingPolicyId path string true Staking Policy ID
policyId path string true Policy ID
policySetType path string true Policy Set Type
approvalGroupName path string true Policy Approval Group name
body body object true Add Staking Policy from Stake to Customer policy participant details
» participantID body string true Participant ID
» description body string false Description

Example responses

200 Response

{
  "operation": {
    "operationID": "string",
    "kind": "CREATE_VAULT",
    "status": "PENDING",
    "statusText": "string",
    "createdAt": "string",
    "vaultID": "string",
    "description": "string",
    "isApproved": true,
    "accountID": "string",
    "stakingPolicyID": "string",
    "groups": [
      {
        "name": "string",
        "members": [
          {
            "approvedAt": "string",
            "id": "string",
            "isApproved": true,
            "name": "string",
            "status": "STARTED",
            "approvalGroupAccount": {
              "id": "string",
              "name": "string"
            },
            "label": "string",
            "isGlobal": true,
            "isActive": true,
            "globalStatus": "string",
            "isOffline": true
          }
        ],
        "requiredApprovals": 0,
        "order": 0,
        "deactivateAllowed": true,
        "isOffline": true
      }
    ],
    "policy": {
      "id": "string",
      "name": "string"
    },
    "vaultName": "string",
    "recipientVaultInfo": {
      "recipientVaultID": "string",
      "recipientVaultName": "string"
    }
  },
  "participant": {
    "id": "string",
    "accountID": "string",
    "name": "string",
    "email": "string",
    "status": "NOT_ACTIVATED",
    "isActive": true,
    "accountName": "string",
    "role": "string",
    "pushEnabled": true,
    "offline": true,
    "activeOperations": 0,
    "deviceType": "IOS",
    "creationTime": "string",
    "modificationTime": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Item not found Inline
405 Method Not Allowed Not allowed Inline
500 Internal Server Error Add participant failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» operation object true none Operation
»» operationID string true none Operation ID
»» kind string true none Request kind
»» status string true none Operation status
»» statusText string true none Operation status text
»» createdAt string true none Operation creation time
»» vaultID string true none Vault ID
»» description string true none Description of the operation
»» isApproved boolean true none Approval state for the operation
»» accountID string true none Account ID for the operation
»» stakingPolicyID string false none Staking Policy ID for the operation
»» groups [object] true none Operation approval groups
»»» name string true none Approval group name
»»» members [object] true none A list of participants in the group
»»»» approvedAt string true none ParticipantWithVault approval time
»»»» id string true none ParticipantWithVault ID
»»»» isApproved boolean true none ParticipantWithVault approval state
»»»» name string true none ParticipantWithVault name
»»»» status string true none ParticipantWithVault task status
»»»» approvalGroupAccount object true none none
»»»»» id string true none Account ID
»»»»» name string true none Account name
»»»» label string true none ParticipantWithVault label
»»»» isGlobal boolean true none ParticipantWithVault global state
»»»» isActive boolean true none none
»»»» globalStatus string true none none
»»»» isOffline boolean true none none
»»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»»» isOffline boolean true none Group is offline - conclude only offline participants
»» policy object false none Operation approval groups
»»» id string true none Policy id
»»» name string true none Policy name
»» vaultName string true none Item name for the operation
»» recipientVaultInfo object false none Recipient vault info
»»» recipientVaultID string false none none
»»» recipientVaultName string false none none
» participant object true none ParticipantWithVault
»» id string true none Participant ID
»» accountID string true none Participant account ID
»» name string true none Participant name
»» email string true none Participant email
»» status string true none Participant status
»» isActive boolean true none Participant activation state
»» accountName string true none Participant account name
»» role string true none Participant role
»» pushEnabled boolean true none Is the push notifications enabled for this participant
»» offline boolean true none Participant is offline
»» activeOperations integer(int64) true none Participant is offline
»» deviceType string false none Participant device type
»» creationTime string true none Participant creation time
»» modificationTime string true none Participant last modification time

Enumerated Values

Property Value
kind CREATE_VAULT
kind ADD_MEMBER
kind SIGN
status PENDING
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status DECLINED
status CANCELED
status FAILED
status ERROR
status STARTED
status DONE
status DECLINED
status NOT_ACTIVATED
status ACTIVATED
status DEACTIVATED
status SUSPENDED
status REVOKED
deviceType IOS
deviceType ANDROID
deviceType BOT

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 405

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Set staking policy member status

Code samples

const inputBody = '{
  "status": "DEACTIVATED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/members/{participantId}/status',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/members/{participantId}/status \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/members/{participantId}/status

A suspended participant no longer takes part in staking policy approvals. Note that you can only suspend or revoke a user if the remaining number of participants is sufficient for the quorum, unless the 'force' flag is provided.

Body parameter

{
  "status": "DEACTIVATED"
}

Parameters

Name In Type Required Description
participantId path string true Participant ID
stakingPolicyId path string true Staking policy ID
force query boolean false Force update of participant status. Warning: Using this flag can result in an unusable vault!
body body object true Participant status update request
» status body string true ParticipantWithVault status in vault

Enumerated Values

Parameter Value
» status DEACTIVATED
» status SUSPENDED
» status REVOKED
» status ACTIVATED

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "status": "ACTIVATED",
  "approvalGroupAccount": {
    "id": "string",
    "name": "string"
  },
  "label": "string",
  "isGlobal": true,
  "isActive": true
}

Responses

Status Meaning Description Schema
200 OK OK Inline
202 Accepted Accepted Inline
403 Forbidden Suspending or revoking this participant would make the vault not operational (too few active participants left) Inline
404 Not Found Participant not found Inline
406 Not Acceptable Not supported Inline
500 Internal Server Error Set staking policy member status failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none ParticipantWithVault ID
» name string true none ParticipantWithVault name
» status string true none ParticipantWithVault task status
» approvalGroupAccount object true none none
»» id string true none Account ID
»» name string true none Account name
» label string true none ParticipantWithVault label
» isGlobal boolean true none ParticipantWithVault global state
» isActive boolean true none none

Enumerated Values

Property Value
status ACTIVATED
status SUSPENDED
status REVOKED

Status Code 202

Name Type Required Restrictions Description
» operationID string true none Operation ID
» kind string true none Request kind
» status string true none Operation status
» statusText string true none Operation status text
» createdAt string true none Operation creation time
» vaultID string true none Vault ID
» description string true none Description of the operation
» isApproved boolean true none Approval state for the operation
» accountID string true none Account ID for the operation
» stakingPolicyID string false none Staking Policy ID for the operation
» groups [object] true none Operation approval groups
»» name string true none Approval group name
»» members [object] true none A list of participants in the group
»»» approvedAt string true none ParticipantWithVault approval time
»»» id string true none ParticipantWithVault ID
»»» isApproved boolean true none ParticipantWithVault approval state
»»» name string true none ParticipantWithVault name
»»» status string true none ParticipantWithVault task status
»»» approvalGroupAccount object true none none
»»»» id string true none Account ID
»»»» name string true none Account name
»»» label string true none ParticipantWithVault label
»»» isGlobal boolean true none ParticipantWithVault global state
»»» isActive boolean true none none
»»» globalStatus string true none none
»»» isOffline boolean true none none
»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»» isOffline boolean true none Group is offline - conclude only offline participants
» policy object false none Operation approval groups
»» id string true none Policy id
»» name string true none Policy name
» vaultName string true none Item name for the operation
» recipientVaultInfo object false none Recipient vault info
»» recipientVaultID string false none none
»» recipientVaultName string false none none

Enumerated Values

Property Value
kind CREATE_VAULT
kind ADD_MEMBER
kind SIGN
status PENDING
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status DECLINED
status CANCELED
status FAILED
status ERROR
status STARTED
status DONE
status DECLINED

Status Code 403

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Set staking policy participant status

Code samples

const inputBody = '{
  "status": "DEACTIVATED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/policies/{policyId}/members/{participantId}/status',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X PUT /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/policies/{policyId}/members/{participantId}/status \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/policies/{policyId}/members/{participantId}/status

A suspended participant no longer takes part in staking policy approvals. Note that you can only suspend or revoke a user if the remaining number of participants is sufficient for the quorum, unless the 'force' flag is provided.

Body parameter

{
  "status": "DEACTIVATED"
}

Parameters

Name In Type Required Description
participantId path string true Participant ID
stakingPolicyId path string true staking policy ID
policyId path string true policy ID
force query boolean false Force update of participant status. Warning: Using this flag can result in an unusable staking policy!
body body object true Participant status update request
» status body string true ParticipantWithVault status in vault

Enumerated Values

Parameter Value
» status DEACTIVATED
» status SUSPENDED
» status REVOKED
» status ACTIVATED

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "status": "ACTIVATED",
  "approvalGroupAccount": {
    "id": "string",
    "name": "string"
  },
  "label": "string",
  "isGlobal": true,
  "isActive": true
}

Responses

Status Meaning Description Schema
200 OK OK Inline
202 Accepted Accepted Inline
403 Forbidden Suspending or revoking this participant would make the staking policy not operational (too few active participants left) Inline
404 Not Found Participant not found Inline
406 Not Acceptable Not supported Inline
500 Internal Server Error Set staking policy member status failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» id string true none ParticipantWithVault ID
» name string true none ParticipantWithVault name
» status string true none ParticipantWithVault task status
» approvalGroupAccount object true none none
»» id string true none Account ID
»» name string true none Account name
» label string true none ParticipantWithVault label
» isGlobal boolean true none ParticipantWithVault global state
» isActive boolean true none none

Enumerated Values

Property Value
status ACTIVATED
status SUSPENDED
status REVOKED

Status Code 202

Name Type Required Restrictions Description
» operationID string true none Operation ID
» kind string true none Request kind
» status string true none Operation status
» statusText string true none Operation status text
» createdAt string true none Operation creation time
» vaultID string true none Vault ID
» description string true none Description of the operation
» isApproved boolean true none Approval state for the operation
» accountID string true none Account ID for the operation
» stakingPolicyID string false none Staking Policy ID for the operation
» groups [object] true none Operation approval groups
»» name string true none Approval group name
»» members [object] true none A list of participants in the group
»»» approvedAt string true none ParticipantWithVault approval time
»»» id string true none ParticipantWithVault ID
»»» isApproved boolean true none ParticipantWithVault approval state
»»» name string true none ParticipantWithVault name
»»» status string true none ParticipantWithVault task status
»»» approvalGroupAccount object true none none
»»»» id string true none Account ID
»»»» name string true none Account name
»»» label string true none ParticipantWithVault label
»»» isGlobal boolean true none ParticipantWithVault global state
»»» isActive boolean true none none
»»» globalStatus string true none none
»»» isOffline boolean true none none
»» requiredApprovals integer(int32) true none The number of group participants that need to give approval
»» order integer(int32) true none This field determines the order in which groups are prompted for approvals
»» deactivateAllowed boolean true none A group participant can be suspended or revoked from this group
»» isOffline boolean true none Group is offline - conclude only offline participants
» policy object false none Operation approval groups
»» id string true none Policy id
»» name string true none Policy name
» vaultName string true none Item name for the operation
» recipientVaultInfo object false none Recipient vault info
»» recipientVaultID string false none none
»» recipientVaultName string false none none

Enumerated Values

Property Value
kind CREATE_VAULT
kind ADD_MEMBER
kind SIGN
status PENDING
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status DECLINED
status CANCELED
status FAILED
status ERROR
status STARTED
status DONE
status DECLINED

Status Code 403

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 406

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

List staking policy vaults

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/vaults',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/vaults \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/stakingPolicies/{stakingPolicyId}/vaults

Returns two lists of staking policy vaults: customer and staking vaults.

Parameters

Name In Type Required Description
stakingPolicyId path string true Staking Policy ID

Example responses

200 Response

{
  "stakeVaults": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "cryptoKind": "ECDSA",
      "providerKind": "string",
      "isActive": true,
      "status": "NOT_INITIALIZED",
      "statusText": "string",
      "providerData": "string",
      "pendingOperations": 0,
      "hierarchy": "NONE",
      "isDeletable": true,
      "approvalStructure": "QUORUM",
      "creationTime": "string",
      "modificationTime": "string",
      "stakingPolicyVaultInfo": {
        "stakingPolicyID": "string",
        "stakingPolicyName": "string",
        "memberType": "CUSTOMER"
      },
      "offline": true
    }
  ],
  "stakeVaultsCounter": 0,
  "customerVaults": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "cryptoKind": "ECDSA",
      "providerKind": "string",
      "isActive": true,
      "status": "NOT_INITIALIZED",
      "statusText": "string",
      "providerData": "string",
      "pendingOperations": 0,
      "hierarchy": "NONE",
      "isDeletable": true,
      "approvalStructure": "QUORUM",
      "creationTime": "string",
      "modificationTime": "string",
      "stakingPolicyVaultInfo": {
        "stakingPolicyID": "string",
        "stakingPolicyName": "string",
        "memberType": "CUSTOMER"
      },
      "offline": true
    }
  ],
  "customerVaultsCounter": 0
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Item not found Inline
500 Internal Server Error List staking policy`s vaults failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» stakeVaults [object] false none none
»» id string true none Vault ID
»» name string true none Vault name
»» description string true none Vault description
»» cryptoKind string false none Type of cryptographic algorithm
»» providerKind string false none Coin type that created the vault
»» isActive boolean true none Vault active state
»» status string true none Vault status
»» statusText string true none Vault status text
»» providerData string true none This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed.
»» pendingOperations integer(int64) true none Vault pending requests
»» hierarchy string true none Vault status text
»» isDeletable boolean true none Is Vault able to be deleted
»» approvalStructure string true none Is Vault approval structure
»» creationTime string true none Vault creation time
»» modificationTime string true none Vault last modification time
»» stakingPolicyVaultInfo object false none none
»»» stakingPolicyID string false none none
»»» stakingPolicyName string false none none
»»» memberType string false none none
»» offline boolean true none Is Vault is offline
» stakeVaultsCounter integer(int32) false none none
» customerVaults [object] false none none
»» id string true none Vault ID
»» name string true none Vault name
»» description string true none Vault description
»» cryptoKind string false none Type of cryptographic algorithm
»» providerKind string false none Coin type that created the vault
»» isActive boolean true none Vault active state
»» status string true none Vault status
»» statusText string true none Vault status text
»» providerData string true none This is a field that can be used to store information in the CASP database. The information can subsequently be read back as needed.
»» pendingOperations integer(int64) true none Vault pending requests
»» hierarchy string true none Vault status text
»» isDeletable boolean true none Is Vault able to be deleted
»» approvalStructure string true none Is Vault approval structure
»» creationTime string true none Vault creation time
»» modificationTime string true none Vault last modification time
»» stakingPolicyVaultInfo object false none none
»»» stakingPolicyID string false none none
»»» stakingPolicyName string false none none
»»» memberType string false none none
»» offline boolean true none Is Vault is offline
» customerVaultsCounter integer(int32) false none none

Enumerated Values

Property Value
cryptoKind ECDSA
cryptoKind EDDSA
status NOT_INITIALIZED
status INITIALIZED
status DEACTIVATED
hierarchy NONE
hierarchy BIP32
hierarchy BIP44
approvalStructure QUORUM
approvalStructure POLICY
approvalStructure STAKING_POLICIES
memberType CUSTOMER
memberType STAKE
cryptoKind ECDSA
cryptoKind EDDSA
status NOT_INITIALIZED
status INITIALIZED
status DEACTIVATED
hierarchy NONE
hierarchy BIP32
hierarchy BIP44
approvalStructure QUORUM
approvalStructure POLICY
approvalStructure STAKING_POLICIES
memberType CUSTOMER
memberType STAKE

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Delete a staking policy

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/stakingPolicies/{id}',
{
  method: 'DELETE',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X DELETE /casp/api/v1.0/mng/stakingPolicies/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/stakingPolicies/{id}

Deletes an existing staking policy. Only a staking policy with no enrolled participants can be deleted.

Parameters

Name In Type Required Description
id path string true Staking Policy ID

Example responses

403 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
403 Forbidden Staking policy deletion is not allowed Inline
404 Not Found Staking policy not found Inline
500 Internal Server Error Delete staking policy failed Inline

Response Schema

Status Code 403

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Reports

Account details

Code samples


const headers = {
  'Accept':'text/csv',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/reports/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/reports/accounts \
  -H 'Accept: text/csv' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/reports/accounts

Create a report containg account details.

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search accounts by creation time starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search accounts by creation time till toDate. fromDate should be valid ISO 8601 date time string
accountID query string false Search the accounts by account ID
accountName query string false Search the users by account name, partial word search is allowed
isGlobal query boolean false Search the accounts by is account global
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by account creation time.

The column name can be one of the following: accountName

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Accounts reporting failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Sign operation details

Code samples


const headers = {
  'Accept':'text/csv',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/reports/signOperations',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/reports/signOperations \
  -H 'Accept: text/csv' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/reports/signOperations

Sign operation details report data in csv/gzipped csv formats. The report includes next headers : operationID, startingTime, completionTime, operationDescription, accountID, vaultID, appliedPolicyID, appliedPolicyName, lager, assetType, amount, toAddress

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search sign operations by completion time starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search sign operations by completion time till toDate. fromDate should be valid ISO 8601 date time string
operationID query string false Search the sign operations by operation ID
accountID query string false Search the vaults by account ID
vaultID query string false Search the vaults by vault ID
policyID query string false Search the vaults by policy ID
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by vault names.

The column name can be one of the following: completionTime, policyID

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Vaults report failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Sign operation participant details

Code samples


const headers = {
  'Accept':'text/csv',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/reports/signOperations/participants',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/reports/signOperations/participants \
  -H 'Accept: text/csv' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/reports/signOperations/participants

Sign operation participant details report data in csv/gzipped csv formats. The report includes next headers : operationID, startingTime, completionTime, operationDescription, accountID, vaultID, signerAction, participantActionTime, participantID, participantName

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search sign operations by completion time starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search sign operations by completion time till toDate. fromDate should be valid ISO 8601 date time string
operationID query string false Search the sign operations by operation ID
accountID query string false Search the sign operations by account ID
vaultID query string false Search the sign operations by vault ID
participantID query string false Search the sign operations by participant ID
participantName query string false Search the sign operations by participant name, partial word search is allowed
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by operation completion time.

The column name can be one of the following: completionTime, participantActionTime, participantID

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Vaults report failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

User details

Code samples


const headers = {
  'Accept':'text/csv',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/reports/users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/reports/users \
  -H 'Accept: text/csv' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/reports/users

Create a report containing user details.

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search users by creation time starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search users by creation time till toDate. fromDate should be valid ISO 8601 date time string
userID query string false Search the users by user ID
userName query string false Search the users by user name, partial word search is allowed
userEmail query string false Search the users by user email, partial word search is allowed
userState query string false Search the users by user state
userRole query string false Search the users by user role
isUserApprover query boolean false Search the users by is user approver. Users that can to approve operations like a participant
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by vault creation time.

The column name can be one of the following: userName, userState, userRole,creationTime, lastLoginTime

Enumerated Values

Parameter Value
userState PENDING
userState ACTIVE
userState SUSPENDED
userState REVOKED
userState REACTIVATING
userRole SECURITY_OFFICER
userRole TRADER
userRole SUPER_USER

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Users reporting failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Vault details

Code samples


const headers = {
  'Accept':'text/csv',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/reports/vaults',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/reports/vaults \
  -H 'Accept: text/csv' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/reports/vaults

Vault details report data in csv/gzipped csv formats. The report includes next headers : accountID, vaultID, vaultName, description, state, hierarchy, cryptoKind, providerKind, vaultType, isVaultOffline, vaultCreationTime

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search vaults by creation time starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search vaults by creation time till toDate. fromDate should be valid ISO 8601 date time string
accountID query string false Search the vaults by account ID
vaultID query string false Search the vaults by vault ID
vaultName query string false Search the vaults by vault name, partial word search is allowed
state query string false Search the vaults by state
isVaultOffline query boolean false Search the vaults by is vault offline
vaultType query string false Search the vaults by vault type
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by vault creation time.

The column name can be one of the following: vaultName, state, vaultCreationTime,isVaultOffline, vaultType

Enumerated Values

Parameter Value
state INITIALIZED
state NOT_INITIALIZED
state DEACTIVATED
vaultType simple
vaultType policy

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Vaults report failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Vaults with participant details

Code samples


const headers = {
  'Accept':'text/csv',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/reports/vaults/participants',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/reports/vaults/participants \
  -H 'Accept: text/csv' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/reports/vaults/participants

Vaults with participant details report data in csv/gzipped csv formats. The report includes next headers :accountID, vaultID, vaultName, state, vaultType, isVaultOffline, vaultCreationTime, participantID, participantName, participantRole, isParticipantGlobal, participantState

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search vaults by creation time starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search vaults by creation time till toDate. fromDate should be valid ISO 8601 date time string
accountID query string false Search the vaults by account ID
vaultID query string false Search the vaults by vault ID
vaultName query string false Search the vaults by vault name, partial word search is allowed
state query string false Search the vaults by state
isVaultOffline query boolean false Search the vaults by is vault offline
participantID query string false Search the vaults by participant ID
participantName query string false Search the vaults by participant name, partial word search is allowed
isParticipantOffline query boolean false Search the vaults by is participant offline
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by vault creation time.

The column name can be one of the following: vaultName, state, vaultCreationTime,isVaultOffline, participantName

Enumerated Values

Parameter Value
state INITIALIZED
state NOT_INITIALIZED
state DEACTIVATED

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Vaults report failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Vaults with policy details

Code samples


const headers = {
  'Accept':'text/csv',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/reports/vaults/policies',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/reports/vaults/policies \
  -H 'Accept: text/csv' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/reports/vaults/policies

Vaults with policy details report data in csv/gzipped csv formats. The report includes next headers :accountID, vaultID, vaultName, state, vaultType, isVaultOffline, vaultCreationTime, policyID, policyName, isPolicyOffline, groupName, groupMinimum, groupSize, isGroupOffline

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search vaults by creation time starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search vaults by creation time till toDate. fromDate should be valid ISO 8601 date time string
accountID query string false Search the vaults by account ID
vaultID query string false Search the vaults by vault ID
vaultName query string false Search the vaults by vault name, partial word search is allowed
state query string false Search the vaults by state
isVaultOffline query boolean false Search the vaults by is vault offline
policyID query string false Search the vaults by policyId
policyName query string false Search the vaults by policy name, partial word search is allowed
isPolicyOffline query boolean false Search the vaults by is policy offline
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by vault creation time.

The column name can be one of the following: vaultName, state, vaultCreationTime,isVaultOffline, policyName

Enumerated Values

Parameter Value
state INITIALIZED
state NOT_INITIALIZED
state DEACTIVATED

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Vaults report failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Vaults with sub-account details

Code samples


const headers = {
  'Accept':'text/csv',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/reports/vaults/subAccounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/reports/vaults/subAccounts \
  -H 'Accept: text/csv' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/reports/vaults/subAccounts

Vaults with sub-account details report data in csv/gzipped csv formats. The report includes next headers :accountID, vaultID, vaultName, state, vaultType, isVaultOffline, vaultCreationTime, coinType, subAccountName, subAccountIndex

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search vaults by creation time starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search vaults by creation time till toDate. fromDate should be valid ISO 8601 date time string
accountID query string false Search the vaults by account ID
vaultID query string false Search the vaults by vault ID
vaultName query string false Search the vaults by vault name, partial word search is allowed
state query string false Search the vaults by state
isVaultOffline query boolean false Search the vaults by is vault offline
subAccountName query string false Search the vaults by sub account name, partial word search is allowed
coinType query string false Search the vaults by coin type
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by vault creation time.

The column name can be one of the following: vaultName, state, vaultCreationTime,isVaultOffline, subAccountName

Enumerated Values

Parameter Value
state INITIALIZED
state NOT_INITIALIZED
state DEACTIVATED

Example responses

200 Response

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Vaults report failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Authentication

Backup

Refer to the Backup section in the Unbound CASP Developers Guide

Get vault backup data

Code samples

const inputBody = '{
  "description": "string",
  "totsParams": [
    {
      "index": 0,
      "numberOfFragments": 1
    }
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/vaults/{id}/calculatePublicKey',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/vaults/{id}/calculatePublicKey \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

POST /casp/api/v1.0/mng/vaults/{id}/calculatePublicKey

The vault cryptographic material is backed up with a key that is external to the CASP system. The backup can be used for safe recovery of the vault in case of service failure, participants losing their shares, or termination of CASP usage.

Body parameter

{
  "description": "string",
  "totsParams": [
    {
      "index": 0,
      "numberOfFragments": 1
    }
  ]
}

Parameters

Name In Type Required Description
id path string true Vault ID
body body object true Request body
» description body string false Description.
» totsParams body [object] false Index and NOF pairs
»» index body integer(int32) true Index
»» numberOfFragments body integer(int32) true Number of fragments

Enumerated Values

Parameter Value
»» numberOfFragments 1
»» numberOfFragments 2
»» numberOfFragments 3

Example responses

200 Response

{
  "vaultID": "string",
  "backupData": "string",
  "publicKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad request Inline
404 Not Found Backup not found Inline
500 Internal Server Error Get vault backup data failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» vaultID string true none Vault ID
» backupData string true none Vault backup data
» publicKey string true none Vault public key

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get backup for account

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/backup',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/backup \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/backup

Get backup for BIP44 account.

This endpoint is only functional if you generated a BIP44 vault.

Parameters

Name In Type Required Description
vaultId path string true Vault ID
coinType path integer(int32) true Coin type
accountIdentifier path string true Account identifier, which can be the index or the name

Example responses

200 Response

{
  "vaultId": "string",
  "backupData": "string",
  "bipLevel": 0,
  "cpar": "string",
  "parentFingerprint": "string",
  "childNumber": 0,
  "publicKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Vault not found Inline
405 Method Not Allowed Incorrect vault type Inline
500 Internal Server Error Get account backup failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» vaultId string true none the vault ID
» backupData string true none The backup data, in encrypted form
» bipLevel integer(int32) true none derivation level
» cpar string true none CPar
» parentFingerprint string true none parent fingerprint
» childNumber integer(int32) true none child number
» publicKey string false none none

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 405

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Get backup data for public key

Code samples


const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/vaults/{vaultId}/backup/{publicKey}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/vaults/{vaultId}/backup/{publicKey} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/vaults/{vaultId}/backup/{publicKey}

The vault cryptographic material is backed up with a key that is external to the CASP system. The backup can be used for safe recovery of the vault in case of service failure, participants losing their shares, or termination of CASP usage.

This endpoint is only functional if you generated a BIP32 vault.

Parameters

Name In Type Required Description
vaultId path string true Vault ID
publicKey path string true public key

Example responses

200 Response

{
  "vaultId": "string",
  "backupData": "string",
  "bipLevel": 0,
  "cpar": "string",
  "parentFingerprint": "string",
  "childNumber": 0,
  "publicKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
404 Not Found Vault not found Inline
405 Method Not Allowed Incorrect vault type Inline
500 Internal Server Error Get vault backup data failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» vaultId string true none the vault ID
» backupData string true none The backup data, in encrypted form
» bipLevel integer(int32) true none derivation level
» cpar string true none CPar
» parentFingerprint string true none parent fingerprint
» childNumber integer(int32) true none child number
» publicKey string false none none

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 405

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Audit

Account operations audit

Code samples


const headers = {
  'Accept':'application/json',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/audit/accounts',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/accounts \
  -H 'Accept: application/json' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/audit/accounts

Account operations audit.

Parameters

Name In Type Required Description
Accept header string false none
fullValidation query boolean false Validate accounts audit and check it is not corrupted
fromDate query string false Search accounts audit by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search accounts audit by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
accountID query string false Search the accounts by accountId
accountName query string false Search the accounts by account name
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is descending.

The column name can be one of the following: timestamp
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "auditSeverity": "string",
      "event": "string",
      "initiatorId": "string",
      "initiatorName": "string",
      "timestamp": "string",
      "duration": 0,
      "error": "string",
      "details": "string",
      "accountId": "string",
      "accountName": "string",
      "version": 0,
      "global": true
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Account operations audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» global boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

User operations audit

Code samples


const headers = {
  'Accept':'application/json',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/audit/users',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/users \
  -H 'Accept: application/json' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/audit/users

User operations audit.

Parameters

Name In Type Required Description
Accept header string false none
fullValidation query boolean false Validate accounts audit and check it is not corrupted
fromDate query string false Search users audit by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search users audit by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
userID query string false Search the users by accountId
userName query string false Search the users by account name, partial word search is allowed
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is descending.

The column name can be one of the following: timestamp
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "auditSeverity": "string",
      "event": "string",
      "initiatorId": "string",
      "initiatorName": "string",
      "timestamp": "string",
      "duration": 0,
      "error": "string",
      "details": "string",
      "accountId": "string",
      "accountName": "string",
      "version": 0,
      "vaultId": "string",
      "vaultName": "string",
      "userId": "string",
      "userName": "string",
      "userRole": "string",
      "userEmail": "string",
      "userStatus": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error User operations audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» vaultId string false none none
»» vaultName string false none none
»» userId string false none none
»» userName string false none none
»» userRole string false none none
»» userEmail string false none none
»» userStatus string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Vault operations audit

Code samples


const headers = {
  'Accept':'application/json',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/audit/vaults',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/vaults \
  -H 'Accept: application/json' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/audit/vaults

Vault operations audit.

Parameters

Name In Type Required Description
Accept header string false none
fullValidation query boolean false Validate vaults audit and check it is not corrupted
fromDate query string false Search vaults audit by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search vaults audit by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
accountID query string false Search the vaults by vault ID
vaultID query string false Search the vaults by vault ID
vaultName query string false Search the vaults by vault name, partial word search is allowed
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is descending.

The column name can be one of the following: timestamp
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "auditSeverity": "string",
      "event": "string",
      "initiatorId": "string",
      "initiatorName": "string",
      "timestamp": "string",
      "duration": 0,
      "error": "string",
      "details": "string",
      "accountId": "string",
      "accountName": "string",
      "version": 0,
      "operationId": "string",
      "vaultId": "string",
      "vaultName": "string",
      "userId": "string",
      "userName": "string",
      "stakingPolicyID": "string",
      "stakingPolicyMemberType": "string",
      "operationKind": "string",
      "adminQuorum": "string",
      "policies": "string",
      "derivationString": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Vault operations audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» operationId string false none none
»» vaultId string false none none
»» vaultName string false none none
»» userId string false none none
»» userName string false none none
»» stakingPolicyID string false none none
»» stakingPolicyMemberType string false none none
»» operationKind string false none none
»» adminQuorum string false none none
»» policies string false none none
»» derivationString string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Vault audit by operation ID

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/audit/vaults/{operationId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/vaults/{operationId} \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/audit/vaults/{operationId}

Vault operations audit by operation ID.

Parameters

Name In Type Required Description
full_validation query boolean false Validate users audit and check it is not corrupted
operationId path string true Operation ID

Example responses

200 Response

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "operationId": "string",
  "userId": "string",
  "userName": "string",
  "operationApprovalAuditItems": "string",
  "approvedByQuorum": "string",
  "operationCanceled": "string",
  "operationDeclines": "string",
  "vaultId": "string",
  "vaultName": "string",
  "stakingPolicyID": "string",
  "stakingPolicyMemberType": "string",
  "operationKind": "string",
  "adminQuorum": "string",
  "policies": "string",
  "derivationString": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Vault operation audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» auditSeverity string false none none
» event string false none none
» initiatorId string false none none
» initiatorName string false none none
» timestamp string false none none
» duration integer(int64) false none none
» error string false none none
» details string false none none
» accountId string false none none
» accountName string false none none
» version number false none none
» operationId string false none none
» userId string false none none
» userName string false none none
» operationApprovalAuditItems string false none none
» approvedByQuorum string false none none
» operationCanceled string false none none
» operationDeclines string false none none
» vaultId string false none none
» vaultName string false none none
» stakingPolicyID string false none none
» stakingPolicyMemberType string false none none
» operationKind string false none none
» adminQuorum string false none none
» policies string false none none
» derivationString string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Sign operations audit

Code samples


const headers = {
  'Accept':'application/json',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/audit/signs',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/signs \
  -H 'Accept: application/json' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/audit/signs

Sign operations audit.

Parameters

Name In Type Required Description
Accept header string false none
fullValidation query boolean false Validate vaults audit and check it is not corrupted
fromDate query string false Search signs audit by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search signs audit by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
operationID query string false Search the signs by operation ID
initiatorID query string false Search the signs by operation initiator ID
initiatorName query string false Search the signs by operation initiator name, partial word search is allowed
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is descending.

The column name can be one of the following: timestamp, initiatorID.
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "auditSeverity": "string",
      "event": "string",
      "initiatorId": "string",
      "initiatorName": "string",
      "timestamp": "string",
      "duration": 0,
      "error": "string",
      "details": "string",
      "accountId": "string",
      "accountName": "string",
      "version": 0,
      "rawTransaction": [
        "string"
      ],
      "amount": 0,
      "assetType": "string",
      "toAddress": [
        "string"
      ],
      "isWhitelisted": true,
      "whitelistAddress": "string",
      "description": "string",
      "policyName": "string",
      "stakingPolicyID": "string",
      "operationID": "string",
      "dataToSign": "string",
      "publicKey": "string",
      "signature": "string",
      "keySpec": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Sign operations audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» rawTransaction [string] false none none
»» amount integer false none none
»» assetType string false none none
»» toAddress [string] false none none
»» isWhitelisted boolean false none none
»» whitelistAddress string false none none
»» description string false none none
»» policyName string false none none
»» stakingPolicyID string false none none
»» operationID string false none none
»» dataToSign string false none none
»» publicKey string false none none
»» signature string false none none
»» keySpec string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Sign audit by operation ID

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/audit/signs/{operationId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/signs/{operationId} \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/audit/signs/{operationId}

Sign operations audit by operation ID.

Parameters

Name In Type Required Description
full_validation query boolean false Validate users audit and check it is not corrupted
operationId path string true Operation ID

Example responses

200 Response

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "operationId": "string",
  "userId": "string",
  "userName": "string",
  "operationApprovalAuditItems": "string",
  "approvedByQuorum": "string",
  "operationCanceled": "string",
  "operationDeclines": "string",
  "vaultId": "string",
  "vaultName": "string",
  "assetType": "string",
  "rawTransaction": "string",
  "amount": 0,
  "toAddress": "string",
  "whitelistAddress": "string",
  "description": "string",
  "policyName": "string",
  "whitelisted": true
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Signs operation audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» auditSeverity string false none none
» event string false none none
» initiatorId string false none none
» initiatorName string false none none
» timestamp string false none none
» duration integer(int64) false none none
» error string false none none
» details string false none none
» accountId string false none none
» accountName string false none none
» version number false none none
» operationId string false none none
» userId string false none none
» userName string false none none
» operationApprovalAuditItems string false none none
» approvedByQuorum string false none none
» operationCanceled string false none none
» operationDeclines string false none none
» vaultId string false none none
» vaultName string false none none
» assetType string false none none
» rawTransaction string false none none
» amount integer false none none
» toAddress string false none none
» whitelistAddress string false none none
» description string false none none
» policyName string false none none
» whitelisted boolean false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Staking policy operations audit

Code samples


const headers = {
  'Accept':'application/json',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/audit/stakingPolicies',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/stakingPolicies \
  -H 'Accept: application/json' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/audit/stakingPolicies

Staking policy operations audit.

Parameters

Name In Type Required Description
Accept header string false none
fullValidation query boolean false Validate staking policies audit and check it is not corrupted
fromDate query string false Search staking policies audit by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search staking policies audit by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
accountID query string false Search the staking policies audit by account ID
stakingPolicyID query string false Search the staking policies audit by staking policy ID
stakingPolicyName query string false Search the staking policies audit by staking policy name, partial word search is allowed
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is descending.

The column name can be one of the following: timestamp
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "auditSeverity": "string",
      "event": "string",
      "initiatorId": "string",
      "initiatorName": "string",
      "timestamp": "string",
      "duration": 0,
      "error": "string",
      "details": "string",
      "accountId": "string",
      "accountName": "string",
      "version": 0,
      "operationId": "string",
      "stakingPolicyID": "string",
      "stakingPolicyName": "string",
      "userId": "string",
      "userName": "string",
      "operationKind": "string",
      "adminQuorum": "string",
      "policies": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Staking policy operations audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» operationId string false none none
»» stakingPolicyID string false none none
»» stakingPolicyName string false none none
»» userId string false none none
»» userName string false none none
»» operationKind string false none none
»» adminQuorum string false none none
»» policies string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Staking policy audit by operation ID

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/audit/stakingPolicies/{operationId}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/stakingPolicies/{operationId} \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/audit/stakingPolicies/{operationId}

Staking policy operations audit by operation ID.

Parameters

Name In Type Required Description
full_validation query boolean false Validate staking policies audit and check it is not corrupted
operationId path string true Operation ID

Example responses

200 Response

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "operationId": "string",
  "userId": "string",
  "userName": "string",
  "operationApprovalAuditItems": "string",
  "approvedByQuorum": "string",
  "operationCanceled": "string",
  "operationDeclines": "string",
  "vaultId": "string",
  "vaultName": "string",
  "stakingPolicyID": "string",
  "stakingPolicyMemberType": "string",
  "operationKind": "string",
  "adminQuorum": "string",
  "policies": "string",
  "derivationString": "string"
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Staking policies operation audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» auditSeverity string false none none
» event string false none none
» initiatorId string false none none
» initiatorName string false none none
» timestamp string false none none
» duration integer(int64) false none none
» error string false none none
» details string false none none
» accountId string false none none
» accountName string false none none
» version number false none none
» operationId string false none none
» userId string false none none
» userName string false none none
» operationApprovalAuditItems string false none none
» approvedByQuorum string false none none
» operationCanceled string false none none
» operationDeclines string false none none
» vaultId string false none none
» vaultName string false none none
» stakingPolicyID string false none none
» stakingPolicyMemberType string false none none
» operationKind string false none none
» adminQuorum string false none none
» policies string false none none
» derivationString string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Trusted systems audit

Code samples


const headers = {
  'Accept':'application/json',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/audit/trustedSystems',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/trustedSystems \
  -H 'Accept: application/json' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/audit/trustedSystems

Trusted systems audit

Parameters

Name In Type Required Description
Accept header string false none
fullValidation query boolean false Validate trusted systems audit and check it is not corrupted
fromDate query string false Search trusted systems audit by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search trusted systems audit by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
trustedInstanceID query string false Search the trusted systems audit by trusted instance ID
accountID query string false Search the trusted systems audit by account ID
filter query string false Search the trusted systems audit by operationID or participantID or vaultID, partial word search is allowed
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is descending.

The column name can be one of the following: timestamp
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "auditSeverity": "string",
      "event": "string",
      "initiatorId": "string",
      "initiatorName": "string",
      "timestamp": "string",
      "duration": 0,
      "error": "string",
      "details": "string",
      "accountId": "string",
      "accountName": "string",
      "version": 0,
      "operationId": "string",
      "operationKind": "string",
      "operationStatus": "string",
      "trustedInstanceId": "string",
      "vaultId": "string",
      "vaultName": "string",
      "participantId": "string",
      "participantName": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad request Inline
500 Internal Server Error Get trusted systems audit failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» operationId string false none none
»» operationKind string false none none
»» operationStatus string false none none
»» trustedInstanceId string false none none
»» vaultId string false none none
»» vaultName string false none none
»» participantId string false none none
»» participantName string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Purge data

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/audit/purge?date=string&auditType=string',
{
  method: 'POST',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X POST /casp/api/v1.0/mng/audit/purge?date=string&auditType=string \
  -H 'Accept: application/json'

POST /casp/api/v1.0/mng/audit/purge

Purge all data earlier than a given date.

Parameters

Name In Type Required Description
date query string true Purge all data earlier than this date. 'date' should be valid ISO 8601 date time string
auditType query string true Audit type to purge. 'auditType' can be on of: 'vaults', 'signs', 'stakingPolicies' or 'users'

Example responses

400 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request Bad Request Inline
404 Not Found Item no found Inline
500 Internal Server Error Purge audit operation failed Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 404

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Audit verification by type

Code samples


const headers = {
  'Accept':'application/json'

};

fetch('/casp/api/v1.0/mng/audit/verify/{auditType}',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/verify/{auditType} \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/audit/verify/{auditType}

Verification of audit for the given type

Parameters

Name In Type Required Description
auditType path string true Audit type to verify. 'auditType' can be one of: 'accounts', 'vaults', 'signs', 'users', 'stakingPolicies' or 'trustedSystems'.

Example responses

400 Response

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0
}

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request Bad Request Inline
500 Internal Server Error Audit failed verification Inline

Response Schema

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

All audit data

Code samples


const headers = {
  'Accept':'application/json',
  'Accept':'string'

};

fetch('/casp/api/v1.0/mng/audit/all',
{
  method: 'GET',

  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});

# You can also use wget
curl -X GET /casp/api/v1.0/mng/audit/all \
  -H 'Accept: application/json' \
  -H 'Accept: string'

GET /casp/api/v1.0/mng/audit/all

Audit data from all audit tables sorted by timestamp.

Parameters

Name In Type Required Description
Accept header string false none
fromDate query string false Search audit data by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search audit data by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
sort query string false Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is descending.

The column name can be one of the following: timestamp, initiatorID.
skip query integer(int32) false The number of results to skip from the beginning of the results after applying the filter and sort
limit query integer(int32) false The maximum number of results to return

Example responses

200 Response

{
  "totalItems": 0,
  "items": [
    {
      "auditSeverity": "string",
      "event": "string",
      "initiatorId": "string",
      "initiatorName": "string",
      "timestamp": "string",
      "duration": 0,
      "error": "string",
      "details": "string",
      "accountId": "string",
      "accountName": "string",
      "version": 0,
      "isGlobal": true,
      "rawTransaction": [
        "string"
      ],
      "amount": 0,
      "assetType": "string",
      "toAddress": [
        "string"
      ],
      "isWhitelisted": true,
      "whitelistAddress": "string",
      "description": "string",
      "policyName": "string",
      "dataToSign": "string",
      "publicKey": "string",
      "signature": "string",
      "keySpec": "string",
      "stakingPolicyID": "string",
      "operationID": "string",
      "stakingPolicyName": "string",
      "userID": "string",
      "userName": "string",
      "operationKind": "string",
      "adminQuorum": "string",
      "policies": "string",
      "operationStatus": "string",
      "trustedInstanceID": "string",
      "vaultID": "string",
      "vaultName": "string",
      "participantID": "string",
      "participantName": "string",
      "userRole": "string",
      "userEmail": "string",
      "userStatus": "string",
      "stakingPolicyMemberType": "string",
      "derivationString": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Inline
500 Internal Server Error Audit data from all audit tables sorted by timestamp failed Inline

Response Schema

Status Code 200

Name Type Required Restrictions Description
» totalItems integer(int32) true none Total Items
» items [object] true none Items
»» auditSeverity string false none none
»» event string false none none
»» initiatorId string false none none
»» initiatorName string false none none
»» timestamp string false none none
»» duration integer(int64) false none none
»» error string false none none
»» details string false none none
»» accountId string false none none
»» accountName string false none none
»» version number false none none
»» isGlobal boolean false none none
»» rawTransaction [string] false none none
»» amount integer false none none
»» assetType string false none none
»» toAddress [string] false none none
»» isWhitelisted boolean false none none
»» whitelistAddress string false none none
»» description string false none none
»» policyName string false none none
»» dataToSign string false none none
»» publicKey string false none none
»» signature string false none none
»» keySpec string false none none
»» stakingPolicyID string false none none
»» operationID string false none none
»» stakingPolicyName string false none none
»» userID string false none none
»» userName string false none none
»» operationKind string false none none
»» adminQuorum string false none none
»» policies string false none none
»» operationStatus string false none none
»» trustedInstanceID string false none none
»» vaultID string false none none
»» vaultName string false none none
»» participantID string false none none
»» participantName string false none none
»» userRole string false none none
»» userEmail string false none none
»» userStatus string false none none
»» stakingPolicyMemberType string false none none
»» derivationString string false none none

Status Code 400

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code

Status Code 500

Name Type Required Restrictions Description
» type string true none Error identification
» title string true none Error summary
» details string true none Error details
» status integer(int64) true none Original HTTP status code