Download OpenAPI specification:
SHKeeper - is an open-source, self-hosted cryptocurrency payment processor. It uniquely serves as both a gateway and a merchant, enabling you to accept payments in various cryptocurrencies without fees and intermediaries.
You can authenticate either via Basic Auth or an API key depending from endpoint requirement. You can generate or view an API key in the SHKeeper UI under Wallets -> Manage -> API key, the API key is the same for each wallet. Basic HTTP credentials it's your SHKeeper UI user and password. For metrics endpoints using separate user and password specified in METRICS_USERNAME, METRICS_PASSWORD environment variables, with default values shkeeper,shkeeper. You can see the required authentication on the API docs at the top of each endpoint under AUTHORIZATIONS.
SHKeeper supports authenticating and authorizing users through the Basic HTTP authentication scheme. Send the user and password encoded in base64 with the format Basic {base64(username:password)}. Using this authentication is required for payout-related endpoints, and for metrics, but another credentials. Metric credentials can be set by environment variables: METRICS_USERNAME, METRICS_PASSWORD. The default username:password is shkeeper:shkeeper.
BasicGet a list of cryptocurrencies available for operation from SHKeeper (these are the ones that are online and not disabled in the admin panel).
curl --location --request GET 'https://demo.shkeeper.io/api/v1/crypto'
{- "crypto": [
- "BNB",
- "BNB-USDT",
- "ETH-USDT",
- "BTC",
- "ETH",
- "BNB-USDC",
- "ETH-USDC"
], - "crypto_list": [
- {
- "display_name": "BNB",
- "name": "BNB"
}, - {
- "display_name": "BEP20 USDT",
- "name": "BNB-USDT"
}, - {
- "display_name": "ERC20 USDT",
- "name": "ETH-USDT"
}, - {
- "display_name": "Bitcoin",
- "name": "BTC"
}, - {
- "display_name": "Ethereum",
- "name": "ETH"
}, - {
- "display_name": "BEP20 USDC",
- "name": "BNB-USDC"
}, - {
- "display_name": "ERC20 USDC",
- "name": "ETH-USDC"
}
], - "status": "success"
}| crypto_name required | string Enum: "BTC" "LTC" "DOGE" "XMR" "XRP" "ETH" "ETH-USDT" "ETH-USDC" "TRX" "USDT" "USDC" "AVAX" "AVALANCHE-USDT" "AVALANCHE-USDC" "BNB" "BNB-USDT" "BNB-USDC" "MATIC" "POLYGON-USDT" "POLYGON-USDC" Example: ETH-USDC An identifier for cryptocurrency. Check Get cryptocurrencies to get all available list. |
| external_id required | string A unique order_id or invoice_id from your store. |
| fiat required | string Value: "USD" Currency code in ISO 4217 format for conversion. Currently, only USD is supported. |
| amount required | string The amount for which the invoice should be created in SHKeeper. |
| callback_url required | string The URL to which SHKeeper will send notifications in the event of transactions related to the created invoices. |
{- "external_id": 107,
- "fiat": "USD",
- "amount": "7.8",
}{- "amount": "7.8",
- "display_name": "ERC20 USDT",
- "exchange_rate": "1",
- "id": 61,
- "recalculate_after": 0,
- "status": "success",
- "wallet": "0x6f2Fc9D7205B7D9037dDE45B5f9e12B18EA07e27"
}{- "external_id": "107",
- "crypto": "ETH-USDT",
- "addr": "0x6f2Fc9D7205B7D9037dDE45B5f9e12B18EA07e27",
- "fiat": "USD",
- "balance_fiat": "7.8",
- "balance_crypto": "7.8",
- "paid": true,
- "status": "PAID",
- "transactions": [
- {
- "txid": "0x23487a9890b80bb908cc07097d0ddd098fff0980bb098ccc098aa0addd098880",
- "date": "2024-06-25 14:45:20",
- "amount_crypto": "3.8",
- "amount_fiat": "3.8",
- "amount_fiat_without_fee": "3.7254901961",
- "fee_fiat": "0.0745098039",
- "trigger": false,
- "crypto": "ETH-USDT"
}, - {
- "txid": "0x518a10b13a708fd11aa98db88c625dd45130db6656ba822600b01d0c53c85078",
- "date": "2024-06-25 15:45:38",
- "amount_crypto": "4",
- "amount_fiat": "4",
- "amount_fiat_without_fee": "3.9215686275",
- "fee_fiat": "0.0784313725",
- "trigger": true,
- "crypto": "ETH-USDT"
}
], - "fee_percent": "2",
- "fee_fixed": "0",
- "fee_policy": "PERCENT_FEE",
- "overpaid_fiat": "0.00"
}Get detailed information about status of created invoice in SHKeeper by external_id
| external_id required | string Example: 233822 An identifier order_id or invoice_id from your store. |
curl --location --request GET 'https://demo.shkeeper.io/api/v1/invoices/233822' \ --header 'X-Shkeeper-Api-Key: fs9GYTyNdkjPHX36'
{- "invoices": [
- {
- "amount_fiat": "10.0000000000",
- "balance_fiat": "23.0003000000",
- "external_id": "233822",
- "fiat": "USD",
- "status": "OVERPAID",
- "txs": [
- {
- "addr": "0xE77895BAda700d663f033510f73f1E988CF55756",
- "amount": "5.0000000000",
- "crypto": "ETH-USDT",
- "status": "CONFIRMED",
- "txid": "0x4f9df3c2255ee6f1bda50dfab1a84b87345aeaf89863afea9a2687e0e51d42dc"
}, - {
- "addr": "0xE77895BAda700d663f033510f73f1E988CF55756",
- "amount": "3.0000000000",
- "crypto": "ETH-USDC",
- "status": "CONFIRMED",
- "txid": "0xdaae319a0bee00f362f40ae725932c25a9b33bd33f3346ec22464361a56fcd1d"
}
]
}
], - "status": "success"
}| crypto_name required | string Enum: "BTC" "LTC" "DOGE" "XMR" "XRP" "ETH" "ETH-USDT" "ETH-USDC" "TRX" "USDT" "USDC" "AVAX" "AVALANCHE-USDT" "AVALANCHE-USDC" "BNB" "BNB-USDT" "BNB-USDC" "MATIC" "POLYGON-USDT" "POLYGON-USDC" Example: ETH-USDC An identifier for cryptocurrency. Check Get cryptocurrencies to get all available list. |
| amount required | string Payout amount |
| destination required | string For |
| fee required | string Transaction fee.
|
{- "amount": 107,
- "destination": "0xBD26e3512ce84F315e90E3FE75907bfbB5bD0c44",
- "fee": "10"
}{- "task_id": "b2a01bb0-8abe-403b-a3fa-8124c84bcf23"
}Multipayout is not supported for the following cryptocurrencies: XMR, BTC, LTC, and DOGE. For these, you need to use the Payout method.
| crypto_name required | string Enum: "BTC" "LTC" "DOGE" "XMR" "XRP" "ETH" "ETH-USDT" "ETH-USDC" "TRX" "USDT" "USDC" "AVAX" "AVALANCHE-USDT" "AVALANCHE-USDC" "BNB" "BNB-USDT" "BNB-USDC" "MATIC" "POLYGON-USDT" "POLYGON-USDC" Example: ETH-USDC An identifier for cryptocurrency. Check Get cryptocurrencies to get all available list. |
| amount required | string Payout amount |
| dest required | string Payout destination |
| dest_tag | string Useful for |
[- {
- "dest": "0xBD26e3512ce84F315e90E3FE75907bfbB5bD0c44",
- "amount": "100"
}, - {
- "dest": "0xE77895BAda700d663f033510f73f1E988CF55756",
- "amount": "200.11"
}
]{- "task_id": "b2a01bb0-8abe-403b-a3fa-8124c84bcf23"
}Get status of payout task
| crypto_name required | string Enum: "BTC" "LTC" "DOGE" "XMR" "XRP" "ETH" "ETH-USDT" "ETH-USDC" "TRX" "USDT" "USDC" "AVAX" "AVALANCHE-USDT" "AVALANCHE-USDC" "BNB" "BNB-USDT" "BNB-USDC" "MATIC" "POLYGON-USDT" "POLYGON-USDC" Example: ETH-USDC An identifier for cryptocurrency. Check Get cryptocurrencies to get all available list. |
| task_id required | string <uuid> Example: 7028c45b-0c88-483e-b703-dd455a361b2e Payout task ID |
curl --location --request GET 'https://demo.shkeeper.io/api/v1/ETH-USDT/task/8c618c4a-39fc-4c7a-b4f8-1661ea47fec6' \ --user admin:admin
{- "result": [
- {
- "amount": "100",
- "dest": "TGusXhweqkJ1aJftjmAfLqA1rfEWD4hSGZ",
- "status": "success",
- "txids": [
- "da2996bae7a8a4d655a1288f8f4c79ce0aa3640e61f8ae8de08ae9c70c72d90d"
]
}, - {
- "amount": "200.11",
- "dest": "TYtD9md7cHuB4P6kDd362jhcUGP7cJybF7",
- "status": "success",
- "txids": [
- "d8972ac9c964adbc25486d2cfdf2de7b61c3f0ca7510aa7cddc832a9bccdf551"
]
}
], - "status": "SUCCESS"
}| key required | string Decryption key that was set on the first run of SHKeeper on demand |
key=sikfl5llLFt5is50dsfk4yvldti0034jfmmeJm{- "status": "success"
}Get all generated cryptocurrency addresses for specified cryptocurrency
| crypto_name required | string Enum: "BTC" "LTC" "DOGE" "XMR" "XRP" "ETH" "ETH-USDT" "ETH-USDC" "TRX" "USDT" "USDC" "AVAX" "AVALANCHE-USDT" "AVALANCHE-USDC" "BNB" "BNB-USDT" "BNB-USDC" "MATIC" "POLYGON-USDT" "POLYGON-USDC" Example: ETH-USDC An identifier for cryptocurrency. Check Get cryptocurrencies to get all available list. |
curl --location --request GET 'https://demo.shkeeper.io/api/v1/ETH-USDC/addresses' \ --header 'X-Shkeeper-Api-Key: fs9GYTyNdkjPHX36'
{- "addresses": [
- "0x0A71f4741DcaD3C06AA51eE6cF0E22675507d0d0",
- "0x700b3453edfE0b1885dA9D41FE472451ceD1292d"
], - "status": "success"
}Get all transactions related to specified cryptocurrency address
| crypto_name required | string Enum: "BTC" "LTC" "DOGE" "XMR" "XRP" "ETH" "ETH-USDT" "ETH-USDC" "TRX" "USDT" "USDC" "AVAX" "AVALANCHE-USDT" "AVALANCHE-USDC" "BNB" "BNB-USDT" "BNB-USDC" "MATIC" "POLYGON-USDT" "POLYGON-USDC" Example: ETH-USDC An identifier for cryptocurrency. Check Get cryptocurrencies to get all available list. |
| addr required | string Example: 0xE77895BAda700d663f033510f73f1E988CF55756 Cryptocurrency address |
curl --location --request GET 'https://demo.shkeeper.io/api/v1/ETH-USDC/addresses' \ --header 'X-Shkeeper-Api-Key: fs9GYTyNdkjPHX36'
{- "transactions": [
- {
- "addr": "0xE77895BAda700d663f033510f73f1E988CF55756",
- "amount": "3.0000000000",
- "crypto": "ETH-USDC",
- "status": "CONFIRMED",
- "txid": "0xdaae319a0bee00f362f40ae725932c25a9b33bd33f3346ec22464361a56fcd1d"
}
], - "status": "success"
}Get payment info by transaction and external ID
| txid required | string Example: 0xdaae319a0bee00f362f40ae725932c25a9b33bd33f3346ec22464361a56fcd1d Cryptocurrency payment transaction ID |
| external_id required | string Example: 233822 An identifier order_id or invoice_id from your store. |
curl --location --request GET 'https://demo.shkeeper.io/api/v1/tx-info/0xdaae319a0bee00f362f40ae725932c25a9b33bd33f3346ec22464361a56fcd1d/233822' \ --header 'X-Shkeeper-Api-Key: fs9GYTyNdkjPHX36'
{- "info": {
- "addr": "0xE77895BAda700d663f033510f73f1E988CF55756",
- "amount": "3.0000000000",
- "crypto": "ETH-USDC"
}, - "status": "success"
}Get crypto balance of the fee deposit account
| crypto_name required | string Enum: "BTC" "LTC" "DOGE" "XMR" "XRP" "ETH" "ETH-USDT" "ETH-USDC" "TRX" "USDT" "USDC" "AVAX" "AVALANCHE-USDT" "AVALANCHE-USDC" "BNB" "BNB-USDT" "BNB-USDC" "MATIC" "POLYGON-USDT" "POLYGON-USDC" Example: ETH-USDC An identifier for cryptocurrency. Check Get cryptocurrencies to get all available list. |
curl --location --request GET 'https://demo.shkeeper.io/api/v1/ETH/balance' \ --header 'X-Shkeeper-Api-Key: fs9GYTyNdkjPHX36'
{- "amount_crypto": "0.0213590094",
- "amount_fiat": "88.8201590493",
- "display_name": "Ethereum",
- "fiat": "USD",
- "name": "ETH",
- "rate": "4158.44000000",
- "server_status": "Synced"
}curl --location --request GET 'https://demo.shkeeper.io/metrics' \ --user shkeeper:shkeeper
# HELP geth_last_release_info Version of the latest release from https://github.com/bnb-chain/bsc/releases # TYPE geth_last_release_info gauge geth_last_release_info{name="v1.4.12",published_at="2024-07-24T04:18:53Z",tag_name="v1.4.12",version="1.4.12"} 1.0 # HELP geth_fullnode_version_info Current geth version in use # TYPE geth_fullnode_version_info gauge geth_fullnode_version_info{version="1.4.11"} 1.0 # HELP bnb_fullnode_status Connection status to bnb fullnode # TYPE bnb_fullnode_status gauge bnb_fullnode_status 1.0 # HELP bnb_fullnode_last_block Last block loaded to the fullnode # TYPE bnb_fullnode_last_block gauge bnb_fullnode_last_block 4.2715492e+07 # HELP bnb_wallet_last_block Last checked block # TYPE bnb_wallet_last_block gauge bnb_wallet_last_block 4.271549e+07 # HELP bnb_fullnode_last_block_timestamp Last block timestamp loaded to the fullnode # TYPE bnb_fullnode_last_block_timestamp gauge bnb_fullnode_last_block_timestamp 1.722866516e+09 # HELP bnb_wallet_last_block_timestamp Last checked block timestamp # TYPE bnb_wallet_last_block_timestamp gauge bnb_wallet_last_block_timestamp 1.72286651e+09 # HELP bnb_shkeeper_status Connection status to bnb_shkeeper # TYPE bnb_shkeeper_status gauge bnb_shkeeper_status 1.0 # HELP geth_last_release_info Version of the latest release from https://github.com/ethereum/go-ethereum/releases # TYPE geth_last_release_info gauge geth_last_release_info{name="Bothros (v1.14.5)",published_at="2024-06-06T13:41:53Z",tag_name="v1.14.5",version="1.14.5"} 1.0 # HELP prysm_last_release_info Version of the latest release from https://github.com/prysmaticlabs/prysm/releases # TYPE prysm_last_release_info gauge prysm_last_release_info{name="v5.0.4",published_at="2024-06-21T16:13:40Z",tag_name="v5.0.4",version="5.0.4"} 1.0 # HELP geth_fullnode_version_info Current geth version in use # TYPE geth_fullnode_version_info gauge geth_fullnode_version_info{version="1.14.6"} 1.0 # HELP prysm_fullnode_version_info Current prysm version in use # TYPE prysm_fullnode_version_info gauge prysm_fullnode_version_info 1.0 # HELP ethereum_fullnode_status Connection status to ethereum fullnode # TYPE ethereum_fullnode_status gauge ethereum_fullnode_status 1.0 # HELP ethereum_fullnode_last_block Last block loaded to the fullnode # TYPE ethereum_fullnode_last_block gauge ethereum_fullnode_last_block 6.442062e+06 # HELP ethereum_wallet_last_block Last checked block # TYPE ethereum_wallet_last_block gauge ethereum_wallet_last_block 6.44206e+06 # HELP ethereum_fullnode_last_block_timestamp Last block timestamp loaded to the fullnode # TYPE ethereum_fullnode_last_block_timestamp gauge ethereum_fullnode_last_block_timestamp 1.722866508e+09 # HELP ethereum_wallet_last_block_timestamp Last checked block timestamp # TYPE ethereum_wallet_last_block_timestamp gauge ethereum_wallet_last_block_timestamp 1.722866484e+09 # HELP ethereum_shkeeper_status Connection status to ethereum_shkeeper # TYPE ethereum_shkeeper_status gauge ethereum_shkeeper_status 1.0 # HELP xrp_shkeeper_status Connection status to xrp_shkeeper # TYPE xrp_shkeeper_status gauge xrp_shkeeper_status 0.0