NAV Navigation
JavaScript Shell

Unbound Crypto Asset Security Platform ("CASP") Management API v1.0.2103

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 Security Support Web: Unbound Security Support

General Status

Refer to the General Status section in the Unbound CASP Developers Guide.

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 SystemDetails
500 Internal Server Error Get status failed, the service is not operational CASPErrorResponse

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
anonymous [SupportedLedgerResponse] false none none
» 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 SystemDetails
429 Too Many Requests Too many requests. Only one request every 5 minutes is allowed. SystemDetails
500 Internal Server Error Reload configuration failed. The service is not operational. CASPErrorResponse

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 CreateAccountRequest true Create accounts request

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

Responses

Status Meaning Description Schema
201 Created OK AccountDetails
500 Internal Server Error Create account failed CASPErrorResponse

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

Responses

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

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

Responses

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

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [AccountDetails] false none none
» 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 Stats false none none
»» participants Participants 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 Operations 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 Vaults 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

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 UpdateAccountRequest true Update account request

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 CASPErrorResponse
500 Internal Server Error Update account failed CASPErrorResponse

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 CASPErrorResponse
404 Not Found Account not found CASPErrorResponse
500 Internal Server Error Delete account failed CASPErrorResponse

Attributes

Refer to the Attributes section in the Unbound CASP Developers Guide.

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
groupIDs query array[string] false List attribute templates by attribute template group IDs
filter query string false Filter by 'ID' or '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": {
        "min": "string",
        "max": "string"
      }
    }
  ]
}

Responses

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

Create attribute template

Code samples

const inputBody = '{
  "id": "string",
  "description": "string",
  "type": "STRING",
  "range": {
    "min": "string",
    "max": "string"
  }
}';
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": {
    "min": "string",
    "max": "string"
  }
}

Parameters

Name In Type Required Description
body body CreateAttributeTemplateRequest true Create attribute template request body

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "min": "string",
    "max": "string"
  }
}

Responses

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

Update attribute template

Code samples

const inputBody = '{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "min": "string",
    "max": "string"
  }
}';
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": {
    "min": "string",
    "max": "string"
  }
}

Parameters

Name In Type Required Description
attributeTemplateId path string true Attribute template ID
body body UpdateAttributeTemplateRequest true Update attribute template request body

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "min": "string",
    "max": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK Attribute template updated AttributeTemplateDetailsResponse
400 Bad Request Bad request CASPErrorResponse
404 Not Found Attribute template not found CASPErrorResponse
500 Internal Server Error Update attribute template failed CASPErrorResponse

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": {
    "min": "string",
    "max": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK Attribute template deleted AttributeTemplateDetailsResponse
400 Bad Request Bad request CASPErrorResponse
404 Not Found Attribute template not found CASPErrorResponse
500 Internal Server Error delete attribute template failed CASPErrorResponse

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 UpdateVaultAttributesRequest true Updated vault attributes

Example responses

200 Response

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "newVaultAttributes": {
    "property1": "string",
    "property2": "string"
  },
  "oldVaultAttributes": {
    "property1": "string",
    "property2": "string"
  }
}

Responses

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

Status of vault attributes operation

Code samples


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

};

fetch('/casp/api/v1.0/mng/operations/updateVaultDataCollectorsGroups/{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/updateVaultDataCollectorsGroups/{operationId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/operations/updateVaultDataCollectorsGroups/{operationId}

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

Parameters

Name In Type Required Description
operationId path string true Operation ID

Example responses

200 Response

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "newVaultAttributes": {
    "property1": "string",
    "property2": "string"
  },
  "oldVaultAttributes": {
    "property1": "string",
    "property2": "string"
  }
}

Responses

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

Create attribute template group

Code samples

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

};

fetch('/casp/api/v1.0/mng/attributeTemplateGroups',
{
  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/attributeTemplateGroups \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

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

Create Attribute template group

Body parameter

{
  "id": "string",
  "attributeTemplates": [
    "string"
  ],
  "description": "string"
}

Parameters

Name In Type Required Description
body body CreateAttributeTemplateGroupRequest true Create attribute template group request body

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "attributeTemplates": [
    "string"
  ]
}

Responses

Status Meaning Description Schema
200 OK Attribute template group created successfully AttributeTemplateGroupDetails
400 Bad Request Bad request CASPErrorResponse
404 Not Found Item not found CASPErrorResponse
500 Internal Server Error Create attribute template group failed CASPErrorResponse

Get attribute template group details

Code samples


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

};

