SDK и примеры кода

Готовые примеры интеграции Pay Bot API для 10 языков программирования. Скачайте и используйте.

Все примеры используют прямые HTTP-запросы — не нужно устанавливать SDK. Скопируйте код, замените API ключ и запустите.

Python

Полный пример: создание QR, проверка статуса, обработка ошибок.

python
Скачать
import requests
import uuid

API_KEY = "kp_live_your_key"
BASE = "https://payapi.aibot.kz"

def create_qr(amount: int, description: str = "") -> dict:
    """Создать QR-код для оплаты."""
    resp = requests.post(
        f"{BASE}/v1/qr/create",
        headers={
            "X-API-Key": API_KEY,
            "Idempotency-Key": str(uuid.uuid4()),
            "Content-Type": "application/json",
        },
        json={"amount": amount},
        timeout=10,
    )
    resp.raise_for_status()
    return resp.json()

def check_status(operation_id: str) -> dict:
    """Проверить статус платежа."""
    resp = requests.get(
        f"{BASE}/v1/qr/status/{operation_id}",
        headers={"X-API-Key": API_KEY},
        timeout=10,
    )
    resp.raise_for_status()
    return resp.json()

# Использование
result = create_qr(5000)
print(f"QR URL: {result['qr_url']}")
print(f"Operation ID: {result['operation_id']}")

# Позже — проверить статус
status = check_status(result["operation_id"])
print(f"Status: {status['status']}")  # pending | paid | expired

JavaScript (Node.js)

javascript
Скачать
const API_KEY = "kp_live_your_key";
const BASE = "https://payapi.aibot.kz";

async function createQr(amount) {
  const res = await fetch(`${BASE}/v1/qr/create`, {
    method: "POST",
    headers: {
      "X-API-Key": API_KEY,
      "Idempotency-Key": crypto.randomUUID(),
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ amount }),
  });

  if (!res.ok) {
    const err = await res.json();
    throw new Error(err.message || res.statusText);
  }

  return res.json();
}

async function checkStatus(operationId) {
  const res = await fetch(`${BASE}/v1/qr/status/${operationId}`, {
    headers: { "X-API-Key": API_KEY },
  });
  return res.json();
}

// Использование
const qr = await createQr(5000);
console.log("QR:", qr.qr_url);

const status = await checkStatus(qr.operation_id);
console.log("Status:", status.status);

PHP

php
Скачать
<?php
$apiKey = "kp_live_your_key";
$base = "https://payapi.aibot.kz";

function createQr($amount) {
    global $apiKey, $base;

    $ch = curl_init("$base/v1/qr/create");
    curl_setopt_array($ch, [
        CURLOPT_POST => true,
        CURLOPT_HTTPHEADER => [
            "X-API-Key: $apiKey",
            "Idempotency-Key: " . uniqid('', true),
            "Content-Type: application/json",
        ],
        CURLOPT_POSTFIELDS => json_encode(["amount" => $amount]),
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_TIMEOUT => 10,
    ]);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode !== 200) {
        throw new Exception("API error: $httpCode - $response");
    }

    return json_decode($response, true);
}

function checkStatus($operationId) {
    global $apiKey, $base;

    $ch = curl_init("$base/v1/qr/status/$operationId");
    curl_setopt_array($ch, [
        CURLOPT_HTTPHEADER => ["X-API-Key: $apiKey"],
        CURLOPT_RETURNTRANSFER => true,
    ]);

    $response = curl_exec($ch);
    curl_close($ch);
    return json_decode($response, true);
}

// Использование
$qr = createQr(5000);
echo "QR: " . $qr["qr_url"] . "\n";
echo "Status: " . checkStatus($qr["operation_id"])["status"] . "\n";
?>

Go

go
Скачать
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"

    "github.com/google/uuid"
)

const (
    apiKey = "kp_live_your_key"
    baseURL = "https://payapi.aibot.kz"
)

type QrResponse struct {
    OperationID string `json:"operation_id"`
    QrURL       string `json:"qr_url"`
    DeepLink    string `json:"deep_link"`
}

func createQr(amount int) (*QrResponse, error) {
    body, _ := json.Marshal(map[string]int{"amount": amount})
    req, _ := http.NewRequest("POST", baseURL+"/v1/qr/create",
        bytes.NewReader(body))
    req.Header.Set("X-API-Key", apiKey)
    req.Header.Set("Idempotency-Key", uuid.New().String())
    req.Header.Set("Content-Type", "application/json")

    resp, err := http.DefaultClient.Do(req)
    if err != nil {
        return nil, err
    }
    defer resp.Body.Close()

    data, _ := io.ReadAll(resp.Body)
    var result QrResponse
    json.Unmarshal(data, &result)
    return &result, nil
}

func main() {
    qr, err := createQr(5000)
    if err != nil {
        panic(err)
    }
    fmt.Printf("QR: %s\nID: %s\n", qr.QrURL, qr.OperationID)
}

