Разработчикам · REST API v1

Выпускайте карты из своего кода

Создавайте, пополняйте, замораживайте и закрывайте виртуальные карты Visa и Mastercard по HTTPS. Запросы в формате JSON, авторизация по секретному ключу, а оплата идёт с того же баланса в USDT, который вы пополняете криптовалютой.

Базовый URLhttps://usdtcryptocard.com/api/v1
Аутентификация
Bearer sk_live_…
Формат
JSON по HTTPS
Эндпоинты
15
Вебхуки
Подпись HMAC-SHA256

Введение

API делает то же, что и панель, но с вашего сервера. Каждая выпущенная карта и каждое пополнение оплачиваются с баланса аккаунта, который вы пополняете криптовалютой и который всегда хранится в USDT.

Суммы указываются в долларах США с двумя знаками после запятой. Время — в формате ISO 8601 по UTC. Списки разбиты на страницы параметрами page и per_page.

  1. Создайте ключОткройте раздел доступа к API в панели и сгенерируйте ключ.
  2. Получите активациюПодтвердите email, сделайте первый депозит и попросите поддержку включить API.
  3. Сделайте запросПроверьте баланс запросом справа, затем выпустите первую карту.
Первый запрос
Запрос
curl https://usdtcryptocard.com/api/v1/wallet/balance \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "balance": 1312.5,
  "currency": "USDT",
  "pending_deposits": 500,
  "cards_active": 8,
  "cards_total_balance": 2450
}

Аутентификация

Передавайте секретный ключ как Bearer-токен в заголовке Authorization каждого запроса. Ключи начинаются с sk_live_ и создаются в панели, в разделе доступа к API.

Храните ключ на сервере

Любой, у кого есть ключ, может распоряжаться деньгами на вашем аккаунте. Загружайте его из переменной окружения и никогда не размещайте в коде браузера или мобильного приложения.

Перед первым запросом

Новый ключ отвечает 403, пока аккаунт не готов. Вы получите onboarding_incomplete, пока не подтвердите email и не сделаете первый депозит, а затем api_not_enabled, пока поддержка не включит доступ к API. Напишите нам — и мы его включим.

Заголовки
Запрос
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json
X-Idempotency-Key: 7c1e2f0a-retry-safe

Ошибки

Любой ответ, кроме 2xx, приходит с телом JSON: стабильным кодом ошибки, по которому можно ветвить логику, и понятным человеку сообщением.

200
Запрос успешен
201
Ресурс создан
400
Неверные параметры
401
Отсутствующий или неверный API ключ
403
Ключ действителен, но доступ к API для этого аккаунта ещё не включён
404
Ресурс не найден
429
Превышен лимит частоты
error.json
Ответ403
{
  "error": "api_not_enabled",
  "message": "Open a support ticket from your dashboard to enable API access."
}

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

Лимиты считаются для каждого API-ключа отдельно. Превысите лимит — получите 429: подождите немного и повторите запрос с нарастающей задержкой.

Запросов / минуту
1 000
Карт / минуту
50
Запросов / час
10 000
Карты

Управление картами

У каждой карты свой баланс, лимиты и жизненный цикл, поэтому одна кампания, клиент или подписка никогда не затрагивает другую.

POST/cards

Выпустить новую виртуальную карту

Выпускает карту на выбранном BIN и пополняет её с вашего баланса в том же запросе.

Тело запроса