fetch('/casp/api/v1.0/mng/attributeTemplateGroups/{attributeTemplateGroupId}',
{
  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/attributeTemplateGroups/{attributeTemplateGroupId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/attributeTemplateGroups/{attributeTemplateGroupId}

Get attribute template group details

Parameters

Name In Type Required Description
attributeTemplateGroupId path string true Attribute template group ID

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "attributeTemplates": [
    "string"
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AttributeTemplateGroupDetails
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Server error CASPErrorResponse

Update attribute template group

Code samples

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

};

fetch('/casp/api/v1.0/mng/attributeTemplateGroups/{attributeTemplateGroupId}',
{
  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/attributeTemplateGroups/{attributeTemplateGroupId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/attributeTemplateGroups/{attributeTemplateGroupId}

Update attribute template group

Body parameter

{
  "id": "string",
  "attributeTemplates": [
    "string"
  ],
  "description": "string"
}

Parameters

Name In Type Required Description
attributeTemplateGroupId path string true Attribute template group ID
body body UpdateAttributeTemplateGroupRequest true request body is missing

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "attributeTemplates": [
    "string"
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AttributeTemplateGroupDetails
400 Bad Request Bad request CASPErrorResponse
404 Not Found Attribute template group not found CASPErrorResponse
500 Internal Server Error Update attribute template group failed CASPErrorResponse

Delete attribute template group

Code samples


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

};

fetch('/casp/api/v1.0/mng/attributeTemplateGroups/{attributeTemplateGroupId}',
{
  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/attributeTemplateGroups/{attributeTemplateGroupId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/attributeTemplateGroups/{attributeTemplateGroupId}

Delete attribute template group

Parameters

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

Example responses

200 Response

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "min": "string",
    "max": "string"
  }
}

Responses

Status Meaning Description Schema
200 OK Attributes template group deleted AttributeTemplateDetailsResponse
400 Bad Request Bad request CASPErrorResponse
404 Not Found Attribute template group not found CASPErrorResponse
500 Internal Server Error Delete attributes template group failed CASPErrorResponse

Audit

Refer to the Audit Reports section in the Unbound CASP Developers Guide.

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,
      "participantId": "string",
      "participantName": "string",
      "global": true
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Account operations audit failed CASPErrorResponse

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,
      "participantId": "string",
      "participantName": "string",
      "vaultId": "string",
      "vaultName": "string",
      "userId": "string",
      "userName": "string",
      "userRole": "string",
      "userEmail": "string",
      "userStatus": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK UsersAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error User operations audit failed CASPErrorResponse

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,
      "participantId": "string",
      "participantName": "string",
      "operationId": "string",
      "vaultId": "string",
      "vaultName": "string",
      "userId": "string",
      "userName": "string",
      "operationKind": "string",
      "adminQuorum": "string",
      "policies": "string",
      "derivationString": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK VaultsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Vault operations audit failed CASPErrorResponse

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,
  "participantId": "string",
  "participantName": "string",
  "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 VaultOperationAuditItem
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Vault operation audit failed CASPErrorResponse

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
dataCollectorID query string false Search the signs by data collector ID, 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,
      "participantId": "string",
      "participantName": "string",
      "rawTransaction": [
        "string"
      ],
      "amount": 0,
      "assetType": "string",
      "toAddress": [
        "string"
      ],
      "isWhitelisted": true,
      "whitelistAddress": "string",
      "description": "string",
      "policyName": "string",
      "operationID": "string",
      "dataToSign": "string",
      "publicKey": "string",
      "signature": "string",
      "keySpec": "string",
      "operationState": "string",
      "rejectionReason": "string",
      "policyID": "string",
      "dataCollectorId": "string",
      "collectedData": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK SignsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Sign operations audit failed CASPErrorResponse

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,
  "participantId": "string",
  "participantName": "string",
  "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 SignOperationAuditItem
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Signs operation audit failed CASPErrorResponse

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,
      "participantId": "string",
      "participantName": "string",
      "operationId": "string",
      "operationKind": "string",
      "operationStatus": "string",
      "trustedInstanceId": "string",
      "vaultId": "string",
      "vaultName": "string"
    }
  ]
}

Responses

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

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', 'users', 'trustedSystems' or 'dataCollectors'

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 CASPErrorResponse
404 Not Found Item no found CASPErrorResponse
500 Internal Server Error Purge audit operation failed CASPErrorResponse

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', 'trustedSystems' or 'dataCollectors'.

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 CASPErrorResponse
500 Internal Server Error Audit failed verification CASPErrorResponse

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,
      "participantId": "string",
      "participantName": "string",
      "isGlobal": true,
      "rawTransaction": [
        "string"
      ],
      "amount": 0,
      "assetType": "string",
      "toAddress": [
        "string"
      ],
      "isWhitelisted": true,
      "whitelistAddress": "string",
      "description": "string",
      "policyName": "string",
      "policyID": "string",
      "rejectionReason": "string",
      "dataToSign": "string",
      "publicKey": "string",
      "signature": "string",
      "keySpec": "string",
      "operationID": "string",
      "userID": "string",
      "userName": "string",
      "operationKind": "string",
      "adminQuorum": "string",
      "policies": "string",
      "operationStatus": "string",
      "trustedInstanceID": "string",
      "vaultID": "string",
      "vaultName": "string",
      "participantID": "string",
      "userRole": "string",
      "userEmail": "string",
      "userStatus": "string",
      "derivationString": "string",
      "dataCollectorId": "string",
      "dataCollectorName": "string",
      "attributeTemplateGroup": "string",
      "dataCollectorState": "string",
      "collectedData": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK AllAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Audit data from all audit tables sorted by timestamp failed CASPErrorResponse

Data collectors audit

Code samples


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

};

fetch('/casp/api/v1.0/mng/audit/dataCollectors',
{
  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/dataCollectors \
  -H 'Accept: application/json' \
  -H 'Accept: string'

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

Data collectors audit

Parameters

Name In Type Required Description
Accept header string false none
fullValidation query boolean false Validate data collectors audit and check it is not corrupted
fromDate query string false Search data collectors audit by timestamp starting from fromDate. fromDate should be valid ISO 8601 date time string
toDate query string false Search data collectors audit by timestamp starting till toDate. fromDate should be valid ISO 8601 date time string
dataCollectorID query string false Search the data collectors audit by data collector ID
dataCollectorName query string false Search the data collectors audit by data collector name, partial word search is allowed
attributeTemplateGroupName query string false Search the data collectors audit by attribute template group name, partial word search is allowed
vaultName query string false Search the data collectors audit by vaultName, 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,
      "participantId": "string",
      "participantName": "string",
      "operationId": "string",
      "operationKind": "string",
      "operationStatus": "string",
      "trustedInstanceId": "string",
      "vaultId": "string",
      "vaultName": "string"
    }
  ]
}

Responses

Status Meaning Description Schema
200 OK OK TrustedSystemsAuditResponse
400 Bad Request Bad request CASPErrorResponse
500 Internal Server Error Get data collectors audit failed CASPErrorResponse

Authentication

Refer to the Authentication section in the Unbound CASP Developers Guide.

Get access and refresh token

Code samples

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

};

fetch('/casp/api/v1.0/mng/auth/token',
{
  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/token \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'

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

Get access token for CASP service

Body parameter

{
  "grant_type": "password",
  "username": "string",
  "code": "string",
  "redirect_uri": "string",
  "client_id": "string",
  "password": "string",
  "refresh_token": "string",
  "id_token": "string"
}

Parameters

Name In Type Required Description
body body OAuthTokenRequest true Get oauth tokens request

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 OauthTokenWithRefreshResponse
400 Bad Request Unauthorized: Authentication data is invalid CASPErrorResponse
500 Internal Server Error Get OAuth tokens failed CASPErrorResponse

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 CASPErrorResponse
500 Internal Server Error Internal error CASPErrorResponse

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [ApiKeyInfo] false none none
» 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

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 CreateApiKeyRequest true Create API key request

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 OauthTokenResponse
400 Bad Request Unauthorized: Authentication data is invalid CASPErrorResponse
500 Internal Server Error Create API key failed CASPErrorResponse

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 CASPErrorResponse
500 Internal Server Error API key removal failed CASPErrorResponse

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 CASPErrorResponse
500 Internal Server Error An access token removal failed CASPErrorResponse

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

Backup

Refer to the Backup section in the Unbound CASP Developers Guide.

Get vault backup data

Code samples


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

};

fetch('/casp/api/v1.0/mng/vaults/{id}/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/{id}/backup \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/vaults/{id}/backup

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.

Parameters

Name In Type Required Description
id path string true Vault ID

Example responses

200 Response

{
  "vaultID": "string",
  "backupData": "string",
  "publicKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK VaultBackupData
400 Bad Request Bad request CASPErrorResponse
404 Not Found Backup not found CASPErrorResponse
500 Internal Server Error Get vault backup data failed CASPErrorResponse

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 BackupData
400 Bad Request Incorrect vault type CASPErrorResponse
404 Not Found Vault not found CASPErrorResponse
500 Internal Server Error Get account backup failed CASPErrorResponse

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 BackupData
400 Bad Request Incorrect vault type CASPErrorResponse
404 Not Found Vault not found CASPErrorResponse
500 Internal Server Error Get vault backup data failed CASPErrorResponse

Calculate TOTS public key

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

Calculate TOTS public key

Body parameter

{
  "description": "string",
  "totsParams": [
    {
      "index": 0,
      "numberOfFragments": 1
    }
  ]
}

Parameters

Name In Type Required Description
id path string true Vault ID
body body CalculatePublicKeyRequest true Request body

Example responses

200 Response

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "totsParams": [
    {
      "index": 0,
      "numberOfFragments": 0
    }
  ],
  "publicKeys": [
    "string"
  ]
}

Responses

Status Meaning Description Schema
200 OK OK CalculatePublicKeyOperationDetails
400 Bad Request Bad request CASPErrorResponse
404 Not Found Item not found CASPErrorResponse
500 Internal Server Error Get vault backup data failed CASPErrorResponse

Data Collectors

Refer to the Developing Data Collectors section in the Unbound CASP Developers Guide.

List data collectors

Code samples


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

};

fetch('/casp/api/v1.0/mng/dataCollectors',
{
  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/dataCollectors \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

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

List data collectors

Parameters

Name In Type Required Description
filter query string false Filter by 'ID', 'name', 'attributeTemplateGroupId' or '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: 'name', 'state', 'description' or 'attributeTemplateGroupId'
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

{
  "items": [
    {
      "id": "string",
      "name": "string",
      "attributeTemplateGroupId": "string",
      "state": "string",
      "description": "string",
      "creationTime": "string",
      "modificationTime": "string"
    }
  ],
  "totalItems": 0
}

Responses

Status Meaning Description Schema
200 OK OK ListDataCollectorSummaries
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Server error CASPErrorResponse

Create data collector

Code samples

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

};

fetch('/casp/api/v1.0/mng/dataCollectors',
{
  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/dataCollectors \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

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

Create data collector

Body parameter

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

Parameters

Name In Type Required Description
body body CreateDataCollectorRequest true Create data collector request body

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "state": "string",
  "description": "string",
  "activationCode": "string",
  "attributeTemplateGroup": {
    "id": "string",
    "attributeTemplates": [
      "string"
    ]
  },
  "creationTime": "string",
  "modificationTime": "string",
  "authenticationKey": "string"
}

Responses

Status Meaning Description Schema
200 OK Created successfully DataCollectorDetails
400 Bad Request Bad request CASPErrorResponse
500 Internal Server Error Server error CASPErrorResponse

Get data collector details

Code samples


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

};

fetch('/casp/api/v1.0/mng/dataCollectors/{dataCollectorId}',
{
  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/dataCollectors/{dataCollectorId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

GET /casp/api/v1.0/mng/dataCollectors/{dataCollectorId}

Get data collector details

Parameters

Name In Type Required Description
dataCollectorId path string true Data collector ID

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "state": "string",
  "description": "string",
  "activationCode": "string",
  "attributeTemplateGroup": {
    "id": "string",
    "attributeTemplates": [
      "string"
    ]
  },
  "creationTime": "string",
  "modificationTime": "string",
  "authenticationKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK DataCollectorDetails
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Server error CASPErrorResponse

Update data collector

Code samples

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

};

fetch('/casp/api/v1.0/mng/dataCollectors/{dataCollectorId}',
{
  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/dataCollectors/{dataCollectorId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/dataCollectors/{dataCollectorId}

Update data collector

Body parameter

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

Parameters

Name In Type Required Description
dataCollectorId path string true Data collector ID
body body UpdateDataCollectorRequest true request body is missing

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "state": "string",
  "description": "string",
  "activationCode": "string",
  "attributeTemplateGroup": {
    "id": "string",
    "attributeTemplates": [
      "string"
    ]
  },
  "creationTime": "string",
  "modificationTime": "string",
  "authenticationKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK DataCollectorDetails
400 Bad Request Bad request CASPErrorResponse
404 Not Found Data collector not found CASPErrorResponse
500 Internal Server Error Server error CASPErrorResponse

Delete data collector

Code samples


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

};

fetch('/casp/api/v1.0/mng/dataCollectors/{dataCollectorId}',
{
  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/dataCollectors/{dataCollectorId} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

DELETE /casp/api/v1.0/mng/dataCollectors/{dataCollectorId}

Delete data collector

Parameters

Name In Type Required Description
dataCollectorId path string true Data collector ID

Example responses

200 Response

{
  "id": "string",
  "name": "string",
  "state": "string",
  "description": "string",
  "activationCode": "string",
  "attributeTemplateGroup": {
    "id": "string",
    "attributeTemplates": [
      "string"
    ]
  },
  "creationTime": "string",
  "modificationTime": "string",
  "authenticationKey": "string"
}

Responses

Status Meaning Description Schema
200 OK OK DataCollectorDetails
400 Bad Request Bad request CASPErrorResponse
404 Not Found Data collector not found CASPErrorResponse
500 Internal Server Error Server error CASPErrorResponse

Edit data collector groups

Code samples

const inputBody = '{
  "newDataCollectorsGroups": [
    {
      "name": "string",
      "attributeTemplateGroup": "string",
      "ids": [
        "string"
      ],
      "minimumRequired": 1
    }
  ],
  "description": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'

};

fetch('/casp/api/v1.0/mng/vaults/{vaultId}/dataCollectorsGroups',
{
  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}/dataCollectorsGroups \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

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

Edit vault data collector groups.

Body parameter

{
  "newDataCollectorsGroups": [
    {
      "name": "string",
      "attributeTemplateGroup": "string",
      "ids": [
        "string"
      ],
      "minimumRequired": 1
    }
  ],
  "description": "string"
}

Parameters

Name In Type Required Description
vaultId path string true vault ID
body body UpdateVaultDataCollectorsGroupsRequest true Updated vault data collectors groups

Example responses

200 Response

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "newVaultAttributes": {
    "property1": "string",
    "property2": "string"
  },
  "oldVaultAttributes": {
    "property1": "string",
    "property2": "string"
  }
}

Responses

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

Regenerate activation code

Code samples


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

};

fetch('/casp/api/v1.0/mng/dataCollectors/{dataCollectorId}/activationCode',
{
  method: 'PUT',

  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/dataCollectors/{dataCollectorId}/activationCode \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'

PUT /casp/api/v1.0/mng/dataCollectors/{dataCollectorId}/activationCode

Regenerate activation code

Parameters

Name In Type Required Description
dataCollectorId path string true Data collector ID

Example responses

200 Response

{
  "activationCode": "string"
}

Responses

Status Meaning Description Schema
200 OK OK RegenerateDataCollectorActivationCodeResponse
400 Bad Request Bad request CASPErrorResponse
404 Not Found Data collector not found CASPErrorResponse
500 Internal Server Error Server error CASPErrorResponse

Identity Providers

Refer to the Identity Providers section in the Unbound CASP Developers Guide.

List Identity Providers

Code samples


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

};

fetch('/casp/api/v1.0/mng/idps',
{
  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/idps \
  -H 'Accept: application/json'

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

List all Identity Providers. Pass through call that returns the Identity Providers that are configured in the UKC.

Example responses

200 Response

[
  {
    "name": "string",
    "description": "string",
    "url": "string",
    "clientId": "string",
    "usedClaims": [
      "string"
    ],
    "requiredScopes": [
      "string"
    ],
    "tokenEndpoint": "string",
    "authorizationEndpoint": "string",
    "userinfoEndpoint": "string",
    "jwksUri": "string",
    "supportedClaims": [
      "string"
    ],
    "supportedScopes": [
      "string"
    ],
    "supportedResponseTypes": [
      "string"
    ],
    "supportedGrantTypes": [
      "string"
    ]
  }
]

Responses

Status Meaning Description Schema
200 OK OK Inline
500 Internal Server Error List Identity Providers failed CASPErrorResponse

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [Idp] false none none
» name string false none none
» description string false none none
» url string false none none
» clientId string false none none
» usedClaims [string] false none none
» requiredScopes [string] false none none
» tokenEndpoint string false none none
» authorizationEndpoint string false none none
» userinfoEndpoint string false none none
» jwksUri string false none none
» supportedClaims [string] false none none
» supportedScopes [string] false none none
» supportedResponseTypes [string] false none none
» supportedGrantTypes [string] false none none

Get Identity Provider by name

Code samples


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

};

fetch('/casp/api/v1.0/mng/idps/{idpName}',
{
  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/idps/{idpName} \
  -H 'Accept: application/json'

GET /casp/api/v1.0/mng/idps/{idpName}

Get Identity Provider by name. Pass through call that returns the specific Identity Provider that is configured in the UKC.

Parameters

Name In Type Required Description
idpName path string true IDP name

Example responses

200 Response

{
  "name": "string",
  "description": "string",
  "url": "string",
  "clientId": "string",
  "usedClaims": [
    "string"
  ],
  "requiredScopes": [
    "string"
  ],
  "tokenEndpoint": "string",
  "authorizationEndpoint": "string",
  "userinfoEndpoint": "string",
  "jwksUri": "string",
  "supportedClaims": [
    "string"
  ],
  "supportedScopes": [
    "string"
  ],
  "supportedResponseTypes": [
    "string"
  ],
  "supportedGrantTypes": [
    "string"
  ]
}

Responses

Status Meaning Description Schema
200 OK OK Idp
500 Internal Server Error Get Identity Provider by name failed CASPErrorResponse

Operators

Refer to the Operators section in the Unbound CASP Developers Guide.

Create a new operator

Code samples

const inputBody = '{
  "name": "string",
  "loginName": "string",
  "password": "string",
  "role": "Super_User",
  "enable2fa": true,
  "authType": "OIDC",
  "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,
  "authType": "OIDC",
  "accountId": "string",
  "email": "string"
}

Parameters

Name In Type Required Description
body body CreateUserRequest true Create user request

Example responses

201 Response

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

Responses

Status Meaning Description Schema
201 Created New operator created successfully UserInfoResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Create new operator failed CASPErrorResponse

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",
    "enable2fa": true,
    "activationCode": "string",
    "email": "string",
    "locked": true,
    "pushEnabled": true,
    "deviceType": "string",
    "creationTime": "string",
    "modificationTime": "string",
    "lastLoginTime": "string",
    "authType": "OIDC"
  }
]

Responses

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

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [UserInfoResponse] false none none
» id string true none User ID
» name string false none User name
» loginName string true none User login name
» status string true none User status
» role string true none User role
» 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
» authType string true none Authentication type

Enumerated Values

Property Value
authType OIDC
authType OAUTH

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 ChangeUserPasswordRequest true Change user's password request

Example responses

400 Response

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

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request Unauthorized: Invalid operator name or password CASPErrorResponse
500 Internal Server Error Change password failed CASPErrorResponse

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 RestoreUserPasswordRequest true Change user's password request

Example responses

400 Response

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

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request Unauthorized: Invalid operator name or password CASPErrorResponse
500 Internal Server Error Change password failed CASPErrorResponse

Update operator

Code samples

const inputBody = '{
  "name": "string",
  "loginName": "string",
  "status": "ACTIVATED",
  "role": "Super_User",
  "email": "string",
  "locked": true
}';
const headers = {
  'Content-Type':'application/x-www-form-urlencoded',
  '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/x-www-form-urlencoded' \
  -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 false none
» name body string false new username
» loginName body string false new login name
» status body string false user status
» role body string false user role
» email body string false user email
» locked body boolean false 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",
  "enable2fa": true,
  "activationCode": "string",
  "email": "string",
  "locked": true,
  "pushEnabled": true,
  "deviceType": "string",
  "creationTime": "string",
  "modificationTime": "string",
  "lastLoginTime": "string",
  "authType": "OIDC"
}

Responses

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

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",
  "enable2fa": true,
  "activationCode": "string",
  "email": "string",
  "locked": true,
  "pushEnabled": true,
  "deviceType": "string",
  "creationTime": "string",
  "modificationTime": "string",
  "lastLoginTime": "string",
  "authType": "OIDC"
}

Responses

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

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 CASPErrorResponse
500 Internal Server Error Operator removal failed CASPErrorResponse

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 CASPErrorResponse
500 Internal Server Error Testing push notification failed CASPErrorResponse

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 ActivateParticipantResponse
404 Not Found User not found CASPErrorResponse
500 Internal Server Error Regenerate activation code failed CASPErrorResponse

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 CreateParticipantRequest true Create participant request

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 ActivateParticipantResponse
404 Not Found Account not found CASPErrorResponse
500 Internal Server Error Create new participant failed CASPErrorResponse

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 ListResponseParticipants
400 Bad Request Bad Request CASPErrorResponse
404 Not Found Account not found CASPErrorResponse
500 Internal Server Error List participant per account failed CASPErrorResponse

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 ParticipantDetails
404 Not Found Participant not found CASPErrorResponse
500 Internal Server Error Get participant failed CASPErrorResponse

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 UpdateParticipateRequest true Update participant request

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 CASPErrorResponse
500 Internal Server Error Update participant failed CASPErrorResponse

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 CASPErrorResponse
404 Not Found Participant not found CASPErrorResponse
500 Internal Server Error Delete participant failed CASPErrorResponse

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 CASPErrorResponse
500 Internal Server Error Testing push notification failed CASPErrorResponse

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",
    "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 CASPErrorResponse
500 Internal Server Error Get participant groups failed CASPErrorResponse

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [ParticipantGroupResponse] false none none
» vaultId string true none Vault ID
» vaultName string true none Vault 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)

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 RegenerateActivationCodeRequest true Regenerate activation code request

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 ActivateParticipantResponse
403 Forbidden Reactivation is not allowed CASPErrorResponse
404 Not Found Participant not found CASPErrorResponse
500 Internal Server Error Regenerate activation code failed CASPErrorResponse

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",
    "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 CASPErrorResponse
500 Internal Server Error Get participant change warnings failed CASPErrorResponse

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [ParticipantGroupResponse] false none none
» vaultId string true none Vault ID
» vaultName string true none Vault 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)

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",
  "admin": true,
  "approver": true
}

Responses

Status Meaning Description Schema
200 OK Participant activated successfully ParticipantInfo
404 Not Found Participant not found CASPErrorResponse
500 Internal Server Error Activate participant failed CASPErrorResponse

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 OfflineParticipantsOperationsResponse
404 Not Found Participant not found CASPErrorResponse
500 Internal Server Error Get participant failed CASPErrorResponse

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 CASPErrorResponse
500 Internal Server Error Get participant failed CASPErrorResponse

Reports

Refer to the Reports section in the Unbound CASP Developers Guide.

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 containing 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 AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Accounts reporting failed CASPErrorResponse

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 AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Vaults report failed CASPErrorResponse

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 AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Vaults report failed CASPErrorResponse

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
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 AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Users reporting failed CASPErrorResponse

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 AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Vaults report failed CASPErrorResponse

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 AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Vaults report failed CASPErrorResponse

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 AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Vaults report failed CASPErrorResponse

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 AccountsAuditResponse
400 Bad Request Bad Request CASPErrorResponse
500 Internal Server Error Vaults report failed CASPErrorResponse

Trusted Systems

Refer to the Trusted Systems section in the Unbound CASP Developers Guide.

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 TrustedInstanceInfoListResponse
500 Internal Server Error List trusted system failed CASPErrorResponse

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 TrustedInstanceInfoResponse
500 Internal Server Error Get trusted system details failed CASPErrorResponse

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 TrustedInstanceInfoResponse
400 Bad Request Bad request CASPErrorResponse
500 Internal Server Error Add trusted CASP instance failed CASPErrorResponse

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 EditTrustedInstaceRequest 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 TrustedInstanceInfoResponse
400 Bad Request Instance not found CASPErrorResponse
500 Internal Server Error Add trusted CASP instance failed CASPErrorResponse

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 TrustedInstanceInfoListResponse
404 Not Found Instance not found CASPErrorResponse
500 Internal Server Error List trusted system failed CASPErrorResponse

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

Responses

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

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 ExportedEntity
404 Not Found Account not found CASPErrorResponse
500 Internal Server Error Export account failed CASPErrorResponse

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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true,
      "sparePartiesLeft": 0
    }
  ],
  "id": "string",
  "name": "string",
  "accountID": "string",
  "status": "NOT_INITIALIZED",
  "statusText": "Waiting for participants to join",
  "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": "ACTIVATED",
              "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
          }
        ],
        "attributes": [
          {
            "id": "string",
            "op": "string",
            "value": "string"
          }
        ]
      },
      "isOffline": true,
      "policyKind": "APPROVAL"
    }
  ],
  "isOffline": true,
  "approvalStructure": "QUORUM",
  "attributes": {
    "property1": "string",
    "property2": "string"
  },
  "dataCollectorsGroups": [
    {
      "name": "string",
      "attributeTemplateGroup": "string",
      "ids": [
        "string"
      ],
      "minimumRequired": 1
    }
  ],
  "creationTime": "string",
  "modificationTime": "string"
}

