curl --request GET \
--url https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions/{transaction_id} \
--header 'api-key: <api-key>' \
--header 'api-nonce: <api-key>' \
--header 'api-sign: <api-key>'import requests
url = "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions/{transaction_id}"
headers = {
"api-key": "<api-key>",
"api-sign": "<api-key>",
"api-nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'api-key': '<api-key>', 'api-sign': '<api-key>', 'api-nonce': '<api-key>'}
};
fetch('https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions/{transaction_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions/{transaction_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api-key", "<api-key>")
req.Header.Add("api-sign", "<api-key>")
req.Header.Add("api-nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "TXABCDE-FGHIJ-KLMNO2",
"type": "deposit",
"status": "completed",
"asset": "BTC",
"asset_class": "currency",
"amount": "1.25",
"time": "2024-05-14T22:13:20.000Z",
"transaction_hash": "0x4a7d1ed414474e4033ac29ccb8653d9b00d3f1c9a3b7e5d2c8f6a4b1e9d7c5a3",
"ref_id": "FTABCDE-FGHIJ-KLMNO2",
"fee_amount": "0.01",
"fee_asset": "BTC",
"fee_asset_class": "currency",
"extension_type": "post_trade_settlement",
"destination_address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
"task": {
"id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"created_at": "2026-01-15T12:34:56Z",
"updated_at": "2026-01-15T12:35:56Z",
"expires_at": "2026-01-16T12:34:56Z",
"initiator": {
"full_name": "Alex Doe",
"role": "vault_admin",
"ip_address": "203.0.113.10",
"iiban": "ABCD EFGH IJKL MNOP"
}
}
}{
"type": "tag:kraken.com,2025:BadRequest",
"status": 400,
"title": "Bad Request",
"data": {
"message": "Request failed validation."
},
"detail": "Request failed validation.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}{
"type": "tag:kraken.com,2025:PermissionDenied",
"status": 403,
"title": "Forbidden",
"data": {
"message": "Caller lacks access to the requested resource."
},
"detail": "Caller lacks access to the requested resource.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}{
"type": "tag:kraken.com,2025:gateway/ReadUpstream",
"status": 500,
"title": "Internal Server Error",
"data": "<unknown>",
"detail": "Failed to read response from upstream custody service.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}{
"type": "tag:kraken.com,2025:gateway/Connect",
"status": 503,
"title": "Service Unavailable",
"data": "<unknown>",
"detail": "Downstream custody service is temporarily unreachable.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}Get transaction
Returns a single transaction for the given vault. Available only to callers with access to the vault.
Rate limit: 200 requests per 30 seconds per IP.
curl --request GET \
--url https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions/{transaction_id} \
--header 'api-key: <api-key>' \
--header 'api-nonce: <api-key>' \
--header 'api-sign: <api-key>'import requests
url = "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions/{transaction_id}"
headers = {
"api-key": "<api-key>",
"api-sign": "<api-key>",
"api-nonce": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'api-key': '<api-key>', 'api-sign': '<api-key>', 'api-nonce': '<api-key>'}
};
fetch('https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions/{transaction_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/v0/insto/custody/vaults/{vault_id}/transactions/{transaction_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("api-key", "<api-key>")
req.Header.Add("api-sign", "<api-key>")
req.Header.Add("api-nonce", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "TXABCDE-FGHIJ-KLMNO2",
"type": "deposit",
"status": "completed",
"asset": "BTC",
"asset_class": "currency",
"amount": "1.25",
"time": "2024-05-14T22:13:20.000Z",
"transaction_hash": "0x4a7d1ed414474e4033ac29ccb8653d9b00d3f1c9a3b7e5d2c8f6a4b1e9d7c5a3",
"ref_id": "FTABCDE-FGHIJ-KLMNO2",
"fee_amount": "0.01",
"fee_asset": "BTC",
"fee_asset_class": "currency",
"extension_type": "post_trade_settlement",
"destination_address": "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq",
"task": {
"id": "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d",
"created_at": "2026-01-15T12:34:56Z",
"updated_at": "2026-01-15T12:35:56Z",
"expires_at": "2026-01-16T12:34:56Z",
"initiator": {
"full_name": "Alex Doe",
"role": "vault_admin",
"ip_address": "203.0.113.10",
"iiban": "ABCD EFGH IJKL MNOP"
}
}
}{
"type": "tag:kraken.com,2025:BadRequest",
"status": 400,
"title": "Bad Request",
"data": {
"message": "Request failed validation."
},
"detail": "Request failed validation.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}{
"type": "tag:kraken.com,2025:PermissionDenied",
"status": 403,
"title": "Forbidden",
"data": {
"message": "Caller lacks access to the requested resource."
},
"detail": "Caller lacks access to the requested resource.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}{
"type": "tag:kraken.com,2025:gateway/ReadUpstream",
"status": 500,
"title": "Internal Server Error",
"data": "<unknown>",
"detail": "Failed to read response from upstream custody service.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}{
"type": "tag:kraken.com,2025:gateway/Connect",
"status": 503,
"title": "Service Unavailable",
"data": "<unknown>",
"detail": "Downstream custody service is temporarily unreachable.",
"instance": "https://debug.kraken.com/req/01HXYZABCDEF"
}Authorizations
Path Parameters
Vault identifier, a V-prefixed 14-char base32 string with a final check character.
"VABCDEF234567A"
Transaction identifier, as returned in the vault's transaction history.
"TXABCDE-FGHIJ-KLMNO2"
Response
The requested transaction.
Transaction identifier.
"TXABCDE-FGHIJ-KLMNO2"
Transaction type (e.g. deposit, withdrawal, custody_transfer).
"deposit"
Transaction status, resolved per the asset's crypto or fiat classification (e.g. pending, broadcast, completed, failed, settled, on_hold).
"completed"
Asset code of the transaction amount.
"BTC"
Asset class of the transaction amount (e.g. currency, tokenized_asset).
"currency"
Transaction amount, fixed-precision decimal as string. Spend amounts are negative.
"1.25"
Transaction time (ISO-8601).
"2024-05-14T22:13:20.000Z"
On-chain transaction hash, when available.
"0x4a7d1ed414474e4033ac29ccb8653d9b00d3f1c9a3b7e5d2c8f6a4b1e9d7c5a3"
Reference identifier linking the transaction to its originating operation, when available.
"FTABCDE-FGHIJ-KLMNO2"
Fee amount charged for the transaction, fixed-precision decimal as string. Present when a fee applies.
"0.01"
Asset code the fee is charged in. Present when a fee applies.
"BTC"
Asset class of the fee asset (e.g. currency, tokenized_asset). Present when a fee applies.
"currency"
Custody extension type for extended transactions (e.g. post_trade_settlement), when available.
"post_trade_settlement"
Destination address of the transaction, when available. The vault's receiving address for deposits, the recipient address for withdrawals, and the counterparty account identifier (IIBAN) for internal transfers.
"bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq"
Linked custody task that created this transaction. Omitted when no task is linked.
Show child attributes
Show child attributes
Was this page helpful?