bin_idstringобязательный
Идентификатор BIN (напр. 491653). Используйте GET /bins для списка доступных BIN.
amountnumberобязательный
Начальное пополнение в USD, списывается с вашего баланса. Минимум $50; комиссия за выпуск $1 взимается сверху.
labelstringопциональный
Пользовательская метка карты (макс 64 символа)
spending_limitnumberопциональный
Месячный лимит расходов в USD. По умолчанию максимум BIN.
allowed_categoriesstring[]опциональный
Категории продавцов, в которых можно использовать карту, например реклама или софт. Всё остальное отклоняется.
auto_freeze_atnumberопциональный
Авто-заморозка при балансе ниже этой суммы
metadataobjectопциональный
Пары ключ-значение для внутреннего отслеживания (макс 20 ключей)
POST /v1/cards
Запрос
curl -X POST https://usdtcryptocard.com/api/v1/cards \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "bin_id": "491653",
    "amount": 500,
    "label": "Meta Ads — Campaign 12",
    "spending_limit": 2000,
    "allowed_categories": [
      "advertising"
    ],
    "metadata": {
      "campaign": "fall_2026"
    }
  }'
Ответ201
{
  "id": "card_8xK2m9Lp4q",
  "bin_id": "491653",
  "network": "visa",
  "last4": "2039",
  "status": "active",
  "balance": 500,
  "spending_limit": 2000,
  "label": "Meta Ads — Campaign 12",
  "allowed_categories": [
    "advertising"
  ],
  "auto_freeze_at": null,
  "metadata": {
    "campaign": "fall_2026"
  },
  "created_at": "2026-09-30T12:00:00Z",
  "expires_at": "2030-10-31"
}
GET/cards

Список всех карт с фильтрами и пагинацией

Ваши карты, сначала новые.

Query параметры

statusstringопциональный
Фильтр по статусуactivefrozenterminated
bin_idstringопциональный
Фильтр по BIN
pageintegerопциональный
Номер страницы. По умолчанию: 1
per_pageintegerопциональный
Элементов на странице (1-100). По умолчанию: 25
GET /v1/cards
Запрос
curl https://usdtcryptocard.com/api/v1/cards?status=active&per_page=25 \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "data": [
    {
      "id": "card_8xK2m9Lp4q",
      "bin_id": "491653",
      "network": "visa",
      "last4": "2039",
      "status": "active",
      "balance": 500,
      "spending_limit": 2000,
      "label": "Meta Ads — Campaign 12"
    }
  ],
  "page": 1,
  "per_page": 25,
  "total": 1
}
GET/cards/{card_id}

Получить сводку карты (без чувствительных данных)

Карта без номера и CVV. Если они нужны, используйте эндпоинт с реквизитами.

Параметры пути

card_idstringобязательный
Id карты, полученный при её создании.
GET /v1/cards/{card_id}
Запрос
curl https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "id": "card_8xK2m9Lp4q",
  "bin_id": "491653",
  "network": "visa",
  "last4": "2039",
  "status": "active",
  "balance": 500,
  "spending_limit": 2000,
  "label": "Meta Ads — Campaign 12",
  "created_at": "2026-09-30T12:00:00Z"
}
GET/cards/{card_id}/details

Получить полный PAN, CVV и срок действия

Чувствительный эндпоинт

Возвращает полный PAN, CVV и срок действия. PCI-чувствительный — никогда не логируйте и не храните в открытом виде. Лимит 30 req/min.

Параметры пути

card_idstringобязательный
Id карты, полученный при её создании.
GET /v1/cards/{card_id}/details
Запрос
curl https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/details \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "id": "card_8xK2m9Lp4q",
  "pan": "4916530000002039",
  "cvv": "123",
  "exp_month": 10,
  "exp_year": 2030
}
POST/cards/{card_id}/freeze

Временно заморозить карту

Приостанавливает все транзакции. Баланс сохраняется. Карту можно разморозить позже.

Параметры пути

card_idstringобязательный
Id карты, полученный при её создании.
POST /v1/cards/{card_id}/freeze
Запрос
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/freeze \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "id": "card_8xK2m9Lp4q",
  "status": "frozen",
  "balance": 500
}
POST/cards/{card_id}/unfreeze

Разморозить карту

Возобновляет транзакции на замороженной карте. Возвращает объект карты со status: "active".

Параметры пути