Responses

Status Meaning Description Schema
200 OK Vault imported successfully VaultDetails
500 Internal Server Error Import vault failed CASPErrorResponse

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 ExportedEntity
404 Not Found Vault not found CASPErrorResponse
500 Internal Server Error Export vault failed CASPErrorResponse

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 ParticipantDetails
400 Bad Request Exported data originated from an untrusted CASP instance CASPErrorResponse
500 Internal Server Error Import participant failed CASPErrorResponse

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 ExportedEntity
404 Not Found Participant not found CASPErrorResponse
500 Internal Server Error Export participant failed CASPErrorResponse

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 OperationDetails
400 Bad Request Bad request CASPErrorResponse
500 Internal Server Error Import account failed CASPErrorResponse

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 ExportedEntity
404 Not Found Operation not found CASPErrorResponse
500 Internal Server Error Export operation failed CASPErrorResponse

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 CASPErrorResponse
500 Internal Server Error List UKC keys failed CASPErrorResponse

Response Schema

Status Code 200

Name Type Required Restrictions Description
anonymous [UkcVaultKey] false none none
» ukcKeyId string true none The key UKC key ID

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,
      "participantId": "string",
      "participantName": "string",
      "operationId": "string",
      "operationKind": "string",
      "operationStatus": "string",
      "trustedInstanceId": "string",
      "vaultId": "string",
      "vaultName": "string"
    }
  ]
}

Responses

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

Schemas

AccountAuditItem

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "participantId": "string",
  "participantName": "string",
  "global": true
}

Properties

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
participantId string false none none
participantName string false none none
global boolean false none none

AccountDetails

{
  "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
    }
  }
}

Properties

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 Stats false none none

AccountsAuditResponse

{
  "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,
      "participantId": "string",
      "participantName": "string",
      "global": true
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [AccountAuditItem] true none Items

ActivateParticipantResponse

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

Properties

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 [RejoinVaultErrorResponse] true none Rejoin operation failed on vault
serverAuthenticationKey string false none The server authentication key
serverEncryptionKey string false none The server encryption key

AddBip44AccountRequest

{
  "accountName": "string"
}

Properties

Name Type Required Restrictions Description
accountName string true none The account name

AddBip44CoinRequest

{
  "coinType": 0
}

Properties

Name Type Required Restrictions Description
coinType integer(int32) true none The coin type

AddMemberDetails

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "groupName": "string",
  "participantName": "string",
  "participantID": "string"
}

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID
kind string true none Operation kind
status string true none Operation status.

The status field has the following possible values:
- PENDING - waiting for participant approval.
- PENDING_ACTIVATION - used for rejoining a quorum vault operation.
- WAITING_DATA_COLLECTION - waiting for data collector data.

The sign operation finishes with one of these status values:
- CANCELED - user canceled the operation.
- FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes.
- ERROR - the CASP server encountered an internal error.
- COMPLETED
- When working without built-in Wallet - enough participants approved and CASP has the signature.
- When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger.
- REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies.
statusText string true none Operation status text
createdAt string true none Operation creation time
vaultID string true none Vault ID
description string false none Description of the operation
isApproved boolean true none Approval state for the operation
accountID string true none Account ID for the operation
groups [ApprovalGroupDetails] true none Operation approval groups
policyDetails PolicyDetails false none none
vaultName string true none Vault name for the operation
groupName string true none Group name to join
participantName string true none Participant name
participantID string true none Participan ID

Enumerated Values

Property Value
kind JOIN_VAULT
kind REJOIN_VAULT
kind JOIN_VAULT_ADMIN_QUORUM
kind JOIN_POLICY_VAULT
kind ADD_MEMBER
kind ADMIN_QUORUM_APPROVAL
kind QUORUM_SIGN
kind CALCULATE_PUBLIC_KEY
kind UPDATE_VAULT_ATTRIBUTES
kind ERROR
status PENDING
status WAITING_DATA_COLLECTION
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status REJECTED
status CANCELED
status FAILED
status ERROR
statusText Pending
statusText Pending activation
statusText Approved
statusText Completed
statusText Rejected
statusText Canceled
statusText Failed
statusText N/A

AddMemberResponse

{
  "operation": {
    "operationID": "string",
    "kind": "JOIN_VAULT",
    "status": "PENDING",
    "statusText": "Pending",
    "createdAt": "string",
    "vaultID": "string",
    "description": "string",
    "isApproved": true,
    "accountID": "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": "ACTIVATED",
            "isOffline": true
          }
        ],
        "requiredApprovals": 0,
        "order": 0,
        "deactivateAllowed": true,
        "isOffline": true
      }
    ],
    "policyDetails": {
      "id": "string",
      "name": "string"
    },
    "vaultName": "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"
  }
}

