Unbound Crypto Asset Security Platform ("CASP") Management API v1.0.2112
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:
- Unbound CASP Release Notes - information about CASP APIs.
- Unbound CASP FAQ - Frequently asked questions.
- Unbound CASP User Guide - contains system requirements, installation instructions, and more.
For more information about the BIP standards, see:
- BIP32 - HD wallets - information about the BIP32 standard for hierarchical deterministic wallets.
- BIP44 - multi-account wallets - information about the BIP44 standard for multi-account hierarchy for deterministic wallets.
- SLIP44 - coin types - defines the index values for the coin types.
Base URLs:
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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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 | AttributeTemplateDetails |
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('https://casp-server/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 https://casp-server/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 | AttributeTemplateDetails |
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('https://casp-server/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 https://casp-server/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 | AttributeTemplateDetails |
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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "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('https://casp-server/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 https://casp-server/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",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "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('https://casp-server/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 https://casp-server/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",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "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('https://casp-server/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 https://casp-server/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 | AttributeTemplateDetails |
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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "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('https://casp-server/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 https://casp-server/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",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "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('https://casp-server/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 https://casp-server/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",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "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('https://casp-server/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 https://casp-server/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",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/casp/api/v1.0/mng/idps \
-H 'Accept: application/json'
GET /casp/api/v1.0/mng/idps
List Identity Providers. Pass through call that returns the Identity Providers that are configured in CORE.
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('https://casp-server/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 https://casp-server/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 CORE.
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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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 |
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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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 |
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('https://casp-server/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 https://casp-server/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 | Bad request | CASPErrorResponse |
500 | Internal Server Error | Internal error | CASPErrorResponse |
Remove an operator
Code samples
const headers = {
'Accept':'*/*',
'Authorization':'API_KEY'
};
fetch('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/casp/api/v1.0/mng/participants/{participantid}/activateOffline \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /casp/api/v1.0/mng/participants/{participantid}/activateOffline
Activate a participant in CASP
Body parameter
"string"
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
participantid | path | string | true | Participant ID |
body | body | string | true | Offline activation request |
Example responses
200 Response
{
"id": "string",
"name": "string",
"email": "string",
"role": "string",
"accountID": "string",
"accountName": "string",
"status": "NOT_ACTIVATED",
"loginName": "string",
"responseSignKey": "string",
"creationTime": "string",
"modificationTime": "string",
"lastLoginTime": "string",
"approver": true,
"admin": true
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Participant activated successfully | 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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/casp/api/v1.0/mng/reports/accounts \
-H 'Accept: text/csv' \
-H 'Accept: string'
GET /casp/api/v1.0/mng/reports/accounts
Create a report containg account details.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
Accept | header | string | false | none |
fromDate | query | string | false | Search accounts by creation time starting from fromDate . fromDate should be valid ISO 8601 date time string |
toDate | query | string | false | Search accounts by creation time till toDate . fromDate should be valid ISO 8601 date time string |
accountID | query | string | false | Search the accounts by account ID |
accountName | query | string | false | Search the users by account name , partial word search is allowed |
isGlobal | query | boolean | false | Search the accounts by is account global |
sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending by account creation time. The column name can be one of the following: accountName |
Example responses
200 Response
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | 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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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",
"incomingTransactionVault": true,
"incomingTransactionVaultId": "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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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('https://casp-server/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 https://casp-server/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 |
AttributeTemplateDetails
{
"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 |
AttributeTemplateGroupDetails
{
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | false | none | none |
description | string | false | none | none |
attributeTemplateDetails | [AttributeTemplateDetails] | 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 |
CollectedData
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "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 |
CollectedDataGroupsDetails
{
"collectionComplete": true,
"dataCollectionGroups": [
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
collectionComplete | boolean | false | none | none |
dataCollectionGroups | [DataCollectionGroup] | 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 |
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 |
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
}
],
"incomingTransactionVault": true,
"incomingTransactionVaultId": "string"
}
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 |
incomingTransactionVault | boolean | false | none | Is the vault used for singing incoming transactions |
incomingTransactionVaultId | string | false | none | vault ID which would be used for singing incoming transactions |
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 |
DataCollectionGroup
{
"minimumRequired": 0,
"collectedData": [
{
"dataCollectorDetails": {
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
minimumRequired | integer(int32) | false | none | none |
collectedData | [CollectedData] | false | none | none |
name | string | false | none | none |
DataCollectorDetails
{
"id": "string",
"name": "string",
"state": "string",
"description": "string",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {
"min": "string",
"max": "string"
}
}
]
},
"activationCode": "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 |
creationTime | string | false | none | none |
modificationTime | string | false | none | none |
authenticationKey | string | false | none | none |
attributeTemplateGroup | AttributeTemplateGroupDetails | false | none | none |
activationCode | 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 |
IncomingTransactionSignRequest
{
"callbackUrl": "string",
"ledger": "string",
"rawTransactions": [
"string"
],
"description": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
callbackUrl | string | false | none | Callback URL |
ledger | string | false | none | Ledger |
rawTransactions | [string] | true | none | Raw transactions |
description | string | true | none | description |
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 | [AttributeTemplateDetails] | 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 |
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",
"approver": true,
"admin": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | Participant ID |
name | string | true | none | Participant name |
string | true | none | Participant email | |
role | string | true | none | Participant role |
accountID | string | true | none | Participant account ID |
accountName | string | true | none | Participant account alias |
status | string | true | none | Participant status |
loginName | string | false | none | User login name |
responseSignKey | string | true | none | Transaction sign key for transaction verifications |
creationTime | string | true | none | Participant creation time |
modificationTime | string | true | none | Participant last modification time |
lastLoginTime | string | false | none | User last login time |
approver | boolean | false | none | Participant has approver capabilities |
admin | boolean | false | none | Participant has authentication capabilities |
Enumerated Values
Property | Value |
---|---|
status | NOT_ACTIVATED |
status | ACTIVATED |
status | 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",
"creationTime": "string",
"modificationTime": "string",
"authenticationKey": "string",
"attributeTemplateGroup": {
"id": "string",
"description": "string",
"attributeTemplateDetails": [
{
"id": "string",
"description": "string",
"type": "string",
"range": {}
}
]
},
"activationCode": "string"
},
"data": {
"property1": "string",
"property2": "string"
},
"collectionDone": true,
"signedUniqueData": "string",
"collectionStart": 0,
"collectionEnd": 0
}
],
"name": "string"
}
]
},
"vaultAttributes": {
"property1": "string",
"property2": "string"
}
}
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 |
vaultAttributes | object | false | none | Vault`s attributes |
» additionalProperties | string | 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 |
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 |
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 |
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",
"incomingTransactionVault": true,
"incomingTransactionVaultId": "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 |
incomingTransactionVault | boolean | false | none | Is vault used for incoming transaction approval |
incomingTransactionVaultId | string | false | none | vault ID that would be used for incoming transaction approval |
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
- API Key (Bearer)
- Parameter Name: Authorization, in: header.