Account Transfer
curl --request POST \
--url https://api.kraken.com/0/private/AccountTransfer \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": 1695828271,
"asset": "XBT",
"from": "ABCD 1234 EFGH 5678",
"to": "IJKL 0987 MNOP 6543",
"amount": "2.54"
}
'import requests
url = "https://api.kraken.com/0/private/AccountTransfer"
payload = {
"nonce": 1695828271,
"asset": "XBT",
"from": "ABCD 1234 EFGH 5678",
"to": "IJKL 0987 MNOP 6543",
"amount": "2.54"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
nonce: 1695828271,
asset: 'XBT',
from: 'ABCD 1234 EFGH 5678',
to: 'IJKL 0987 MNOP 6543',
amount: '2.54'
})
};
fetch('https://api.kraken.com/0/private/AccountTransfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/0/private/AccountTransfer"
payload := strings.NewReader("{\n \"nonce\": 1695828271,\n \"asset\": \"XBT\",\n \"from\": \"ABCD 1234 EFGH 5678\",\n \"to\": \"IJKL 0987 MNOP 6543\",\n \"amount\": \"2.54\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": [],
"result": {
"transfer_id": "TOH3AS2-LPCWR8-JDQGEU",
"status": "complete"
}
}Subaccounts
Account Transfer
Transfer funds to and from master and subaccounts. Note: AccountTransfer must be called using an API key from the master account.
API Key Permissions Required: Funds permissions - Withdraw
POST
/
private
/
AccountTransfer
Account Transfer
curl --request POST \
--url https://api.kraken.com/0/private/AccountTransfer \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": 1695828271,
"asset": "XBT",
"from": "ABCD 1234 EFGH 5678",
"to": "IJKL 0987 MNOP 6543",
"amount": "2.54"
}
'import requests
url = "https://api.kraken.com/0/private/AccountTransfer"
payload = {
"nonce": 1695828271,
"asset": "XBT",
"from": "ABCD 1234 EFGH 5678",
"to": "IJKL 0987 MNOP 6543",
"amount": "2.54"
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'API-Key': '<api-key>',
'API-Sign': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
nonce: 1695828271,
asset: 'XBT',
from: 'ABCD 1234 EFGH 5678',
to: 'IJKL 0987 MNOP 6543',
amount: '2.54'
})
};
fetch('https://api.kraken.com/0/private/AccountTransfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kraken.com/0/private/AccountTransfer"
payload := strings.NewReader("{\n \"nonce\": 1695828271,\n \"asset\": \"XBT\",\n \"from\": \"ABCD 1234 EFGH 5678\",\n \"to\": \"IJKL 0987 MNOP 6543\",\n \"amount\": \"2.54\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"error": [],
"result": {
"transfer_id": "TOH3AS2-LPCWR8-JDQGEU",
"status": "complete"
}
}Authorizations
The "API-Key" header should contain your API key.
Authenticated requests should be signed with the "API-Sign" header, using a signature generated with your private key, nonce, encoded payload, and URI path.
Body
application/json
Nonce used in construction of API-Sign header
Asset being transferred
Amount of asset to transfer
Public account ID of the source account (Example ABCD 1234 EFGH 5678)
Public account ID of the destination account (Example ABCD 1234 EFGH 5678)
Specify the asset class of the asset being transferred
Available options:
currency, tokenized_asset Was this page helpful?