Для AI-агентов

Создавайте агентов, выпускающих платёжные карты

REST + MCP API, спроектированный под автономных агентов. Регистрация, пополнение криптой и выпуск карт — всего за 4 вызова, без человека в цикле, без KYC, с раздельными scope и лимитами запросов на каждый ключ.

REST + MCP Bearer-аутентификация No KYC
Visa
Agent-issued
4719 38•• •••• ••••
Issued byctk_live_…
CreatedJust now
~5sВремя выпуска карты
$1.50За карту, разово
20 / accountАктивных карт на аккаунт
Без KYCРегистрация только по seed-фразе
Что можно построить

Шесть паттернов, под которые создан этот API

Эндпоинты ниже — это фундамент, а паттерны — то, что разработчики агентов реально запускают в продакшен.

Автономные агенты для трат

Агенты, которые сами решают, что купить, и проводят покупку без подтверждения человеком. API выпускает свежую карту под каждую транзакцию, списывает с неё и удаляет — не оставляя в открытом доступе пригодных для повторного использования платёжных реквизитов.

Автоматизация рекламных кампаний

Программный выпуск одной карты BIN-471938 (Visa Business) на каждый рекламный аккаунт Meta / Google / TikTok. Ротация карт раз в 30–60 дней, чтобы аккаунты оставались чистыми.

Одноразовые карты под каждого пользователя

Маркетплейсы и платформы, которым нужна уникальная карта под каждую транзакцию конечного пользователя. Выпуск, списание, удаление — меньше чем за 10 секунд, без PCI-скоупа и без груза хранения карточных данных.

Сбор бесплатных триалов

Массовая регистрация в бесплатных триалах. Под каждый триал — карта с минимальным пополнением; удаление до продления чисто блокирует автосписание.

Биллинг SaaS на каждое рабочее пространство

Мультитенантные агенты, которые оплачивают вышестоящие SaaS (AWS, OpenAI, Cloudflare, GitHub) с отдельной карты на каждое рабочее пространство. Расходы становятся атрибутируемыми клиенту и не светят ваш мастер-биллинг.

Воркеры для скрапинга и регистраций

Каждый воркер запрашивает карту через API ровно в тот момент, когда нужна оплата, использует её и закрывает. Юнит-стоимость $1.50 — копейки на фоне любых альтернатив.

Быстрый старт

От нуля до выпущенной карты за 4 вызова

Четыре вызова API проводят агента от «нет аккаунта» до «карта готова к списанию». Замените TOKEN на свой bearer-токен, CARD_ID — на integer, возвращённый на шаге 3.

1. Регистрация (создаёт анонимный аккаунт + bearer-токен)

# Create an anonymous account. Returns seed + Bearer token (ONE TIME).
curl -X POST https://cryptotopcard.com/api/v1/auth/signup \
  -H "Content-Type: application/json" \
  -d '{"name":"my-agent"}'
import requests
r = requests.post(
    "https://cryptotopcard.com/api/v1/auth/signup",
    json={"name": "my-agent"},
).json()
TOKEN = r["data"]["token"]
SEED  = r["data"]["seed"]    # persist both!
auth  = {"Authorization": f"Bearer {TOKEN}"}
const r = await fetch("https://cryptotopcard.com/api/v1/auth/signup", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "my-agent" }),
}).then(r => r.json());
const TOKEN = r.data.token;       // persist!
const SEED  = r.data.seed;
const auth  = { "Authorization": `Bearer ${TOKEN}` };

2. Создание пополнения (возвращает адрес депозита + точную сумму в крипте)

# Create a top-up: request $100 net in USDT (TRC-20).
# Returns the deposit address + exact crypto amount (gross, includes 2% fee).
curl -X POST https://cryptotopcard.com/api/v1/topups \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"coin":"USDTTRC","amount":100}'
# {... "deposit_address":"T...", "crypto_amount":"102.92", "net_credit_usd":100}
t = requests.post(
    "https://cryptotopcard.com/api/v1/topups",
    json={"coin": "USDTTRC", "amount": 100},
    headers=auth,
).json()["data"]
# Send t["crypto_amount"] USDT-TRC20 to t["deposit_address"].
# When confirmed (poll GET /topups/<id>), $100 lands on the balance.
const t = (await fetch("https://cryptotopcard.com/api/v1/topups", {
  method: "POST",
  headers: { ...auth, "Content-Type": "application/json" },
  body: JSON.stringify({ coin: "USDTTRC", amount: 100 }),
}).then(r => r.json())).data;
// Send t.crypto_amount USDT-TRC20 to t.deposit_address.

3. Выпуск карты (возвращает номер, срок действия, CVV)

# Once the balance shows the credited amount, issue a card.
curl -X POST https://cryptotopcard.com/api/v1/cards \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"bin_id":"471938","amount":150,"label":"meta-acct-7"}'
# {... "card_number":"4719 ...", "card_exp":"02/29", "card_cvv":"136"}
c = requests.post(
    "https://cryptotopcard.com/api/v1/cards",
    json={"bin_id": "471938", "amount": 150, "label": "meta-acct-7"},
    headers=auth,
).json()["data"]
print(c["card_number"], c["card_exp"], c["card_cvv"])
const c = (await fetch("https://cryptotopcard.com/api/v1/cards", {
  method: "POST",
  headers: { ...auth, "Content-Type": "application/json" },
  body: JSON.stringify({ bin_id: "471938", amount: 150, label: "meta-acct-7" }),
}).then(r => r.json())).data;
console.log(c.card_number, c.card_exp, c.card_cvv);

