curl --request POST \
--url https://api.kraken.com/funding/v1/withdrawals \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"scope": {
"method_id": "d4ec4d52-b159-428e-ba64-f45455a978a1"
},
"address_id": "ABR6SXP-SF6CY-VJMONY",
"amount": {
"asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "5"
}
},
"fee": {
"quoted_fee": {
"token": "YOUR_WITHDRAWAL_FEE_TOKEN"
},
"fee_included": true
}
}
'import requests
url = "https://api.kraken.com/funding/v1/withdrawals"
payload = {
"scope": { "method_id": "d4ec4d52-b159-428e-ba64-f45455a978a1" },
"address_id": "ABR6SXP-SF6CY-VJMONY",
"amount": { "asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "5"
} },
"fee": {
"quoted_fee": { "token": "YOUR_WITHDRAWAL_FEE_TOKEN" },
"fee_included": True
}
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<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>',
'API-Nonce': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
scope: {method_id: 'd4ec4d52-b159-428e-ba64-f45455a978a1'},
address_id: 'ABR6SXP-SF6CY-VJMONY',
amount: {asset_amount: {asset: {class: 'currency', name: 'USDC'}, amount: '5'}},
fee: {quoted_fee: {token: 'YOUR_WITHDRAWAL_FEE_TOKEN'}, fee_included: true}
})
};
fetch('https://api.kraken.com/funding/v1/withdrawals', 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/funding/v1/withdrawals"
payload := strings.NewReader("{\n \"scope\": {\n \"method_id\": \"d4ec4d52-b159-428e-ba64-f45455a978a1\"\n },\n \"address_id\": \"ABR6SXP-SF6CY-VJMONY\",\n \"amount\": {\n \"asset_amount\": {\n \"asset\": {\n \"class\": \"currency\",\n \"name\": \"USDC\"\n },\n \"amount\": \"5\"\n }\n },\n \"fee\": {\n \"quoted_fee\": {\n \"token\": \"YOUR_WITHDRAWAL_FEE_TOKEN\"\n },\n \"fee_included\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<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))
}{
"withdrawal_id": "FTVZiTI-e02T84mm87JmibnObWNdnW",
"net_amount": {
"asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "4.00000000"
}
},
"gross_amount": {
"asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "5.00000000"
}
},
"fee": {
"asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "1.00000000"
}
}
}Create Funding Withdrawal
Create a withdrawal to a saved address. Pass a withdrawal_fee_token from
Calculate Funding Fees to pin the quoted fee rate, or
omit it to use the current fee.
API Key Permissions Required: Funds permissions - Withdraw
curl --request POST \
--url https://api.kraken.com/funding/v1/withdrawals \
--header 'API-Key: <api-key>' \
--header 'API-Nonce: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"scope": {
"method_id": "d4ec4d52-b159-428e-ba64-f45455a978a1"
},
"address_id": "ABR6SXP-SF6CY-VJMONY",
"amount": {
"asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "5"
}
},
"fee": {
"quoted_fee": {
"token": "YOUR_WITHDRAWAL_FEE_TOKEN"
},
"fee_included": true
}
}
'import requests
url = "https://api.kraken.com/funding/v1/withdrawals"
payload = {
"scope": { "method_id": "d4ec4d52-b159-428e-ba64-f45455a978a1" },
"address_id": "ABR6SXP-SF6CY-VJMONY",
"amount": { "asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "5"
} },
"fee": {
"quoted_fee": { "token": "YOUR_WITHDRAWAL_FEE_TOKEN" },
"fee_included": True
}
}
headers = {
"API-Key": "<api-key>",
"API-Sign": "<api-key>",
"API-Nonce": "<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>',
'API-Nonce': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
scope: {method_id: 'd4ec4d52-b159-428e-ba64-f45455a978a1'},
address_id: 'ABR6SXP-SF6CY-VJMONY',
amount: {asset_amount: {asset: {class: 'currency', name: 'USDC'}, amount: '5'}},
fee: {quoted_fee: {token: 'YOUR_WITHDRAWAL_FEE_TOKEN'}, fee_included: true}
})
};
fetch('https://api.kraken.com/funding/v1/withdrawals', 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/funding/v1/withdrawals"
payload := strings.NewReader("{\n \"scope\": {\n \"method_id\": \"d4ec4d52-b159-428e-ba64-f45455a978a1\"\n },\n \"address_id\": \"ABR6SXP-SF6CY-VJMONY\",\n \"amount\": {\n \"asset_amount\": {\n \"asset\": {\n \"class\": \"currency\",\n \"name\": \"USDC\"\n },\n \"amount\": \"5\"\n }\n },\n \"fee\": {\n \"quoted_fee\": {\n \"token\": \"YOUR_WITHDRAWAL_FEE_TOKEN\"\n },\n \"fee_included\": true\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("API-Key", "<api-key>")
req.Header.Add("API-Sign", "<api-key>")
req.Header.Add("API-Nonce", "<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))
}{
"withdrawal_id": "FTVZiTI-e02T84mm87JmibnObWNdnW",
"net_amount": {
"asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "4.00000000"
}
},
"gross_amount": {
"asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "5.00000000"
}
},
"fee": {
"asset_amount": {
"asset": {
"class": "currency",
"name": "USDC"
},
"amount": "1.00000000"
}
}
}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.
The "API-Nonce" header should contain an always-increasing 64-bit integer, most commonly a Unix timestamp in milliseconds. Each request must use a nonce greater than the nonce of the previous request signed with the same API key.
Query Parameters
Account ID
Body
- method_id
- network_id
Show child attributes
Show child attributes
Unique identifier of the address to withdraw to.
^AB[a-zA-Z0-9]{5}-[a-zA-Z0-9]{5}-[a-zA-Z0-9]{6}$Amount to withdraw.
Show child attributes
Show child attributes
Fee options for the withdrawal.
- current_fee
- quoted_fee
Show child attributes
Show child attributes
Crypto address used to validate the withdrawal destination. Must match the address stored for
address_id.
1Response
Unique identifier of the withdrawal.
^[Ff][Tt][a-zA-Z0-9]{5}-[a-zA-Z0-9]{22}$Amount sent after fees.
Show child attributes
Show child attributes
Total amount deducted, including fees.
Show child attributes
Show child attributes
Fee charged for the withdrawal.
Show child attributes
Show child attributes
Set when the withdrawal needs to be approved before it is processed. It is parked until the request is granted, and cancelled if it is not.
Was this page helpful?