Интеграция 1С-Битрикс с платежной системой Kaspi Pay (Казахстан)

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция 1С-Битрикс с платежной системой Kaspi Pay (Казахстан)
Средняя
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    989

Интеграция 1С-Битрикс с платёжной системой Kaspi Pay (Казахстан)

Kaspi Pay — платёжный инструмент экосистемы Kaspi Bank. Широко распространён в Казахстане: покупатель сканирует QR-код или вводит номер телефона, подтверждает оплату в приложении Kaspi. Для интернет-магазинов актуален как один из наиболее конверсионных методов оплаты на казахстанском рынке.

Варианты интеграции

Kaspi предоставляет несколько методов для интернет-магазинов:

QR-оплата — генерируется QR-код со счётом. Покупатель сканирует через Kaspi.kz app. Используется как на сайте, так и в офлайн-точках.

Kaspi Pay по ссылке — ссылка ведёт на форму подтверждения в браузере или открывает приложение Kaspi.

Kaspi eCommerce API — для интернет-магазинов, прямая интеграция через API.

Для интеграции с Битрикс стандартный подход — eCommerce API или платёжная ссылка.

Kaspi eCommerce API

Авторизация через Bearer токен. Базовый URL: https://api.kaspi.kz/payment/

$token   = $this->getBusinessValue($payment, 'KASPI_TOKEN');
$orderId = $payment->getOrder()->getId();
$amount  = $payment->getSum();  // в тенге (KZT)

// Создание платежа
$payload = [
    'device'  => [
        'platformType' => 'WEB',
        'id'           => md5($orderId),
    ],
    'amount' => [
        'value'    => $amount,
        'currency' => 'KZT',
    ],
    'externalId'   => (string)$orderId,
    'description'  => 'Оплата заказа №' . $orderId,
    'paymentType'  => 'ECOM',
    'customer'     => [
        'phone' => $phone,  // телефон покупателя в формате +77XXXXXXXXX
    ],
    'redirectUrl'  => $returnUrl,
    'callbackUrl'  => $callbackUrl,
];

$ch = curl_init('https://api.kaspi.kz/payment/api/v1/payments/create');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $token,
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

// $response['data']['paymentLink'] — ссылка для редиректа
// $response['data']['paymentId']   — ID платежа для проверки статуса

Обработка уведомлений

Kaspi отправляет POST на callbackUrl при изменении статуса платежа:

$rawBody = file_get_contents('php://input');
$data    = json_decode($rawBody, true);

$paymentId  = $data['data']['paymentId'];
$externalId = $data['data']['externalId'];  // наш orderId
$status     = $data['data']['status'];      // 'COMPLETED', 'FAILED', 'EXPIRED'

// Верификация через заголовок подписи или дополнительный запрос статуса
if ($status === 'COMPLETED') {
    // Подтвердить через отдельный GET-запрос для защиты от фальшивых уведомлений
    $verification = $this->httpGet(
        'https://api.kaspi.kz/payment/api/v1/payments/' . $paymentId,
        [],
        ['Authorization: Bearer ' . $token]
    );

    if ($verification['data']['status'] === 'COMPLETED') {
        $order = \Bitrix\Sale\Order::loadByAccountNumber($externalId);
        // setPaid('Y'), save()
    }
}

http_response_code(200);
echo json_encode(['status' => 'OK']);

Важно: всегда верифицируйте статус через дополнительный GET-запрос к API. Принимать статус только из тела callback без проверки — риск мошенничества.

QR-код на странице заказа

Альтернативный UX для мобильных пользователей — QR-код прямо на странице оформления:

// Получить QR-код для оплаты
$qrResponse = $this->httpPost('https://api.kaspi.kz/payment/api/v1/payments/qr', $payload, $headers);
$qrBase64   = $qrResponse['data']['qrCode'];  // base64 PNG изображение

echo '<img src="data:image/png;base64,' . $qrBase64 . '" alt="Kaspi Pay QR">';
echo '<p>Отсканируйте QR в приложении Kaspi</p>';

Дополнительно — реализуйте polling или WebSocket для автообновления статуса на странице без перезагрузки.

Особенности казахстанского рынка

  • Валюта — тенге (KZT). Суммы без копеек (целые числа)
  • Телефоны в формате +77XXXXXXXXX (7 или 8 в начале — уточняйте формат у Kaspi)
  • Kaspi Pay популярен для оплат от 5 000 до 500 000 KZT — основная аудитория
  • Kaspi также предоставляет рассрочку (Kaspi Red) — отдельная интеграция

Сроки разработки

Задача Срок
Создание платежа + редирект + callback 2–3 дня
QR-код на странице + polling статуса +1–2 дня
Тестирование на тестовой среде 0.5–1 день