- Некастодіально
- Гроші — одразу на ваш гаманець
- 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 хвилин
Зареєструйтеся, візьміть ключ пісочниці й проведіть оплату без реальних грошей.