Confidential Wholesale CBDC Wrapper API Package

Oracle Blockchain Platform Digital Assets Edition includes a wrapper API package that extends the REST API to support operations specific to the confidential mode version of the wholesale CBDC scenario.

The wrapper API package uses the API Gateway service and OCI Functions, which are created using a Resource Manager stack on Oracle Cloud Infrastructure (OCI), to deploy API routes specifically designed for the wholesale CBDC application. The wholesale CBDC wrapper API package is downloadable from the Oracle Blockchain Platform console, and includes the following components.
  • WholesaleCBDCWithConfidentialPaymentWrapperAPI.zip, an archive file that contains the wrapper API package including the Terraform scripts required for deployment. You deploy this file to a Resource Manager stack on OCI to create the necessary Oracle resources for the wrapper APIs.
  • WholesaleCBDCWithConfidentialPayment_WrapperAPI.postman_collection, a Postman collection that enables you to test the deployed wrapper APIs. The collection includes preconfigured requests with endpoints and payloads that correspond to the APIs defined in the wrapper API package.

Wrapper APIs

activateCBDCAccount
Original method name: activateAccount
This POST method activates a token account. This method can be called only by a Token Admin or Org Admin of the specified organization. Deleted accounts cannot be activated.
Payload:
{
    "accountId": "account_id value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • accountId: string – The ID of the account.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Returns:
  • On success, a JSON representation of the account status object for the specified token account.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "864cdbc5b4ee1a6f2238301e75ee2ddff0ecfa490ddf490da33365cae92cb4ad",
        "payload": {
            "assetType": "oaccountStatus",
            "status_id": "oaccountStatus~4c900b07f6136f36854064c0c0ba97aa09c9734cbe11966cc83865f156ced2c6",
            "account_id": "oaccount~214ad54a30703412b195f36429607b08627dea893303870bf3372f944fe0c088",
            "status": "active"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 58
    }
}
addCBAdmin
Original method name: addTokenAdmin
This POST method adds a user as a Token Admin of the token chaincode. The method can be called only by a Token Admin of the token chaincode. The first invocation is from the admin who instantiates the chaincode.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • userId: string – The user name or email ID of the user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "a988dc3e9aab162508fd0555fec254f248e27fd0c5440d94e1f49fc65643cafa",
        "payload": {
            "msg": "Successfully added Token Admin (Org_Id: CentralBank, User_Id: user1)"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 69
    }
}
addCBAuditor
Original method name: addTokenAuditor
This POST method adds token auditors to the token chaincode. This method can be called only by the Token Admin of the chaincode.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • userId: string – The user name or email ID of the user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "864cdbc5b4ee1a6f2238301e75ee2ddff0ecfa490ddf490da33365cae92cb4ad",
        "payload": {
            "assetType": "oaccountStatus",
            "status_id": "oaccountStatus~4c900b07f6136f36854064c0c0ba97aa09c9734cbe11966cc83865f156ced2c6",
            "account_id": "oaccount~214ad54a30703412b195f36429607b08627dea893303870bf3372f944fe0c088",
            "status": "active"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 58
    }
}
addFIAdmin
Original method name: addOrgAdmin
This method adds organization admins to the token chaincode. This method can be called only by a Token Admin or Org Admin of the specified organization.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • userId: string – The user name or email ID of the user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "ab1544c0d23d930253e6e6020c7c9584f03d324fb1123cc96fe7e0573b232792",
        "payload": {
            "msg": "Successfully added Org Admin (Org_Id: CentralBank, User_Id: cb_admin_demo)"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 61
    }
}
addFIAuditor
Original method name: addOrgAuditor
This method adds organization auditors to the token chaincode. This method can be called only by a Token Admin or Org Admin of the specified organization.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • userId: string – The user name or email ID of the user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "c0acbadfa461963a5d085bb12335dcf6d8ec566acf72a88a1f168b3a0435db89",
        "payload": {
            "msg": "Successfully added Org Auditor (Org_Id: CentralBank, User_Id: cb_admin_demo)"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 62
    }
}
addRole
Original method name: addRole
This method adds the role to the specified user and token. Account IDs are formed by creating a SHA-256 hash of the concatenated token ID, organization ID, and user ID. This method can be called only by a Token Admin or Org Admin of the specified organization.
Payload:
{
    "accountId": "account_id value",
    "role": "role value (for example minter / burner / notary)",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • accountId: string – The ID of the account.
  • role: string – The name of the role to add to the specified user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "c44931d2227305914db21564301775f8a4edc2aa7fef434d063be7e207b4fd20",
        "payload": {
            "msg": "Successfully added role 'minter' to Account Id: oaccount~214ad54a30703412b195f36429607b08627dea893303870bf3372f944fe0c088"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20009",
        "blockNumber": 63
    }
}
approveCBDCCreation
Original method name: approveMint
Notaries can call this POST method to approve a mint request.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "operationId": "operation_id value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • tokenId: string – The ID of the token.
  • operationId: string – The unique operation ID of the mint request to approve.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "4514aa229ebcc4d2fedcaa47c4301615e30c4a9bae45cf0256a5b80d75b3697a",
        "payload": {
            "msg": "Successfully minted 1000 tokens to Account Id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20011",
        "blockNumber": 337
    }
}
approveCBDCRetirement
Original method name: approveBurn
Notaries can call this POST method to approve a burn request.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "operationId": "operation_id value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • tokenId: string – The ID of the token.
  • operationId: string – The unique operation ID of the mint request to approve.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "8c7b013765917ebade60c6e6e122ec9b94282349e630fa1f2a446c79cb9ef29c",
        "payload": {
            "msg": "Successfully burned 200 tokens from account id: oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98 (Org-Id: CentralBank, User-Id: cb_retirer_demo)"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20011",
        "blockNumber": 338
    }
}
approveHoldCBDCTokens
Original method name: executeHoldTokens
Notaries call this method to approve a hold on tokens, which triggers the transfer of the tokens from the payer to the payee in this business scenario. The quantity of tokens put on hold previously by the token owner is now transferred to the recipient. If the quantity value is less than the actual hold value, the remaining amount is available again to the owner of the token. If the roles behavior is specified in the behaviors section of the token model and the notary_role_name value is set, the caller account must have notary role. Otherwise, any caller with an account can function as a notary.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "operationId": "operation_id value",
    "quantity": 1,
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • tokenId: string – The ID of the token.
  • operationId: string – The unique operation ID of the mint request to approve.
  • quantity: number – The number of held tokens to transfer.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "5177f7560d32838242a26ac74f2a90c6ff9b47aae0d0988f28d9b4cf7e27c097",
        "payload": {
            "msg": "Account Id: oaccount~1e31495a0c149b08cb9d02bdcac5e83d88c0f1557d954dda12bb807d7f6fc111 (Org-Id: Org1, User-Id: fi1_org_user1_demo) is successfully executed '10' tokens from Operation Id '454f4bf6'."
        },
        "encode": "JSON",
        "sourceURL": "org1-oabcs1-nrt.blockchain.ocp.example.com:20009",
        "blockNumber": 339
    }
}
consolidateRunningBalanceInTransactions
Original method name: consolidateRunningBalanceInTransactions
This method consolidates the running balances of accounts in the caller's organization. This method can be called only by a Token Admin or Org Admin.
Payload:
{
    "endorsers": {{endorsers}}
}
Parameters:
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "f3c019974cd93eaa8f3171a36ec25009fa6925b5880cae8c9a49a141944039c0",
        "payload": {
            "msg": "Successfully updated account running balance for pending transactions."
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20009",
        "blockNumber": 340
    }
}        
associateTokenToAccount
Original method name: associateTokenToAccount
This POST method associates a specified account ID to a specified token. This method can be called only by a Token Admin or Org Admin of the specified organization.
Payload:
{
    "accountId": "account_id value",
    "tokenId": "{{bc-token-id}}",
    "customAccountId": "custom_account_id value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • accountId: string – The ID of the account.
  • tokenId: string – The ID of the token.
  • customAccountId: string – The unique random ID of accounts in confidential mode.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "fc7e9297d1d7beef5567fbef873955f5a9759d031811198e24f67f064e0e80b0",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "USD",
            "token_name": "cbdc",
            "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
            "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
            "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
            "application_groups": [
                "CENTRAL_BANK_USERS"
            ]
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20009",
        "blockNumber": 71
    }
}
createAccount
Original method name: createAccount
This method creates an account for a specified user and token. An account must be created for any user who will have tokens at any point. Accounts track balances, on-hold balances, and transaction history. An account ID is an alphanumeric set of characters, prefixed with oaccount~<token asset name>~ and followed by a hash of the user name or email ID (userId) of the instance owner or the user who is logged in to the instance, the membership service provider ID (orgId) of the user in the current network organization. This method can be called only by a Token Admin of the chaincode or by an Org Admin of the specified organization.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "tokenType": "fungible",
    "applicationGroups": "[\"application_groups value\"]",
    "dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId – The membership service provider (MSP) ID of the user to create the account for. The ID must begin with an alphanumeric character and can include letters, numbers, and special characters such as underscores (_), periods (.), at signs (@), and hyphens (-).
  • userId – The user name or email ID of the user. The ID must begin with an alphanumeric character and can include letters, numbers, and special characters such as underscores (_), periods (.), at signs (@), and hyphens (-).
  • tokenType: TokenType – The type of token, which must be fungible.
  • applicationGroups: string[] – A list of application groups the user Id belongs to, which define the user's associations in the CBDC application.
  • dailyLimits: JSON object – A JSON object of the following type.
    {
         "max_daily_amount": 100000
         "max_daily_transactions": 10000
     }
    In the example, the max_daily_amount value is the maximum amount of tokens that can be transacted daily and max_daily_transactions value is the maximum number of transactions that can be completed daily.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "dc167f95bdcc246c9ecb20e56126c705f522cff30c94798f21a82de111367ab8",
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~b53cb2c19c92d1d5c8cb9f6e988e7761c34e03e014e6c4b889565fc0abf46c8a",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "",
            "token_name": "",
            "balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
            "onhold_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
            "onhold_burn_balance": "028b72742c8aa9a0395c828fe4f0e46226a3e40d4e731d0b994c8028c8b7bd4df6",
            "application_groups": [
                "CENTRAL_BANK_USERS"
            ]
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 70
    }
}
getAccountDetailsByCustomAccountId
Original method name: getAccountDetailsByCustomAccountId
This GET method returns the account details for a specified custom account ID. This method can be called by a Token Admin or Token Auditor, or an Org Admin or Org Auditor of the specified organization.
Query:
getAccountDetailsByCustomAccountId?customAccountId=customAccountId value&orgId={{bc-org-id}}&peer={{peer}}
Parameters:
  • customAccountId: string – The unique random ID of accounts in confidential mode.
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "cf46211c670f7d21feb000a0161baaced91be314ea53981e26dc1482924055c9",
        "payload": [
            {
                "bapAccountVersion": 0,
                "assetType": "oaccount",
                "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "org_id": "CentralBank",
                "token_type": "fungible",
                "token_id": "USD",
                "token_name": "cbdc",
                "balance": "0",
                "onhold_balance": "0",
                "onhold_burn_balance": "0",
                "application_groups": [
                    "SYSTEM_ADMINS"
                ],
                "user_id": "cb_admin_demo",
                "custom_account_id": "10101234000123"
            }
        ],
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20012",
        "blockNumber": 341
    }
}
getAllActiveCBDCAccounts
Original method name: getAllActiveAccounts
This GET method returns all of the active accounts that are associated with the specified token ID.
Query:
getAllActiveCBDCAccounts?orgId={{bc-org-id}}&tokenId={{bc-token-id}}&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • peer: string – The name of the peer node to run the query on.
Returns:
  • On success, a message that includes user details. The output varies based on the user's role, as shown in the following examples.
