Create a payment request
API Key Permissions Required: Funds permissions - Deposit
curl --request POST \
--url https://api.kraken.com/0/private/Pay/request/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>",
"expire_after_seconds": 1,
"from": "<string>",
"note": "<string>"
}
'{
"error": [
{
"severity": "E",
"errorClass": "<string>",
"type": "<string>",
"errorMessage": "<string>"
}
],
"result": {
"view_link": "<string>"
}
}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.
Optionally expire the request after this many seconds, if not supplied the default is 90 days
x >= 0The kraktag to request the transfer from. If not supplied the response will contain a link to the pay request.
An optional note which will be viewable by both the sender and recipient.
curl --request POST \
--url https://api.kraken.com/0/private/Pay/request/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>",
"expire_after_seconds": 1,
"from": "<string>",
"note": "<string>"
}
'{
"error": [
{
"severity": "E",
"errorClass": "<string>",
"type": "<string>",
"errorMessage": "<string>"
}
],
"result": {
"view_link": "<string>"
}
}