curl --request POST \
--url https://api.kraken.com/0/private/CreatePrimeSettlementBatch \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": 123,
"asset_kind": "currency"
}
'import requests
url = "https://api.kraken.com/0/private/CreatePrimeSettlementBatch"
payload = {
"nonce": 123,
"asset_kind": "currency"
}
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: 123, asset_kind: 'currency'})
};
fetch('https://api.kraken.com/0/private/CreatePrimeSettlementBatch', 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/CreatePrimeSettlementBatch"
payload := strings.NewReader("{\n \"nonce\": 123,\n \"asset_kind\": \"currency\"\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))
}{
"result": {
"batch": {
"id": "B_Y7T2LPVX",
"attributes": {
"status": "unsettled",
"confirmed": false,
"created_at": 1700000000000,
"trade_count": 5,
"asset_kind": "currency",
"updated_at": 1700000100000
},
"legs": [
{
"status": "unsettled",
"asset": "BTC",
"amount": "1.5",
"direction": "incoming",
"can_settle": true,
"settled_at": 123,
"latest_spot_transfer": {}
}
],
"trade_ids": [
"3f435d6b-62fd-4f26-b1c5-68ef573d93ef",
"7f6a6d75-6470-4f65-8b24-9858f28ede83"
]
}
},
"error": [
"EGeneral:Invalid arguments"
]
}{
"error": [
"<string>"
]
}Create Prime Settlement Batch
Creates a new Prime settlement batch from pending unsettled trades. Only one active batch per asset_kind can exist at a time.
Optionally pass asset_kind in the request body to select which trades to include: currency (fiat and cryptocurrency positions; default) or tokenized_equity (tokenized equity positions).
The response includes trade_ids — the trade IDs captured in the batch.
API Key Permissions Required: Orders and trades - Create & modify orders
curl --request POST \
--url https://api.kraken.com/0/private/CreatePrimeSettlementBatch \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": 123,
"asset_kind": "currency"
}
'import requests
url = "https://api.kraken.com/0/private/CreatePrimeSettlementBatch"
payload = {
"nonce": 123,
"asset_kind": "currency"
}
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: 123, asset_kind: 'currency'})
};
fetch('https://api.kraken.com/0/private/CreatePrimeSettlementBatch', 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/CreatePrimeSettlementBatch"
payload := strings.NewReader("{\n \"nonce\": 123,\n \"asset_kind\": \"currency\"\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))
}{
"result": {
"batch": {
"id": "B_Y7T2LPVX",
"attributes": {
"status": "unsettled",
"confirmed": false,
"created_at": 1700000000000,
"trade_count": 5,
"asset_kind": "currency",
"updated_at": 1700000100000
},
"legs": [
{
"status": "unsettled",
"asset": "BTC",
"amount": "1.5",
"direction": "incoming",
"can_settle": true,
"settled_at": 123,
"latest_spot_transfer": {}
}
],
"trade_ids": [
"3f435d6b-62fd-4f26-b1c5-68ef573d93ef",
"7f6a6d75-6470-4f65-8b24-9858f28ede83"
]
}
},
"error": [
"EGeneral:Invalid arguments"
]
}{
"error": [
"<string>"
]
}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
Nonce used in construction of API-Sign header
Kind of assets to include in the settlement batch.
currency— Settle fiat and cryptocurrency positions.tokenized_equity— Settle tokenized equity positions.
If not specified, defaults to currency.
currency, tokenized_equity "currency"
Was this page helpful?