Открыть бота
Документация / Библиотеки (SDK)

Библиотеки (SDK)

Официальные библиотеки умеют всё из этой документации и берут на себя скучное: повторы без дублей, разбор ошибок, проверку подписи.

ВозможностьPythonNode.jsPHP
Установкаpip install kivix-paynpm install kivix-paycomposer require kivix/pay
Версия языка3.9+18+8.1+
Счета: создать · найти по заказу · листать · отменить✅✅✅
Проверка подписи вебхука✅✅✅
Автоповтор без дублей✅✅✅
Асинхронный клиент✅ AsyncKivixPay✅ Promise—
Типыtype hintsTypeScriptphpdoc
Зависимостиhttpxнетext-curl

Python

pip install kivix-pay
from kivix_pay import KivixPay

pay = KivixPay("kp_...", base_url="https://kivix.cc")
invoice = pay.invoices.create(amount="12.50", asset="USDT", order_id="1001")
print(invoice.pay_url, invoice["status"])   # и через точку, и как dict

Асинхронно (aiogram, FastAPI)

from kivix_pay import AsyncKivixPay

async with AsyncKivixPay("kp_...", base_url="https://kivix.cc") as pay:
    invoice = await pay.invoices.create(amount="5", asset="USDT", order_id="42")

Node.js / TypeScript

npm install kivix-pay
import { KivixPay } from "kivix-pay";   // или require("kivix-pay")

const pay = new KivixPay("kp_...", { baseUrl: "https://kivix.cc" });
const invoice = await pay.invoices.create({ amount: "12.50", asset: "USDT", orderId: "1001" });

PHP

composer require kivix/pay
use Kivix\Pay\KivixPay;

$pay = new KivixPay('kp_...', 'https://kivix.cc');
$invoice = $pay->invoices->create(['amount' => '12.50', 'asset' => 'USDT', 'order_id' => '1001']);

Методы

ЧтоPythonNode.jsPHP
Создать счётinvoices.create(...)invoices.create({...})invoices->create([...])
Получитьinvoices.get(id)invoices.get(id)invoices->get($id)
По номеру заказаinvoices.find_by_order()invoices.findByOrder()invoices->findByOrder()
Все подрядinvoices.iterate()for await … iterate()foreach … iterate()
Отменитьinvoices.cancel(id)invoices.cancel(id)invoices->cancel($id)
Вебхукwebhook.set/get/delete/testwebhook.set/get/delete/testwebhook->set/get/delete/test
Проверить подписьconstruct_event()constructEvent()Webhook::constructEvent()
Приложение, баланс, монетыme() balance() currencies()me() balance() currencies()me() balance() currencies()

Ошибки в SDK

Все исключения наследуются от одного базового и содержат HTTP-статус, code и field из ответа API:

КогдаPythonNode.jsPHP
400 — неверный параметрInvalidRequestErrorInvalidRequestErrorInvalidRequestException
401 — ключAuthenticationErrorAuthenticationErrorAuthenticationException
404 — не найденоNotFoundErrorNotFoundErrorNotFoundException
409 — конфликтConflictErrorConflictErrorConflictException
429 — лимитRateLimitErrorRateLimitErrorRateLimitException
СетьAPIConnectionErrorAPIConnectionErrorApiConnectionException

Надёжность

При обрыве сети, ответах 5xx и 429 SDK сами повторяют запрос — по умолчанию 2 раза, с паузой и с учётом Retry-After. При создании счёта каждый раз отправляется один и тот же Idempotency-Key, поэтому повтор не создаст второй счёт.