Properties

Name Type Required Restrictions Description
operation OperationDetails true none none
participant ParticipantDetails true none none

AddVaultParticipantRequest

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

Properties

Name Type Required Restrictions Description
participantID string true none ParticipantWithVault ID
description string false none Description
policyId string false none policy id to join

AllAuditItem

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "participantId": "string",
  "participantName": "string",
  "isGlobal": true,
  "rawTransaction": [
    "string"
  ],
  "amount": 0,
  "assetType": "string",
  "toAddress": [
    "string"
  ],
  "isWhitelisted": true,
  "whitelistAddress": "string",
  "description": "string",
  "policyName": "string",
  "policyID": "string",
  "rejectionReason": "string",
  "dataToSign": "string",
  "publicKey": "string",
  "signature": "string",
  "keySpec": "string",
  "operationID": "string",
  "userID": "string",
  "userName": "string",
  "operationKind": "string",
  "adminQuorum": "string",
  "policies": "string",
  "operationStatus": "string",
  "trustedInstanceID": "string",
  "vaultID": "string",
  "vaultName": "string",
  "participantID": "string",
  "userRole": "string",
  "userEmail": "string",
  "userStatus": "string",
  "derivationString": "string",
  "dataCollectorId": "string",
  "dataCollectorName": "string",
  "attributeTemplateGroup": "string",
  "dataCollectorState": "string",
  "collectedData": "string"
}

Properties

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
participantId string false none none
participantName string 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
policyID string false none none
rejectionReason string false none none
dataToSign string false none none
publicKey string false none none
signature string false none none
keySpec string false none none
operationID 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
userRole string false none none
userEmail string false none none
userStatus string false none none
derivationString string false none none
dataCollectorId string false none none
dataCollectorName string false none none
attributeTemplateGroup string false none none
dataCollectorState string false none none
collectedData string false none none

AllAuditResponse

{
  "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,
      "participantId": "string",
      "participantName": "string",
      "isGlobal": true,
      "rawTransaction": [
        "string"
      ],
      "amount": 0,
      "assetType": "string",
      "toAddress": [
        "string"
      ],
      "isWhitelisted": true,
      "whitelistAddress": "string",
      "description": "string",
      "policyName": "string",
      "policyID": "string",
      "rejectionReason": "string",
      "dataToSign": "string",
      "publicKey": "string",
      "signature": "string",
      "keySpec": "string",
      "operationID": "string",
      "userID": "string",
      "userName": "string",
      "operationKind": "string",
      "adminQuorum": "string",
      "policies": "string",
      "operationStatus": "string",
      "trustedInstanceID": "string",
      "vaultID": "string",
      "vaultName": "string",
      "participantID": "string",
      "userRole": "string",
      "userEmail": "string",
      "userStatus": "string",
      "derivationString": "string",
      "dataCollectorId": "string",
      "dataCollectorName": "string",
      "attributeTemplateGroup": "string",
      "dataCollectorState": "string",
      "collectedData": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [AllAuditItem] true none Items

AmountRange

{
  "minimum": 0,
  "maximum": 0
}

Properties

Name Type Required Restrictions Description
minimum number false none lower limit
maximum number false none upper limit

ApiKeyInfo

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

Properties

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

ApprovalGroup

{
  "name": "string",
  "requiredApprovals": 1,
  "members": [
    {
      "id": "string"
    }
  ],
  "isOffline": true
}

Properties

Name Type Required Restrictions Description
name string true none Vault group name
requiredApprovals integer(int32) true none Vault group required approvals
members [ApprovalGroupMember] true none Vault group participants
isOffline boolean true none Vault group isOffline property

ApprovalGroupAccount

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

Properties

Name Type Required Restrictions Description
id string true none Account ID
name string true none Account name

ApprovalGroupDetails

{
  "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": "ACTIVATED",
      "isOffline": true
    }
  ],
  "requiredApprovals": 0,
  "order": 0,
  "deactivateAllowed": true,
  "isOffline": true
}

Properties

Name Type Required Restrictions Description
name string true none Approval group name
members [ApprovalGroupParticipant] true none A list of participants in the group
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

ApprovalGroupMember

{
  "id": "string"
}

Properties

Name Type Required Restrictions Description
id string true none Participant ID

ApprovalGroupParticipant

{
  "approvedAt": "string",
  "id": "string",
  "isApproved": true,
  "name": "string",
  "status": "STARTED",
  "approvalGroupAccount": {
    "id": "string",
    "name": "string"
  },
  "label": "string",
  "isGlobal": true,
  "isActive": true,
  "globalStatus": "ACTIVATED",
  "isOffline": true
}

Properties

Name Type Required Restrictions Description
approvedAt string false 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 ApprovalGroupAccount false none none
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

Enumerated Values

Property Value
status STARTED
status ACTIVATED
status DECLINED
status REVOKED
status SUSPENDED
globalStatus ACTIVATED
globalStatus REACTIVATING
globalStatus SUSPENDED
globalStatus REVOKED

AttributeRuleDetailsResponse

{
  "id": "string",
  "op": "string",
  "value": "string"
}

Properties

Name Type Required Restrictions Description
id string true none attribute rule ID
op string true none attribute rule operator
value string true none attribute rule value

AttributeRuleRequest

{
  "id": "string",
  "op": "string",
  "value": "string"
}

Properties

Name Type Required Restrictions Description
id string true none attribute`s template name
op string false none operator
value string true none attribute`s value

AttributeTemplateDetailsResponse

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "min": "string",
    "max": "string"
  }
}

Properties

Name Type Required Restrictions Description
id string true none attribute template ID
description string false none Attribute template description
type string true none attribute template type
range Range false none none

AttributeTemplateGroup

