Перейти к содержимому
ZeroKYC Pay

Подключение за 15 минут

Один REST-запрос — и у вашего покупателя касса со всеми монетами. Без KYC и без кастодии.

создание инвойса
curl -X POST https://api.zerokyc-payments.com/v1/invoices \
  -H "Authorization: Bearer pk_test_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042" \
  -d '{
    "amount": "49.00",
    "base_currency": "USD",
    "payment_currency": "any",
    "order_id": "order-1042",
    "ttl_minutes": 360,
    "success_url": "https://yourapp.com/paid",
    "webhook_url": "https://yourapp.com/webhooks/zkp",
    "metadata": { "customer_id": "cust_8821" }
  }'

Два способа подключить

Оба начинаются в одной консоли и живут на одном API — выбирайте по нужной степени контроля.

Без кода, ~5 минут

Hosted-касса

Инвойс создаётся в консоли или одним вызовом, покупатель уходит по ссылке на кассу — QR-коды, живой статус и локализация уже встроены.

Начать в консоли

Полный контроль

API

Инвойсы из вашего бэкенда, своя страница оплаты, подписанные вебхуки. Те же эндпоинты, на которых будет работать live-трафик.

Смотреть API

Ближе библиотеки? SDK для Node.js, PHP и Python плюс плагин WooCommerce.

SDK и плагин

От регистрации до первого подтверждённого вебхука

