MCP-сервер EasyPay: настройка платежей в чате с AI
MCP-сервер EasyPay подключается к вашему AI-агенту — Claude Code, Cursor, Codex, Gemini CLI или любому MCP-клиенту — и делает часть задач по аккаунту EasyPay доступной прямо из чата. Не заходя в мини-апп и не переписываясь с командой заботы. Так же легко, как вайб-кодить свой продукт.
Статья на двух языках — русская версия сверху.
The EasyPay MCP server plugs into your AI agent — Claude Code, Cursor, Codex, Gemini CLI or any MCP client — and makes a chunk of your EasyPay account tasks available straight from the chat. Without switching to the mini-app or messaging the care team. As easy as vibe-coding your product.
Bilingual article — English version below.
Зачем это
Вы пишете код в Cursor или Claude Code — теперь часть задач по платежам можно закрывать там же, в диалоге с агентом. Формулируете задачу простым языком — агент дёргает нужный инструмент EasyPay и возвращает результат.
MCP-сервер работает с тем же аккаунтом EasyPay, что и мини-апп. Он видит то же, что видите вы.
Что уже работает
Через MCP-сервер ваш агент умеет:
если вы на этапе онбординга — показать, на каком шаге вы сейчас и что ещё нужно сделать, чтобы запустить платежи;
показать ваши рабочие платёжные ссылки и продукты — чтобы быстро скопировать нужную ссылку для клиента или свериться, что сейчас активно;
показать все ваши рублёвые чекауты одним списком — и постоянные ссылки (их можно ставить на сайт и в бота, они не истекают), и продукты, из которых делается разовая ссылка на 24 часа. По каждой строке видно: налоговый режим (УСН 6% или патент — если он ещё не определён, агент так и скажет, а не додумает), принимает ли чекаут карты или только СБП, цену и допустимый диапазон, а также статус модерации;
показать ваш текущий баланс в EasyPay (USD, RUB, крипто-эквивалент в USD, итог в USD) — баланс обновляется примерно раз в сутки, агент покажет дату последнего расчёта;
показать ваши платежи через Stripe за период — перечнем, с суммой, статусом, ID платежа (
payment_intent) и вашимclient_reference_idдля сверки с внутренней системой; а по конкретному платежу — достать полный снэпшот (invoice, charge, checkout session, подписка — тот же состав, что приходит в вебхук) вместе со связанными рефандами и спорами;показать ваши подписки Stripe за период — перечнем со статусом, продуктом и ценой, и по конкретной подписке достать объект целиком;
создать под новый продукт платёжную ссылку и отправить её на модерацию — команда EasyPay обычно проверяет в течение пары рабочих часов и активирует; после активации ссылка появится в списке рабочих;
выпустить дополнительную платёжную ссылку для уже одобренного продукта — с другой ценой, другой валютой, другим набором способов оплаты, другим
success_urlили другим тарифом подписки; повторная модерация не нужна. Тип продукта и интервал подписки наследуются от продукта; валюта по умолчанию наследуется, но её можно явно переопределить через параметрcurrency. Подробности — статья «EasyPay API: Создание Payment Link для существующего продукта»;выпустить промокод Stripe с процентной скидкой для одного или нескольких уже одобренных продуктов — для сезонных акций, рекламных кампаний или индивидуальных предложений; подробности — статья «Endpoint: Создание промокода Stripe для существующих продуктов»;
собрать одну платёжную ссылку на несколько продуктов с количествами — например, «базовый тариф + 2 места + 100 аккаунтов», вместо нескольких ссылок клиенту. Если все продукты — подписки с одинаковым периодом (скажем, все помесячные), у клиента получится одна подписка из нескольких позиций, и каждый месяц списывается их сумма; если все разовые — одна оплата всей корзины. Разовые и подписочные продукты в одной ссылке смешивать нельзя, как и подписки с разным периодом. Изменилось количество — агент сделает новую ссылку. Подробности — статья «Endpoint (API v2): Payment Link для корзины — несколько продуктов»;
выставить клиенту банковский инвойс в USD через Mercury — агент соберёт email, имя, адрес и сумму, отправит в Mercury, и клиенту придёт письмо с инвойсом;
выставить крипто-инвойс в USD через Shkeeper — клиент оплатит в USDT/USDC (по тому, что у вас настроено); кошельки приходят в личку через бота
@easypay_onboarding_botв течение нескольких секунд после создания инвойса;завести каталог-продукт в рублях для повторных продаж (например, «Урок парусного спорта 5000₽») — агент подаст продукт на модерацию EasyPay, после approve этот продукт виден и в чате с агентом, и в мини-апп; дальше каждую новую T-Bank ссылку можно генерить одной фразой «продай этот продукт клиенту X» (агент сам подставит сумму и описание из каталога);
создать российскую платёжную ссылку в рублях через T-Bank — агент соберёт сумму, email, телефон и описание и вернёт две ссылки: обычную платёжную страницу T-Bank (клиент платит картой) и прямую СБП-ссылку (
qr.nspk.ru), которую клиент открывает сразу в приложении своего банка. Отдавайте клиенту СБП-ссылку, если хотите сэкономить — приём по СБП обходится дешевле карточного эквайринга, и клиенту не нужно вводить данные карты. Если СБП-ссылку выпустить не удалось, агент вернёт только платёжную страницу. Обе ссылки дублируются в ваш Telegram-чат — не нужно просить агента их повторить;собрать рублёвую корзину — один платёж T-Bank сразу за несколько продуктов каталога с количествами («2 места в команде + 100 аккаунтов»). Клиент платит одну сумму, а в кассовом чеке каждая позиция идёт отдельной строкой: название, цена за единицу, количество. Все продукты корзины должны быть на одном терминале (одна система налогообложения);
оформить выплату контрактору с ваших балансов EasyPay — агент покажет варианты funding (из какой валюты покрыть, какая комиссия), вы выберете источник, и команда заботы обработает заявку в течение рабочего дня если у вас открыта кредитная линия, агент покажет её состояние (долг, лимит на сегодня, сколько можно вывести) и сумму к выводу посчитает уже с учётом линии — подробнее, включая три ответа об отказе, в статье «Как сделать заявку на выплату?»;
показать, какие способы приёма платежей у вас уже подключены и какие ещё можно добавить;
передать команде заботы EasyPay запрос на подключение новых способов — Bank Invoice, крипто-платежей, платежей в России;
написать запрос в команду заботы EasyPay — это главный инструмент знакомства с командой на втором шаге онбординга: попросите агента собрать короткое описание того, что вы хотите продавать с EasyPay, плюс ссылки на продукты / сайт / витрину, и одним вызовом отправить это команде. Тот же запрос одновременно откроет с вами Telegram-чат с командой заботы И запустит ревью того, что вы продаёте — не нужно повторяться. Этот же инструмент используется и позже — для всего, что выходит за рамки того, что агент умеет сам (рефанды, споры, кастомные инвойсы, юридические нюансы). Сообщение приходит в общий чат команды заботы EasyPay с пометкой «запрос от [название компании] через AI-агента», команда заботы ответит вам;
зарегистрировать адрес, куда EasyPay будет слать события по вашим платежам (для партнёров со своей интеграцией).
Формулируйте задачу на своём языке — агент сам подберёт инструмент. Если не уверены, с чего начать — попросите его рассказать, что он умеет.
Список постепенно расширяется — следите за обновлениями или спросите у агента, какие EasyPay-возможности доступны сейчас.
Уведомления о платежах — куда приходят. По умолчанию все события (новые платежи через Stripe, Mercury, T-Bank, кошельки крипто-инвойсов) приходят вам в личку через бота @easypay_onboarding_bot — отдельная Telegram-группа для уведомлений не обязательна. Когда агент впервые напишет запрос команде заботы (это второй шаг онбординга), команда откроет с вами отдельный Telegram-чат для обсуждения нестандартных вопросов — отдельно от группы уведомлений. Если у вас группа уже есть и в неё добавлен @EasyPay_notifications_bot — уведомления автоматически переедут туда. Если группы нет — всё работает в личке.
Как подключить за две минуты
1. Возьмите API-ключ в мини-апп EasyPay.
На первом шаге онбординга нажмите «Show key» — ключ скопируется в буфер обмена.
2. Подключите MCP-сервер и скилл к вашему AI-инструменту.
Ключ передаётся как HTTP-заголовок X-Partner-Api-Key и хранится в config вашего AI-инструмента. Модель этот ключ не видит — никогда не вставляйте его в промпт.
Три CLI-агента (Claude Code / Codex / Gemini) умеют установить себя сами — вставьте один промпт, агент выполнит команды. Cursor ставится через JSON-config в Settings → MCP, потому что его MCP-настройка живёт в UI.
3. Первый промпт, который попросите у агента после установки — универсальный для всех CLI:
Проведи меня по этапам онбординга EasyPay так, чтобы я выбрал то, что подходит для моего бизнеса, и мог принимать реальные платежи.Claude Code
Простой путь — вставьте этот промпт в Claude, агент выполнит установку:
Установи EasyPay MCP-сервер и подключи скилл для этого проекта. Для этого нужно выполнить две команды — адаптируй их под текущую среду если нужно: claude mcp add easypay --transport http https://mcp.appload.tech/mcp/ --header "X-Partner-Api-Key: <вставьте-ключ-из-мини-апп>" ; mkdir -p .claude/skills/easypay && curl -fsSL https://raw.githubusercontent.com/EasyPay-Labs/easypay-skill/main/SKILL.md -o .claude/skills/easypay/SKILL.mdИли установите вручную:
claude mcp add easypay --transport http https://mcp.appload.tech/mcp/ --header "X-Partner-Api-Key: <вставьте-ключ-из-мини-апп>"Диагностика: если
claude mcp listпоказываетeasypay: ✗ Failed to connect— запуститеclaude mcp get easypay. Если в выдачеType: stdioилиCommand: \— кавычки сломал shell; удалите (claude mcp remove easypay) и переустановите ровно той же командой (URL до--header, двойные кавычки — работает и в bash, и в PowerShell).
Codex
Codex (desktop-приложение от OpenAI) не принимает --header через codex mcp add напрямую — мост через npm-пакет mcp-remote (stdio ↔ SSE+headers). Нужен Node.js + npx (у большинства уже есть).
Простой путь — вставьте этот промпт в Codex:
Установи EasyPay MCP-сервер и подключи скилл для этого проекта. Для этого нужно выполнить две команды — адаптируй их под текущую среду если нужно: codex mcp add easypay -- npx -y mcp-remote https://mcp.appload.tech/mcp/ --header "X-Partner-Api-Key: <вставьте-ключ-из-мини-апп>" ; mkdir -p .agents/skills/easypay && curl -fsSL https://raw.githubusercontent.com/EasyPay-Labs/easypay-skill/main/SKILL.md -o .agents/skills/easypay/SKILL.mdИли установите вручную:
codex mcp add easypay -- npx -y mcp-remote https://mcp.appload.tech/mcp/ --header "X-Partner-Api-Key: <вставьте-ключ-из-мини-апп>"Gemini CLI
Простой путь — вставьте этот промпт в Gemini:
Установи EasyPay MCP-сервер и подключи скилл для этого проекта. Для этого нужно выполнить две команды — адаптируй их под текущую среду если нужно: gemini mcp add easypay --transport http --header "X-Partner-Api-Key: <вставьте-ключ-из-мини-апп>" https://mcp.appload.tech/mcp/ ; mkdir -p .agents/skills/easypay && curl -fsSL https://raw.githubusercontent.com/EasyPay-Labs/easypay-skill/main/SKILL.md -o .agents/skills/easypay/SKILL.mdИли установите вручную:
gemini mcp add easypay --transport http --header "X-Partner-Api-Key: <вставьте-ключ-из-мини-апп>" https://mcp.appload.tech/mcp/Если ваша версия Gemini не принимает
--header(редко — verified 2026-05-10 что нативный флаг работает), используйтеmcp-remoteмост как у Codex.
Cursor
Cursor ставится через JSON-config в Settings → MCP → Add new MCP server, вставьте:
{
"mcpServers": {
"easypay": {
"url": "https://mcp.appload.tech/mcp/",
"transport": "http",
"headers": { "X-Partner-Api-Key": "<вставьте-ключ-из-мини-апп>" }
}
}
}Альтернатива — отредактируйте ~/.cursor/mcp.json (глобально) либо .cursor/mcp.json в проекте тем же JSON. После сохранения перезапустите Cursor.
Скилл для Cursor скачайте в проектную папку:
mkdir -p .cursor/skills/easypay && curl -fsSL https://raw.githubusercontent.com/EasyPay-Labs/easypay-skill/main/SKILL.md -o .cursor/skills/easypay/SKILL.md⚠ Важно про API-ключ: в командах подключения MCP-сервера выше — ваш реальный ключ. Если вставляли команду в чат с ассистентом — удалите сообщение после установки. Ключ в config'е AI-инструмента (на диске) — нормально; ключ в истории чата — потенциальная утечка.
Альтернативные пути для скилла
По умолчанию скилл скачивается в проектную папку (.claude/skills/easypay/, .agents/skills/easypay/, .cursor/skills/easypay/). Если хотите глобально на пользователя:
CLI | Глобальный путь | Команда |
|---|---|---|
Claude Code |
|
|
Codex |
|
|
Gemini |
|
|
Cursor |
|
|
Project-local (рекомендация по умолчанию): скилл живёт в репо вашего проекта, версионится вместе с кодом, не лезет в другие проекты. Global (user-home): подключается во всех проектах автоматически — подходит если EasyPay-задачи у вас регулярны и не привязаны к конкретному репо.
Попробуйте — реальные промпты
После установки попробуйте любой из этих промптов:
Создай новый продукт в Stripe «Продвинутый AI-курс» за $299 в месяцСоздай для customer@example.ru ссылку на 25 000₽ через СБПСколько у меня сейчас денег в долларах и крипте?Выставь банковский инвойс на $1200 john@example.comОрганизуй выплату подрядчику в РФ на 200 000 ₽ с наших долларовАгент сам подберёт нужный MCP-инструмент. Для продуктов и инвойсов, требующих модерации EasyPay, вы получите уведомление в личку через @easypay_onboarding_bot, когда платёжная ссылка или инвойс активируется.
Что важно про ключ
Этот ключ — доступ к вашему аккаунту EasyPay. Относитесь к нему как к любому рабочему секрету: не выкладывайте в публичные репозитории и не пересылайте в общие чаты.
Ключ хранится в config вашего AI-инструмента, не в чате — это безопаснее: модель его не видит, и он не попадёт случайно в скриншот переписки или в логи агента.
Если что-то пойдёт не так
Агент говорит, что ключ не работает. Откройте мини-апп, нажмите «Show again», скопируйте свежий ключ и вставьте его в
X-Partner-Api-Keyheader вашего MCP-config (а не в промпт).Любая другая ситуация. Попросите агента написать запрос в команду заботы EasyPay — у него есть для этого инструмент. Сообщение придёт в общий чат команды заботы с пометкой, что запрос от вас, и команда ответит вам в открытом с вами чате или в личке.
Why this
You write code in Cursor or Claude Code — now you can handle some of your payment tasks in the same chat. Describe what you need in plain language, and the agent picks the right EasyPay tool and comes back with the result.
The MCP server works on the same EasyPay account your mini-app uses. It sees what you see.
What already works
Through the MCP server, your agent can:
if you're mid-onboarding — show where you are and what's still needed to go live with payments;
show your live payment links and products — so you can grab a link for a client or check what's active;
show all your ruble checkouts in one list — both the permanent links (safe to put on a site or in a bot, they don't expire) and the products behind 24-hour one-off links. Each row tells you: the tax regime (simplified 6% or patent — and if it isn't determined yet, the agent says so instead of guessing), whether the checkout takes cards or SBP only, the price and its allowed range, and the moderation status;
show your current EasyPay balance (USD, RUB, crypto-equivalent-in-USD, total in USD) — it's refreshed roughly once a day, the agent will tell you when it was last recomputed;
list your Stripe payments over a date range — amount, status, payment id (
payment_intent) and yourclient_reference_idfor reconciliation with your own system; and for any single payment — pull the full snapshot (invoice, charge, checkout session, subscription — the same payload your webhook receives) together with its refunds and disputes;list your Stripe subscriptions over a date range — status, product and price per row — and pull the full object for any single subscription;
submit a new product for an EasyPay payment link — the EasyPay team reviews within a couple of business hours and activates it; once live, the link shows up in your list of live payment links;
issue an additional payment link for an already-approved product — different price, different currency, different payment-method subset, different
success_url, or different subscription tier; no re-moderation needed. Product type and subscription interval are inherited; currency is inherited by default but can be explicitly overridden via thecurrencyparameter. Details in "EasyPay API: Create a Payment Link for an existing product";issue a Stripe percent-off promotion code attached to one or several already-approved products — for seasonal sales, marketing campaigns or individual customer discounts; details — article «Endpoint: Создание промокода Stripe для существующих продуктов»;
build one payment link for several products with quantities — e.g. "base plan + 2 seats + 100 accounts" — instead of sending the customer several links. If all products are subscriptions with the same billing period (say, all monthly), the customer gets one subscription with several items and is charged their sum every period; if all are one-time, it's a single payment for the whole cart. One-time and subscription products can't be mixed in one link, nor can subscriptions with different periods. Quantity changed? The agent makes a new link. Details in "Stripe cart: one payment link for several products";
send a customer a USD bank invoice via Mercury — the agent will collect the email, name, address and amount, and Mercury emails the invoice to the customer;
issue a USD crypto invoice via Shkeeper — the customer pays in USDT/USDC (whichever you have configured); wallet addresses arrive in your personal DM via
@easypay_onboarding_botwithin seconds of creating the invoice;register a recurring RUB catalog product (e.g. "Sailing lesson 5000₽") — the agent submits it for EasyPay moderation; once approved, the product is visible both in the agent chat and in the mini-app, and you can spin off new T-Bank links with a one-liner like "sell this product to customer X" (the agent fills in the amount and description from the catalog);
generate a Russian RUB payment link via T-Bank — the agent collects the amount, email, phone and description and returns two links: the regular T-Bank payment page (the customer pays by card) and a direct SBP link (
qr.nspk.ru) the customer opens straight in their banking app. Hand the customer the SBP link if you want to save — SBP costs you less than card acquiring, and the customer skips the card form. If the SBP link could not be issued, the agent returns the payment page only. Both links are also mirrored into your Telegram chat, so you never have to ask the agent to repeat them;build a RUB cart — one T-Bank payment for several catalog products with quantities ("2 team seats + 100 accounts"). The customer pays one total, and every item is a separate line of the fiscal receipt: name, unit price, quantity. All products in a cart must be sold through the same terminal (same tax regime);
request a payout to a contractor from your EasyPay balances — the agent shows funding options (which currency to pull from, what the commission looks like), you pick the source, and the care team processes the request within a business day if you have an open credit line, the agent shows its state (debt, today's limit, how much you can withdraw) and already counts the line in the withdrawable amount. A refusal because of the line comes as one of three codes:
CREDIT_LIMIT_EXCEEDED— the payout goes over the line, the reply names the maximum amount (in the payout currency) you can request;CREDIT_LINE_UNAVAILABLE— the line couldn't be checked right now, not your fault, retry in a few minutes (right after midnight Moscow time the line is recalculated for about half an hour);CREDIT_LINE_UNSUPPORTED— payouts from this line aren't available yet, the care team has already been notified;show which payment methods you already have and which ones EasyPay can still add;
pass a request to the EasyPay care team to enable new methods — Bank Invoice, crypto, Russian payments;
write a request to the EasyPay care team — this is the main onboarding step 2 move for getting to know the team: ask the agent to compile a short description of what you want to sell with EasyPay plus links (product pages, site, showcase) and send it to the team in one call. The same request opens a Telegram chat with the team AND kicks off the team's review of what you sell — no repeating yourself. Use this same tool later for anything outside what the agent can handle directly (refunds, disputes, custom invoices, legal questions). The message arrives in the EasyPay care team's shared chat tagged as a request from you, and the team replies to you;
register an address where EasyPay will POST your payment events (for partners with their own integration).
Phrase the task however feels natural — the agent will pick the right tool. Not sure where to start? Ask what it can do.
The list grows over time — watch for updates, or ask the agent what EasyPay capabilities are available right now.
Where notifications land. By default all payment events (new Stripe payments, Mercury invoices, T-Bank payments, crypto wallet addresses) arrive in your personal DM via @easypay_onboarding_bot — a separate Telegram notifications group is not required. Once the agent makes its first care-team request (onboarding step 2), the EasyPay care team will open a separate Telegram chat with you for non-standard issues — distinct from the notifications group. If you already have a group with @EasyPay_notifications_bot added — notifications will route there automatically. No group? Everything still works in DM.
Connect in two minutes
1. Get the API key from the EasyPay mini-app.
On the first onboarding step, tap "Show key" — the key is copied to your clipboard.
2. Connect the MCP server and skill to your AI tool.
The key travels as an HTTP header (X-Partner-Api-Key) stored in your AI tool's MCP config. The model never sees it — never paste it into a prompt.
Three CLI agents (Claude Code / Codex / Gemini) can install themselves — paste one prompt, the agent runs the commands. Cursor uses a JSON config paste because its MCP setup lives in Settings UI.
3. The first prompt to send to your agent after install is universal:
Walk me through EasyPay onboarding so I can pick what fits my business and start accepting real payments.Claude Code
The easy path — paste this prompt into Claude, the agent runs the install:
Install the EasyPay MCP server and connect the skill for this project. To do this, run two commands — adapt them to your current environment if needed: claude mcp add easypay --transport http https://mcp.appload.tech/mcp/ --header "X-Partner-Api-Key: <paste-key-from-mini-app>" ; mkdir -p .claude/skills/easypay && curl -fsSL https://raw.githubusercontent.com/EasyPay-Labs/easypay-skill/main/SKILL.md -o .claude/skills/easypay/SKILL.mdOr install manually:
claude mcp add easypay --transport http https://mcp.appload.tech/mcp/ --header "X-Partner-Api-Key: <paste-key-from-mini-app>"Diagnostic: if
claude mcp listshowseasypay: ✗ Failed to connect, runclaude mcp get easypay— if it showsType: stdioorCommand: \, the shell mangled quoting.claude mcp remove easypayand rerun the exact command above (URL before--header, double quotes — works on both bash and PowerShell).
Codex
Codex (OpenAI's standalone desktop app) doesn't accept --header on codex mcp add directly — we bridge through the mcp-remote npm package (stdio ↔ SSE+headers). Requires Node.js + npx (most devs have it).
The easy path — paste this prompt into Codex:
Install the EasyPay MCP server and connect the skill for this project. To do this, run two commands — adapt them to your current environment if needed: codex mcp add easypay -- npx -y mcp-remote https://mcp.appload.tech/mcp/ --header "X-Partner-Api-Key: <paste-key-from-mini-app>" ; mkdir -p .agents/skills/easypay && curl -fsSL https://raw.githubusercontent.com/EasyPay-Labs/easypay-skill/main/SKILL.md -o .agents/skills/easypay/SKILL.mdOr install manually:
codex mcp add easypay -- npx -y mcp-remote https://mcp.appload.tech/mcp/ --header "X-Partner-Api-Key: <paste-key-from-mini-app>"Gemini CLI
The easy path — paste this prompt into Gemini:
Install the EasyPay MCP server and connect the skill for this project. To do this, run two commands — adapt them to your current environment if needed: gemini mcp add easypay --transport http --header "X-Partner-Api-Key: <paste-key-from-mini-app>" https://mcp.appload.tech/mcp/ ; mkdir -p .agents/skills/easypay && curl -fsSL https://raw.githubusercontent.com/EasyPay-Labs/easypay-skill/main/SKILL.md -o .agents/skills/easypay/SKILL.mdOr install manually:
gemini mcp add easypay --transport http --header "X-Partner-Api-Key: <paste-key-from-mini-app>" https://mcp.appload.tech/mcp/If your Gemini version doesn't accept
--header(rare — verified working 2026-05-10), use themcp-remotebridge as in Codex.
Cursor
Cursor is installed via JSON config in Settings → MCP → Add new MCP server, paste:
{
"mcpServers": {
"easypay": {
"url": "https://mcp.appload.tech/mcp/",
"transport": "http",
"headers": { "X-Partner-Api-Key": "<paste-key-from-mini-app>" }
}
}
}Alternative — edit ~/.cursor/mcp.json (global, all projects) or .cursor/mcp.json (per-project) with the same JSON. Save, restart Cursor.
Skill for Cursor — download into your project folder:
mkdir -p .cursor/skills/easypay && curl -fsSL https://raw.githubusercontent.com/EasyPay-Labs/easypay-skill/main/SKILL.md -o .cursor/skills/easypay/SKILL.md⚠ About the API key: the install commands above contain your real key. If you pasted them into an assistant chat, delete that message after the install succeeds. Key in the AI tool's config (on disk) — fine; key in chat history — potential leak.
Alternative skill paths
By default the skill downloads into the project folder (.claude/skills/easypay/, .agents/skills/easypay/, .cursor/skills/easypay/). If you want it globally per-user:
CLI | Global path | Command |
|---|---|---|
Claude Code |
|
|
Codex |
|
|
Gemini |
|
|
Cursor |
|
|
Project-local (recommended default): the skill lives in your project repo, versions alongside the code, doesn't leak into other projects. Global (user-home): auto-loaded across all projects — useful if EasyPay tasks are a regular part of your workflow and not tied to a specific repo.
Try it — real prompts
Once installed, paste any of these into your agent:
Create a new Stripe product "Advanced AI Course" for $299/monthMake a payment link for customer@example.ru for 25,000₽ via SBPHow much money do I have right now in USD and crypto?Issue a bank invoice for $1,200 to john@example.comArrange a payout to a contractor in Russia for 200,000₽ funded from our USDThe agent picks the right MCP tool. For products and invoices that need EasyPay moderation, you'll get a notification in DM via @easypay_onboarding_bot when the payment link or invoice goes live.
About the key
The key grants access to your EasyPay account. Treat it like any other work secret — no public repos, no group chats.
The key lives in your AI tool's config, not in chat — which is safer: the model never sees it, and it can't accidentally land in a screenshot or in your agent's logs.
If something goes wrong
The agent says the key doesn't work. Open the mini-app, tap "Show again", copy the fresh key, and paste it into the
X-Partner-Api-Keyheader of your MCP config (not into the prompt).Anything else. Ask the agent to write a request to the EasyPay care team — it has a dedicated tool for that. The message arrives in the care team's shared chat tagged as a request from you, and the team replies to you in your chat with them or in DM.
Identity controls (P0, 2026-05-25)
Часть платформы обновилась — добавились явные правила идентификации для money-moving операций и кросс-партнёрских сценариев. Существующий API-ключ продолжает работать как раньше; ниже — что поменялось в поведении агента.
Выплаты через агента — с личным ключом сотрудника
Заявку на выплату (create_partner_payout_request) агент оформляет, если в MCP-конфиге стоит личный ключ сотрудника — тот, что показывает мини-апп EasyPay по кнопке «Show key». Выплата — финансовая операция, поэтому в ней должно быть видно, какой именно сотрудник её запросил: личный ключ привязан к конкретному человеку и его правам.
Если в конфиге общий ключ партнёра, заявка вернёт ACTOR_REQUIRED 403 — общий ключ не называет сотрудника. Вариантов два: поставить в конфиг личный ключ или подать заявку в мини-апп EasyPay. Какой ключ сейчас подключён, агент покажет через verify_partner_credentials → поле auth_key_type (personal_employee — личный, partner — общий).
Предпросмотр вариантов (preview_partner_payout_options) работает с любым ключом — можно спросить «сколько и откуда я смогу вывести».
CROSS_TENANT_ATTEMPT — отдельный сигнал
Если агент сошлётся на entity_id (stripe_product_id, payment_link_id, recipient_id), который существует в БД, но принадлежит другому партнёру — вернётся 403 CROSS_TENANT_ATTEMPT. Это отдельный error_code, отличный от PRODUCT_NOT_FOUND (последний = «ID не существует»).
Что делать: попросить агент проверить IDs через list-инструменты (list_partner_invoiceable_products, list_partner_live_stripe_payment_links). Имя владельца чужого ID партнёру не возвращается — команда заботы EasyPay видит инцидент во внутреннем event'е.
DATA_INTEGRITY_ERROR 500
Внутренняя ошибка целостности данных на стороне EasyPay (orphan-строка без partner_id). Команда заботы EasyPay получает алёрт автоматически — попробуйте повторить запрос через минуту.
Permission gating
Каждый endpoint требует явный permission. Существующие партнёры и сотрудники получили 7 новых permissions автоматически — balance_view, recipients_view, products_view, support_contact, webhook_config, payment_method_request, session_mint. Ваш существующий API-ключ продолжает работать.
Узнать, какие фичи доступны на текущем ключе: спросите агента verify_partner_credentials → partner.permissions[].
Identity controls (P0, 2026-05-25)
A platform update introduced explicit identity rules for money-moving operations and cross-partner scenarios. Your existing API key keeps working; below is what changed in agent behavior.
Payouts via the agent — with an employee's personal key
Your agent can submit a payout request (create_partner_payout_request) when the MCP config holds an employee's personal key — the one the EasyPay mini-app shows under "Show key". A payout moves money, so it has to show which employee requested it: a personal key is bound to a specific person and their permissions.
With the partner-wide key the request returns ACTOR_REQUIRED 403 — that key doesn't identify an employee. Two options: put the personal key into the config, or submit the payout in the EasyPay mini-app. The agent can tell which key is connected via verify_partner_credentials → auth_key_type (personal_employee = personal, partner = partner-wide).
Payout preview (preview_partner_payout_options) works with either key — you can ask "how much and from which source can I withdraw".
CROSS_TENANT_ATTEMPT — separate signal
If your agent references an entity_id (stripe_product_id, payment_link_id, recipient_id) that exists in the DB but belongs to a different partner — you get 403 CROSS_TENANT_ATTEMPT. This is a distinct error_code, separate from PRODUCT_NOT_FOUND (which means "ID doesn't exist at all").
What to do: ask the agent to verify IDs via list endpoints (list_partner_invoiceable_products, list_partner_live_stripe_payment_links). The other partner's name is not returned to you — care team sees it in an internal event.
DATA_INTEGRITY_ERROR 500
An internal data integrity issue on EasyPay's side (orphan row missing partner_id). Care team gets paged automatically — just retry after a moment.
Permission gating
Every endpoint requires an explicit permission. Existing partners and employees received 7 new permissions automatically — balance_view, recipients_view, products_view, support_contact, webhook_config, payment_method_request, session_mint. Your existing API key keeps working.
To see which features are enabled on the current key: ask the agent for verify_partner_credentials → partner.permissions[].