Return Value Example (Token Admin, Token Auditor, Organization Admin, Organization Auditor):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ADMINS"
                    ],
                    "max_daily_amount": "10000",
                    "max_daily_transactions": "1000"
                },
                "non_account_role_name": [
                    "token_admin"
                ]
            },
            {
                "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_AUDITORS"
                    ],
                    "max_daily_amount": "10000",
                    "max_daily_transactions": "1000"
                },
                "non_account_role_name": [
                    "token_auditor"
                ]
            },
            {
                "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "role_name": "minter",
                "valueJson": {
                    "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_CREATORS"
                    ],
                    "max_daily_amount": "1000000",
                    "max_daily_transactions": "100000"
                },
                "non_account_role_name": []
            },
            {
                "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "role_name": "notary",
                "valueJson": {
                    "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_MANAGERS"
                    ],
                    "max_daily_amount": "10000",
                    "max_daily_transactions": "1000"
                },
                "non_account_role_name": []
            },
            {
                "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ISSUERS"
                    ],
                    "max_daily_amount": "100000",
                    "max_daily_transactions": "10000"
                },
                "non_account_role_name": []
            },
            {
                "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "role_name": "burner",
                "valueJson": {
                    "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_RETIRERS"
                    ],
                    "max_daily_amount": "10000",
                    "max_daily_transactions": "1000"
                },
                "non_account_role_name": []
            }
        ],
        "encode": "JSON"
    }
}
Return Value Example (all other users):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ADMINS"
                    ]
                }
            },
            {
                "key": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~1a6ea9aaa59c9ae8385bfdc870bf02616995c881ffeb111f526c8b31dbbdd43c",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_AUDITORS"
                    ]
                }
            },
            {
                "key": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "role_name": "minter",
                "valueJson": {
                    "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_CREATORS"
                    ]
                }
            },
            {
                "key": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "role_name": "notary",
                "valueJson": {
                    "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_MANAGERS"
                    ]
                }
            },
            {
                "key": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ISSUERS"
                    ]
                }
            },
            {
                "key": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "role_name": "burner",
                "valueJson": {
                    "account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_RETIRERS"
                    ]
                }
            }
        ],
        "encode": "JSON"
    }
}
getAllSuspendedCBDCAccounts
Original method name: getAllSuspendedAccounts
This GET method returns all of the suspended accounts that are associated with the specified token ID.
Query:
/getAllSuspendedCBDCAccounts?orgId={{bc-org-id}}&tokenId={{bc-token-id}}&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • peer: string – The name of the peer node to run the query on.
Returns:
  • On success, a message that includes user details. The output varies based on the user's role, as shown in the following examples.
