Документация паблишера · Публикация агента

Публикация агента на маркетплейсе

Пошаговое руководство: как подключить прием оплаты (ЮKassa) и вывести вашего AI-агента на витрину маркетплейса. Подходит и тем, у кого есть свой сервер, и тем, кто работает на no-code/low-code платформах.

Сейчас подключение идет в ручном режиме — часть шагов мы проходим вместе с вами. С 1 августа 2026 появится личный кабинет паблишера со встроенным биллингом, и рутинные шаги уйдут в автоматику.
0

Получение ключей доступа

ПараметрОписаниеПример
shopIdИдентификатор вашего магазина в ЮKassa123456
secretKeyСекретный ключ для авторизации API-запросовlive_AbCdEf123…
Никогда не публикуйте secretKey открыто. Не коммитьте в Git, не вставляйте в клиентский JavaScript, не пересылайте через мессенджеры без шифрования. Храните в переменных окружения (.env) или в разделе «Секреты» вашей платформы.

Перед интеграцией вам нужны два параметра для работы с API ЮKassa. Их выдает ваш менеджер маркетплейса или напишите на contact@just-ai.com, в теме письма «Паблишер. Публикация агента на маркетплейсе».

1

Установка SDK

Рекомендуем использовать готовую библиотеку — она берет на себя авторизацию, формирование запросов и обработку ответов.

PHP (официальный SDK)

bash
composer require yoomoney/yookassa-sdk-php

Python (официальный SDK)

bash
pip install yookassa

Node.js (SDK от сообщества)

bash
npm install @a2seven/yoo-checkout
Node.js SDK разработан сообществом и не является официальным продуктом ЮKassa — перед использованием оцените его соответствие вашим требованиям.
2

Создание платежа

Платеж создается HTTP-запросом к API ЮKassa. Ниже два варианта — для платформ без своего сервера и для проектов с бэкендом.

Вариант А — без своего сервера (no-code)

Подходит для Just AI Agent Platform, Jay Flow, n8n, Make и подобных платформ с поддержкой REST API и webhook. Создайте платеж через HTTP-блок платформы:

ПараметрЗначение
МетодPOST
URLhttps://api.yookassa.ru/v3/payments
АвторизацияBasic Auth — логин: ВАШ_SHOP_ID, пароль: ВАШ_SECRET_KEY
Content-Typeapplication/json
Idempotence-KeyУникальный UUID (на каждый запрос свой)
Idempotence-Key нужен, чтобы при повторной отправке того же запроса (например, из-за сбоя сети) платеж не создался дважды.
json
{
  "amount": {
    "value": "500.00",
    "currency": "RUB"
  },
  "confirmation": {
    "type": "redirect",
    "return_url": "https://ваш-сайт.ru/success"
  },
  "capture": true,
  "description": "Заказ №42"
}

В ответе придет поле confirmation.confirmation_url — ссылка, на которую нужно перенаправить пользователя для оплаты.

Вариант Б — со своим сервером (PHP / Python)

Этот код выполняется только на сервере. Никогда не выносите его на фронтенд — иначе секретный ключ увидят все посетители.
php
require_once('./vendor/autoload.php');

$client = new \YooKassa\Client();
$client->setAuth('ВАШ_SHOP_ID', 'ВАШ_SECRET_KEY');

$payment = $client->createPayment([
    'amount'       => ['value' => '500.00', 'currency' => 'RUB'],
    'confirmation' => ['type' => 'redirect', 'return_url' => 'https://ваш-сайт.ru/success'],
    'capture'      => true,
    'description'  => 'Заказ №42',
], uniqid('', true)); // Idempotence-Key

$url = $payment->getConfirmation()->getConfirmationUrl();
header('Location: ' . $url);
exit;
python
from yookassa import Configuration, Payment
import uuid

Configuration.account_id = 'ВАШ_SHOP_ID'
Configuration.secret_key = 'ВАШ_SECRET_KEY'

payment = Payment.create({
    "amount": {"value": "500.00", "currency": "RUB"},
    "confirmation": {"type": "redirect", "return_url": "https://ваш-сайт.ru/success"},
    "capture": True,
    "description": "Заказ №42",
}, uuid.uuid4())  # уникальный Idempotence-Key