card_idstringобязательный
Id карты, полученный при её создании.
POST /v1/cards/{card_id}/unfreeze
Запрос
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/unfreeze \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "id": "card_8xK2m9Lp4q",
  "status": "active",
  "balance": 500
}
DELETE/cards/{card_id}

Окончательно закрыть карту

Необратимое действие

Закрытие карты — окончательно. Остаток баланса возвращается в кошелёк мгновенно.

Параметры пути

card_idstringобязательный
Id карты, полученный при её создании.
DELETE /v1/cards/{card_id}
Запрос
curl -X DELETE https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "id": "card_8xK2m9Lp4q",
  "status": "terminated",
  "returned_to_wallet": 500
}
Пополнения

Пополнение карт

Добавляйте или выводите средства с отдельных карт. Средства поступают с баланса вашего кошелька.

POST/cards/{card_id}/fund

Добавить средства на карту

Переводит деньги с вашего баланса на карту. Их можно тратить сразу.

Параметры пути

card_idstringобязательный
Id карты, полученный при её создании.

Тело запроса

amountnumberобязательный
Сумма в USD для перевода с баланса на карту.
POST /v1/cards/{card_id}/fund
Запрос
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/fund \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 200
  }'
Ответ200
{
  "card_id": "card_8xK2m9Lp4q",
  "card_balance": 700,
  "wallet_balance": 612.5
}
POST/cards/{card_id}/withdraw

Вывод средств обратно в кошелёк

Возвращает обновлённые балансы карты и кошелька.

Параметры пути

card_idstringобязательный
Id карты, полученный при её создании.
POST /v1/cards/{card_id}/withdraw
Запрос
curl -X POST https://usdtcryptocard.com/api/v1/cards/card_8xK2m9Lp4q/withdraw \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "card_id": "card_8xK2m9Lp4q",
  "card_balance": 0,
  "wallet_balance": 1312.5
}
Транзакции

История транзакций

Просматривайте все транзакции по картам. Включает авторизации, расчёты, возвраты и отказы.

GET/transactions

Список всех транзакций с фильтрами

Авторизации, списания, возвраты и отказы по всем вашим картам, сначала новые.

Query параметры

card_idstringопциональный
Фильтр по карте
typestringопциональный
Возвращать только транзакции этого типа.authorizationsettlementrefunddecline
fromstringопциональный
Начальная дата (ISO 8601)
tostringопциональный
Конечная дата (ISO 8601)
pageintegerопциональный
Номер страницы. По умолчанию: 1
GET /v1/transactions
Запрос
curl https://usdtcryptocard.com/api/v1/transactions?card_id=card_8xK2m9Lp4q \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "data": [
    {
      "id": "txn_3fQ9w1Zk",
      "card_id": "card_8xK2m9Lp4q",
      "type": "settlement",
      "amount": 42.9,
      "currency": "USD",
      "fee": 0.3,
      "merchant": {
        "name": "SPOTIFY",
        "mcc": "4899"
      },
      "created_at": "2026-09-30T14:02:11Z"
    }
  ],
  "page": 1
}
Кошелёк

Кошелёк и депозиты

Управляйте кошельком аккаунта. Депозиты в крипто, проверка балансов и отслеживание входящих депозитов.

GET/wallet/balance

Получить баланс и статистику кошелька

Ваш баланс в USDT и средства, находящиеся на картах.

GET /v1/wallet/balance
Запрос
curl https://usdtcryptocard.com/api/v1/wallet/balance \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "balance": 1312.5,
  "currency": "USDT",
  "pending_deposits": 500,
  "cards_active": 8,
  "cards_total_balance": 2450
}
GET/wallet/deposit-address

Получить криптоадреса для депозитов

Куда отправлять криптовалюту. Депозиты конвертируются в USDT после подтверждения сетью.

Query параметры