Семь шагов, рабочий код, никакого маркетингового тумана. Каждый сниппет запускается против production-API с тестовым ключом.

  1. Создайте аккаунт

    Регистрация — email, пароль и 2FA; KYC не запрашивается никогда. Вы стартуете на бесплатном тарифе (до $500/мес) и подключаете свои кошельки; покупатели платят сразу в ваш кошелёк, платформа средства не держит.

    Тарифы и кассы →

  2. Возьмите тестовый ключ

    Ключ pk_test лежит в разделе API keys. Песочница — тот же production-API (https://api.zerokyc-payments.com): контракт, вебхуки и подписи идентичны, платежи симулируются и подтверждаются мгновенно. Тестовый платёж можно запустить прямо со страницы инвойса в консоли.

    Правила песочницы →

  3. Создайте инвойс

    Один POST покрывает все включённые монеты: передайте payment_currency "any", и покупатель выберет на кассе. Шлите Idempotency-Key, чтобы ретраи не дублировали инвойс; суммы — в фиате (USD/EUR/RUB) или самой монете; metadata вернётся в каждом вебхуке.

    curl -X POST https://api.zerokyc-payments.com/v1/invoices \
      -H "Authorization: Bearer pk_test_..." \
      -H "Content-Type: application/json" \
      -H "Idempotency-Key: order-1042" \
      -d '{
        "amount": "49.00",
        "base_currency": "USD",
        "payment_currency": "any",
        "order_id": "order-1042",
        "ttl_minutes": 360,
        "success_url": "https://yourapp.com/paid",
        "webhook_url": "https://yourapp.com/webhooks/zkp",
        "metadata": { "customer_id": "cust_8821" }
      }'

    В ответе — по одному варианту на актив и URL hosted-касса:

    {
      "id": "inv_9f2k...",
      "status": "pending",
      "order_id": "order-1042",
      "amount": "49.00",
      "base_currency": "USD",
      "expires_at": "2026-09-06T18:20:11Z",
      "checkout_url": "https://app.zerokyc-payments.com/pay/inv_9f2k...",
      "options": [
        { "asset": "USDT", "network": "tron", "amount_crypto": "49.00", "rate": "1.0", "status": "open" },
        { "asset": "BTC",  "network": "bitcoin", "amount_crypto": "0.000524", "rate": "93457.91", "status": "open" },
        { "asset": "TON",  "network": "ton", "amount_crypto": "9.81", "rate": "4.99", "status": "open" },
        { "asset": "ETH",  "network": "ethereum", "amount_crypto": "0.0101", "rate": "2970.29", "status": "open" },
        { "asset": "BNB",  "network": "bsc", "amount_crypto": "0.0815", "rate": "601.22", "status": "open" },
        { "asset": "SOL",  "network": "solana", "amount_crypto": "0.3267", "rate": "150.06", "status": "open" ,
        { "asset": "XRP",  "network": "ripple", "amount_crypto": "9.55", "rate": "2.19", "status": "open" ,
        { "asset": "NEAR",  "network": "near", "amount_crypto": "1.8182", "rate": "5.50", "status": "open" }
      ]
    }

    Все поля эндпоинта →·Idempotency-Key и лимиты →

  4. Отправьте покупателя на кассу

    Редирект на checkout_url: все монеты с суммами и адресами, QR-код, живой таймер TTL и опрос статуса каждые 5 секунд. EN/RU и white-label встроены. Вот что видит ваш покупатель:

    демо — меняется автоматически

    Интерактивное демо
    H

    HostCare

    VPS и VPN хостинг

    #1042

    К оплате

    $49.00

    Истекает через 29:47

    Способ оплаты

    49.00 USDT TRC-20

    TQn9Y2khES6uN9fgPqwPZLvWrRqXBqYm6B

    Ожидаем платеж

    Это статическое демо. Живой чекаут доступен на /pay/[id] в кабинете мерчанта.

    Выбирает покупатель; расчёт — в том же инвойсе.

    USDT (TRON)TRXUSDC (Arbitrum)BTCLTCDOGEBCHSOLXRPNEARXMRTONETHBNB

  5. Примите вебхук

    payment.confirmed — денежное событие: id инвойса и заказа, оплаченный вариант, транзакция с хэшем, подтверждениями и ссылкой на эксплорер и ваш metadata. Отвечайте 2xx в течение 10 секунд; доставка at-least-once с ретраями 1м → 5м → 30м → 2ч → 12ч — сделайте обработчик идемпотентным по evt.id.

    {
      "type": "payment.confirmed",
      "created_at": "2026-09-06T14:02:33Z",
      "data": {
        "invoice_id": "inv_9f2k...",
        "order_id": "order-1042",
        "amount": "49.00",
        "base_currency": "USD",
        "option": { "asset": "TON", "network": "ton", "amount_crypto": "9.81", "paid_amount": "9.81" },
        "tx": { "hash": "9d24...", "confirmations": 1, "explorer_url": "https://tonviewer.com/transaction/9d24...", "output_index": 0 },
        "metadata": { "customer_id": "cust_8821" }
      }
    }

    Контракт событий →·Почему именно так?

  6. Проверьте подпись

    Каждый вебхук подписан. Заголовок X-ZKP-Signature несёт t= и v1=; HMAC-SHA256 считается от строки "{t}.{raw_body}" с окном 5 минут. Без этой проверки пейлоаду доверять нельзя.

    import { createHmac, timingSafeEqual } from "node:crypto";
    
    // X-ZKP-Signature: t=1694007753,v1=ade537fa...
    const [t, v1] = Object.fromEntries(
      req.headers["x-zkp-signature"].split(",").map((p) => p.trim().split("=")),
    );
    
    const expected = createHmac("sha256", WEBHOOK_SECRET)
      .update(`${t}.${req.rawBody}`)
      .digest("hex");
    
    const ok = timingSafeEqual(Buffer.from(expected, "hex"), Buffer.from(v1, "hex"));
    if (!ok || Math.abs(Date.now() / 1000 - Number(t)) > 300) return res.status(400).end();

    Сниппеты Node/PHP/Python →

  7. Перейдите в live

    Замените pk_test на pk_live — код не меняется. Перед продом пройдите чек-лист: верификация HMAC включена; идемпотентность по evt.id; обработка underpaid/expired/canceled; Idempotency-Key при создании; учтены rate limits.

    Чек-лист перед продом

    • Верификация HMAC включена на каждом вебхук-эндпоинте
    • Идемпотентность по evt.id на ретраях
    • События underpaid, expired и canceled обработаны
    • Idempotency-Key отправляется при создании инвойса
    • Rate limits учтены (30 инвойсов/мин live)

    Лимиты →·Жизненный цикл инвойса →

Не хотите возиться с кодом? Подключим под ключ

Подключение силами команды, которая построила платформу.

  • Ваши подключённые кошельки (только direct-касса)
  • Касса встроена в ваш сайт или сервис (кнопка, редирект или API)
  • Вебхук-ресивер с проверкой HMAC на вашем стеке
  • Тестовый платёж в песочнице и контрольный live-платёж
  • Краткий чек-лист эксплуатации переданный вам
Написать в Telegram

от $99·Обычно 1–2 рабочих дня.

FAQ по подключению

Требуется ли KYC?

Нет. Регистрация — email, пароль и 2FA; KYC не запрашивается ни на одном этапе — ни в песочнице, ни для live-ключей.

Сколько времени занимает интеграция?

Hosted-касса — около 5 минут без кода. API-путь обычно занимает около часа вместе с проверкой подписи. Под ключ — 1–2 рабочих дня.

Можно принимать платежи вообще без кода?

Да: создайте инвойс в консоли и отправьте покупателю ссылку на кассу или QR. Остальное сделает hosted-страница.

Что нужно для live-ключей?

Подключите кошелёк для любого из 22 активов — live-ключ выдаётся в консоли сразу после. Бесплатный тариф покрывает до $500/мес.

Какие языки и фреймворки поддерживаются?

API — обычный REST поверх HTTPS с подписанными вебхуками. Официальные SDK покрывают Node.js, PHP и Python, есть плагин WooCommerce.

Можете сделать кастомную интеграцию под нас?

Да — это услуга «под ключ». Напишите нам в Telegram, и мы оценим задачу.

Начните принимать крипту сегодня

Аккаунт в песочнице бесплатный и создаётся по одному email.

Сколько это стоит?