confirmation_url = payment.confirmation.confirmation_url
# перенаправьте пользователя на confirmation_url
3

Сервер с HTTPSнеобязательно

Есть свой сервер с HTTPS? Пропустите этот шаг. Раздел нужен только тем, у кого своего сервера нет — например, при работе на no-code платформе без публичного HTTPS-адреса.

Webhook ЮKassa отправляет уведомления только на адреса с https://. Без HTTPS вы не сможете получать уведомления об оплате.

Быстрый способ развернуть сайт с HTTPS

  1. Зарегистрируйтесь на хостинге с поддержкой Let's Encrypt (например, Beget или Jino — у многих есть бесплатный тестовый период).
  2. Добавьте домен или используйте бесплатный поддомен, загрузите файлы проекта через файловый менеджер или FTP.
  3. В панели включите бесплатный SSL-сертификат Let's Encrypt (обычно одной кнопкой) и принудительный редирект с HTTP на HTTPS.
Мы не даем прямых рекомендаций по конкретному хостингу — подойдет любой с поддержкой HTTPS и Let's Encrypt.
4

Настройка Webhook

Webhook — это URL на вашем сервере, куда ЮKassa автоматически отправит запрос после оплаты и других событий.

  1. Откройте личный кабинет ЮKassa → раздел Интеграция → HTTP-уведомления.
  2. Укажите URL обработчика, например https://ваш-сайт.ru/webhook.
СобытиеОписание
payment.waiting_for_captureПлатеж ожидает подтверждения (при capture: false)
payment.succeededПлатеж успешно завершен
payment.canceledПлатеж отменен
refund.succeededВозврат выполнен
php
$body = file_get_contents('php://input');
$data = json_decode($body, true);

if ($data['event'] === 'payment.succeeded') {
    $paymentId = $data['object']['id'];
    // ВАЖНО: проверьте статус через API (Шаг 5),
    // и только потом открывайте доступ к товару
}

// Обязательно отвечаем кодом 200,
// иначе ЮKassa будет повторять запрос в течение 24 часов
http_response_code(200);
Не доверяйте webhook вслепую. Злоумышленник может отправить поддельный запрос. Всегда проверяйте статус платежа через API (Шаг 5), прежде чем открывать доступ к товару.
5

Проверка статуса платежа

После webhook-уведомления обязательно перепроверьте статус платежа через API — это защита от поддельных уведомлений.

php
$payment = $client->getPaymentInfo($paymentId);
if ($payment->getStatus() === 'succeeded') {
    // Платеж подтвержден — открываем доступ к товару/услуге
}
python
from yookassa import Payment

payment = Payment.find_one(payment_id)
if payment.status == 'succeeded':
    # Платеж подтвержден — открываем доступ к товару/услуге
    pass
6

Тестирование

Перед боевым запуском протестируйте интеграцию на тестовом магазине. Запросите у вашего менеджера маркетплейса данные тестового магазина — тестовый секретный ключ начинается с test_.

Тестовые карты

Номер картыТип3-D Secure
5555 5555 5555 4477MastercardДа
5555 5555 5555 4444MastercardНет
4111 1111 1111 1111VisaНет
2200 0000 0000 0004MirДа

Срок действия — любой в будущем (например, 12/30), CVC — любые 3 цифры, код 3-D Secure — любые цифры.

Реальные деньги при тестировании не списываются. Все тестовые платежи содержат параметр test: true.

Готово — что дальше

После тестирования свяжитесь с вашим менеджером маркетплейса. Мы создаем ваш магазин, вместе проводим тестовую оплату — и агент публикуется на витрине маркетплейса.

Сейчас этот финальный шаг проходит в ручном режиме. С 1 августа 2026 он уйдет в личный кабинет с автоматическим биллингом.

Частые ошибки

ОшибкаПоследствиеКак исправить
Хранить secretKey прямо в кодеКлюч утечет через Git или инспектор браузераВынести в переменные окружения (.env)
Доверять webhook без проверки статусаПоддельный запрос → товар отдан бесплатноВсегда проверять статус через API (Шаг 5)
Забыть ответить 200 на webhookЮKassa повторяет уведомление 24 часаВсегда возвращать HTTP-код 200
Создавать платеж на фронтендеСекретный ключ виден всем пользователямСоздавать платеж только на бэкенде