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
BYOW Vault Operations
Refer to the Vault Operations section in the Unbound CASP Developers Guide.
Create new vault
Code samples
const inputBody = '{
  "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"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/vaults',
{
  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}/vaults \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/accounts/{accountId}/vaults
This request starts the process of creating a new vault. The vault is created only after the participants approve the vault creation according to the vault policy.
Note the following requirements depending on the value of cryptoKind:
- For TOTS - no curveName is needed
 - For EDDSA - curveName must be ED25519
 - For ECDSA - curveName can be either SECP256K1 (the default) or SECP256R1
 
Body parameter
{
  "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"
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| accountId | path | string | true | Account ID | 
| body | body | CreateVaultRequest | true | Create Vault Request | 
Example responses
201 Response
{
  "id": "string",
  "name": "string",
  "description": "string",
  "accountID": "string"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 201 | Created | New vault created successfully | CreateVaultDataResponse | 
| 404 | Not Found | Missing data | CASPErrorResponse | 
| 500 | Internal Server Error | Create vault failed | CASPErrorResponse | 
List BYOW vaults
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/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/accounts/{accountId}/vaults \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/accounts/{accountId}/vaults
List all vaults in the account. By default only active vaults are listed.
Note: If the parameters skip and limit are not specified or both are set to 0, then the response data contains a JSON list of the items. If those parameters are set (>0), then the response data is the JSON object shown here.
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| accountId | path | string | true | Account ID | 
| status | query | array[string] | false | Show vaults with one or more of the following statuses: pending, ready, deactivated | 
| providerKind | query | string | false | Filter by coin type | 
| filter | query | string | false | Search the vault names and descriptions | 
| sort | query | string | false | Specify the column name to sort by and the sort direction. The format is '{column_name}:{asc/desc}'. The default sort is ascending. The column name can be one of the following: Name, Provider, Description, Status, Offline  | 
| skip | query | integer(int32) | false | The number of results to skip from the beginning of the results after applying the filter and sort | 
| limit | query | integer(int32) | false | Maximum number of results to return | 
Enumerated Values
| Parameter | Value | 
|---|---|
| status | PENDING | 
| status | READY | 
| status | DEACTIVATED | 
Example responses
200 Response
{
  "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
    }
  ]
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ListResponseVaults | 
| 400 | Bad Request | Bad Request | CASPErrorResponse | 
| 404 | Not Found | Account not found | CASPErrorResponse | 
| 500 | Internal Server Error | List vaults per account failed | CASPErrorResponse | 
Get BYOW vault info
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{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/vaults/{id} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{id}
Get details of a vault
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| id | path | string | true | Vault ID | 
Example responses
200 Response
{
  "description": "string",
  "groups": [
    {
      "name": "string",
      "members": [
        {
          "approvedAt": "string",
          "id": "string",
          "isApproved": true,
          "name": "string",
          "status": "STARTED",
          "approvalGroupAccount": {
            "id": "string",
            "name": "string"
          },
          "label": "string",
          "isGlobal": true,
          "isActive": true,
          "globalStatus": "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 | OK | VaultDetails | 
| 404 | Not Found | Vault not found | CASPErrorResponse | 
| 500 | Internal Server Error | Get vault details failed | CASPErrorResponse | 
Create a new address
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses',
{
  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/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| coinType | path | integer(int32) | true | Coin type | 
| accountIndex | path | integer(int32) | true | Account index | 
| chain | path | string | true | Add vault group member request | 
| encoding | query | string | false | Key encoding | 
Enumerated Values
| Parameter | Value | 
|---|---|
| chain | change | 
| chain | external | 
| encoding | DER | 
| encoding | compressed | 
| encoding | uncompressed | 
| encoding | plain | 
Example responses
200 Response
{
  "publicKey": "string",
  "derivationString": "string"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | CreateBip44AddressResponse | 
| 400 | Bad Request | Bad request | CASPErrorResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
Start a signing process
Code samples
const inputBody = '{
  "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
  ]
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/sign',
{
  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}/sign \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{id}/sign
Starts the process of a signing operation.
- For a quorum vault, the operation finishes when the minimum number of participants approve the transaction signing operation.
 - You must provide a valid raw transaction.
 
You can check the task status by calling the /operations API. When the signature is ready it is provided in the response payload.
This service should be used when the blockchain management is done outside of CASP, as it only signs the transaction without sending it to the relevant blockchain.
Notes:
- Either publicKeys or derivationStrings must be provided.
 - The size of rawTransactions must match dataToSign and publicKeys, or it should not be passed at all.
 - If rawTransactions is provided, then the ledger or ledgerHashAlgorithm properties must be provided.
 
Body parameter
{
  "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
  ]
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| id | path | string | true | Vault ID | 
| body | body | SignRequest | true | Sign Request | 
Example responses
200 Response
{
  "operationID": "string"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | Sign request accepted | OperationResponse | 
| 400 | Bad Request | Bad request | SignRequestRejectedErrorResponse | 
| 500 | Internal Server Error | Sign failed | CASPErrorResponse | 
Start incoming transaction signing
Code samples
const inputBody = '{
  "callbackUrl": "string",
  "ledger": "string",
  "rawTransactions": [
    "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/{id}/incomingTransactionSign',
{
  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}/incomingTransactionSign \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{id}/incomingTransactionSign
Starts the process of a signing operation.
- For a quorum vault, the operation finishes when the minimum number of participants approve the transaction signing operation.
 - You must provide a valid raw transaction.
 
You can check the task status by calling the /operations API. When the signature is ready it is provided in the response payload.
This service should be used when the blockchain management is done outside of CASP, as it only signs the transaction without sending it to the relevant blockchain.
Notes:
- Either publicKeys or derivationStrings must be provided.
 - The size of rawTransactions must match dataToSign and publicKeys, or it should not be passed at all.
 - If rawTransactions is provided, then the ledger or ledgerHashAlgorithm properties must be provided.
 
Body parameter
{
  "callbackUrl": "string",
  "ledger": "string",
  "rawTransactions": [
    "string"
  ],
  "description": "string"
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| id | path | string | true | Vault ID | 
| body | body | IncomingTransactionSignRequest | true | Internal sign Request | 
Example responses
200 Response
{
  "operationID": "string"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | Sign request accepted | OperationResponse | 
| 400 | Bad Request | Bad request | SignRequestRejectedErrorResponse | 
| 500 | Internal Server Error | Sign failed | CASPErrorResponse | 
Get sign operation
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/sign/{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/sign/{operationid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/sign/{operationid}
Returns the sign operation metadata. The Operation ID parameter must be from a 'QUORUM_SIGN' operation.
The order of array fields (such as publicKeys and dataToSign) in the response is guaranteed to have the same order provided in the Start a signing process endpoint.
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| operationid | path | string | true | Operation ID | 
Example responses
200 Response
{
  "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"
  }
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | SignMetadata | 
| 404 | Not Found | Operation not found | CASPErrorResponse | 
| 500 | Internal Server Error | Get Operation status failed | CASPErrorResponse | 
List operations
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/accounts/{accountId}/operations',
{
  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}/operations \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/accounts/{accountId}/operations
List operations associated with account vaults. By default, only operations which are in process (not completed) will be returned.
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 | 
| status | query | array[string] | false | Show operations with one or more of the following statuses: approved, completed, pending, pending activation, canceled, rejected, failed, error | 
| filter | query | string | false | Filter by vault names and operation 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: Vault, Kind, CreatedAt, StatusText, 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 | 
Enumerated Values
| Parameter | Value | 
|---|---|
| status | APPROVED | 
| status | COMPLETED | 
| status | FAILED | 
| status | PENDING | 
| status | CANCELED | 
| status | REJECTED | 
| status | PENDING_ACTIVATION | 
| status | WAITING_DATA_COLLECTION | 
Example responses
200 Response
{
  "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"
    }
  ]
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ListResponseOperations | 
| 400 | Bad Request | Bad Request | CASPErrorResponse | 
| 404 | Not Found | Not found | CASPErrorResponse | 
| 500 | Internal Server Error | List operations per account failed | CASPErrorResponse | 
List sub account operations
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}/operations',
{
  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}/operations \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}/operations
List sub account operations.
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 | 
|---|---|---|---|---|
| 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 | 
| skip | query | integer(int32) | false | The number of results to skip from the beginning of the results | 
| limit | query | integer(int32) | false | The maximum number of results to return | 
Example responses
200 Response
{
  "totalItems": 0,
  "items": [
    {
      "operationID": "string",
      "kind": "JOIN_VAULT",
      "status": "PENDING",
      "statusText": "Pending",
      "createdAt": "string",
      "vaultID": "string",
      "description": "string",
      "isApproved": true,
      "accountID": "string"
    }
  ]
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ListResponseOperationsInfo | 
| 400 | Bad Request | Incorrect vault type | CASPErrorResponse | 
| 500 | Internal Server Error | List sub account operations failed | CASPErrorResponse | 
Get operation details
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/{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/{operationid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/{operationid}
Get the details of an CASP 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"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | OperationDetails | 
| 404 | Not Found | Operation not found | CASPErrorResponse | 
| 500 | Internal Server Error | Get Operation status failed | CASPErrorResponse | 
Cancel a pending operation
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/{operationid}/cancel',
{
  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/operations/{operationid}/cancel \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/operations/{operationid}/cancel
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| operationid | path | string | true | Operation 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 | Operation not found | CASPErrorResponse | 
| 500 | Internal Server Error | Cancel a pending operation failed | CASPErrorResponse | 
Update vault policies
Code samples
const inputBody = '[
  {
    "name": "string",
    "id": "string",
    "description": "string",
    "enabled": true,
    "timeZone": "string",
    "rules": {
      "weeklyTimeSlots": [
        {
          "days": "string",
          "timeStart": "string",
          "timeEnd": "string"
        }
      ],
      "amountRange": {
        "property1": {
          "minimum": 0,
          "maximum": 0
        },
        "property2": {
          "minimum": 0,
          "maximum": 0
        }
      },
      "whiteList": [
        "string"
      ],
      "derivedWhiteList": [
        {
          "chainCode": "string",
          "publicKey": "string",
          "level": 0,
          "parentFingerprint": "string",
          "childNumber": 0
        }
      ],
      "attributes": [
        {
          "id": "string",
          "op": "string",
          "value": "string"
        }
      ]
    },
    "isOffline": true
  }
]';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/policies',
{
  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/{id}/policies \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
PUT /casp/api/v1.0/mng/vaults/{id}/policies
Update vault policies
Body parameter
[
  {
    "name": "string",
    "id": "string",
    "description": "string",
    "enabled": true,
    "timeZone": "string",
    "rules": {
      "weeklyTimeSlots": [
        {
          "days": "string",
          "timeStart": "string",
          "timeEnd": "string"
        }
      ],
      "amountRange": {
        "property1": {
          "minimum": 0,
          "maximum": 0
        },
        "property2": {
          "minimum": 0,
          "maximum": 0
        }
      },
      "whiteList": [
        "string"
      ],
      "derivedWhiteList": [
        {
          "chainCode": "string",
          "publicKey": "string",
          "level": 0,
          "parentFingerprint": "string",
          "childNumber": 0
        }
      ],
      "attributes": [
        {
          "id": "string",
          "op": "string",
          "value": "string"
        }
      ]
    },
    "isOffline": true
  }
]
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| id | path | string | true | Vault ID | 
| body | body | PolicyUpdateDetails | true | Create Vault Request | 
Example responses
200 Response
{
  "operationID": "string",
  "kind": "JOIN_VAULT",
  "status": "PENDING",
  "statusText": "Pending",
  "createdAt": "string",
  "vaultID": "string",
  "description": "string",
  "isApproved": true,
  "accountID": "string"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | OperationInfo | 
| 400 | Bad Request | bad request | CASPErrorResponse | 
| 404 | Not Found | Vault not found | CASPErrorResponse | 
| 500 | Internal Server Error | Update vault policies failed | CASPErrorResponse | 
Public key calculation status
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/calculatePublicKey/{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/calculatePublicKey/{operationid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/calculatePublicKey/{operationid}
For some keys, calculating public keys requires approval of the admin group. This request queries the operation status.
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",
  "totsParams": [
    {
      "index": 0,
      "numberOfFragments": 0
    }
  ],
  "publicKeys": [
    "string"
  ]
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | CalculatePublicKeyOperationDetails | 
| 404 | Not Found | Operation not found | CASPErrorResponse | 
| 500 | Internal Server Error | Get Operation status 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 | 
BYOW Policy Management
Refer to the Policy Management section in the Unbound CASP Developers Guide.
Add member to vault
Code samples
const inputBody = '{
  "participantID": "string",
  "description": "string",
  "policyId": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/approval_groups/{approvalGroupId}/members',
{
  method: 'POST',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
# You can also use wget
curl -X POST https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/approval_groups/{approvalGroupId}/members \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{vaultId}/approval_groups/{approvalGroupId}/members
This API is used if a participant becomes unavailable or leaves an account and needs to be replaced with a new participant. A new participant may be added to an existing vault, but requires the approval of the existing vault quorum.
Body parameter
{
  "participantID": "string",
  "description": "string",
  "policyId": "string"
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| approvalGroupId | path | string | true | Approval Group Id | 
| body | body | AddVaultParticipantRequest | true | Add vault group participant request | 
Example responses
200 Response
{
  "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"
  }
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | AddMemberResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
Status of join policy vault operation
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/operations/joinpolicyvault/{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/joinpolicyvault/{operationid} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/operations/joinpolicyvault/{operationid}
Returns join policy vault operation details. The Operation ID parameter must be from a 'JOIN_POLICY_VAULT' 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",
  "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"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | JoinPolicyVaultOperationDetails | 
| 404 | Not Found | Operation not found | CASPErrorResponse | 
| 500 | Internal Server Error | Get Operation status failed | CASPErrorResponse | 
Set vault member status
Code samples
const inputBody = '{
  "status": "DEACTIVATED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/members/{participantId}/status',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
# You can also use wget
curl -X PUT https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/members/{participantId}/status \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
PUT /casp/api/v1.0/mng/vaults/{vaultId}/members/{participantId}/status
The suspended participant no longer takes part in the vault approval processes. Note that you can only suspend or revoke a user if the remaining number of participants is sufficient for the quorum, unless 'force' flag is provided.
Body parameter
{
  "status": "DEACTIVATED"
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| participantId | path | string | true | Participant ID | 
| vaultId | path | string | true | vault ID | 
| force | query | boolean | false | Force update of participant status. Warning: Using this flag can result in an unusable vault! | 
| body | body | UpdateParticipantStatusRequest | true | Participant status update request | 
Example responses
200 Response
{
  "id": "string",
  "name": "string",
  "status": "ACTIVATED",
  "approvalGroupAccount": {
    "id": "string",
    "name": "string"
  },
  "label": "string",
  "isGlobal": true,
  "isActive": true
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ParticipantStatusChangeResponse | 
| 202 | Accepted | Accepted | OperationDetails | 
| 403 | Forbidden | Suspending or revoking this participant would make the vault not operational (too few active participants left) | CASPErrorResponse | 
| 404 | Not Found | Participant not found | CASPErrorResponse | 
| 500 | Internal Server Error | Set vault member status failed | CASPErrorResponse | 
Set vault member status (deprecated)
Code samples
const inputBody = '{
  "status": "DEACTIVATED",
  "policyId": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/members/{participantId}',
{
  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/{id}/members/{participantId} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
PUT /casp/api/v1.0/mng/vaults/{id}/members/{participantId}
The suspended participant no longer takes part in the vault transaction approval processes. Note that you can only suspend or revoke a user, if the remaining number of participants is sufficient for the quorum policy, unless 'force' flag is provided.
Body parameter
{
  "status": "DEACTIVATED",
  "policyId": "string"
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| participantId | path | string | true | Participant ID | 
| id | path | string | true | vault ID | 
| body | body | UpdateParticipantStatusWithPolicyRequest | true | Participant status update 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 | Set vault member status failed | CASPErrorResponse | 
Set policy member status
Code samples
const inputBody = '{
  "status": "DEACTIVATED"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/policies/{policyId}/members/{participantId}/status',
{
  method: 'PUT',
  body: inputBody,
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
# You can also use wget
curl -X PUT https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/policies/{policyId}/members/{participantId}/status \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
PUT /casp/api/v1.0/mng/vaults/{vaultId}/policies/{policyId}/members/{participantId}/status
The suspended participant no longer takes part in the vault transaction approval processes. Note that you can only suspend or revoke a user, if the remaining number of participants is sufficient for the quorum policy, unless 'force' flag is provided.
Body parameter
{
  "status": "DEACTIVATED"
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| participantId | path | string | true | Participant ID | 
| vaultId | path | string | true | vault ID | 
| policyId | path | string | true | policy ID | 
| force | query | boolean | false | Force update of participant status | 
| body | body | UpdateParticipantStatusRequest | true | Participant status update request | 
Example responses
200 Response
{
  "id": "string",
  "name": "string",
  "status": "ACTIVATED",
  "approvalGroupAccount": {
    "id": "string",
    "name": "string"
  },
  "label": "string",
  "isGlobal": true,
  "isActive": true
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ParticipantStatusChangeResponse | 
| 202 | Accepted | Accepted | OperationDetails | 
| 403 | Forbidden | Suspending or revoking this participant would make the vault not operational (too few active participants left) | CASPErrorResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Set vault member status participant failed | CASPErrorResponse | 
BYOW Keychain Management
Refer to the Keychain Management section in the Unbound CASP Developers Guide.
Add a coin type to a vault
Code samples
const inputBody = '{
  "coinType": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/coins',
{
  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}/coins \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{id}/coins
Body parameter
{
  "coinType": 0
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| id | path | string | true | Vault ID | 
| body | body | AddBip44CoinRequest | true | Add vault group 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 | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
List all the coins in a vault
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{id}/coins',
{
  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}/coins \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{id}/coins
This endpoint is only functional if you generated a BIP44 vault.
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 | 
|---|---|---|---|---|
| id | path | string | true | Vault ID | 
| skip | query | integer(int32) | false | The number of results to skip from the beginning of the results | 
| limit | query | integer(int32) | false | The maximum number of results to return | 
Example responses
200 Response
{
  "totalItems": 0,
  "items": [
    0
  ]
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ListResponseBip44Coins | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
Get vault public key
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/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}/publickey \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/publickey
Returns a deterministic vault's public key. Note that this is only valid for a vault with no hierarchy.
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| encoding | query | string | false | Key encoding | 
Enumerated Values
| Parameter | Value | 
|---|---|
| encoding | DER | 
| encoding | compressed | 
| encoding | uncompressed | 
| encoding | plain | 
Example responses
200 Response
{
  "publicKey": "string"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | VaultPublicKeyResponse | 
| 400 | Bad Request | Bad request | CASPErrorResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
Create an account
Code samples
const inputBody = '{
  "accountName": "string"
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/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/vaults/{vaultId}/coins/{coinType}/accounts \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts
Add an account to a coin in a vault.
This endpoint is only functional if you generated a BIP44 vault.
Body parameter
{
  "accountName": "string"
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| coinType | path | integer(int32) | true | Coin type | 
| body | body | AddBip44AccountRequest | false | Add account request | 
Example responses
200 Response
{
  "publicKeys": [
    "string"
  ],
  "chains": [
    "string"
  ],
  "accountName": "string",
  "accountIndex": 0
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | Bip44AccountResponse | 
| 400 | Bad Request | Bad Request | CASPErrorResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
List accounts in a vault
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/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/vaults/{vaultId}/coins/{coinType}/accounts \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts
List all the accounts in a vault for a given coin.
This endpoint is only functional if you generated a BIP44 vault.
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 | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| coinType | path | integer(int32) | true | Coin type | 
| skip | query | integer(int32) | false | The number of results to skip from the beginning of the results | 
| limit | query | integer(int32) | false | The maximum number of results to return | 
Example responses
200 Response
{
  "totalItems": 0,
  "items": [
    {
      "name": "string",
      "index": 0
    }
  ]
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ListResponseBip44Accounts | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
Find account index by name
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/find?accountName=string',
{
  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/find?accountName=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/find
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 | 
| accountName | query | string | true | Account name | 
Example responses
200 Response
{
  "index": 0
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | Bip44AccountIndex | 
| 400 | Bad Request | Incorrect vault type | CASPErrorResponse | 
| 404 | Not Found | Account index not found | CASPErrorResponse | 
| 500 | Internal Server Error | find account index failed | CASPErrorResponse | 
Get account by identifier
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}',
{
  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} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIdentifier}
Get detailed information about a vault for a given coin type and account index.
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
{
  "accountName": "string",
  "accountIndex": 0
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | GetBip44AccountByIdentifierResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
List chain addresses
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses',
{
  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/{accountIndex}/chains/{chain}/addresses \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/coins/{coinType}/accounts/{accountIndex}/chains/{chain}/addresses
List all the BIP44 addresses in a vault for a given coin type, account index and address chain type.
This endpoint is only functional if you generated a BIP44 vault.
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 | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| coinType | path | integer(int32) | true | Coin type | 
| accountIndex | path | integer(int32) | true | Account index | 
| chain | path | string | true | Address type | 
| encoding | query | string | false | Key encoding | 
| 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: lastUpdatedAt  | 
| skip | query | integer(int32) | false | The number of results to skip from the beginning of the results | 
| limit | query | integer(int32) | false | The maximum number of results to return | 
Enumerated Values
| Parameter | Value | 
|---|---|
| chain | change | 
| chain | external | 
| chain | all | 
| encoding | DER | 
| encoding | compressed | 
| encoding | uncompressed | 
| encoding | plain | 
Example responses
200 Response
{
  "totalItems": 0,
  "items": [
    "string"
  ],
  "chains": [
    "string"
  ],
  "accountName": "string",
  "accountIndex": 0
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ListResponseBip44ChainAddresses | 
| 400 | Bad Request | Bad request | CASPErrorResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
Get BYOW account backup
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 | 
Derive a key in a vault
Code samples
const inputBody = '{
  "pathToDeriveFrom": "string",
  "hardDerivation": true,
  "childIndex": 0
}';
const headers = {
  'Content-Type':'application/json',
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivations',
{
  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/{vaultId}/derivations \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
POST /casp/api/v1.0/mng/vaults/{vaultId}/derivations
This endpoint is only functional if you generated a BIP32 vault.
Body parameter
{
  "pathToDeriveFrom": "string",
  "hardDerivation": true,
  "childIndex": 0
}
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| encoding | query | string | false | Key encoding | 
| body | body | DeriveBip32KeypairRequest | true | Derive a keypair in a vault | 
Enumerated Values
| Parameter | Value | 
|---|---|
| encoding | DER | 
| encoding | compressed | 
| encoding | uncompressed | 
| encoding | plain | 
Example responses
200 Response
{
  "derivationPath": "string",
  "publicKey": "string"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | GetBip32KeyResponse | 
| 400 | Bad Request | Bad request | CASPErrorResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
List all keys in a vault
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivations',
{
  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}/derivations \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/derivations
This endpoint is only functional if you generated a BIP32 vault.
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 | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| encoding | query | string | false | Key encoding | 
| skip | query | integer(int32) | false | The number of results to skip from the beginning of the results | 
| limit | query | integer(int32) | false | The maximum number of results to return | 
Enumerated Values
| Parameter | Value | 
|---|---|
| encoding | DER | 
| encoding | compressed | 
| encoding | uncompressed | 
| encoding | plain | 
Example responses
200 Response
{
  "totalItems": 0,
  "items": [
    {
      "derivationPath": "string",
      "publicKey": "string"
    }
  ]
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | ListResponseBip32Keys | 
| 400 | Bad Request | Bad request | CASPErrorResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Add participant failed | CASPErrorResponse | 
Get public key by derivation path
Code samples
const headers = {
  'Accept':'application/json',
  'Authorization':'API_KEY'
};
fetch('https://casp-server/casp/api/v1.0/mng/vaults/{vaultId}/derivation?derivationPath=string',
{
  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}/derivation?derivationPath=string \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer API_KEY'
GET /casp/api/v1.0/mng/vaults/{vaultId}/derivation
This endpoint is only functional if you generated a BIP32 vault.
Parameters
| Name | In | Type | Required | Description | 
|---|---|---|---|---|
| vaultId | path | string | true | Vault ID | 
| derivationPath | query | string | true | Derivation path | 
| encoding | query | string | false | Key encoding | 
Enumerated Values
| Parameter | Value | 
|---|---|
| encoding | DER | 
| encoding | compressed | 
| encoding | uncompressed | 
| encoding | plain | 
Example responses
200 Response
{
  "derivationPath": "string",
  "publicKey": "string"
}
Responses
| Status | Meaning | Description | Schema | 
|---|---|---|---|
| 200 | OK | OK | GetBip32KeyResponse | 
| 400 | Bad Request | Bad request | CASPErrorResponse | 
| 404 | Not Found | Item not found | CASPErrorResponse | 
| 500 | Internal Server Error | Get derivation 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 | 
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.
 
 
      