Return Value Example (Token Admin, Token Auditor, Organization Admin, Organization Auditor):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ADMINS"
                    ],
                    "max_daily_amount": "10000",
                    "max_daily_transactions": "1000"
                },
                "non_account_role_name": [
                    "token_admin"
                ]
            }
        ],
        "encode": "JSON"
    }
}
Return Value Example (all other users):
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "key": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                "role_name": null,
                "valueJson": {
                    "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
                    "org_id": "CentralBank",
                    "token_id": "USD",
                    "application_groups": [
                        "SYSTEM_ADMINS"
                    ]
                }
            }
        ],
        "encode": "JSON"
    }
}
getApproverActionHistory
Original method name: getActionHistory
This GET method retrieves the history of approvals or rejections made by the caller for mint, burn, and transfer (issuance) operations, including details of the organization, and user IDs of accounts involved (sender, recipient, and notary). This method can be called only by a Token Admin, Token Auditor, Org Admin, Org Auditor or the notary.
Query:
getApproverActionHistory?tokenId={{bc-token-id}}&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~b770",
                "holding_status": "APPROVE_BURN",
                "last_updated_time": "2025-08-25T13:21:24.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": null,
                "to_org_id": null,
                "token_name": null,
                "quantity": 200
            },
            {
                "from_account_id": null,
                "from_org_id": null,
                "holding_id": "ohold~cbdc~USD~e7b6",
                "holding_status": "APPROVE_MINT",
                "last_updated_time": "2025-08-25T13:20:50.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "to_org_id": "CentralBank",
                "token_name": null,
                "quantity": 1000
            },
            {
                "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~81d7c4ac",
                "holding_status": "EXECUTEHOLD",
                "last_updated_time": "2025-08-25T13:16:55.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "to_org_id": "Org1",
                "token_name": null,
                "quantity": 200
            },
            {
                "from_account_id": null,
                "from_org_id": null,
                "holding_id": "ohold~cbdc~USD~1e19",
                "holding_status": "APPROVE_MINT",
                "last_updated_time": "2025-08-13T06:12:41.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "to_org_id": "CentralBank",
                "token_name": null,
                "quantity": 10000
            },
            {
                "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~1f74",
                "holding_status": "REJECT_BURN",
                "last_updated_time": "2025-08-12T21:09:53.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "",
                "to_org_id": null,
                "token_name": null,
                "quantity": 1000
            },
            {
                "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~d67c",
                "holding_status": "REJECT_BURN",
                "last_updated_time": "2025-08-12T21:09:47.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "",
                "to_org_id": null,
                "token_name": null,
                "quantity": 2000
            },
            {
                "from_account_id": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~911b",
                "holding_status": "APPROVE_BURN",
                "last_updated_time": "2025-08-12T21:09:40.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": null,
                "to_org_id": null,
                "token_name": null,
                "quantity": 1000
            },
            {
                "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~ed815e20",
                "holding_status": "EXECUTEHOLD",
                "last_updated_time": "2025-08-12T21:09:25.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
                "to_org_id": "org2",
                "token_name": null,
                "quantity": 10000
            },
            {
                "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~12d87129",
                "holding_status": "EXECUTEHOLD",
                "last_updated_time": "2025-08-12T21:09:17.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "to_org_id": "Org1",
                "token_name": null,
                "quantity": 10000
            },
            {
                "from_account_id": "",
                "from_org_id": null,
                "holding_id": "ohold~cbdc~USD~54a4",
                "holding_status": "REJECT_MINT",
                "last_updated_time": "2025-08-12T21:01:27.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "to_org_id": "CentralBank",
                "token_name": null,
                "quantity": 40000
            },
            {
                "from_account_id": null,
                "from_org_id": null,
                "holding_id": "ohold~cbdc~USD~9b27",
                "holding_status": "APPROVE_MINT",
                "last_updated_time": "2025-08-12T21:01:16.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "to_org_id": "CentralBank",
                "token_name": null,
                "quantity": 30000
            },
            {
                "from_account_id": null,
                "from_org_id": null,
                "holding_id": "ohold~cbdc~USD~eda0",
                "holding_status": "APPROVE_MINT",
                "last_updated_time": "2025-08-12T21:01:05.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "to_org_id": "CentralBank",
                "token_name": null,
                "quantity": 20000
            },
            {
                "from_account_id": null,
                "from_org_id": null,
                "holding_id": "ohold~cbdc~USD~1baa",
                "holding_status": "APPROVE_MINT",
                "last_updated_time": "2025-08-12T21:01:03.000Z",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": null,
                "timetoexpiration": null,
                "to_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "to_org_id": "CentralBank",
                "token_name": null,
                "quantity": 10000
            }
        ],
        "encode": "JSON"
    }
}
getCBDCAccount
Original method name: getCBDCAccount
This GET method returns account details for a specified user and token. This method can be called only by a Token Admin or Token Auditor of the chaincode, an Org Admin or Org Auditor of the specified organization, or the AccountOwner of the account.
Query:
/getCBDCAccount?accountId=account_id value&peer={{peer}}
Parameters:
  • accountId: string – The ID of the account.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "user_id": "cb_manager_demo",
            "custom_account_id": "10105678007891",
            "status": "active",
            "account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "USD",
            "token_name": "cbdc",
            "balance": "0",
            "onhold_balance": "0",
            "onhold_burn_balance": "0",
            "application_groups": [
                "SYSTEM_MANAGERS"
            ]
        },
        "encode": "JSON"
    }
}
getCBDCAccountBalance
Original method name: getAccountBalance
This GET method returns the current balance for a specified account and token. This method can be called only by a Token Admin or Token Auditor of the chaincode, an Org Admin or Org Auditor of the specified organization, or the AccountOwner of the account.
/getCBDCAccountBalance?accountId=account_id value&peer={{peer}}
Parameters:
  • accountId: string – The ID of the account.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "msg": "Current Balance is: 100",
            "user_balance": 100
        },
        "encode": "JSON"
    }
}
getCBDCAccountsByUser
Original method name: getAccountsByUser
This method returns a list of all account IDs for a specified organization ID and user ID. This method can be called only by a Token Admin or Token Auditor of the chaincode, an Org Admin or Org Auditor of the specified organization, or the AccountOwner of the account.
/getCBDCAccountsByUser?orgId={{bc-org-id}}&userId={{bc-user-id}}&peer={{peer}}
Parameters:
  • orgId string – The membership service provider (MSP) ID of the user in the current organization.
  • userId string – The user name or email ID of the user.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "bapAccountVersion": 15,
                "assetType": "oaccount",
                "user_id": "cb__creator_demo",
                "custom_account_id": "10105678004567",
                "account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "org_id": "CentralBank",
                "token_type": "fungible",
                "token_id": "USD",
                "token_name": "cbdc",
                "balance": "21000",
                "onhold_balance": "0",
                "onhold_burn_balance": "0",
                "application_groups": [
                    "SYSTEM_CREATORS"
                ]
            },
            {
                "bapAccountVersion": 0,
                "assetType": "oaccount",
                "user_id": "cb__creator_demo",
                "custom_account_id": "Not Available",
                "account_id": "oaccount~388fb87df59c6a4fbf0400c58b61aa85f975a8c4209942006b0c0d6334fcf887",
                "org_id": "CentralBank",
                "token_type": "fungible",
                "token_id": "",
                "token_name": "",
                "balance": "0",
                "onhold_balance": "0",
                "onhold_burn_balance": "0",
                "application_groups": [
                    "application_groups value"
                ]
            }
        ],
        "encode": "JSON"
    }
}
getCBDCAccountTransactionHistory
Original method name: getAccountTransactionHistory
This method returns an array of account transaction history details for a specified user and token. This method can be called only by a Token Admin or Token Auditor of the chaincode, an Org Admin or Org Auditor of the specified organization, or the AccountOwner of the account.
/getCBDCAccountTransactionHistory?accountId=account_id value&peer={{peer}}
Parameters:
  • accountId: string – The ID of the account.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "transaction_id": "otransaction~4514aa229ebcc4d2fedcaa47c4301615e30c4a9bae45cf0256a5b80d75b3697a",
                "transacted_amount": 1000,
                "timestamp": "2025-08-25T13:20:50.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "APPROVE_MINT",
                "balance": 21000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~1982f73495060e0eef4d78282a91c41e27e8c95572739b0677a1e404a0d20aa9",
                "transacted_amount": 200,
                "timestamp": "2025-08-25T13:12:43.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REQUEST_MINT",
                "balance": 20000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~fedd714cf1509f7517819d7cd4c0921d0b2f5d1ff6a25dcb08ab411defd6b5f3",
                "transacted_amount": 2000,
                "timestamp": "2025-08-21T05:23:25.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REQUEST_MINT",
                "balance": 20000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~f33b47234f3ee0b636962c8c31c01d06523b789ca16b3b342d5080b71268bcc3",
                "transacted_amount": 1000,
                "timestamp": "2025-08-21T05:23:07.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REQUEST_MINT",
                "balance": 20000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~cf934527149bc24f62a8ddeeea7f74a19a0f84d8f161535a771be49d2520d5b3",
                "transacted_amount": 10000,
                "timestamp": "2025-08-13T06:12:41.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "APPROVE_MINT",
                "balance": 20000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~f5c0e11ca61d9adc843658929e6de2a738ad586304f9e020f75bf4aac5e42a2c",
                "transacted_amount": 10000,
                "timestamp": "2025-08-13T06:12:04.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REQUEST_MINT",
                "balance": 10000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~862aa9d9e877d3ea209b87299ab5b12c13ed5ce43d1cf1b934043c1dd02f58f6",
                "transacted_amount": 50000,
                "timestamp": "2025-08-12T21:04:22.000Z",
                "token_id": "USD",
                "category": "transfer",
                "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "transaction_type": "DEBIT",
                "balance": 10000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~8a74c6d87ca74a613aab9db5d40386f8d5b534f9800503af8ca27e8946d7616d",
                "transacted_amount": 40000,
                "timestamp": "2025-08-12T21:01:27.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REJECT_MINT",
                "balance": 60000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~28ac66ba33f7ad0648448964b2b74525c9e3f0c9908c7a0484690b9baa56c2db",
                "transacted_amount": 30000,
                "timestamp": "2025-08-12T21:01:16.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "APPROVE_MINT",
                "balance": 60000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~7e32ad8f365ff59814e112f27602f30ab599fb9c1638784496c66a61a6277c22",
                "transacted_amount": 20000,
                "timestamp": "2025-08-12T21:01:05.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "APPROVE_MINT",
                "balance": 30000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~1477050bb9e55f4f471872b31fce0d2097f5d5e57d89a842070df5e36d7ab0da",
                "transacted_amount": 10000,
                "timestamp": "2025-08-12T21:01:03.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "APPROVE_MINT",
                "balance": 10000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~0e76c6931b7ee134e967e847d9730b867a0fd191d39697d83d36dd15745c02e3",
                "transacted_amount": 40000,
                "timestamp": "2025-08-12T21:00:20.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REQUEST_MINT",
                "balance": 0,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~07bbf9c190694371626da59ded5d87434d26f612891e13bb15bdd28f6086e760",
                "transacted_amount": 30000,
                "timestamp": "2025-08-12T21:00:01.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REQUEST_MINT",
                "balance": 0,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~8721175c6cbbce17b6c4bb6a444e475d07f52352dfd0d990679f342215153513",
                "transacted_amount": 20000,
                "timestamp": "2025-08-12T20:59:41.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REQUEST_MINT",
                "balance": 0,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~dc24c24d43a6525e807a39edcf8c6a2b6ccb81f0d755958f509509687eacee84",
                "transacted_amount": 10000,
                "timestamp": "2025-08-12T20:59:13.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "REQUEST_MINT",
                "balance": 0,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~396e6ca5a11a9609632d0864026409d46a708fb95e3e21b39fa5f3fb78f90872",
                "transacted_amount": 0,
                "timestamp": "2025-08-12T20:43:20.000Z",
                "token_id": "",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transaction_type": "CREATE_ACCOUNT",
                "balance": 0,
                "onhold_balance": 0
            }
        ],
        "encode": "JSON"
    }
}
getCBDCAccountTransactionHistoryWithFilters
Original method name: getAccountTransactionHistoryWithFiltersFromRichHistDB
This method returns the account transaction history details from the rich history database. This method can be called only by a Token Admin or Token Auditor of the chaincode, an Org Admin or Org Auditor of the specified organization, or the AccountOwner of the account.
/getCBDCAccountTransactionHistoryWithFilters?accountId=account_id value&customEndpoint=custom_endpoint value&bearerToken=bearer_token value&filters={"pageSize":20,"bookmark":"","startTime":"1900-01-01T00:00:00+00:00","endTime":"2100-01-01T00:00:00+00:00"}&peer={{peer}}
Parameters:
  • accountId: string – The ID of the account.
  • customEndpoint – The RESTful service endpoint of the rich history database to fetch the transaction history from.
  • bearerToken – The token to use to call the RESTful endpoint to ensure that the request is authorized.
  • filters: JSON object – An optional parameter. If empty, all records are returned. The pageSize property determines the number of records to return. If pageSize is 0, the default page size is 20. The bookmark property determines the starting index of the records to return. The startTime and endTime properties must be specified in RFC-3339 format.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
                "transacted_amount": 200,
                "timestamp": "2025-08-25T13:16:55.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "transacted_org_id": "Org1",
                "transacted_user_id": "fi1_org_officer_demo",
                "transacted_custom_account_id": "20200222221111",
                "to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "to_org_id": "Org1",
                "to_user_id": "fi1_org_officer_demo",
                "to_custom_account_id": "20200222221111",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "EXECUTEHOLD",
                "category": "transfer",
                "balance": 26800,
                "onhold_balance": 300
            },
            {
                "transaction_id": "otransaction~2b75b3e8531a651f07c2d048d8546ad70ac49c66f0b82ed7626c1739090842ce",
                "transacted_amount": 100,
                "timestamp": "2025-08-25T13:16:06.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb_issuer_demo",
                "transacted_custom_account_id": "10109999001234",
                "to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "to_org_id": "Org1",
                "to_user_id": "fi1_org_officer_demo",
                "to_custom_account_id": "20200222221111",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "ONHOLD",
                "holding_id": "ohold~cbdc~USD~e26f11da",
                "category": "transfer",
                "balance": 26800,
                "onhold_balance": 500
            },
            {
                "transaction_id": "otransaction~9e7bf14cf96c5f90170da9455b1318687785e936192f60b7cbeb1c8bfabc41d2",
                "transacted_amount": 100,
                "timestamp": "2025-08-21T06:57:19.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb_retirer_demo",
                "transacted_custom_account_id": "10109999006543",
                "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "to_org_id": "CentralBank",
                "to_user_id": "cb_issuer_demo",
                "to_custom_account_id": "10109999001234",
                "from_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_retirer_demo",
                "from_custom_account_id": "10109999006543",
                "transaction_type": "CREDIT",
                "category": "transfer",
                "balance": 26900,
                "onhold_balance": 400
            },
            {
                "transaction_id": "otransaction~b3901b4754920a9c75e36069dc55024ad505e4c127f334eedf65ef6703dc6b86",
                "transacted_amount": 200,
                "timestamp": "2025-08-21T05:39:25.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb_issuer_demo",
                "transacted_custom_account_id": "10109999001234",
                "to_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
                "to_org_id": "org2",
                "to_user_id": "fi2_org_officer_demo",
                "to_custom_account_id": "30300617202404",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "ONHOLD",
                "holding_id": "ohold~cbdc~USD~77b75873",
                "category": "issuance",
                "balance": 26800,
                "onhold_balance": 400
            },
            {
                "transaction_id": "otransaction~d55c9dfc9feacb353544b5d8b2ae694162ade3890bcaaf715503fd1d6a73cd1a",
                "transacted_amount": 200,
                "timestamp": "2025-08-21T05:39:01.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb_issuer_demo",
                "transacted_custom_account_id": "10109999001234",
                "to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "to_org_id": "Org1",
                "to_user_id": "fi1_org_officer_demo",
                "to_custom_account_id": "20200222221111",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "ONHOLD",
                "holding_id": "ohold~cbdc~USD~81d7c4ac",
                "category": "transfer",
                "balance": 27000,
                "onhold_balance": 200
            },
            {
                "transaction_id": "otransaction~751eaedbe4311edd5d17cae53d283caf397d0cb09f18d57a5e3fe61266875ff9",
                "transacted_amount": 200,
                "timestamp": "2025-08-13T09:59:22.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
                "transacted_org_id": "org2",
                "transacted_user_id": "fi2_org_officer_demo",
                "transacted_custom_account_id": "30300617202404",
                "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "to_org_id": "CentralBank",
                "to_user_id": "cb_issuer_demo",
                "to_custom_account_id": "10109999001234",
                "from_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
                "from_org_id": "org2",
                "from_user_id": "fi2_org_officer_demo",
                "from_custom_account_id": "30300617202404",
                "transaction_type": "CREDIT",
                "category": "transfer",
                "balance": 27200,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~70155a8f4e388cc9395dbd03bedaf5a878705f5ad02302c8e9163218a5c3875a",
                "transacted_amount": 1000,
                "timestamp": "2025-08-13T06:22:56.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "transacted_org_id": "Org1",
                "transacted_user_id": "fi1_org_officer_demo",
                "transacted_custom_account_id": "20200222221111",
                "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "to_org_id": "CentralBank",
                "to_user_id": "cb_issuer_demo",
                "to_custom_account_id": "10109999001234",
                "from_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "from_org_id": "Org1",
                "from_user_id": "fi1_org_officer_demo",
                "from_custom_account_id": "20200222221111",
                "transaction_type": "CREDIT",
                "category": "transfer",
                "balance": 27000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~e595f3f0cc03fa5f58a546b8abbfaf155592e492f850581db2b8fed9a529c9e2",
                "transacted_amount": 10000,
                "timestamp": "2025-08-12T21:09:25.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
                "transacted_org_id": "org2",
                "transacted_user_id": "fi2_org_officer_demo",
                "transacted_custom_account_id": "30300617202404",
                "to_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
                "to_org_id": "org2",
                "to_user_id": "fi2_org_officer_demo",
                "to_custom_account_id": "30300617202404",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "EXECUTEHOLD",
                "category": "issuance",
                "balance": 26000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~da92402859d87ae3069722d8e39cb0da448e9a5f67468233ee9b1fe7a4ebeef8",
                "transacted_amount": 10000,
                "timestamp": "2025-08-12T21:09:17.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "transacted_org_id": "Org1",
                "transacted_user_id": "fi1_org_officer_demo",
                "transacted_custom_account_id": "20200222221111",
                "to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "to_org_id": "Org1",
                "to_user_id": "fi1_org_officer_demo",
                "to_custom_account_id": "20200222221111",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "EXECUTEHOLD",
                "category": "issuance",
                "balance": 26000,
                "onhold_balance": 10000
            },
            {
                "transaction_id": "otransaction~6915145aaf09fbf4d96456febddc2aa87b48c08ddd8ff17a6bab5d310f67bb36",
                "transacted_amount": 1000,
                "timestamp": "2025-08-12T21:07:11.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb_retirer_demo",
                "transacted_custom_account_id": "10109999006543",
                "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "to_org_id": "CentralBank",
                "to_user_id": "cb_issuer_demo",
                "to_custom_account_id": "10109999001234",
                "from_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_retirer_demo",
                "from_custom_account_id": "10109999006543",
                "transaction_type": "CREDIT",
                "category": "transfer",
                "balance": 26000,
                "onhold_balance": 20000
            },
            {
                "transaction_id": "otransaction~244d7172d1dc90a142e1f22204c76614c7eea814b3d61f33016b786f1b347784",
                "transacted_amount": 10000,
                "timestamp": "2025-08-12T21:05:39.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb_issuer_demo",
                "transacted_custom_account_id": "10109999001234",
                "to_account": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
                "to_org_id": "org2",
                "to_user_id": "fi2_org_officer_demo",
                "to_custom_account_id": "30300617202404",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "ONHOLD",
                "holding_id": "ohold~cbdc~USD~ed815e20",
                "category": "issuance",
                "balance": 25000,
                "onhold_balance": 20000
            },
            {
                "transaction_id": "otransaction~c63ec37966264493bde6fa666527b9cca11695c15611c32e89af49a2246f13f6",
                "transacted_amount": 10000,
                "timestamp": "2025-08-12T21:05:20.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb_issuer_demo",
                "transacted_custom_account_id": "10109999001234",
                "to_account": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "to_org_id": "Org1",
                "to_user_id": "fi1_org_officer_demo",
                "to_custom_account_id": "20200222221111",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "ONHOLD",
                "holding_id": "ohold~cbdc~USD~12d87129",
                "category": "issuance",
                "balance": 35000,
                "onhold_balance": 10000
            },
            {
                "transaction_id": "otransaction~5112f576c94c2d23c342479bfa37e34612414b3258a64b43cf51b920f4ff5868",
                "transacted_amount": 5000,
                "timestamp": "2025-08-12T21:05:02.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb_retirer_demo",
                "transacted_custom_account_id": "10109999006543",
                "to_account": "oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98",
                "to_org_id": "CentralBank",
                "to_user_id": "cb_retirer_demo",
                "to_custom_account_id": "10109999006543",
                "from_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "from_user_id": "cb_issuer_demo",
                "from_custom_account_id": "10109999001234",
                "transaction_type": "DEBIT",
                "category": "burn",
                "balance": 45000,
                "onhold_balance": 0
            },
            {
                "transaction_id": "otransaction~862aa9d9e877d3ea209b87299ab5b12c13ed5ce43d1cf1b934043c1dd02f58f6",
                "transacted_amount": 50000,
                "timestamp": "2025-08-12T21:04:22.000Z",
                "token_id": "USD",
                "transacted_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "transacted_org_id": "CentralBank",
                "transacted_user_id": "cb__creator_demo",
                "transacted_custom_account_id": "10105678004567",
                "to_account": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "to_org_id": "CentralBank",
                "to_user_id": "cb_issuer_demo",
                "to_custom_account_id": "10109999001234",
                "from_account": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                "from_org_id": "CentralBank",
                "from_user_id": "cb__creator_demo",
                "from_custom_account_id": "10105678004567",
                "transaction_type": "CREDIT",
                "category": "transfer",
                "balance": 50000,
                "onhold_balance": 0
            }
        ],
        "encode": "JSON"
    }
}
getCBDCRetiredQuantity
Original method name: getBurnQuantity
This GET method returns the total quantity of burned tokens for a specified organization. This method can be called only by a Token Admin, Token Auditor, or a user with the burner role.
/getCBDCRetiredQuantity?tokenId={{bc-token-id}}&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "burnt_quantity": 1200
        },
        "encode": "JSON"
    }
}
getOnHoldIds
Original method name: getOnHoldIds
This GET method returns a list of all of the holding IDs for a specified account. This method can be called only by a Token Admin or Token Auditor of the chaincode, an Org Admin or Org Auditor of the specified organization, or the AccountOwner of the account.
/getOnHoldIds?accountId=account_id value&peer={{peer}}
Parameters:
  • accountId: string – The ID of the account.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "msg": "Holding Ids are: ohold~cbdc~USD~8e3147,ohold~cbdc~USD~8e315",
            "holding_ids": [
                "ohold~cbdc~USD~8e3147",
                "ohold~cbdc~USD~8e315"
            ]
        },
        "encode": "JSON"
    }
}
getPendingCBDCIssuance
Original method name: getPendingIssuance
This method retrieves all pending issuance (transfer) transactions where the caller is assigned as an approver, including details of the organization, and user IDs of accounts involved (sender, recipient, and notary). This method can be called only by a Token Admin or Token Auditor of the chaincode, an Org Admin or Org Auditor, or the Notary.
/getPendingCBDCIssuance?tokenId={{bc-token-id}}&orgId={{bc-org-id}}&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "asset_type": "ONHOLD",
                "category": "issuance",
                "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~77b75873",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": "77b75873",
                "timetoexpiration": "0",
                "to_account_id": "oaccount~3954f54a8bc7acdd0c3d0960104240f60d56c26c8a179430267359cd80ce3709",
                "to_org_id": "org2",
                "token_id": "USD",
                "token_name": "cbdc",
                "quantity": 200
            },
            {
                "asset_type": "ONHOLD",
                "category": "transfer",
                "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                "from_org_id": "CentralBank",
                "holding_id": "ohold~cbdc~USD~e26f11da",
                "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                "notary_org_id": "CentralBank",
                "operation_id": "e26f11da",
                "timetoexpiration": "0",
                "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                "to_org_id": "Org1",
                "token_id": "USD",
                "token_name": "cbdc",
                "quantity": 100
            }
        ],
        "encode": "JSON"
    }
}
getPendingCBDCRequest
Original method name: getPendingRequest
This method retrieves all pending requests of a specified type where the caller is assigned as an approver. This method can be called only by a Token Admin or Token Auditor of the chaincode or the Notary.
/getPendingCBDCRequest?tokenId={{bc-token-id}}&requestType=request_type value&orgId={{bc-org-id}}&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • requestType: string – The transaction type. For example, mint or burn.
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "valueJson": {
                    "assetType": "ohold",
                    "holding_id": "ohold~cbdc~USD~89ce",
                    "operation_id": "89ce",
                    "token_name": "cbdc",
                    "from_org_id": "CentralBank",
                    "operation_type": "mint",
                    "status": "pending",
                    "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                    "to_account_id": "",
                    "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                    "token_id": "USD",
                    "quantity": 2000,
                    "time_to_expiration": "0",
                    "description": "Minting 2000 tokens"
                }
            },
            {
                "valueJson": {
                    "assetType": "ohold",
                    "holding_id": "ohold~cbdc~USD~cf73",
                    "operation_id": "cf73",
                    "token_name": "cbdc",
                    "from_org_id": "CentralBank",
                    "operation_type": "mint",
                    "status": "pending",
                    "from_account_id": "oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41",
                    "to_account_id": "",
                    "notary_account_id": "oaccount~9b136ef4a60230846a8c14761683851a386d306b79493bc4d00433020c96cfa7",
                    "token_id": "USD",
                    "quantity": 200,
                    "time_to_expiration": "0",
                    "description": "Minting 200"
                }
            }
        ],
        "encode": "JSON"
    }
}
getTotalCBDCBalanceByCallerOrgId
Original method name: getTotalBalanceByCallerOrgId
This method retrieves the total balance of the caller's organization. This method can be called only by a Token Admin, Token Auditor, Org Admin, Org Auditor, or any account owner.
/getTotalCBDCBalanceByCallerOrgId?peer={{peer}}
Parameters:
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "totalBalance": 50500
        },
        "encode": "JSON"
    }
}
getTotalCreatedCBDCTokens
Original method name: getTotalMintedTokens
This method returns the total number of minted tokens for a specified token. This method can be called only by a Token Admin, Token Auditor, Org Admin, or Org Auditor.
Query:
/getTotalCreatedCBDCTokens?tokenId={{bc-token-id}}&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "msg": "Total minted token for Token Id: USD is 71000 tokens.",
            "quantity": 71000
        },
        "encode": "JSON"
    }
}
getTransactionWithBlockNumber
Original method name: getTransactionWithBlockNumber
This GET method returns the details of the transaction for the specified transaction ID.
Query:
/getTransactionWithBlockNumber?tokenId={{bc-token-id}}&transactionId=transaction_id value&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • transactionId: string – The ID of the transaction.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": [
            {
                "blockNo": 340,
                "key": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
                "metadata": null,
                "txnNo": 0,
                "value": null,
                "valueJson": {
                    "assetType": "otransaction",
                    "blockNo": 336,
                    "txnNo": 1,
                    "transaction_id": "otransaction~3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
                    "token_id": "USD",
                    "from_account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
                    "from_account_balance": 26800,
                    "from_account_onhold_balance": 300,
                    "to_account_id": "oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3",
                    "transaction_type": "EXECUTE_HOLD_SENDER",
                    "amount": 200,
                    "timestamp": "2025-08-25T13:16:55.000Z",
                    "number_of_sub_transactions": 0,
                    "holding_id": "ohold~cbdc~USD~81d7c4ac",
                    "sub_transaction": "false",
                    "category": "transfer",
                    "global_transaction_id": "b54d4333-f4bb-4ca4-a7b7-cc75b659d912"
                }
            }
        ],
        "encode": "JSON"
    }
}
getUserByCBDCAccountId
Original method name: getUserByAccountId
This method returns user details (orgId, userId, and tokenId) for a specified account. This method can be called only by a Token Admin or Token Auditor of the chaincode, or an Org Admin or Org Auditor of the specified organization.
Query:
/getUserByCBDCAccountId?accountId=account_id value&peer={{peer}}
Parameters:
  • accountId: string – The ID of the account.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "token_id": "USD",
            "org_id": "CentralBank",
            "user_id": "cb_admin_demo",
            "custom_account_id": "10101234000123"
        },
        "encode": "JSON"
    }
}
getUsersByRole
Original method name: getUsersByRole
This GET method returns a list of all users for a specified role and token. This method can be called only by a Token Admin or Token Auditor of the chaincode.
Query:
/getUsersByRole?tokenId={{bc-token-id}}&role=role value (for example minter / burner / notary)&peer={{peer}}
Parameters:
  • tokenId: string – The ID of the token.
  • role: string – The name of the role to search for.
  • peer: string – The name of the peer node to run the query on.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "payload": {
            "users": [
                {
                    "token_id": "USD",
                    "org_id": "CentralBank"
                }
            ]
        },
        "encode": "JSON"
    }
}
holdCBDCTokens
Original method name: holdTokens
This method creates a hold on behalf of the owner of the tokens with the to_account_id account. A notary account is specified, which is responsible to either complete or release the hold. When the hold is created, the specified token balance from the payer is put on hold. A held balance cannot be transferred until the hold is either completed or released. The caller of this method must have an account already created.
Payload:
{
    "operationId": "operation_id value",
    "toAccountId": "to_account_id value",
    "notaryAccountId": "notary_account_id value",
    "quantity": 1,
    "timeToExpiration": "time_to_expiration value",
    "infoDetails": "{\"category\":\"category value\",\"description\":\"description value\"}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • operationId: string – A unique ID to identify the hold operation. Typically this ID is passed by the client application.
  • toAccountId: string – The account ID of the receiver.
  • notaryAccountId: string – The account ID of the notary.
  • quantity: number – The number of tokens to put on hold.
  • timeToExpiration – The time when the hold expires. Specify 0 for a permanent hold. Otherwise use the RFC-3339 format. For example, 2021-06-02T12:46:06Z.
  • infoDetails: JSON – The description and category as shown in the following example.
    {
       "category" : "category input",
       "description" : "description input"
    }
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "4793f3907eefce2f9fca7ef107405b0f116efb3afbf83fa0e61fe763690c8235",
        "payload": {
            "msg": "AccountId oaccount~76687c724ddbc2d6e6664d9618b2bf1c2a9fe10f84887462447e4caba6aaaff3 is successfully holding 100 tokens"
        },
        "encode": "JSON",
        "sourceURL": "org1-oabcs1-nrt.blockchain.ocp.example.com:20012",
        "blockNumber": 343
    }
}
init
Original method name: init
This method is called when the chaincode is deployed. The user information is saved as the Token Admin of the chaincode.
Payload:
{
    "adminList": "[{\"org_id\":\"{{bc-org-id}}\",\"user_id\":\"{{bc-admin-user}}\"}]",
    "transientMapArgsFlag": true
}
Parameters:
  • adminList array – An array of {user_id, org_id} information that specifies the list of token admins. The adminList array is a mandatory parameter.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "fdb7dc89832c8045a333823b77fa24ae628178148dc93b3550040e070d7cd807",
        "payload": "",
        "encode": "UTF-8",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20009",
        "blockNumber": 263
    }
}
initializeCBDCToken
Original method name: initializeCBDCToken
This method creates a token and initializes the token properties. The asset and its properties are saved in the state database. This method can be called only by a Token Admin of the chaincode.
Payload:
{
    "tokenAsset": "{\"token_id\":\"{{bc-token-id}}\",\"token_desc\":\"USD dollar\",\"Currency_Name\":\"US currency\"}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • tokenAsset: <Token Class> – The token asset is passed as the parameter to this method. The properties of the token asset are described in the model file.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Returns:
  • On success, a JSON representation of the token asset that was created.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "524be506f53ddf27c42db2be2d7d7ed7f8746880c3bf7990605a4b50fe62a616",
        "payload": {
            "assetType": "otoken",
            "events": true,
            "token_id": "PHP",
            "token_name": "cbdc",
            "token_desc": "token_desc value",
            "token_standard": "ttf+",
            "token_type": "fungible",
            "token_unit": "fractional",
            "behaviors": [
                "divisible",
                "mintable",
                "transferable",
                "burnable",
                "holdable",
                "roles"
            ],
            "roles": {
                "minter_role_name": "minter",
                "burner_role_name": "burner",
                "notary_role_name": "notary",
                "mint_approver_role_name": "notary",
                "burn_approver_role_name": "notary"
            },
            "mintable": {
                "max_mint_quantity": 0,
                "mint_approval_required": true
            },
            "burnable": {
                "burn_approval_required": true
            },
            "divisible": {
                "decimal": 2
            },
            "Currency_Name": "Currency_Name value"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20011",
        "blockNumber": 344
    }
}
rejectCBDCCreation
Original method name: rejectMint
This method can be called by a minter notary to reject a minting request.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "operationId": "operation_id value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • tokenId: string – The ID of the token to reject minting.
  • operationId: string – The unique operation ID that represents the mint request.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "182b99bb2ed753994a8c638ab9b08c3a4e73ac8159a3173a2a1f56b651d2eeac",
        "payload": {
            "msg": "Successfully rejected mint request with Operation Id '89ce' to mint 2000 tokens of token id USD"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20011",
        "blockNumber": 345
    }
}
rejectCBDCRetirement
Original method name: rejectBurn
This method can be called by a notary to reject a burning request.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "operationId": "operation_id value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • tokenId: string – The ID of the token to reject for burning.
  • operationId: string – The unique operation ID that represents the burn request.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "af2cc8e43ecb4c5520d90a8d7955b5a47623a29b13eef47e31c16eb48cc0adec",
        "payload": {
            "msg": "Successfully rejected burn request with Operation Id '8d34' to burn 100 tokens of token id USD"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20011",
        "blockNumber": 346
    }
}
rejectHoldCBDCTokens
Original method name: releaseHoldTokens
This POST method releases a hold on tokens. The transfer is not completed and all held tokens are available again to the original owner. This method can be called by the AccountOwner ID with the notary role within the specified time limit or by the payer, payee, or notary after the specified time limit.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "operationId": "operation_id value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • tokenId: string – The ID of the token.
  • operationId: string – A unique ID to identify the hold operation. Typically this ID is passed by the client application.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "c628fb7738222ed969295ccc8d21b4be95d96e3aada4f14570f7820a7051b5f7",
        "payload": {
            "msg": "Successfully released '200' tokens from Operation Id '77b75873' to Account Id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a (Org-Id: CentralBank, User-Id: cb_issuer_demo)."
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20009",
        "blockNumber": 347
    }
}
removeCBAdmin
Original method name: removeTokenAdmin
This POST method removes a user as a Token Admin of the chaincode. This method can be called only by a Token Admin of the chaincode. An admin cannot remove themselves.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • userId: string – The user name or email ID of the user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "6a3b9b568d04b5beb29830f91efe4e8c6310b6cf36940cecfb4ab690fbfde739",
        "payload": {
            "msg": "Successfully removed Token Admin (Org_Id: CB, User_Id: cb)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010",
        "blockNumber": 218
    }
}
removeCBAuditor
Original method name: removeTokenAuditor
This POST method removes a user as a Token Auditor of the chaincode. This method can be called only by a Token Admin of the chaincode.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • userId: string – The user name or email ID of the user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "a886a6040fbc76374a3c78c89ab0ffc9f7b8391cc5239b169bf3b878cf40c67b",
        "payload": {
            "msg": "Successfully removed Token Auditor (Org_Id: CB, User_Id: cb)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010",
        "blockNumber": 219
    }
}
removeFIAdmin
Original method name: removeOrgAdmin
This POST method removes a user as a Org Admin of the chaincode. This method can be called only by a Token Admin or Org Admin of the specified organization. An Org Admin cannot remove themselves.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • userId: string – The user name or email ID of the user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "e2a634f6093f89b1984e20ff86a513fabb7c3ade7cc9e27d9734b4aaf6c88597",
        "payload": {
            "msg": "Successfully removed Org Admin (Org_Id: CB, User_Id: cb)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010",
        "blockNumber": 220
    }
}
removeFIAuditor
Original method name: removeOrgAuditor
This POST method removes a user as a Org Auditor of the chaincode. This method can be called only by a Token Admin or Org Admin of the specified organization.
Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • orgId: string – The membership service provider (MSP) ID of the user in the current organization.
  • userId: string – The user name or email ID of the user.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "c3bc720461004a53b37c68d4bb264858b88d980bc093a0a3ebb62a32974fb306",
        "payload": {
            "msg": "Successfully removed Org Auditor (Org_Id: CB, User_Id: cb)"
        },
        "encode": "JSON",
        "sourceURL": "cb-oabcs1-bom.blockchain.ocp.example.com:20010",
        "blockNumber": 221
    }
}
removeRole
Original method name: removeRole
This method removes a role from a specified user and token. This method can be called only by a Token Admin of the chaincode or by an Org Admin of the specified organization.
Payload:
{
    "accountId": "account_id value",
    "role": "role value (for example minter / burner / notary)",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • accountId: string – The ID of the account.
  • role: string – The name of the role to remove from the specified user. The mintable and burnable behaviors correspond to the minter_role_name and burner_role_name properties of the specification file. Similarly, the notary role corresponds to the notary_role_name property of the specification file.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "d92538a8f9cf2d45a0c14307ce192c399230cbf4022cec5dd6ce560cca527bf3",
        "payload": {
            "msg": "Successfully removed role 'notary' from Account Id: oaccount~e8450f7a1f320658169315fb4148ad7cb4c47c31435420fd459665f41238221b"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 72
    }
}
requestCBDCCreation
Original method name: requestMint
This method can be called by a minter to send a request to the minter notary to create a specified amount of tokens.
Payload:
{
    "operationId": "operation_id value",
    "notaryAccountId": "notary_account_id value",
    "quantity": 1,
    "timeToExpiration": "time_to_expiration value",
    "infoDetails": "{\"category\":\"category value\",\"description\":\"description value\"}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • operationId: string – The unique operation ID that represents the mint request.
  • notaryAccountId: string – The account ID of the minter notary who will process the request.
  • quantity: number – The amount of tokens to mint.
  • timeToExpiration – The time after which the minting request expires and is no longer valid.
  • infoDetails: JSON – An object specifying the category (category) and description (description) of the request, as shown in the following example.
    {
         "category" : "category input",
         "description" : "description input"
    }
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "1982f73495060e0eef4d78282a91c41e27e8c95572739b0677a1e404a0d20aa9",
        "payload": {
            "msg": "AccountId oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41 has successfully submitted request to mint 200 tokens"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20009",
        "blockNumber": 332
    }
}
requestCBDCRetirement
Original method name: requestBurn
This method can be called by a burner to send a request to the notary to destroy a specified amount of tokens.
Payload:
{
    "operationId": "operation_id value",
    "notaryAccountId": "notary_account_id value",
    "quantity": 1,
    "timeToExpiration": "time_to_expiration value",
    "infoDetails": "{\"category\":\"category value\",\"description\":\"description value\"}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • operationId: string – The unique operation ID that represents the burn request.
  • notaryAccountId: string – The account ID of the notary who will process the request.
  • quantity: number – The amount of tokens to burn.
  • timeToExpiration – The time after which the burning request expires and is no longer valid.
  • infoDetails: JSON – An object specifying the category (category) and description (description) of the request, as shown in the following example.
    {
         "category" : "category input",
         "description" : "description input"
    }
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "3b1ba40490dea9bcc4df6ad22ffc7651fbbea5d1889e42a1841ee48d6ae653c6",
        "payload": {
            "msg": "AccountId oaccount~cea6080858337b1575d6a76ed0bd07a0eacd8871e3f2f7f793729a0e4b0e8e98 has successfully submitted request to burn 100 tokens"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20011",
        "blockNumber": 333
    }
}
setApplicationGroups
Original method name: setApplicationGroups
This POST method is used to set the application_groups parameter in the account details for the specified application groups. This method can be called only by a Token Admin of the chaincode or by an Org Admin of the specified organization.
Payload:
{
    "accountId": "account_id value",
    "applicationGroups": "[\"application_groups value\"]",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • accountId: string – The account ID of the token account.
  • applicationGroups: string[] – A list of application groups the user ID belongs to, defining the user's associations in the CBDC application.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "828fd2ece518fcf266868c840b3b1fc6b967c5c64d7591c42eb18c0c7850dc32",
        "payload": {
            "bapAccountVersion": 10,
            "assetType": "oaccount",
            "account_id": "oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a",
            "org_id": "CentralBank",
            "token_type": "fungible",
            "token_id": "USD",
            "token_name": "cbdc",
            "balance": "02c4601262fa7ece1ffc909811f829ad973d4133ca27c9c0fa82972d441400ad3e",
            "onhold_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f",
            "onhold_burn_balance": "028954d23bfabee1a10d9f5a07793dec08ab0f93fd506079b0fa33f525d527595f",
            "application_groups": [
                "SYSTEM_RETIRERS"
            ]
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 348
    }
}
setMaxDailyAmount
Original method name: setMaxDailyAmount
This POST method is used to set the maxDailyAmount parameter in the account details for the specified amount. This method can be called only by a Token Admin of the chaincode or by an Org Admin of the specified organization.
Payload:
{
    "accountId": "account_id value",
    "maxDailyAmount": "max_daily_amount value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • accountId: string – The account ID of the token account.
  • maxDailyAmount: number – The maximum daily amount value for the specified account, which defines the maximum amount that can be transacted daily.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "d6a8c26602c2a9cef5d6d563dbc50044af6380c96f7295e2c8e1bbf576cef36f",
        "payload": {
            "msg": "Successfully set max daily amount for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 1000000"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 351
    }
}
setMaxDailyTransactionCount
Original method name: setMaxDailyTransactionCount
This POST method is used to set the maxDailyTransactions parameter in the account details for the specified amount. This method can be called only by a Token Admin of the chaincode or by an Org Admin of the specified organization.
Payload:
{
    "accountId": "account_id value",
    "maxDailyTransactions": "max_daily_transactions value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • accountId: string – The account ID of the token account.
  • maxDailyTransactions: number – The maximum daily amount value for the specified account, which defines the maximum number of transactions allowed per day.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "c819da688bbe9cd4ef6fae79af014c66438b5f9d17f771d3ffc5878288097614",
        "payload": {
            "msg": "Successfully set max daily transactions for account id oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a to 100000"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 350
    }
}
suspendCBDCAccount
Original method name: suspendAccount
This method suspends a fungible token account. It throws an error if an accountStatus value is not found in ledger. This method can be called only by a Token Admin of the chaincode or by an Org Admin of the specified organization.
Payload:
{
    "accountId": "account_id value",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • accountId: string – The account ID of the token account.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "1fa66e75ba2ab9376944a8b4e362d5fe54e167f8ada989bd9653ea54f7557aea",
        "payload": {
            "assetType": "oaccountStatus",
            "status_id": "oaccountStatus~d0b8ba4d154d19fd7e61e7793795a5a5b65e2266102aafdd6d01cec1a3336c71",
            "account_id": "oaccount~c44ffac4c46718e9744cb0aae2016d26a87a5bef5e2d1c0d1abc7d8782f0ba61",
            "status": "suspended"
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20011",
        "blockNumber": 342
    }
}
transferCBDCTokens
Original method name: transferTokens
This method transfers tokens from the caller to a specified account. The caller of the method must have an account. The quantity must be within the decimal values specified by the decimal parameter of the divisible behavior in the specification file.
Payload:
{
    "toAccountId": "to_account_id value",
    "quantity": 1,
    "infoDetails": "{\"category\":\"category value\",\"description\":\"description value\"}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Parameters:
  • toAccountId: string – The account ID of the receiver.
  • quantity: number – The number of tokens to transfer.
  • infoDetails: JSON – An object specifying the category (category) and description (description) of the request, as shown in the following example.
    {
         "category" : "category input",
         "description" : "description input"
    }
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "txid": "62eb436be7c29fc2ed9cae221e874d9a31b163fa10374e7da09bf5e09a96c3ff",
        "payload": {
            "msg": "Successfully transferred 10000 tokens from account id: oaccount~da6e14466a0ba9b48ebc18fa672addb92dffc371bf953c3229a95b2ff2d9cd41  to account id: oaccount~68d67712f500e9dac8c314c19744003a993250271d960e9b0d25267bb18dfe9a."
        },
        "encode": "JSON",
        "sourceURL": "centralbank-oabcs1-nrt.blockchain.ocp.example.com:20010",
        "blockNumber": 352
    }
}

