- Некастодиально
- Деньги — сразу на ваш кошелёк
- 9 сетей · USDT и USDC
Принимайте крипту.
Деньги сразу на ваш кошелёк.
Готовый крипто-процессинг для сайта, приложения или бота. Создаёте счёт одним запросом, отправляете покупателя на нашу страницу оплаты и получаете вебхук, когда сеть подтвердила платёж.
- Песочница без реальных денег
- Клиенты для Node, PHP, Python, Go
- Подписанные вебхуки с повторами
a1f3…9c0e · TRONВыберите валюту
Переведите точную сумму
Платёж найден
Ждём подтверждений сети TRON
Подтверждения
TRON: 19 блоков — около минуты
Оплачено
49.99 USDT — на кошельке магазина
invoice.paid → ваш сервер 200 OKВы продаёте. Мы следим за блокчейном.
Coinetic выдаёт покупателю отдельный адрес, ловит платёж, ждёт нужное число подтверждений и только потом говорит вашему серверу «оплачено». Деньги идут с кошелька покупателя на ваш — мимо нас.
9 сетей. Покупатель платит тем, что у него есть
Нативные монеты, USDT и USDC. Токен засчитывается только по адресу контракта из белого списка — поддельный «USDT» статус не изменит.
Три шага — и вы принимаете крипту
Никаких нод, кошельков на сервере и смарт-контрактов с вашей стороны. Страницу оплаты, курсы, адреса и подтверждения берём на себя.
import { CoineticClient } from "./cryptopay.js";
const cp = new CoineticClient({
baseUrl: "https://pay.coinetic.money",
keyId: process.env.API_KEY,
secret: process.env.API_SECRET, // только на сервере
});
const invoice = await cp.createInvoice({
order_id: "ORDER-1001",
price_amount: "49.99", // строка, не число
price_currency: "USD",
return_url: "https://shop.example/orders/ORDER-1001",
}, "order-ORDER-1001"); // Idempotency-Keyrequire 'Cryptopay.php';
$cp = new \Cryptopay\Client('https://pay.coinetic.money', getenv('API_KEY'), getenv('API_SECRET'));
$invoice = $cp->createInvoice([
'order_id' => 'ORDER-1001',
'price_amount' => '49.99',
'price_currency' => 'USD',
'return_url' => 'https://shop.example/orders/ORDER-1001',
], 'order-ORDER-1001');from cryptopay import CoineticClient
cp = CoineticClient("https://pay.coinetic.money", os.environ["API_KEY"], os.environ["API_SECRET"])
invoice = cp.create_invoice({
"order_id": "ORDER-1001",
"price_amount": "49.99",
"price_currency": "USD",
"return_url": "https://shop.example/orders/ORDER-1001",
}, "order-ORDER-1001")cp := &cryptopayclient.Client{
BaseURL: "https://pay.coinetic.money",
KeyID: os.Getenv("API_KEY"),
Secret: os.Getenv("API_SECRET"),
HTTP: &http.Client{Timeout: 10 * time.Second},
}
inv, err := cp.CreateInvoice(ctx, cryptopayclient.CreateInvoice{
OrderID: "ORDER-1001",
PriceAmount: "49.99",
PriceCurrency: "USD",
ReturnURL: "https://shop.example/orders/ORDER-1001",
}, "order-ORDER-1001")// Express: отправляем покупателя на страницу оплаты Coinetic
app.post("/checkout", async (req, res) => {
const order = await createOrder(req);
const invoice = await cp.createInvoice({ /* как в шаге 1 */ }, `order-${order.id}`);
await saveInvoiceId(order.id, invoice.id);
res.redirect(303, invoice.checkout_url);
});$invoice = $cp->createInvoice([/* как в шаге 1 */], 'order-' . $order['id']);
save_invoice_id($order['id'], $invoice['id']);
header('Location: ' . $invoice['checkout_url'], true, 303);
exit;# Flask
@app.post("/checkout")
def checkout():
order = create_order(request)
invoice = cp.create_invoice({...}, f"order-{order.id}")
save_invoice_id(order.id, invoice["id"])
return redirect(invoice["checkout_url"], code=303)http.Redirect(w, r, inv.CheckoutURL, http.StatusSeeOther)import { verifyWebhook } from "./cryptopay.js";
app.post("/webhooks/coinetic", express.raw({ type: "application/json" }), async (req, res) => {
let event;
try { event = verifyWebhook(process.env.WEBHOOK_SECRET, req.headers, req.body); }
catch (e) { return res.status(e.status ?? 400).end(); } // чужая подпись
const inv = await cp.getInvoice(event.data.invoice_id); // статус — из API
if (inv.status === "paid" || inv.status === "overpaid") await fulfilOnce(inv.order_id);
res.sendStatus(200);
});$headers = array_change_key_case(getallheaders(), CASE_LOWER);
try {
$event = \Cryptopay\verify_webhook(getenv('WEBHOOK_SECRET'), $headers, file_get_contents('php://input'));
} catch (\Cryptopay\CryptopayException $e) {
http_response_code($e->status); exit;
}
$inv = $cp->getInvoice($event['data']['invoice_id']); // статус — из API
if (in_array($inv['status'], ['paid', 'overpaid'], true)) fulfil_once($inv['order_id']);
http_response_code(200);from cryptopay import verify_webhook, CryptopayError
@app.post("/webhooks/coinetic")
def webhook():
headers = {k.lower(): v for k, v in request.headers.items()}
try:
event = verify_webhook(os.environ["WEBHOOK_SECRET"], headers, request.get_data())
except CryptopayError as e:
return "", e.status
inv = cp.get_invoice(event["data"]["invoice_id"]) # статус — из API
if inv["status"] in ("paid", "overpaid"):
fulfil_once(inv["order_id"])
return "", 200Клиенты — один файл без зависимостей, скачайте для своего языка. Пошагово — в быстром старте.
REST и вебхуки. Идемпотентно. Предсказуемо.
Маленький API, который сложно использовать неправильно. Ключи песочницы — в кабинете за пару минут.
Idempotency-Keyна каждом изменяющем запросеПовтор после таймаута вернёт тот же счёт, а не создаст второй.- Подпись HMAC-SHA256Секрет не уходит в сеть; метка времени и nonce защищают от повторов.
- Суммы — строкиНикакого float: десятичные строки и минимальные единицы актива.
- Эталонные значения подписиСвой клиент на любом языке проверяется за минуту.
POST /v1/invoices HTTP/1.1
Authorization: CP-HMAC key=ak_live_…, ts=1760000000, nonce=…, sig=…
Idempotency-Key: order-ORDER-1001
Content-Type: application/json
{"order_id":"ORDER-1001","price_amount":"49.99","price_currency":"USD"}{
"id": "inv_x7k2…",
"status": "created",
"checkout_url": "https://pay.coinetic.money/pay/inv_x7k2…#t=…",
"expires_at": "2026-10-12T15:30:00Z",
"livemode": true
}Всё, что обычно пишут полгода
Страница оплаты
QR-код, точная сумма, предупреждение о сети, живой статус и таймер. Русский и английский, светлая и тёмная тема.
Деньги на вашем кошельке
BTC, LTC, TRON — адреса из вашего xpub, EVM — смарт-адрес, который собирает только на ваш кошелёк, Solana — ваш адрес.
Курс фиксируется
Цена — в USD или EUR. Сумма в монете считается по медиане трёх бирж и держится 20 минут. Для USDT и USDC — 1:1.
Недоплата и переплата
Отдельные статусы, доплата на тот же адрес, допуск на округления кошельков, поздняя оплата стейблкоином засчитывается сама.
Вебхуки с гарантией
Подпись HMAC, повторы в течение суток, порядок событий по счёту, журнал доставок и переотправка в кабинете.
Песочница
Тот же API без реальных денег: кнопки «оплатить точно», «недоплата», «переплата» и «половина» проверяют каждый сценарий.
Мы не можем потратить ваши деньги. Технически.
Для приёма нужны только публичные данные ваших кошельков. Приватные ключи и сид-фразы Coinetic не запрашивает и не хранит. Адрес, который получает покупатель, выведен из вашего ключа — и мы это проверяем трижды.
- Только публичные ключиxpub/zpub для BTC, LTC и TRON, адрес для Solana, кошелёк сбора для EVM-сетей.
- Смена кошелька — с задержкойПароль, второй фактор, письмо и время на отмену — даже если кто-то войдёт в кабинет.
- Комиссия отдельноМы не удерживаем процент из платежа: раз в месяц выставляем счёт, вы оплачиваете его криптой.
Чем Coinetic отличается от кастодиального процессинга
| Кастодиальный процессинг | Coinetic | |
|---|---|---|
| Где лежат деньги после оплаты | На счёте процессинга до вывода | Сразу на вашем кошельке |
| Кто может потратить средства | Процессинг | Только вы |
| Вывод средств | Заявка, лимиты, ожидание | Не нужен |
| Комиссия | Обычно удерживается из платежа | Отдельным счётом раз в месяц |
| Если процессинг взломают | Под угрозой баланс всех мерчантов | Ключей от ваших денег у нас нет |
«Оплачено» — только после подтверждений сети
Статус меняет только наблюдатель блокчейна. Не страница оплаты, не покупатель и не параметр в URL. Если блок откатится, вы получите invoice.reorged.
createdСчёт создан, покупатель выбирает монету
awaiting_paymentВыдан адрес и точная сумма
detectedПлатёж виден в сети — заказ ещё не выдаём
confirmingВ блоке, идут подтверждения n/N
paidПодтверждено — можно выдавать заказ
Сколько подтверждений ждём в каждой сети — в разделе «Сети и активы».
Одна интеграция — любая площадка
Интернет-магазины
Кнопка «Оплатить криптой» рядом с картами. Покупатель платит с любого кошелька или прямо с биржи.
SaaS и цифровые товары
metadata в счёте свяжет оплату с пользователем и тарифом. Выдача — автоматически по вебхуку.
Приложения и боты
iOS, Android, Telegram: открываете ссылку на оплату, возвращаете пользователя по return_url.
Частые вопросы
Что такое некастодиальный крипто-процессинг?
Это процессинг, который не держит деньги клиентов. Coinetic выдаёт покупателю адрес, выведенный из вашего публичного ключа, следит за блокчейном и сообщает об оплате, но сами средства сразу поступают на ваш кошелёк. Потратить или перенаправить их мы не можем.
Сколько времени занимает подключение?
Код — один вечер: создание счёта, редирект и обработчик вебхука. До этого — регистрация в кабинете, кошельки приёма и проверка в песочнице. Весь путь по шагам.
Какие криптовалюты и сети поддерживаются?
BTC, LTC, ETH, BNB, POL, TRX, SOL, а также USDT и USDC — в 9 сетях: Bitcoin, Litecoin, Ethereum, BNB Smart Chain, Polygon, Base, Arbitrum One, TRON и Solana. Полный список.
Нужно ли мне поднимать ноды или хранить ключи на сервере?
Нет. Наблюдение за сетями, адреса и подтверждения — на стороне Coinetic. На вашем сервере только API-ключ для подписи запросов и секрет вебхука.
В какой валюте я выставляю цену?
В USD, EUR, USDT или USDC. Покупатель видит сумму в выбранной монете; для BTC, ETH и других волатильных активов курс фиксируется на 20 минут по медиане трёх бирж.
Когда платёж считается оплаченным?
Только после нужного числа подтверждений сети: например, 2 блока в Bitcoin и 19 блоков в TRON. Статус «оплачено» ставит наблюдатель блокчейна, а не страница оплаты и не покупатель. Если блок откатится, придёт вебхук invoice.reorged.
Что, если покупатель заплатит меньше или в другой сети?
Недоплата получит статус underpaid, покупатель доплатит на тот же адрес. Перевод в другой EVM-сети или поддельным токеном не засчитывается, но виден в счёте — подробнее.
Можно ли вернуть деньги покупателю?
Да. POST /v1/refunds или кнопка в кабинете создаёт заявку. Оплата пришла на ваш кошелёк — вы отправляете перевод сами и записываете хеш; в EVM-сетях Coinetic сам находит его в блокчейне и присылает вебхук refund.sent. Как работают возвраты.
Работает ли Coinetic с мобильными приложениями и Telegram-ботами?
Да. Счёт создаёт ваш сервер, а приложение или бот открывает ссылку на оплату в системном браузере. Секрет API в приложение не попадает. Как открывать оплату.
Сколько стоит?
Процент только с оплаченных счетов, без платы за подключение; комиссия выставляется отдельным счётом раз в месяц. Тарифы и калькулятор.
Первый тестовый платёж — через 15 минут
Регистрируйтесь, берите ключ песочницы и проведите оплату без реальных денег.