EN
English
  • Getting Started
    • Documentation Overview
    • How the Integration Works
    • Integration Testing
    • How to Get API Keys
    • SDK for Work with API
    • Integration of Icons and Buttons
    • Cryptocurrency payment instruction
    • Support and FAQ
  • API REFERENCE V2
    • Request Authorization
    • Invoice Creation
    • Invoice Cancellation
    • Invoice List
    • Invoice Information
    • Balance
    • Statistics
    • Static Wallet
    • Funds Withdrawal
    • Automatic POSTBACK
  • API REFERENCE V1 (OLD)
    • Request Authorization
    • Invoice Creation
    • Invoice Status Check
    • Automatic POSTBACK
  • CMS Plugins
    • List of CMS Plugins
      • WooCommerce
      • OpenCart
      • Shopify
      • Tilda
      • GetCourse
      • XenForo 2
      • PrestaShop
      • Drupal
      • WHMCS
  • Buttons and forms
    • HTML-widget
      • HTML-form
      • HTML-button
  • CryptoCloud Website
  • Help Center
  • Brand Guide
Powered by GitBook
On this page
  • What is a static wallet
  • How a static wallet works
  • Advantages of a static wallet
  • Static wallet creation
  • Request examples
  • Getting the list of static wallets
  • Subscription management for the address

Was this helpful?

  1. API REFERENCE V2

Static Wallet

What is a static wallet

A static wallet allows customers to make payments to the same address without having to create a new invoice and proceed to the payment page each time.

This is a convenient method that allows you to accept funds in a specific cryptocurrency with automatic crediting to the balance after deducting all commissions.

The solution is perfectly suited for projects that involve topping up the user's account balance, accepting donations, iGaming projects, and others.

How a static wallet works

  1. The user proceeds to replenish the balance on the merchant's website.

  2. The user creates their own wallets for different cryptocurrencies and tops up any of them.

  3. The user transfers the amount via wallet address or QR code.

  4. After replenishment, any amount in the cryptocurrency assigned to the wallet is credited as a successful replenishment of the user's balance.

  5. The user receives a notification of a successful payment.

Advantages of a static wallet

  • Convenience for customers. Payment in a particular cryptocurrency is made to one permanent address without going to a payment page.

  • Automation of crediting. Funds are automatically credited to the client's balance with the sending of a postback notification.

  • Transparency of fees. All fees (service, transfer and, if necessary, AML) are deducted from the transaction amount automatically.

Static wallet creation

POST https://api.cryptocloud.plus/v2/invoice/static/create

Request Body

Name
Type
Description

shop_id*

String

Project identifier

currency*

String

Static wallet cryptocurrenc

identify*

String

Customer identifier. When POSTBACK is sent on receipt, it will be written to order_id

{
    "status": "success",
    "result": {
        "currency": {
            "id": 3,
            "code": "ETH",
            "short_code": "ETH",
            "name": "Ethereum",
            "is_email_required": false,
            "stablecoin": false,
            "icon_base": "https://cdn.cryptocloud.plus/currency/icons/main/eth.svg",
            "icon_network": "None",
            "icon_qr": "https://cdn.cryptocloud.plus/currency/icons/stroke/eth.svg",
            "order": 9,
            "obj_network": {
                "code": "ERC20",
                "id": 3,
                "icon": "https://cdn.cryptocloud.plus/currency/crypto/ETH.svg",
                "fullname": "Ethereum"
            },
            "enable": true
        },
        "address": "StaticAdresse",
        "uuid": "2K0NFXT9E1X3VOY07VY1LRV8XGMLQNQX"
    }
}
{
    "status": "error",
    "result": {
        "validation_error": "Address not created / currency not passed / shop_id not passed"
    }
}

Request examples

These examples show how you can submit a request to create a static wallet. Note that you need to provide your API key in the Authorization header to successfully authorize the request.

curl -X POST https://api.cryptocloud.plus/v2/invoice/static/create \
     -H 'Authorization: Token <API KEY>' \
     -H 'Content-Type: application/json' \
     -d '{"shop_id": "<SHOP ID>", "currency": "BTC", "identify": "F4jSjfpwf4t"}'
import requests

url = "https://api.cryptocloud.plus/v2/invoice/static/create"

headers = {
    'Authorization': "Token <API KEY>"
}

body = {
    "shop_id": "<SHOP ID>",
    "currency": "BTC",
    "identify": "F4jSjfpwf4t",
}