4. Используйте карту. По окончании — удалите её (мгновенно возвращает остаток баланса)

# When the card has served its purpose, delete it. Remaining balance refunds instantly.
curl -X DELETE https://cryptotopcard.com/api/v1/cards/$CARD_ID \
  -H "Authorization: Bearer $TOKEN"
requests.delete(
    f"https://cryptotopcard.com/api/v1/cards/{c['card_id']}",
    headers=auth,
).json()  # {"ok":true,"data":{"deleted":true,"refunded_usd":150.0}}
await fetch(`https://cryptotopcard.com/api/v1/cards/${c.card_id}`, {
  method: "DELETE", headers: auth,
}).then(r => r.json());
Интеграция MCP

Нативные вызовы инструментов в Claude, ChatGPT, Cursor

Те же Bearer-токены работают на MCP-эндпоинте /api/v1/mcp. После настройки LLM вызывает `list_bins`, `create_topup`, `issue_card`, `freeze_card` как нативные инструменты — без обёрток в коде.

Claude Desktop / Claude Code

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json под mcpServers:

"cryptotopcard": { "command": "npx", "args": ["-y", "mcp-remote", "https://cryptotopcard.com/api/v1/mcp", "--header", "Authorization:Bearer ctk_live_..."] }

ChatGPT Custom GPT

В настройках вашего custom GPT добавьте Action и импортируйте OpenAPI-спецификацию:

Import OpenAPI from: https://cryptotopcard.com/.well-known/openapi.json Auth: API Key (Bearer)

Cursor / Continue / Cline

В Cursor: настройки → Features → Model Context Protocol, добавьте новый сервер с HTTP-транспортом:

HTTP transport: url: https://cryptotopcard.com/api/v1/mcp authorization: Bearer ctk_live_...

После подключения скажите модели «выпусти Visa Business карту на $200, пополнив USDT» — и она автоматически выстроит цепочку `list_bins → list_coins → create_topup → issue_card`, покажет адрес депозита и будет ждать вашего подтверждения.

Поверхность API

Все эндпоинты с одного взгляда

Всего девятнадцать маршрутов. Публичные (без авторизации) — для discovery и регистрации; всё остальное требует Bearer-токен со scope под конкретную операцию.

MethodPathDescription
GET/api/v1/coinsСписок 20 поддерживаемых криптовалют (публичный).
GET/api/v1/binsСписок 7 уровней BIN и комиссий (публичный).
POST/api/v1/auth/signupСоздание анонимного аккаунта. Возвращает seed + первый API-токен (один раз).
POST/api/v1/auth/loginОбмен seed-фразы на свежий API-токен.
GET/api/v1/meИнформация о текущем аккаунте: баланс, количество карт, scopes.
POST/api/v1/topupsСоздание крипто-инвойса на депозит. Клиент платит брутто (включая комиссию 2%), на баланс зачисляется нетто.
GET/api/v1/topups/:idПолучить текущий статус пополнения.
POST/api/v1/topups/:id/cancelОтменить ожидающее пополнение (не действует, если уже оплачено).
GET/api/v1/cardsСписок активных и замороженных карт (только last4).
POST/api/v1/cardsВыпустить новую карту. Списывает $1.50 + сумму с баланса.
GET/api/v1/cards/:idПолные реквизиты карты (PAN, срок, CVV) для одной карты.
POST/api/v1/cards/:id/freezeЗаблокировать все списания по карте. Обратимо.
POST/api/v1/cards/:id/unfreezeРазблокировать замороженную карту.
POST/api/v1/cards/:id/topupПеревести средства с баланса аккаунта на баланс карты.
DELETE/api/v1/cards/:idЗакрыть карту. Мгновенно возвращает остаток баланса на аккаунт.
GET/api/v1/keysСписок API-ключей вызывающего (только метаданные, без токена).
POST/api/v1/keysСгенерировать новый API-ключ. Токен возвращается один раз.
DELETE/api/v1/keys/:idОтозвать API-ключ.
POST/api/v1/mcpMCP-сервер (JSON-RPC 2.0). Та же Bearer-аутентификация.
Модель безопасности

Scope на каждый ключ, скользящие лимиты запросов, отсутствие восстанавливаемых секретов

Каждый запрос аутентифицируется Bearer-токеном пользователя (ctk_live_…). Токены хранятся в виде sha256-хэшей; исходное значение мы не сохраняем никогда. Каждый токен несёт список scope через запятую (read, topups, cards) — токен без «cards» не сможет выпустить карту.

Лимиты запросов

Scopes

Доступно три scope. По умолчанию у новых токенов — read,topups,cards; убирайте лишние при создании токена (POST /keys со scopes: "read"), чтобы ограничить радиус поражения.

Модель восстановления

Восстановления по email нет. Seed-фраза, возвращённая при регистрации, — единственный доступ; при её утере аккаунт и его баланс не восстанавливаются. Храните её в менеджере секретов. API-токены ротируйте свободно через POST /keys.

Подключите первого агента менее чем за 5 минут

Публичные эндпоинты работают без аккаунта. Регистрация — один POST. Прогоните quickstart от начала до конца перед интеграцией.

Читать быстрый старт