External IDs
When creating vaults, wallets and transfers via the API, customers may create and assign an externalId
to the request. The benefit of assigning a unique identifier to an API request is that it ensures the request is idempotent. An idempotent call or operation is one that produces the same result even if repeated many times.
In practice, this means that if a customer accidentally submits a Create Vault/Wallet/Transfer API request containing a particular externalID
multiple times, Palisade will recognise that the duplicate requests contain the same externalID
and only process the first one.
Therefore, using an externalID
provides protection against human error and unintended consequences. If an externalID
is not used, there is no way for Palisade to differentiate between deliberate and accidental requests and all the requests will be executed.
Example - Vaults
ExternalID
may be used in the Create Vault request body as follows:
{
"name": "Treasury",
"externalId": "95a770cd-8766-4dd5-938c-3c10ead1c4b1"
}
This will result in a response similar to the following (containing the same externalId
field):
{
"id": "0195b3dd-5b95-7d89-8528-f22af192af39",
...
"name": "Treasury",
"externalId": "95a770cd-8766-4dd5-938c-3c10ead1c4b1",
...
Subsequent calls to the Create Vault API using the same externalId
value will return the same Vault object.
Example - Wallets
ExternalID
may be used in the Create Wallet request body as follows:
{
"name": "USD Issuance",
"blockchain": "AVALANCHE",
"keystore": "HSM",
"externalId": "95a770cd-8766-4dd5-938c-3c10ead1c4b1"
}
This will result in a response similar to the following (containing the same externalId
field):
{
"id": "0195b3dd-5b95-7d89-8528-f22af192af39",
...
"name": "USD Issuance",
"blockchain": "AVALANCHE",
"keystore": "HSM",
"externalId": "95a770cd-8766-4dd5-938c-3c10ead1c4b1",
...
Subsequent calls to the Create Wallet API using the same externalId
value will return the same Wallet object.
Example - Transactions
ExternalID
may be used in the Create Transfer request body as follows:
{
"destinationAddress": "rMhieePimPBNQZByxQxX1HXY6VyxEep2JE",
"qty": "0.000003",
"symbol": "XRP",
"externalId": "95a770cd-8766-4dd5-938c-3c10ead1c4b1"
}
This will result in a response similar to the following (containing the same externalId
field):
{
"id": "0195b3dd-5b95-7d89-8528-f22af192af39",
...
"status": "REQUESTED",
"action": "PALISADE_TRANSFER",
"externalId": "95a770cd-8766-4dd5-938c-3c10ead1c4b1",
...
Subsequent calls to the Create Transfer API using the same externalId
value will return the same Transaction object.
Properties of externalId
field
externalId
field- It is optional and nullable. Empty string value is treated as a null value.
- It must be a minimum of 1 character and a maximum of 64 characters in length.
- It must be unique and organization wide. This means that two wallets cannot have transactions containing the same
externalId
. - The API will create a new object for every request that has
externalId
set to null.
Updated 1 day ago