Що можна отримувати
Використовуй звичайні прозорі перекази LTC на нову адресу рахунку. Приватні перекази MWEB не охоплюються сканером рахунків. Під час надсилання враховуй комісії мережі.
Налаштуй магазин
- Встанови Wholly Crypto, створи проєкт і магазин та зберігай приватну резервну копію гаманця.
- Перевір підключення, сумісні зі сканером, і ввімкни мережу й потрібні активи в «Магазин → Способи оплати».
- Налаштуй підтвердження й строк дії. Перевір невеликий рахунок і переконайся в завершенні розрахунку перед виконанням замовлень.
Куди надходять твої платежі
Кожен рахунок визначається новою прозорою адресою. Зберігай повну резервну копію та дані деривації: зовнішньому гаманцю може знадобитися ширше сканування адрес, ніж початковий gap limit, щоб знайти всі оплачені рахунки.
Посібник із налаштування гаманцівПереміщуй кошти, коли будеш готовий
Sweep об'єднує доступні для витрати виходи й надсилає їх у вибране місце. Комісії сплачуються в LTC, а багато дрібних виходів можуть зробити переказ дорожчим. Задай розумний мінімум і перевір комісію перед надсиланням.
Посібник з автоматичного sweepЧи підтримуються приватні перекази MWEB?
Ні. Wholly Crypto сканує звичайні прозорі платежі LTC, а не приватні перекази MWEB. Попроси клієнтів використовувати адресу рахунку й дочекайся виконання налаштованої політики підтверджень, перш ніж виконувати замовлення.
Усунення проблем із платежами
Спершу перевір цю мережу
Використовуй прозорий переказ LTC, а не MWEB. Відновленому гаманцю може знадобитися ширше сканування адрес, щоб знайти старі надходження за рахунками.
Платіж відсутній або затримується
Зістав мережу, адресу, актив і будь-який обов’язковий ідентифікатор із рахунком. Перевір готовність сканера й перебіг підтвердження. Не проси другого платежу, доки не перевіриш першу транзакцію.
Посібник з отриманняВідновлюй або об’єднуй гаманці
Зберігай приватну резервну копію й деталі виведення. Інший застосунок гаманця може не показати всі адреси отримання. Надсилання й відновлення залежать від мережі та формату гаманця; сам імпорт слів відновлення не гарантує ні того, ні іншого.
Резервне копіювання та відновленняКомісії й перевірка
Стандартна комісія за обробку становить 1% фіатної вартості рахунку й сплачується з окремих коштів. Застосовується призначена тобі ставка. Мережеві комісії й витрати на сервер оплачуються окремо.
Публічні провайдери можуть мати збої або обмеження частоти запитів. Надіслана транзакція або зворотне переспрямування не є доказом оплати. Використовуй перевірений статус рахунку й підписані сповіщення.
Кошти на обробку API, IPN та вебхукиКалькулятор курсів
Конвертувати суму
Орієнтовний розрахунок, не платіжне котирування. Мережеві й біржові комісії та спреди мерчантів не включено.
Звідки беруться курси?
Крипторозрахунки використовують кешовані публічні ціни Kraken, а де доступно - Binance. Деякі ціни Binance використовують USDT як орієнтир USD. Фіатні курси надходять із Frankfurter і є щоденними довідковими курсами, не поточними торговими котируваннями.
Знімок оновлюється автоматично. Перевір дати джерел під результатом. Введена сума залишається в браузері. Наявність активу в списку не гарантує підтримки платежів.
Kraken · Binance · Frankfurter · Назви й іконки активів: CoinGecko
Створюй рахунок через API
Запускай ці приклади на своєму сервері. Заміни хост API, ID проєкту й ID магазину та зберігай облікові дані в таємниці. Суми передаються десятковими рядками.
Спочатку ввімкни спосіб у магазині. Вибір звужує увімкнені способи, а не додає активів. Якщо нічого не збігається, діють стандартні налаштування магазину. Перевір повернуті способи перед показом сторінки оплати.
: "${WHOLLY_TOKEN:?Set WHOLLY_TOKEN to your server-side API token}"
# Keep this key and the exact body for retries; use a new key for each new invoice.
curl --fail-with-body --max-time 30 \
--request POST \
--url "https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices" \
--header "Authorization: Bearer $WHOLLY_TOKEN" \
--header 'Idempotency-Key: order-1042-attempt-1' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "litecoin",
"asset_tickers": [
"LTC"
]
}
]
}'// Node.js 18+ · run on your server, never in browser code.
const token = process.env.WHOLLY_TOKEN;
if (!token) throw new Error("Set WHOLLY_TOKEN");
// Keep this key and the exact body for retries; use a new key for each new invoice.
const body = `{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "litecoin",
"asset_tickers": [
"LTC"
]
}
]
}`;
const response = await fetch("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices", {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Idempotency-Key": "order-1042-attempt-1",
"Content-Type": "application/json"
},
body,
redirect: "error",
signal: AbortSignal.timeout(30000)
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
console.log(await response.json());<?php
// PHP 8+ with the cURL extension; run on your server.
$token = getenv('WHOLLY_TOKEN');
if (!$token) { throw new RuntimeException('Set WHOLLY_TOKEN'); }
// Keep this key and the exact body for retries; use a new key for each new invoice.
$body = <<<'JSON'
{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "litecoin",
"asset_tickers": [
"LTC"
]
}
]
}
JSON;
$ch = curl_init("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $token, "Idempotency-Key: order-1042-attempt-1", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => $body,
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) { throw new RuntimeException(curl_error($ch)); }
curl_close($ch);
if ($status < 200 || $status >= 300) { throw new RuntimeException("HTTP $status: $response"); }
print_r(json_decode($response, true, 512, JSON_THROW_ON_ERROR));# Python 3 · standard library; run on your server.
import json
import os
from urllib.request import Request, build_opener, HTTPRedirectHandler
class NoRedirect(HTTPRedirectHandler):
def redirect_request(self, req, fp, code, msg, headers, newurl):
return None
# Keep this key and the exact body for retries; use a new key for each new invoice.
headers = {
"Idempotency-Key": "order-1042-attempt-1",
"Content-Type": "application/json"
}
headers["Authorization"] = "Bearer " + os.environ["WHOLLY_TOKEN"]
body = """{
"amount": "25.00",
"currency": "EUR",
"order_id": "order-1042",
"payment_methods": [
{
"chain_slug": "litecoin",
"asset_tickers": [
"LTC"
]
}
]
}""".encode("utf-8")
request = Request("https://api.example.com/v1/projects/YOUR_PROJECT_ID/stores/YOUR_STORE_ID/invoices",
method="POST", headers=headers, data=body)
# Non-2xx responses raise HTTPError. Do not retry writes with a new key.
with build_opener(NoRedirect()).open(request, timeout=30) as response:
print(json.load(response))