{
  "id": "string",
  "attributeTemplates": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
id string false none none
attributeTemplates [string] false none none

AttributeTemplateGroupDetails

{
  "id": "string",
  "description": "string",
  "attributeTemplates": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
id string false none none
description string false none none
attributeTemplates [string] false none none

AttributeTemplateGroupSummary

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

Properties

Name Type Required Restrictions Description
id string false none none
description string false none none

BackupData

{
  "vaultId": "string",
  "backupData": "string",
  "bipLevel": 0,
  "cpar": "string",
  "parentFingerprint": "string",
  "childNumber": 0,
  "publicKey": "string"
}

Properties

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

Bip44AccountIndex

{
  "index": 0
}

Properties

Name Type Required Restrictions Description
index integer(int32) true none The account index

Bip44AccountResponse

{
  "publicKeys": [
    "string"
  ],
  "chains": [
    "string"
  ],
  "accountName": "string",
  "accountIndex": 0
}

Properties

Name Type Required Restrictions Description
publicKeys [string] true none the public keys
chains [string] true none chains
accountName string false none the account's name
accountIndex integer(int32) true none the account's index

Bip44AccountsResponse

{
  "name": "string",
  "index": 0
}

Properties

Name Type Required Restrictions Description
name string false none an optional account name
index integer(int32) true none the account's index

BipPublicNode

{
  "chainCode": "string",
  "publicKey": "string",
  "level": 0,
  "parentFingerprint": "string",
  "childNumber": 0
}

Properties

Name Type Required Restrictions Description
chainCode string false none none
publicKey string false none none
level integer(int32) false none none
parentFingerprint string false none none
childNumber integer(int32) false none none

CASPErrorResponse

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

Properties

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(int32) true none Original HTTP status code

CalculatePublicKeyOperationDetails

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "totsParams": [
    {
      "index": 0,
      "numberOfFragments": 0
    }
  ],
  "publicKeys": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID
kind string true none Operation kind
status string true none Operation status.

The status field has the following possible values:
- PENDING - waiting for participant approval.
- PENDING_ACTIVATION - used for rejoining a quorum vault operation.
- WAITING_DATA_COLLECTION - waiting for data collector data.

The sign operation finishes with one of these status values:
- CANCELED - user canceled the operation.
- FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes.
- ERROR - the CASP server encountered an internal error.
- COMPLETED
- When working without built-in Wallet - enough participants approved and CASP has the signature.
- When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger.
- REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies.
statusText string true none Operation status text
createdAt string true none Operation creation time
vaultID string true none Vault ID
description string false none Description of the operation
isApproved boolean true none Approval state for the operation
accountID string true none Account ID for the operation
groups [ApprovalGroupDetails] true none Operation approval groups
policyDetails PolicyDetails false none none
vaultName string true none Item name for the operation
totsParams [IndexNofPairResponse] true none List of index/NOF pairs
publicKeys [string] true none List of public keys

Enumerated Values

Property Value
kind JOIN_VAULT
kind REJOIN_VAULT
kind JOIN_VAULT_ADMIN_QUORUM
kind JOIN_POLICY_VAULT
kind ADD_MEMBER
kind ADMIN_QUORUM_APPROVAL
kind QUORUM_SIGN
kind CALCULATE_PUBLIC_KEY
kind UPDATE_VAULT_ATTRIBUTES
kind ERROR
status PENDING
status WAITING_DATA_COLLECTION
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status REJECTED
status CANCELED
status FAILED
status ERROR
statusText Pending
statusText Pending activation
statusText Approved
statusText Completed
statusText Rejected
statusText Canceled
statusText Failed
statusText N/A

CalculatePublicKeyRequest

{
  "description": "string",
  "totsParams": [
    {
      "index": 0,
      "numberOfFragments": 1
    }
  ]
}

Properties

Name Type Required Restrictions Description
description string false none Description.
totsParams [IndexNofPairRequest] false none Index and NOF pairs

ChangeUserPasswordRequest

{
  "value": "string"
}

Properties

Name Type Required Restrictions Description
value string true none User's password

CollectedDataDetails

{
  "dataCollectorDetails": {
    "id": "string",
    "name": "string",
    "state": "string",
    "description": "string",
    "activationCode": "string",
    "attributeTemplateGroup": {
      "id": "string",
      "attributeTemplates": [
        "string"
      ]
    },
    "creationTime": "string",
    "modificationTime": "string",
    "authenticationKey": "string"
  },
  "data": {
    "property1": "string",
    "property2": "string"
  },
  "collectionDone": true,
  "signedUniqueData": "string",
  "collectionStart": 0,
  "collectionEnd": 0
}

Properties

Name Type Required Restrictions Description
dataCollectorDetails DataCollectorDetails false none none
data object false none none
» additionalProperties string false none none
collectionDone boolean false none none
signedUniqueData string false none none
collectionStart integer(int64) false none none
collectionEnd integer(int64) false none none

CollectedDataGroupDetails

{
  "minimumRequired": 0,
  "collectedData": [
    {
      "dataCollectorDetails": {
        "id": "string",
        "name": "string",
        "state": "string",
        "description": "string",
        "activationCode": "string",
        "attributeTemplateGroup": {
          "id": "string",
          "attributeTemplates": [
            "string"
          ]
        },
        "creationTime": "string",
        "modificationTime": "string",
        "authenticationKey": "string"
      },
      "data": {
        "property1": "string",
        "property2": "string"
      },
      "collectionDone": true,
      "signedUniqueData": "string",
      "collectionStart": 0,
      "collectionEnd": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
minimumRequired integer(int32) false none none
collectedData [CollectedDataDetails] false none none

CollectedDataGroupsDetails

{
  "collectionComplete": true,
  "dataCollectionGroups": [
    {
      "minimumRequired": 0,
      "collectedData": [
        {
          "dataCollectorDetails": {
            "id": "string",
            "name": "string",
            "state": "string",
            "description": "string",
            "activationCode": "string",
            "attributeTemplateGroup": {
              "id": "string",
              "attributeTemplates": [
                "string"
              ]
            },
            "creationTime": "string",
            "modificationTime": "string",
            "authenticationKey": "string"
          },
          "data": {
            "property1": "string",
            "property2": "string"
          },
          "collectionDone": true,
          "signedUniqueData": "string",
          "collectionStart": 0,
          "collectionEnd": 0
        }
      ]
    }
  ]
}

Properties

Name Type Required Restrictions Description
collectionComplete boolean false none none
dataCollectionGroups [CollectedDataGroupDetails] false none none

CreateAccountRequest

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

Properties

Name Type Required Restrictions Description
name string true none Account name
isGlobal boolean false none Is account global

CreateApiKeyRequest

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

Properties

Name Type Required Restrictions Description
client_id string true none Owner client ID auth token will be issued for
client_role string true none Auth token owner role.
scope string true none Auth token scope. Value MUST be set to "/mng"
grant_type string true none Request's grant type
password string true none Auth token owner password

Enumerated Values

Property Value
client_role Super_User
client_role Security_Officer
client_role Trader
grant_type client_credentials

CreateAttributeTemplateGroupRequest

{
  "id": "string",
  "attributeTemplates": [
    "string"
  ],
  "description": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none
attributeTemplates [string] false none none
description string false none none

CreateAttributeTemplateRequest

{
  "id": "string",
  "description": "string",
  "type": "STRING",
  "range": {
    "min": "string",
    "max": "string"
  }
}

Properties

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 Range false none none

Enumerated Values

Property Value
type STRING
type NUMERIC
type BOOLEAN
type DATE

CreateBip44AddressResponse

{
  "publicKey": "string",
  "derivationString": "string"
}

Properties

Name Type Required Restrictions Description
publicKey string true none The public key of the new address
derivationString string true none The derivation string of the new address

CreateDataCollectorRequest

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

Properties

Name Type Required Restrictions Description
name string false none none
attributeTemplateGroupId string false none none
description string false none none

CreateParticipantRequest

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

Properties

Name Type Required Restrictions Description
name string true none Participant name
email string true none Participant email
role string false none Participant role
offline boolean false none An offline participant

CreateUserRequest

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

Properties

Name Type Required Restrictions Description
name string false none User's name
loginName string true none User's login name
password string false none User's password. Not needed when using using OAuth type 'OIDC'
role string true none User's role
enable2fa boolean false none Is 2FA enabled for this user
authType string false none Oauth type
accountId string false none User's account id. Needed only when creating a participant
email string false none User's email. needed only when creating a participant

Enumerated Values

Property Value
role Super_User
role Security_Officer
role Trader
authType OIDC
authType OAUTH

CreateVaultDataResponse

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

Properties

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

CreateVaultRequest

{
  "name": "string",
  "description": "string",
  "cryptoKind": "ECDSA",
  "curveName": "Ed25519",
  "providerKind": "string",
  "hierarchy": "NONE",
  "coinType": 0,
  "firstAccountName": "string",
  "groups": [
    {
      "name": "string",
      "requiredApprovals": 1,
      "members": [
        {
          "id": "string"
        }
      ],
      "isOffline": true
    }
  ],
  "policies": [
    {
      "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
          }
        ],
        "attributes": [
          {
            "id": "string",
            "op": "string",
            "value": "string"
          }
        ]
      },
      "policyKind": "APPROVAL"
    }
  ],
  "isOffline": true,
  "attributes": {
    "property1": "string",
    "property2": "string"
  },
  "dataCollectorsGroups": [
    {
      "name": "string",
      "attributeTemplateGroup": "string",
      "ids": [
        "string"
      ],
      "minimumRequired": 1
    }
  ]
}

Properties

Name Type Required Restrictions Description
name string true none Vault name
description string false none vault description
cryptoKind string true none Type of cryptographic algorithm
curveName string false none The name of the curve
providerKind string false none Type of crypto currency
hierarchy string false none Vault hierarchy. defaults to deterministic
coinType integer(int32) false none BIP44 coin type. see examples of known coin types in https://github.com/satoshilabs/slips/blob/master/slip-0044.md
firstAccountName string false none The name of the first account
groups [ApprovalGroup] true none Vault approval groups
policies [WithdrawalPolicy] false none policies set
isOffline boolean false none Offline/Online type of the vault
attributes object false none Vault attributes
» additionalProperties string false none none
dataCollectorsGroups [DataCollectorsGroupDetails] false none Vault data collector groups

Enumerated Values

Property Value
cryptoKind ECDSA
cryptoKind EDDSA
cryptoKind TOTS
curveName Ed25519
curveName secp256r1
curveName secp256k1
hierarchy NONE
hierarchy BIP32
hierarchy BIP44

DBEntity

{
  "healthy": true,
  "errorMessage": "string",
  "version": "string",
  "schemaVersion": "string"
}

Properties

Name Type Required Restrictions Description
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

DataCollectorDetails

{
  "id": "string",
  "name": "string",
  "state": "string",
  "description": "string",
  "activationCode": "string",
  "attributeTemplateGroup": {
    "id": "string",
    "attributeTemplates": [
      "string"
    ]
  },
  "creationTime": "string",
  "modificationTime": "string",
  "authenticationKey": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none
name string false none none
state string false none none
description string false none none
activationCode string false none none
attributeTemplateGroup AttributeTemplateGroup false none none
creationTime string false none none
modificationTime string false none none
authenticationKey string false none none

DataCollectorSummary

{
  "id": "string",
  "name": "string",
  "attributeTemplateGroupId": "string",
  "state": "string",
  "description": "string",
  "creationTime": "string",
  "modificationTime": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none
name string false none none
attributeTemplateGroupId string false none none
state string false none none
description string false none none
creationTime string false none none
modificationTime string false none none

DataCollectorsGroupDetails

{
  "name": "string",
  "attributeTemplateGroup": "string",
  "ids": [
    "string"
  ],
  "minimumRequired": 1
}

Properties

Name Type Required Restrictions Description
name string true none Data Collectors group name
attributeTemplateGroup string true none Data collectors group`s attribute template group name
ids [string] true none Data Collectors IDs
minimumRequired integer(int32) true none Data Collectors required for Sign request proceeding

DecliningParticipantDetails

{
  "participantId": "string",
  "participantName": "string"
}

Properties

Name Type Required Restrictions Description
participantId string true none Sign operation declining participant ID
participantName string false none none

DeriveBip32KeypairRequest

{
  "pathToDeriveFrom": "string",
  "hardDerivation": true,
  "childIndex": 0
}

Properties

Name Type Required Restrictions Description
pathToDeriveFrom string true none The derivation path to derive from
hardDerivation boolean true none Use hard derivation
childIndex integer(int32) true none The child index

DerivedWhiteList

{
  "chainCode": "string",
  "publicKey": "string",
  "level": 0,
  "parentFingerprint": "string",
  "childNumber": 0
}

Properties

Name Type Required Restrictions Description
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

EditTrustedInstaceRequest

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

Properties

Name Type Required Restrictions Description
instanceId string true none Instance ID
description string false none Instance description

Entity

{
  "healthy": true,
  "errorMessage": "string",
  "version": "string"
}

Properties

Name Type Required Restrictions Description
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

ExportedEntity

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

Properties

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

GetBip32KeyResponse

{
  "derivationPath": "string",
  "publicKey": "string"
}

Properties

Name Type Required Restrictions Description
derivationPath string true none the public derivation path
publicKey string true none the public key

GetBip44AccountByIdentifierResponse

{
  "accountName": "string",
  "accountIndex": 0
}

Properties

Name Type Required Restrictions Description
accountName string false none the account's name
accountIndex integer(int32) true none the account's index

Idp

{
  "name": "string",
  "description": "string",
  "url": "string",
  "clientId": "string",
  "usedClaims": [
    "string"
  ],
  "requiredScopes": [
    "string"
  ],
  "tokenEndpoint": "string",
  "authorizationEndpoint": "string",
  "userinfoEndpoint": "string",
  "jwksUri": "string",
  "supportedClaims": [
    "string"
  ],
  "supportedScopes": [
    "string"
  ],
  "supportedResponseTypes": [
    "string"
  ],
  "supportedGrantTypes": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
name string false none none
description string false none none
url string false none none
clientId string false none none
usedClaims [string] false none none
requiredScopes [string] false none none
tokenEndpoint string false none none
authorizationEndpoint string false none none
userinfoEndpoint string false none none
jwksUri string false none none
supportedClaims [string] false none none
supportedScopes [string] false none none
supportedResponseTypes [string] false none none
supportedGrantTypes [string] false none none

IndexNofPairRequest

{
  "index": 0,
  "numberOfFragments": 1
}

Properties

Name Type Required Restrictions Description
index integer(int32) true none Index
numberOfFragments integer(int32) true none Number of fragments

Enumerated Values

Property Value
numberOfFragments 1
numberOfFragments 2
numberOfFragments 3

IndexNofPairResponse

{
  "index": 0,
  "numberOfFragments": 0
}

Properties

Name Type Required Restrictions Description
index integer(int32) true none Index
numberOfFragments integer(int32) true none Number of fragments

JoinPolicyVaultOperationDetails

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
              "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
          }
        ],
        "attributes": [
          {
            "id": "string",
            "op": "string",
            "value": "string"
          }
        ]
      }
    }
  ],
  "vaultName": "string",
  "groupNameToJoin": "string"
}

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID
kind string true none Operation kind
status string true none Operation status.

The status field has the following possible values:
- PENDING - waiting for participant approval.
- PENDING_ACTIVATION - used for rejoining a quorum vault operation.
- WAITING_DATA_COLLECTION - waiting for data collector data.

The sign operation finishes with one of these status values:
- CANCELED - user canceled the operation.
- FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes.
- ERROR - the CASP server encountered an internal error.
- COMPLETED
- When working without built-in Wallet - enough participants approved and CASP has the signature.
- When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger.
- REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies.
statusText string true none Operation status text
createdAt string true none Operation creation time
vaultID string true none Vault ID
description string false none Description of the operation
isApproved boolean true none Approval state for the operation
accountID string true none Account ID for the operation
policies [JoinPolicyVaultWithdrawalPolicy] true none Policies
vaultName string true none Vault name for the operation
groupNameToJoin string true none Group to join

Enumerated Values

Property Value
kind JOIN_VAULT
kind REJOIN_VAULT
kind JOIN_VAULT_ADMIN_QUORUM
kind JOIN_POLICY_VAULT
kind ADD_MEMBER
kind ADMIN_QUORUM_APPROVAL
kind QUORUM_SIGN
kind CALCULATE_PUBLIC_KEY
kind UPDATE_VAULT_ATTRIBUTES
kind ERROR
status PENDING
status WAITING_DATA_COLLECTION
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status REJECTED
status CANCELED
status FAILED
status ERROR
statusText Pending
statusText Pending activation
statusText Approved
statusText Completed
statusText Rejected
statusText Canceled
statusText Failed
statusText N/A

JoinPolicyVaultWithdrawalPolicy

{
  "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": "ACTIVATED",
          "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
      }
    ],
    "attributes": [
      {
        "id": "string",
        "op": "string",
        "value": "string"
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
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 [ApprovalGroupDetails] true none Approval groups
rules Rules false none none

KeySpecResponse

{
  "indexNofPairs": [
    {
      "index": 0,
      "numberOfFragments": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
indexNofPairs [IndexNofPairResponse] false none none

KeySpecsRequest

{
  "totsParams": [
    {
      "index": 0,
      "numberOfFragments": 1
    }
  ]
}

Properties

Name Type Required Restrictions Description
totsParams [IndexNofPairRequest] false none none

ListAccountsResponse

{
  "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
        }
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [AccountDetails] true none Items

ListAttributeTemplateGroupsSummaries

{
  "totalItems": 0,
  "items": [
    {
      "id": "string",
      "description": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) false none none
items [AttributeTemplateGroupSummary] false none none

ListAttributeTemplatesResponse

{
  "totalItems": 0,
  "items": [
    {
      "id": "string",
      "description": "string",
      "type": "string",
      "range": {
        "min": "string",
        "max": "string"
      }
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [AttributeTemplateDetailsResponse] true none Items

ListDataCollectorSummaries

{
  "items": [
    {
      "id": "string",
      "name": "string",
      "attributeTemplateGroupId": "string",
      "state": "string",
      "description": "string",
      "creationTime": "string",
      "modificationTime": "string"
    }
  ],
  "totalItems": 0
}

Properties

Name Type Required Restrictions Description
items [DataCollectorSummary] false none none
totalItems integer(int32) false none none

ListResponseBip32Keys

{
  "totalItems": 0,
  "items": [
    {
      "derivationPath": "string",
      "publicKey": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [GetBip32KeyResponse] true none Items

ListResponseBip44Accounts

{
  "totalItems": 0,
  "items": [
    {
      "name": "string",
      "index": 0
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [Bip44AccountsResponse] true none Items

ListResponseBip44ChainAddresses

{
  "totalItems": 0,
  "items": [
    "string"
  ],
  "chains": [
    "string"
  ],
  "accountName": "string",
  "accountIndex": 0
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [string] true none Public key items
chains [string] true none chains
accountName string false none the account's name
accountIndex integer(int32) true none the account's index

ListResponseBip44Coins

{
  "totalItems": 0,
  "items": [
    0
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [integer] true none Items

ListResponseOperations

{
  "totalItems": 0,
  "items": [
    {
      "operationID": "string",
      "kind": "JOIN_VAULT",
      "status": "PENDING",
      "statusText": "Pending",
      "createdAt": "string",
      "vaultID": "string",
      "description": "string",
      "isApproved": true,
      "accountID": "string",
      "vaultName": "string",
      "providerKind": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [OperationViewInfo] true none Items

ListResponseOperationsInfo

{
  "totalItems": 0,
  "items": [
    {
      "operationID": "string",
      "kind": "JOIN_VAULT",
      "status": "PENDING",
      "statusText": "Pending",
      "createdAt": "string",
      "vaultID": "string",
      "description": "string",
      "isApproved": true,
      "accountID": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [OperationInfo] true none Items

ListResponseParticipants

{
  "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"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [ParticipantDetails] true none Items

ListResponseVaults

{
  "totalItems": 0,
  "items": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "cryptoKind": "ECDSA",
      "providerKind": "string",
      "isActive": true,
      "status": "NOT_INITIALIZED",
      "statusText": "Waiting for participants to join",
      "providerData": "string",
      "pendingOperations": 0,
      "hierarchy": "NONE",
      "isDeletable": true,
      "approvalStructure": "QUORUM",
      "creationTime": "string",
      "modificationTime": "string",
      "offline": true
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [VaultInfo] true none Items

OAuthTokenRequest

{
  "grant_type": "password",
  "username": "string",
  "code": "string",
  "redirect_uri": "string",
  "client_id": "string",
  "password": "string",
  "refresh_token": "string",
  "id_token": "string"
}

Properties

Name Type Required Restrictions Description
grant_type string true none Request's grant type
username string false none none
code string false none used for OIDC
redirect_uri string false none used for OIDC
client_id string false none none
password string false none password
refresh_token string false none refresh token
id_token string false none used for OIDC

Enumerated Values

Property Value
grant_type password
grant_type id_token
grant_type authorization_code
grant_type refresh_token

OauthTokenResponse

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

Properties

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

OauthTokenWithRefreshResponse

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

Properties

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

OfflineParticipantsOperationsResponse

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

Properties

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

OperationDetails

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string"
}

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID
kind string true none Operation kind
status string true none Operation status.

The status field has the following possible values:
- PENDING - waiting for participant approval.
- PENDING_ACTIVATION - used for rejoining a quorum vault operation.
- WAITING_DATA_COLLECTION - waiting for data collector data.

The sign operation finishes with one of these status values:
- CANCELED - user canceled the operation.
- FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes.
- ERROR - the CASP server encountered an internal error.
- COMPLETED
- When working without built-in Wallet - enough participants approved and CASP has the signature.
- When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger.
- REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies.
statusText string true none Operation status text
createdAt string true none Operation creation time
vaultID string true none Vault ID
description string false none Description of the operation
isApproved boolean true none Approval state for the operation
accountID string true none Account ID for the operation
groups [ApprovalGroupDetails] true none Operation approval groups
policyDetails PolicyDetails false none none
vaultName string true none Item name for the operation

Enumerated Values

Property Value
kind JOIN_VAULT
kind REJOIN_VAULT
kind JOIN_VAULT_ADMIN_QUORUM
kind JOIN_POLICY_VAULT
kind ADD_MEMBER
kind ADMIN_QUORUM_APPROVAL
kind QUORUM_SIGN
kind CALCULATE_PUBLIC_KEY
kind UPDATE_VAULT_ATTRIBUTES
kind ERROR
status PENDING
status WAITING_DATA_COLLECTION
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status REJECTED
status CANCELED
status FAILED
status ERROR
statusText Pending
statusText Pending activation
statusText Approved
statusText Completed
statusText Rejected
statusText Canceled
statusText Failed
statusText N/A

OperationInfo

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

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID
kind string true none Operation kind
status string true none Operation status.

The status field has the following possible values:
- PENDING - waiting for participant approval.
- PENDING_ACTIVATION - used for rejoining a quorum vault operation.
- WAITING_DATA_COLLECTION - waiting for data collector data.

The sign operation finishes with one of these status values:
- CANCELED - user canceled the operation.
- FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes.
- ERROR - the CASP server encountered an internal error.
- COMPLETED
- When working without built-in Wallet - enough participants approved and CASP has the signature.
- When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger.
- REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies.
statusText string true none Operation status text
createdAt string true none Operation creation time
vaultID string true none Vault ID
description string false none Description of the operation
isApproved boolean true none Approval state for the operation
accountID string true none Account ID for the operation

Enumerated Values

Property Value
kind JOIN_VAULT
kind REJOIN_VAULT
kind JOIN_VAULT_ADMIN_QUORUM
kind JOIN_POLICY_VAULT
kind ADD_MEMBER
kind ADMIN_QUORUM_APPROVAL
kind QUORUM_SIGN
kind CALCULATE_PUBLIC_KEY
kind UPDATE_VAULT_ATTRIBUTES
kind ERROR
status PENDING
status WAITING_DATA_COLLECTION
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status REJECTED
status CANCELED
status FAILED
status ERROR
statusText Pending
statusText Pending activation
statusText Approved
statusText Completed
statusText Rejected
statusText Canceled
statusText Failed
statusText N/A

OperationResponse

{
  "operationID": "string"
}

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID

OperationViewInfo

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "string",
  "vaultName": "string",
  "providerKind": "string"
}

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID
kind string true none Operation kind
status string true none Operation status.

The status field has the following possible values:
- PENDING - waiting for participant approval.
- PENDING_ACTIVATION - used for rejoining a quorum vault operation.
- WAITING_DATA_COLLECTION - waiting for data collector data.

The sign operation finishes with one of these status values:
- CANCELED - user canceled the operation.
- FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes.
- ERROR - the CASP server encountered an internal error.
- COMPLETED
- When working without built-in Wallet - enough participants approved and CASP has the signature.
- When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger.
- REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies.
statusText string true none Operation status text
createdAt string true none Operation creation time
vaultID string true none Vault ID
description string false none Description of the operation
isApproved boolean true none Approval state for the operation
accountID string true none Account ID for the operation
vaultName string true none Vault Name
providerKind string false none Provider Kind

Enumerated Values

Property Value
kind JOIN_VAULT
kind REJOIN_VAULT
kind JOIN_VAULT_ADMIN_QUORUM
kind JOIN_POLICY_VAULT
kind ADD_MEMBER
kind ADMIN_QUORUM_APPROVAL
kind QUORUM_SIGN
kind CALCULATE_PUBLIC_KEY
kind UPDATE_VAULT_ATTRIBUTES
kind ERROR
status PENDING
status WAITING_DATA_COLLECTION
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status REJECTED
status CANCELED
status FAILED
status ERROR
statusText Pending
statusText Pending activation
statusText Approved
statusText Completed
statusText Rejected
statusText Canceled
statusText Failed
statusText N/A

Operations

{
  "total": 0,
  "pending": 0
}

Properties

Name Type Required Restrictions Description
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

ParticipantDetails

{
  "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"
}

Properties

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 false 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 REACTIVATING
status SUSPENDED
status REVOKED
deviceType IOS
deviceType ANDROID
deviceType BOT

ParticipantGroupResponse

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

Properties

Name Type Required Restrictions Description
vaultId string true none Vault ID
vaultName string true none Vault 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)

ParticipantInfo

{
  "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",
  "admin": true,
  "approver": true
}

Properties

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
admin boolean false none Participant has authentication capabilities
approver boolean false none Participant has approver capabilities

Enumerated Values

Property Value
status NOT_ACTIVATED
status ACTIVATED
status REACTIVATING
status SUSPENDED
status REVOKED

ParticipantStatusChangeResponse

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

Properties

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 ApprovalGroupAccount true none none
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

Participants

{
  "total": 0,
  "inactive": 0
}

Properties

Name Type Required Restrictions Description
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

PolicyDetails

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

Properties

Name Type Required Restrictions Description
id string true none Policy id
name string true none Policy name

PolicyUpdateDetails

{
  "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
      }
    ],
    "attributes": [
      {
        "id": "string",
        "op": "string",
        "value": "string"
      }
    ]
  },
  "isOffline": true
}

Properties

Name Type Required Restrictions Description
name string true none policy name
id string true none none
description string false none Policy description
enabled boolean false none is the policy enabled, default is TRUE
timeZone string false none Policy time zone, default is UTC
rules Rules false none none
isOffline boolean false none Policy offline property

Range

{
  "min": "string",
  "max": "string"
}

Properties

Name Type Required Restrictions Description
min string true none min value
max string true none max value

RegenerateActivationCodeRequest

{
  "vaults": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
vaults [string] false none List of vaultIds to trigger 'rejoin' operation

RegenerateDataCollectorActivationCodeResponse

{
  "activationCode": "string"
}

Properties

Name Type Required Restrictions Description
activationCode string false none none

RejectionCauseDetailsResponse

{
  "text": "string",
  "reason": "string",
  "decliningParticipant": {
    "participantId": "string",
    "participantName": "string"
  },
  "rejectedPolicy": {
    "policyName": "string",
    "policyId": "string"
  }
}

Properties

Name Type Required Restrictions Description
text string false none none
reason string false none none
decliningParticipant DecliningParticipantDetails false none none
rejectedPolicy RejectionPolicyDetails false none none

RejectionPolicyDetails

{
  "policyName": "string",
  "policyId": "string"
}

Properties

Name Type Required Restrictions Description
policyName string true none Sign operation rejection policy name
policyId string false none none

RejoinVaultErrorResponse

{
  "vaultId": "string",
  "vaultName": "string",
  "error": "string"
}

Properties

Name Type Required Restrictions Description
vaultId string true none Vault ID
vaultName string true none Vault Name
error string true none Rejoin error

RestoreUserPasswordRequest

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

Properties

Name Type Required Restrictions Description
password string true none User's password
mustChangePassword boolean false none User must change password. default value: 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
    }
  ],
  "attributes": [
    {
      "id": "string",
      "op": "string",
      "value": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
weeklyTimeSlots [ValidTimeSlot] false none none
amountRange object false none none
» additionalProperties AmountRange false none none
whiteList [string] false none none
derivedWhitelist [BipPublicNode] false none none
attributes [AttributeRuleDetailsResponse] false none none

SignAuditItem

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "participantId": "string",
  "participantName": "string",
  "rawTransaction": [
    "string"
  ],
  "amount": 0,
  "assetType": "string",
  "toAddress": [
    "string"
  ],
  "isWhitelisted": true,
  "whitelistAddress": "string",
  "description": "string",
  "policyName": "string",
  "operationID": "string",
  "dataToSign": "string",
  "publicKey": "string",
  "signature": "string",
  "keySpec": "string",
  "operationState": "string",
  "rejectionReason": "string",
  "policyID": "string",
  "dataCollectorId": "string",
  "collectedData": "string"
}

Properties

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
participantId string false none none
participantName string 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
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
operationState string false none none
rejectionReason string false none none
policyID string false none none
dataCollectorId string false none none
collectedData string false none none

SignMetadata

{
  "operationID": "string",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "publicKeys": [
    "string"
  ],
  "dataToSign": [
    "string"
  ],
  "signatures": [
    "string"
  ],
  "v": [
    0
  ],
  "providerData": "string",
  "details": "string",
  "rawTransactions": [
    "string"
  ],
  "ledgerHashAlgorithm": "IGNORE",
  "callbackUrl": "string",
  "subAccount": 0,
  "keySpecs": {
    "indexNofPairs": [
      {
        "index": 0,
        "numberOfFragments": 0
      }
    ]
  },
  "rejectionCause": {
    "text": "string",
    "reason": "string",
    "decliningParticipant": {
      "participantId": "string",
      "participantName": "string"
    },
    "rejectedPolicy": {
      "policyName": "string",
      "policyId": "string"
    }
  },
  "collectedData": {
    "collectionComplete": true,
    "dataCollectionGroups": [
      {
        "minimumRequired": 0,
        "collectedData": [
          {
            "dataCollectorDetails": {
              "id": "string",
              "name": "string",
              "state": "string",
              "description": "string",
              "activationCode": "string",
              "attributeTemplateGroup": {
                "id": "string",
                "attributeTemplates": [
                  "string"
                ]
              },
              "creationTime": "string",
              "modificationTime": "string",
              "authenticationKey": "string"
            },
            "data": {
              "property1": "string",
              "property2": "string"
            },
            "collectionDone": true,
            "signedUniqueData": "string",
            "collectionStart": 0,
            "collectionEnd": 0
          }
        ]
      }
    ]
  }
}

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID
status string true none Operation status.

The status field has the following possible values:
- PENDING - waiting for participant approval.
- PENDING_ACTIVATION - used for rejoining a quorum vault operation.
- WAITING_DATA_COLLECTION - waiting for data collector data.

The sign operation finishes with one of these status values:
- CANCELED - user canceled the operation.
- FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes.
- ERROR - the CASP server encountered an internal error.
- COMPLETED
- When working without built-in Wallet - enough participants approved and CASP has the signature.
- When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger.
- REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies.
statusText string true none Operation status text
createdAt string true none Operation creation time
vaultID string true none Vault ID
description string false none Description of the operation
isApproved boolean true none Approval state for the operation
accountID string true none Account ID for the operation
groups [ApprovalGroupDetails] true none Operation approval groups
policyDetails PolicyDetails false none none
vaultName string true none Item name for the operation
publicKeys [string] true none The public keys corresponding to the private keys that will sign the data
dataToSign [string] true none List data to sign
signatures [string] false none Signatures. Each signature is 64 bytes, with 32 bytes R and 32 bytes S (in big-endian order).
v [integer] false none This parameter returns raw values 0 or 1, which can be used to recover the public key from the generated signature.
providerData string false 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.
details string false none This is a field that can be used to store operation information as a JSON string in the CASP database. The information can subsequently be sent to the end point for display.
rawTransactions [string] false none An array of raw transaction strings that are sent to ledger.
The strings must all have the same format, where the format of the strings depends on the ledger's hash algorithm:
- For SHA3_256, it is a hex encoded string.
- For DOUBLE_SHA256, it is a hex encoded string.
- For SHA256, it is a hex encoded string.
- For PLAIN, it is a base64 string.
- For IGNORE do not compare.
ledgerHashAlgorithm string false none Algorithm used to create data to sign
callbackUrl string false none URL to get back to task initiator
subAccount integer(int32) false none the sub account index
keySpecs KeySpecResponse false none none
rejectionCause RejectionCauseDetailsResponse false none none
collectedData CollectedDataGroupsDetails false none none

Enumerated Values

Property Value
status PENDING
status WAITING_DATA_COLLECTION
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status REJECTED
status CANCELED
status FAILED
status ERROR
statusText Pending
statusText Pending activation
statusText Approved
statusText Completed
statusText Rejected
statusText Canceled
statusText Failed
statusText N/A
ledgerHashAlgorithm IGNORE
ledgerHashAlgorithm PLAIN
ledgerHashAlgorithm SHA256
ledgerHashAlgorithm DOUBLE_SHA256
ledgerHashAlgorithm SHA3_256

SignOperationAuditItem

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "participantId": "string",
  "participantName": "string",
  "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
}

Properties

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
participantId string false none none
participantName string 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

SignRequest

{
  "keySpecs": {
    "totsParams": [
      {
        "index": 0,
        "numberOfFragments": 1
      }
    ]
  },
  "dataToSign": [
    "string"
  ],
  "publicKeys": [
    "string"
  ],
  "derivationStrings": [
    "string"
  ],
  "description": "string",
  "providerData": "string",
  "details": "string",
  "callbackUrl": "string",
  "allowConcurrentKeyUsage": true,
  "rawTransactions": [
    "string"
  ],
  "ledgerHashAlgorithm": "PLAIN",
  "changeAddressDerivationString": "string",
  "decimals": [
    0
  ],
  "ledger": "string",
  "derivedWhitelistChildNumbers": [
    0
  ]
}

Properties

Name Type Required Restrictions Description
keySpecs KeySpecsRequest false none none
dataToSign [string] true none Data to be signed (as list of Hex strings).
publicKeys [string] false none Public keys. Either publicKeys or derivationStrings must be provided.
derivationStrings [string] false none The derivation paths to sign. Either publicKeys or derivationStrings must be provided.
description string true none Description of the sign request
providerData string false 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.
details string false none This is a field that can be used to store operation information as a JSON string in the CASP database. The information can subsequently be sent to the end point for display.
callbackUrl string false none URL to get back to task initiator
allowConcurrentKeyUsage boolean false none Allow concurrent key usage. The default is false.

false - allows only one ongoing sign operation per key. Any new incoming sign request that specifies a key already in involved in an active sign operation is rejected.

true - allows starting multiple sign operations that specify the same key. Coordinating sign requests is something that app needs to handle. A single sign request can contain multiple hashes to sign. In a single sign request, a specific key can sign multiple hashes or multiple different keys can sign multiple hashes.
rawTransactions [string] false none An array of raw transactions ledger in the specific ledger format (as list of Hex strings).
ledgerHashAlgorithm string false none Algorithm used to calculate data to sign
changeAddressDerivationString string false none the derivation string of the change address
decimals [integer] false none Decimals of cryptocurrency units
ledger string false none The ledger on which the transaction takes place
derivedWhitelistChildNumbers [integer] false none A list of child numbers for a derived whitelist

Enumerated Values

Property Value
ledgerHashAlgorithm PLAIN
ledgerHashAlgorithm SHA256
ledgerHashAlgorithm DOUBLE_SHA256
ledgerHashAlgorithm SHA3_256
ledgerHashAlgorithm BTC_SEGWIT

SignRequestRejectedErrorResponse

{
  "type": "string",
  "title": "string",
  "details": "string",
  "status": 0,
  "rejectionCauseResponse": {
    "text": "string",
    "reason": "string",
    "decliningParticipant": {
      "participantId": "string",
      "participantName": "string"
    },
    "rejectedPolicy": {
      "policyName": "string",
      "policyId": "string"
    }
  }
}

Properties

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(int32) true none Original HTTP status code
rejectionCauseResponse RejectionCauseDetailsResponse true none none

SignsAuditResponse

{
  "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,
      "participantId": "string",
      "participantName": "string",
      "rawTransaction": [
        "string"
      ],
      "amount": 0,
      "assetType": "string",
      "toAddress": [
        "string"
      ],
      "isWhitelisted": true,
      "whitelistAddress": "string",
      "description": "string",
      "policyName": "string",
      "operationID": "string",
      "dataToSign": "string",
      "publicKey": "string",
      "signature": "string",
      "keySpec": "string",
      "operationState": "string",
      "rejectionReason": "string",
      "policyID": "string",
      "dataCollectorId": "string",
      "collectedData": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [SignAuditItem] true none Items

Stats

{
  "participants": {
    "total": 0,
    "inactive": 0
  },
  "operations": {
    "total": 0,
    "pending": 0
  },
  "vaults": {
    "total": 0,
    "inactive": 0,
    "pending": 0
  }
}

Properties

Name Type Required Restrictions Description
participants Participants true none none
operations Operations true none none
vaults Vaults true none none

SupportedLedgerResponse

{
  "ledgerName": "string"
}

Properties

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

SystemDetails

{
  "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"
  }
}

Properties

Name Type Required Restrictions Description
version string true none none
instanceId string true none none
ukc Entity true none none
db DBEntity true none none
nativeCrypto Entity true none none
fcm Entity true none none

TrustedInstanceInfoListResponse

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

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total items
items [TrustedInstanceInfoResponse] true none Trusted instances

TrustedInstanceInfoResponse

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

Properties

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

TrustedSystemsAuditItem

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

Properties

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
participantId string false none none
participantName string 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

TrustedSystemsAuditResponse

{
  "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,
      "participantId": "string",
      "participantName": "string",
      "operationId": "string",
      "operationKind": "string",
      "operationStatus": "string",
      "trustedInstanceId": "string",
      "vaultId": "string",
      "vaultName": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [TrustedSystemsAuditItem] true none Items

UkcVaultKey

{
  "ukcKeyId": "string"
}

Properties

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

UpdateAccountRequest

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

Properties

Name Type Required Restrictions Description
name string true none Account name
isGlobal boolean false none Is account global

UpdateAttributeTemplateGroupRequest

{
  "id": "string",
  "attributeTemplates": [
    "string"
  ],
  "description": "string"
}

Properties

Name Type Required Restrictions Description
id string false none none
attributeTemplates [string] false none none
description string false none none

UpdateAttributeTemplateRequest

{
  "id": "string",
  "description": "string",
  "type": "string",
  "range": {
    "min": "string",
    "max": "string"
  }
}

Properties

Name Type Required Restrictions Description
id string true none Vault attribute ID
description string true none Vault attribute description
type string true none Vault attribute type
range Range true none none

UpdateDataCollectorRequest

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

Properties

Name Type Required Restrictions Description
name string false none none
state string true none none
description string false none none

Enumerated Values

Property Value
state NOT_ACTIVATED
state ACTIVATED
state SUSPENDED
state REVOKED

UpdateParticipantStatusRequest

{
  "status": "DEACTIVATED"
}

Properties

Name Type Required Restrictions Description
status string true none ParticipantWithVault status in vault

Enumerated Values

Property Value
status DEACTIVATED
status SUSPENDED
status REVOKED
status ACTIVATED

UpdateParticipantStatusWithPolicyRequest

{
  "status": "DEACTIVATED",
  "policyId": "string"
}

Properties

Name Type Required Restrictions Description
status string true none ParticipantWithVault status in vault
policyId string false none The policy ID in which to change a participant's status. If none is specified, the participant's status will be changed in the admin quorum.

Enumerated Values

Property Value
status DEACTIVATED
status SUSPENDED
status REVOKED
status ACTIVATED

UpdateParticipateRequest

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

Properties

Name Type Required Restrictions Description
name string false none ParticipantWithVault name
email string false none ParticipantWithVault email
role string false none ParticipantWithVault role
status string false none ParticipantWithVault status
deviceType string false none Participant device type

Enumerated Values

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

UpdateUserRequest

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

Properties

Name Type Required Restrictions Description
name string false none new user name
loginName string false none new user login name
status string false none User status
role string false none User's role
email string false none none
locked boolean false none Is user locked

Enumerated Values

Property Value
status ACTIVATED
status SUSPENDED
status REVOKED
role Super_User
role Security_Officer
role Trader

UpdateVaultAttributesOperationDetails

{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true
    }
  ],
  "policyDetails": {
    "id": "string",
    "name": "string"
  },
  "vaultName": "string",
  "newVaultAttributes": {
    "property1": "string",
    "property2": "string"
  },
  "oldVaultAttributes": {
    "property1": "string",
    "property2": "string"
  }
}

Properties

Name Type Required Restrictions Description
operationID string true none Operation ID
kind string true none Operation kind
status string true none Operation status.

The status field has the following possible values:
- PENDING - waiting for participant approval.
- PENDING_ACTIVATION - used for rejoining a quorum vault operation.
- WAITING_DATA_COLLECTION - waiting for data collector data.

The sign operation finishes with one of these status values:
- CANCELED - user canceled the operation.
- FAILED - set by a wallet if, for example, the wallet's call to the ledger failed. Also set if the CASP service was not able to sign any of the provided hashes.
- ERROR - the CASP server encountered an internal error.
- COMPLETED
- When working without built-in Wallet - enough participants approved and CASP has the signature.
- When working with built-in Wallet - the wallet successfully sent the signed transaction to the ledger.
- REJECTED - a participant rejected the operation, a rejection policy was selected when CASP was processing policies, or no policy was selected when CASP was processing policies.
statusText string true none Operation status text
createdAt string true none Operation creation time
vaultID string true none Vault ID
description string false none Description of the operation
isApproved boolean true none Approval state for the operation
accountID string true none Account ID for the operation
groups [ApprovalGroupDetails] true none Operation approval groups
policyDetails PolicyDetails false none none
vaultName string true none Item name for the operation
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 JOIN_VAULT
kind REJOIN_VAULT
kind JOIN_VAULT_ADMIN_QUORUM
kind JOIN_POLICY_VAULT
kind ADD_MEMBER
kind ADMIN_QUORUM_APPROVAL
kind QUORUM_SIGN
kind CALCULATE_PUBLIC_KEY
kind UPDATE_VAULT_ATTRIBUTES
kind ERROR
status PENDING
status WAITING_DATA_COLLECTION
status PENDING_ACTIVATION
status APPROVED
status COMPLETED
status REJECTED
status CANCELED
status FAILED
status ERROR
statusText Pending
statusText Pending activation
statusText Approved
statusText Completed
statusText Rejected
statusText Canceled
statusText Failed
statusText N/A

UpdateVaultAttributesRequest

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

Properties

Name Type Required Restrictions Description
newVaultAttributes object false none none
» additionalProperties string false none none
description string false none none

UpdateVaultDataCollectorsGroupsRequest

{
  "newDataCollectorsGroups": [
    {
      "name": "string",
      "attributeTemplateGroup": "string",
      "ids": [
        "string"
      ],
      "minimumRequired": 1
    }
  ],
  "description": "string"
}

Properties

Name Type Required Restrictions Description
newDataCollectorsGroups [DataCollectorsGroupDetails] true none Vault data collectors groups
description string false none none

UpdateVaultRequest

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

Properties

Name Type Required Restrictions Description
name string true none Vault name
description string false none vault description

UserAuditItem

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "participantId": "string",
  "participantName": "string",
  "vaultId": "string",
  "vaultName": "string",
  "userId": "string",
  "userName": "string",
  "userRole": "string",
  "userEmail": "string",
  "userStatus": "string"
}

Properties

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
participantId string false none none
participantName string 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

UserInfoResponse

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

Properties

Name Type Required Restrictions Description
id string true none User ID
name string false none User name
loginName string true none User login name
status string true none User status
role string true none User role
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
authType string true none Authentication type

Enumerated Values

Property Value
authType OIDC
authType OAUTH

UsersAuditResponse

{
  "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,
      "participantId": "string",
      "participantName": "string",
      "vaultId": "string",
      "vaultName": "string",
      "userId": "string",
      "userName": "string",
      "userRole": "string",
      "userEmail": "string",
      "userStatus": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [UserAuditItem] true none Items

ValidTimeSlot

{
  "days": "string",
  "timeStart": "string",
  "timeEnd": "string"
}

Properties

Name Type Required Restrictions Description
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 UTC time of day in the following format: HH:MM
timeEnd string true none UTC time of day in the following format: HH:MM

VaultApprovalGroup

{
  "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": "ACTIVATED",
      "isOffline": true
    }
  ],
  "requiredApprovals": 0,
  "order": 0,
  "deactivateAllowed": true,
  "isOffline": true,
  "sparePartiesLeft": 0
}

Properties

Name Type Required Restrictions Description
name string true none Approval group name
members [ApprovalGroupParticipant] true none A list of participants in the group
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

VaultAuditItem

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "participantId": "string",
  "participantName": "string",
  "operationId": "string",
  "vaultId": "string",
  "vaultName": "string",
  "userId": "string",
  "userName": "string",
  "operationKind": "string",
  "adminQuorum": "string",
  "policies": "string",
  "derivationString": "string"
}

Properties

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
participantId string false none none
participantName string 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
operationKind string false none none
adminQuorum string false none none
policies string false none none
derivationString string false none none

VaultBackupData

{
  "vaultID": "string",
  "backupData": "string",
  "publicKey": "string"
}

Properties

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

VaultDetails

{
  "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": "ACTIVATED",
          "isOffline": true
        }
      ],
      "requiredApprovals": 0,
      "order": 0,
      "deactivateAllowed": true,
      "isOffline": true,
      "sparePartiesLeft": 0
    }
  ],
  "id": "string",
  "name": "string",
  "accountID": "string",
  "status": "NOT_INITIALIZED",
  "statusText": "Waiting for participants to join",
  "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": "ACTIVATED",
              "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
          }
        ],
        "attributes": [
          {
            "id": "string",
            "op": "string",
            "value": "string"
          }
        ]
      },
      "isOffline": true,
      "policyKind": "APPROVAL"
    }
  ],
  "isOffline": true,
  "approvalStructure": "QUORUM",
  "attributes": {
    "property1": "string",
    "property2": "string"
  },
  "dataCollectorsGroups": [
    {
      "name": "string",
      "attributeTemplateGroup": "string",
      "ids": [
        "string"
      ],
      "minimumRequired": 1
    }
  ],
  "creationTime": "string",
  "modificationTime": "string"
}

Properties

Name Type Required Restrictions Description
description string false none Vault description
groups [VaultApprovalGroup] true none Vault approval groups
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 textual status
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 false 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 [WithdrawalPolicyDetails] false none Vault policies
isOffline boolean false none is offline/online vault property
approvalStructure string true none Is Vault approval structure
attributes object false none Vault's attributes
» additionalProperties string false none none
dataCollectorsGroups [DataCollectorsGroupDetails] false none Vault data collectors groups
creationTime string true none Vault creation time
modificationTime string true none Vault last modification time

Enumerated Values

Property Value
status NOT_INITIALIZED
status INITIALIZED
status DEACTIVATED
statusText Waiting for participants to join
statusText Ready
statusText Deactivated
statusText N/A
cryptoKind ECDSA
cryptoKind EDDSA
approvalStructure QUORUM
approvalStructure POLICY
approvalStructure STAKING_POLICIES

VaultInfo

{
  "id": "string",
  "name": "string",
  "description": "string",
  "cryptoKind": "ECDSA",
  "providerKind": "string",
  "isActive": true,
  "status": "NOT_INITIALIZED",
  "statusText": "Waiting for participants to join",
  "providerData": "string",
  "pendingOperations": 0,
  "hierarchy": "NONE",
  "isDeletable": true,
  "approvalStructure": "QUORUM",
  "creationTime": "string",
  "modificationTime": "string",
  "offline": true
}

Properties

Name Type Required Restrictions Description
id string true none Vault ID
name string true none Vault name
description string false 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 false 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
offline boolean true none Is Vault is offline

Enumerated Values

Property Value
cryptoKind ECDSA
cryptoKind EDDSA
status NOT_INITIALIZED
status INITIALIZED
status DEACTIVATED
statusText Waiting for participants to join
statusText Ready
statusText Deactivated
hierarchy NONE
hierarchy BIP32
hierarchy BIP44
approvalStructure QUORUM
approvalStructure POLICY
approvalStructure STAKING_POLICIES

VaultOperationAuditItem

{
  "auditSeverity": "string",
  "event": "string",
  "initiatorId": "string",
  "initiatorName": "string",
  "timestamp": "string",
  "duration": 0,
  "error": "string",
  "details": "string",
  "accountId": "string",
  "accountName": "string",
  "version": 0,
  "participantId": "string",
  "participantName": "string",
  "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"
}

Properties

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
participantId string false none none
participantName string 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

VaultPublicKeyResponse

{
  "publicKey": "string"
}

Properties

Name Type Required Restrictions Description
publicKey string true none Vault's public key

Vaults

{
  "total": 0,
  "inactive": 0,
  "pending": 0
}

Properties

Name Type Required Restrictions Description
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

VaultsAuditResponse

{
  "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,
      "participantId": "string",
      "participantName": "string",
      "operationId": "string",
      "vaultId": "string",
      "vaultName": "string",
      "userId": "string",
      "userName": "string",
      "operationKind": "string",
      "adminQuorum": "string",
      "policies": "string",
      "derivationString": "string"
    }
  ]
}

Properties

Name Type Required Restrictions Description
totalItems integer(int32) true none Total Items
items [VaultAuditItem] true none Items

WithdrawalPolicy

{
  "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
      }
    ],
    "attributes": [
      {
        "id": "string",
        "op": "string",
        "value": "string"
      }
    ]
  },
  "policyKind": "APPROVAL"
}

Properties

Name Type Required Restrictions Description
name string true none policy name
description string false none Policy description
enabled boolean false none is the policy enabled, default is TRUE
isOffline boolean false none Is policy offline, for offline vaults default is true, for online vaults default is false
timeZone string false none Policy time zone, default is UTC
groups [ApprovalGroup] false none none
rules Rules false none none
policyKind string true none Policy policyKind

Enumerated Values

Property Value
policyKind APPROVAL
policyKind REJECTION

WithdrawalPolicyDetails

{
  "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": "ACTIVATED",
          "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
      }
    ],
    "attributes": [
      {
        "id": "string",
        "op": "string",
        "value": "string"
      }
    ]
  },
  "isOffline": true,
  "policyKind": "APPROVAL"
}

Properties

Name Type Required Restrictions Description
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 [ApprovalGroupDetails] true none Approval groups
rules Rules false none none
isOffline boolean false none is policy offline, default is TRUE
policyKind string false none Policy kind, can be APPROVAL or REJECTION

Enumerated Values

Property Value
policyKind APPROVAL
policyKind REJECTION

Authentication