response = requests.post(url, headers=headers, json=body)

if response.status_code == 200:
    print("Success:", response.json())
else:
    print("Fail:", response.status_code, response.text)
const url = "https://api.cryptocloud.plus/v2/invoice/static/create";

const headers = {
    'Authorization': 'Token <API KEY>',
    'Content-Type': 'application/json'
};

const body = {
    "shop_id": "<SHOP ID>",
    "currency": "BTC",
    "identify": "F4jSjfpwf4t"
};

fetch(url, {
    method: 'POST',
    headers: headers,
    body: JSON.stringify(body)
})
.then(response => {
    if (response.ok) {
        return response.json();
    } else {
        throw new Error(`Failed to fetch: ${response.statusText}`);
    }
})
.then(data => console.log("Success:", data))
.catch(error => console.log("Fail:", error));
<?php

$url = "https://api.cryptocloud.plus/v2/invoice/static/create";

$headers = [
    'Authorization: Token <API KEY>',
    'Content-Type: application/json'
];

$body = [
    "shop_id" => "<SHOP ID>",
    "currency" => "BTC",
    "identify" => "F4jSjfpwf4t"
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));

$response = curl_exec($ch);

if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200) {
    echo "Success: " . $response;
} else {
    echo "Fail: " . curl_getinfo($ch, CURLINFO_HTTP_CODE) . " " . $response;
}

curl_close($ch);

?>

Getting the list of static wallets

POST https://api.cryptocloud.plus/v2/invoice/static/list

Request Body

Name
Type
Description

shop_id*

String

Project Identifier

start

String

Start of the search time interval

end

String

End of the search time interval

offset

Int

The first wallet on the list

limit

Int

The last wallet on the list

{
    "status": "success",
    "result": {
        "staticWallets": [
            {
                "currency": {
                    "id": 4,
                    "code": "USDT_TRC20",
                    "short_code": "USDT",
                    "name": "Tether",
                    "is_email_required": false,
                    "stablecoin": true,
                    "icon_base": "https://cdn.cryptocloud.plus/currency/icons/main/usdt.svg",
                    "icon_network": "https://cdn.cryptocloud.plus/icons-currency/USDT-TRC20.svg",
                    "icon_qr": "https://cdn.cryptocloud.plus/currency/icons/stroke/usdt.svg",
                    "order": 1,
                    "obj_network": {
                        "code": "TRC20",
                        "id": 4,
                        "icon": "https://cdn.cryptocloud.plus/currency/crypto/TRX.svg",
                        "fullname": "Tron"
                    },
                    "enable": true
                },
                "active": true,
                "address": "StaticAdresse",
                "uuid": "3K0NFXT9E1X3VOY07VY1LRV8XGMLQNQX"
            }
        ],
        "all_count": 1
    }
}
{
    "status": "error",
    "result": {
        "validation_error": "Cannot resolve keyword 'not_existing_field' into field. Choices are: active, address, created, currency, currency_id, id, identify, project, project_id, user, user_id, uuid"
    }
}

Subscription management for the address

POST https://api.cryptocloud.plus/v2/invoice/static/subscribe

POST https://api.cryptocloud.plus/v2/invoice/static/unsubscribe

Request Body

Name
Type
Description

uuid*

String

Wallet identifier of 32 characters

{
    "status": "success",
    "result": {
        "currency": {
            "id": 4,
            "code": "USDT_TRC20",
            "short_code": "USDT",
            "name": "Tether",
            "is_email_required": false,
            "stablecoin": true,
            "icon_base": "https://cdn.cryptocloud.plus/currency/icons/main/usdt.svg",
            "icon_network": "https://cdn.cryptocloud.plus/icons-currency/USDT-TRC20.svg",
            "icon_qr": "https://cdn.cryptocloud.plus/currency/icons/stroke/usdt.svg",
            "order": 1,
            "obj_network": {
                "code": "TRC20",
                "id": 4,
                "icon": "https://cdn.cryptocloud.plus/currency/crypto/TRX.svg",
                "fullname": "Tron"
            },
            "enable": true,
        "active": true,
        "address": "StaticAdresse",
        "created": "2025-01-01 09:15:00.849379",
        "identify": "identification"
        }
    }
}
{
    "status": "error",
    "result": {
        "validation_error": "Error message"
    }
}
PreviousStatisticsNextFunds Withdrawal

Last updated 1 day ago

Was this helpful?