The wrapper API package also includes the approveHoldCBDCTokensInterOrg and createCBDCAccount APIs, which combine chaincode APIs and Oracle Blockchain Platform console APIs into a single endpoint for account creation.

approveHoldCBDCTokensInterOrg
This method transfers tokens securely between organizations. Internally, this method uses the two-phase commit API in Oracle Blockchain Platform.
Payload:
{
    "tokenId": "{{bc-token-id}}",
    "operationId": "operation_id value",
    "quantity": 1,
    "senderEndorsers": ["Sender Endorsers values"],
    "receiverEndorsers": ["Receiver Endorsers values"],
    "transientMapArgsFlag": true
}
Payload parameters:
  • tokenId: string – The ID of the CBDC token to transfer. The token ID must exist in the ledger.
  • operationId: string – The unique operation ID of the transfer (hold) request to approve.
  • quantity: number – The number of tokens to transfer.
  • senderEndorsers: string[] – An array of the peers in the sender organization (for example, ["peer0.senderorg", "peer1.senderorg"]) that must endorse the transaction.
  • receiverEndorsers: string[] – An array of the peers in the receiver organization (for example, ["peer0.receiverorg", "peer1.receiverorg") that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
{
    "returnCode": "Success",
    "error": "",
    "result": {
        "transactions": [
            {
                "channel": "buildtest",
                "chaincode": "WCBDCConfAug13",
                "txstatus": "Committed",
                "prepare": {
                    "txid": "3140569a4ecb3c3f141cc2468fe21276640b7fd79013d951d9104b79072d8f9c",
                    "blockNumber": 335
                },
                "commit": {
                    "txid": "9cfa020acc13c1de911e8a53eae799f47c1947d88a608753edb4b97fe45d00cc",
                    "blockNumber": 336
                },
                "rollback": {}
            },
            {
                "channel": "buildtest",
                "chaincode": "WCBDCConfAug13",
                "txstatus": "Committed",
                "prepare": {
                    "txid": "32137cd7e16c560f4d96d0f8999f6a267c1e95be2f5b11ef0541e574a6cd7275",
                    "blockNumber": 335
                },
                "commit": {
                    "txid": "ac55bd7648680ff6b795e4a99026d7c538f68167683e1e622e55778a2930614d",
                    "blockNumber": 336
                },
                "rollback": {}
            }
        ],
        "lrc": {},
        "globalStatus": "Success",
        "globalTxid": "b54d4333-f4bb-4ca4-a7b7-cc75b659d912",
        "txStartTime": "2025-08-25T13:16:55.825578503Z"
    }
}
createCBDCAccount

The createCBDCAccount API completes the following operations in sequence.

  1. Creates an enrollment ID for the user in Oracle Blockchain Platform. The enrollment ID that is created is the same as the user ID, with some limitations. The ID can contain only alphanumeric characters, hyphens (-), and underscores (_). If the user ID contains any other special characters, they are replaced with an underscores (_). For example, if the user ID is adam.fripp@example.com, the enrollment ID that is created is adam_fripp_example_com. If the enrollment already exists for the specified user ID, another enrollment is not created.
  2. Creates an account in the ledger with the details provided in the payload.
  3. Associates the new account with the token specified in the payload.
  4. Assigns the role specified in the payload to the user.

To ensure consistency and to avoid incomplete data, if any of the subsequent steps fail, the enrollment ID that was created in the first step is deleted.

Payload:
{
    "orgId": "{{bc-org-id}}",
    "userId": "{{bc-user-id}}",
    "applicationGroups": "[\"applicationGroups value\"]",
    "customAccountId": "custom_account_id value",
    "tokenId": "{{bc-token-id}}",
    "role": "role value (for example minter / burner / notary / tokenAdmin / tokenAuditor / orgAdmin / orgAuditor/ No)",
    "dailyLimits": "{\"max_daily_amount\":1000, \"max_daily_transactions\":100}",
    "endorsers": {{endorsers}},
    "transientMapArgsFlag": true
}
Payload parameters:
  • orgId – The membership service provider (MSP) ID of the user to create the account for. The ID must begin with an alphanumeric character and can include letters, numbers, and special characters such as underscores (_), periods (.), at signs (@), and hyphens (-).
  • userId – The user name or email ID of the user. The ID must begin with an alphanumeric character and can include letters, numbers, and special characters such as underscores (_), periods (.), at signs (@), and hyphens (-).
  • applicationGroups – The application groups the account will belong to. For example, System_Admins.
  • customAccountId – A unique random ID for accounts that use confidential mode chaincode.
  • tokenId – The ID of the token associated with the account. The ID must begin with an alphanumeric character and can include letters, numbers, and the special characters underscore (_) and hyphen (-). It cannot exceed 16 characters in length.
  • role – The role must be one of the following values: minter, burner, notary, tokenAdmin, tokenAuditor, orgAdmin or orgAuditor.
  • dailyLimits – Two numeric fields that define the daily transaction limits: max_daily_amount and max_daily_transactions.
  • endorsers: string[] – An array of the peers (for example, peer1, peer2) that must endorse the transaction.
  • transientMapArgsFlag – A Boolean value. If true, the arguments are sent via a transient map for confidentiality. If false, arguments are send via the standard payload.
Return Value Example:
"payload": {
 "msg": "Account created successfully and 'minter' role added to Account Id: oaccount~4a86f2843c2b0105c97a77202bd9aba519c81dcef27eccc1d89125ae32770700 (Org-Id: CB, User-Id: creator_user_cb)"
 "accountDetails":
      {           
            "bapAccountVersion": 0,
            "assetType": "oaccount",
            "account_id": "oaccount~ce5c56d2068ce31b82136c8eea110a80b9251595d361db70924c4e989032a1be",
            "user_id": "creator_user_cb",
            "org_id": "CB",
            "token_type": "fungible",
            "token_id": "USD",
            "token_name": "",
            "balance": 0,
            "onhold_balance": 0,
            "application_groups": [
                "CBDC_CREATORS"
            ],
            "max_daily_amount": 1000,
            "daily_amount": 0,
            "max_daily_transactions": 100,
            "daily_transactions": 0,
            "current_date": "2024-10-06T00:00:00.000Z"
     }
 }