This method is asynchronous, it will not return the generated code. After calling, the external_id must then be used to query the code using getPaylinkCode.
API Key Permissions Required: Funds permissions - Query and Funds permissions - Withdraw
curl --request POST \
--url https://api.kraken.com/0/private/Pay/paylink/create \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": "<string>",
"amount": "<string>",
"asset": "<string>",
"external_id": "<string>",
"note": "<string>"
}
'{
"error": [
{
"severity": "E",
"errorClass": "<string>",
"type": "<string>",
"errorMessage": "<string>"
}
],
"result": {}
}Documentation Index
Fetch the complete documentation index at: https://kraken-sandbox.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
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.
Nonce used in construction of API-Sign header
The amount to be transferred, denominated in asset.
The name of the asset to be transferred. It is assumed that this is always a "currency" asset.
Your (the API user's) unique id to globally identify transfers and requests.
We will accept anything from 1-16 bytes, the format is base64 without padding ( https://en.wikipedia.org/wiki/Base64#Decoding_Base64_without_padding )
This is the id you will use to identify all transfers and requests in the API and also in the callback we send you.
You MUST make sure this is commited in your database before calling our API, that way if you don't get a response, you can make the same call again and we'll fail with an error saying your id is already used. (this is the only way to prevent double requests or sends)
We highly recommend you generate and send a UUID here, but if instead you have a database auto-increment id that is 64 bits, just send that, perhaps pre-pended by an application id or something. The format is completely up to you but keep in mind it must be forever unique across all your transfers and requests.
An optional note which will be viewable by both the sender and recipient.
curl --request POST \
--url https://api.kraken.com/0/private/Pay/paylink/create \
--header 'API-Key: <api-key>' \
--header 'API-Sign: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"nonce": "<string>",
"amount": "<string>",
"asset": "<string>",
"external_id": "<string>",
"note": "<string>"
}
'{
"error": [
{
"severity": "E",
"errorClass": "<string>",
"type": "<string>",
"errorMessage": "<string>"
}
],
"result": {}
}