Все примеры используют прямые 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 | expiredJavaScript (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