currencystringопциональный
Вернуть адрес только для этой монеты. Не указывайте, чтобы получить все.btcethsolusdtbnbtrxpolltcavaxarb
GET /v1/wallet/deposit-address
Запрос
curl https://usdtcryptocard.com/api/v1/wallet/deposit-address?currency=usdt \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "data": [
    {
      "currency": "usdt",
      "network": "ERC-20 (Ethereum)",
      "address": "0x9c4e…b71a"
    }
  ]
}
BINs

Выбор BIN

BIN, доступные для выпуска (всего: 9), с их платёжной системой и поддержкой кошельков.

GET/bins

Список всех доступных BIN

Каталог BIN с платёжной системой, категорией и поддержкой Apple Pay / Google Pay.

GET /v1/bins
Запрос
curl https://usdtcryptocard.com/api/v1/bins \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "data": [
    {
      "id": "471938",
      "network": "visa",
      "category": "ads",
      "3ds": true,
      "apple_pay": true,
      "google_pay": true
    },
    {
      "id": "553184",
      "network": "mastercard",
      "category": "ads",
      "3ds": true,
      "apple_pay": true,
      "google_pay": true
    }
  ],
  "total": 9
}
3D Secure

3D Secure аутентификация

Получение 3DS вызовов и OTP кодов. Все карты автоматически зарегистрированы в 3DS 2.0.

GET/3ds

Список ожидающих 3DS вызовов

Ожидающие проверки 3D Secure с одноразовыми кодами, чтобы завершить оплату без телефона.

GET /v1/3ds
Запрос
curl https://usdtcryptocard.com/api/v1/3ds?status=pending \
  -H "Authorization: Bearer sk_live_..."
Ответ200
{
  "data": [
    {
      "id": "3ds_m4n5o6p7",
      "card_id": "card_8xK2m9Lp4q",
      "merchant": "SPOTIFY",
      "amount": 9.99,
      "otp": "847291",
      "status": "pending",
      "expires_at": "2026-09-30T15:05:00Z"
    }
  ]
}
Webhooks

Webhooks и события

Получайте уведомления в реальном времени о событиях. Payload подписаны HMAC-SHA256.

Доступные события

card.created
Выпущена новая карта
card.frozen
Карта заморожена
card.unfrozen
Карта разморожена
card.terminated
Карта закрыта
card.funded
Средства добавлены на карту
transaction.authorized
Транзакция авторизована
transaction.settled
Транзакция завершена
transaction.declined
Транзакция отклонена
transaction.refunded
Возврат обработан
3ds.challenge
Требуется 3DS верификация
deposit.pending
Криптодепозит обнаружен
deposit.confirmed
Криптодепозит подтверждён

Проверка подписи

Каждая доставка подписывается HMAC-SHA256 секретом вашего эндпоинта. Пересчитайте подпись по сырому телу и сравните за постоянное время, прежде чем доверять содержимому.

verify
Код
# Пересчёт подписи сырого payload
echo -n "$RAW_BODY" | openssl dgst -sha256 -hmac "$WEBHOOK_SECRET"
POST/webhooks

Зарегистрировать webhook эндпоинт

Регистрирует HTTPS-эндпоинт и события, которые он должен получать.

Тело запроса

urlstringобязательный
HTTPS URL для получения событий
eventsstring[]обязательный
Названия событий для подписки. Используйте ["*"], чтобы получать все.
secretstringопциональный
Пользовательский секрет подписи. Авто-генерация при пропуске.
POST /v1/webhooks
Запрос
curl -X POST https://usdtcryptocard.com/api/v1/webhooks \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/hooks/cards",
    "events": [
      "transaction.authorized",
      "3ds.challenge"
    ]
  }'
Ответ201
{
  "id": "wh_5tLr8QaZ",
  "url": "https://example.com/hooks/cards",
  "events": [
    "transaction.authorized",
    "3ds.challenge"
  ],
  "secret": "whsec_…",
  "created_at": "2026-09-30T12:00:00Z"
}
API выпуска виртуальных карт | USDT Crypto Card