Java

java
Скачать
import okhttp3.*;
import org.json.JSONObject;
import java.util.UUID;

public class PayBotExample {
    static final String API_KEY = "kp_live_your_key";
    static final String BASE = "https://payapi.aibot.kz";
    static final OkHttpClient client = new OkHttpClient();

    public static JSONObject createQr(int amount) throws Exception {
        RequestBody body = RequestBody.create(
            new JSONObject().put("amount", amount).toString(),
            MediaType.parse("application/json")
        );

        Request request = new Request.Builder()
            .url(BASE + "/v1/qr/create")
            .addHeader("X-API-Key", API_KEY)
            .addHeader("Idempotency-Key", UUID.randomUUID().toString())
            .post(body)
            .build();

        try (Response response = client.newCall(request).execute()) {
            return new JSONObject(response.body().string());
        }
    }

    public static void main(String[] args) throws Exception {
        JSONObject qr = createQr(5000);
        System.out.println("QR: " + qr.getString("qr_url"));
        System.out.println("ID: " + qr.getString("operation_id"));
    }
}

C#

csharp
Скачать
using System.Net.Http.Json;

var apiKey = "kp_live_your_key";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("X-API-Key", apiKey);
client.DefaultRequestHeaders.Add("Idempotency-Key", Guid.NewGuid().ToString());

var response = await client.PostAsJsonAsync(
    "https://payapi.aibot.kz/v1/qr/create",
    new { amount = 5000 }
);

var result = await response.Content.ReadFromJsonAsync<QrResponse>();
Console.WriteLine($"QR: {result.QrUrl}");
Console.WriteLine($"ID: {result.OperationId}");

record QrResponse(string operation_id, string qr_url, string deep_link) {
    public string OperationId => operation_id;
    public string QrUrl => qr_url;
}

Ruby

ruby
Скачать
require "net/http"
require "json"
require "securerandom"

API_KEY = "kp_live_your_key"
BASE = "https://payapi.aibot.kz"

def create_qr(amount)
  uri = URI("#{BASE}/v1/qr/create")
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true

  req = Net::HTTP::Post.new(uri)
  req["X-API-Key"] = API_KEY
  req["Idempotency-Key"] = SecureRandom.uuid
  req["Content-Type"] = "application/json"
  req.body = { amount: amount }.to_json

  res = http.request(req)
  JSON.parse(res.body)
end

result = create_qr(5000)
puts "QR: #{result['qr_url']}"
puts "ID: #{result['operation_id']}"

Kotlin (Android)

kotlin
Скачать
import okhttp3.*
import okhttp3.MediaType.Companion.toMediaType
import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONObject
import java.util.UUID

object PayBot {
    private const val API_KEY = "kp_live_your_key"
    private const val BASE = "https://payapi.aibot.kz"
    private val client = OkHttpClient()

    fun createQr(amount: Int): JSONObject {
        val body = """{"amount":$amount}"""
            .toRequestBody("application/json".toMediaType())

        val request = Request.Builder()
            .url("$BASE/v1/qr/create")
            .addHeader("X-API-Key", API_KEY)
            .addHeader("Idempotency-Key", UUID.randomUUID().toString())
            .post(body)
            .build()

        client.newCall(request).execute().use { response ->
            return JSONObject(response.body!!.string())
        }
    }
}

// Использование в Activity
val qr = PayBot.createQr(5000)
Log.d("PayBot", "QR: ${qr.getString("qr_url")}")

Swift (iOS)

swift
Скачать
import Foundation

struct PayBot {
    static let apiKey = "kp_live_your_key"
    static let base = "https://payapi.aibot.kz"

    static func createQr(amount: Int) async throws -> [String: Any] {
        var request = URLRequest(url: URL(string: "\(base)/v1/qr/create")!)
        request.httpMethod = "POST"
        request.setValue(apiKey, forHTTPHeaderField: "X-API-Key")
        request.setValue(UUID().uuidString, forHTTPHeaderField: "Idempotency-Key")
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")
        request.httpBody = try JSONSerialization.data(
            withJSONObject: ["amount": amount]
        )

        let (data, _) = try await URLSession.shared.data(for: request)
        return try JSONSerialization.jsonObject(with: data) as! [String: Any]
    }
}

// Использование
let qr = try await PayBot.createQr(amount: 5000)
print("QR: \(qr["qr_url"] ?? "")")

cURL

bash
Скачать
# Создать QR
curl -X POST https://payapi.aibot.kz/v1/qr/create \
  -H "X-API-Key: kp_live_your_key" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"amount": 5000}'

# Проверить статус
curl https://payapi.aibot.kz/v1/qr/status/OPERATION_ID \
  -H "X-API-Key: kp_live_your_key"

# Проверить здоровье API
curl https://payapi.aibot.kz/health