Introduction
Our REST API provides several funding endpoints that allow the following deposit/withdrawal related tasks to be accomplished:
- •Retrieve/create deposit addresses
- •View the status of deposit transactions
- •Request a withdrawal (to an already approved address/account)
- •View the status of withdrawal transactions
The REST API funding endpoints are all private (authenticated) endpoints, hence they must be called using the HTTP POST method, and must include valid authentication values in the HTTP headers.
API keys used for funding requests must include certain permissions, depending upon whether the key will be read only (only allow viewing funding transactions) or full access (allow both viewing and requesting funding transactions).
Examples
The following are examples for each of the REST API funding endpoints (using our REST API command line client):
DepositMethods
% ./krakenapi DepositMethods asset=doge{"error":[],"result":[{"method":"Dogecoin","limit":false,"gen-address":true}]}
DepositAddresses (no deposit addresses available)
% ./krakenapi DepositAddresses asset=doge method=Dogecoin{"error":[],"result":[]}
DepositAddresses (create a new deposit address)
% ./krakenapi DepositAddresses asset=doge method=Dogecoin new=true{"error":[],"result":[{"address":"DFSHkVSQycPZDu8CkiNvx8ymHKHoMLteUD","expiretm":"0","new":true}]}
DepositStatus (native network deposits)
% ./krakenapi DepositStatus asset=doge{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"QSBALMX-YTM4MI-REMLWN","txid":"f0cf9b21eeabb87cd240b61ce813490bf03ae96427f5874a55768e7299a9ac9c","info":"DFSHkVSQycPZDu8CkiNvx8ymHKHoMLteUD","amount":"95.00000000","fee":"0.00000000","time":1676727227,"status":"Success"}]}
DepositStatus (ERC20 network deposits)
% ./krakenapi DepositStatus asset=usdc{"error":[],"result":[{"method":"USDC","aclass":"currency","asset":"USDC","refid":"Q4FTRAH-KPUTB7-ATW3UH","txid":"0x2756a446fa1bd75c4bb84b151a12456e52e0a65ff0aa5f35d7231cd25856058b","info":"0xc2ed795f33ed0b8b43fa8165de0107438237161e","amount":"10.00000000","fee":"0.00000000","time":1679452779,"status":"Success","originators":["0x9d7f5e4b07d8f3fb9456128191e4bc517d3d706da1b1dcf52037d0c93ecae3cc"]}
Note the additional originators field which provides the original (client to kraken) transaction ID, as opposed to the internal (kraken to kraken) transaction ID provided by the txid field.
WithdrawInfo
% ./krakenapi WithdrawInfo asset=doge key=XDG_Wallet amount=100{"error":[],"result":{"method":"XXDG","limit":"100.00000000","amount":"96.00000000","fee":"4.00000000"}}
Withdraw
% ./krakenapi Withdraw asset=doge key=XDG_Wallet amount=100 {"error":[],"result":{"refid":"ASBG2IX-OQZTG5-CRWGN3"}}
WithdrawStatus
% ./krakenapi WithdrawStatus asset=doge{"error":[],"result":[{"method":"Dogecoin","aclass":"currency","asset":"XXDG","refid":"ASBG2IX-OQZTG5-CRWGN3","txid":"86b9bbee8775793d0ef420e3c374a2e7913ad8ba9e1a4939cf3044a09c533e44","info":"DNtxrbNnPWf9RZQMYcrqLL6QRgHoozabwM","amount":"96.00000000","fee":"4.00000000","time":1676713821,"status":"Success"}]}
WithdrawCancel (if possible)
% ./krakenapi WithdrawCancel asset=doge refid=ASBTV5V-STE7C7-MIQUAC{"error":[],"result":true}
Failed examples
The following are examples of some failed funding requests, showing the error messages that might be received:
DepositAddresses (without a valid method parameter)
% ./krakenapi DepositAddresses asset=doge method=invalid {"error":["EFunding:No funding method"]}
WithdrawInfo (using an incorrect description in the key parameter)
% ./krakenapi WithdrawInfo asset=doge key=invalid amount=100{"error":["EFunding:Unknown withdraw key"]}
Withdraw (using an address without the required beneficiary/recipient information)
% ./krakenapi Withdraw asset=btc key=BTC_Wallet amount=1.5{"error":["EGeneral:Invalid arguments:beneficiary_recipient"]}
Note that beneficiary/recipient information is only currently required for select withdrawals from Canadian accounts.
WithdrawCancel (for an already in process withdrawal)
% ./krakenapi WithdrawCancel asset=doge refid=ASBG2IX-OQZTG5-CRWGN3 {"error":["EFunding:Invalid reference id"]}