Справочник API

Интегрируйте PrivCards в свои приложения. Выпускайте, пополняйте, замораживайте и управляйте виртуальными картами через наш REST API.

Базовый URLhttps://api.privcards.com/v1
RESTful JSON
Bearer аутентификация
Sandbox окружение
Webhooks
Аутентификация

API ключи и аутентификация

Все API запросы требуют Bearer токен. Сгенерируйте ключ API в Панели → Настройки → API ключи.

Безопасность ключа API

Никогда не раскрывайте ключ в клиентском коде. Используйте переменные окружения. Ключи с префиксом sk_live_ — продакшн, sk_test_ — sandbox.

request-headers
Authorization: Bearer sk_live_your_api_key_here
Content-Type: application/json
X-Idempotency-Key: optional-unique-key-for-safe-retries
Ограничения по частоте
1 000
Запросов / минуту
50
Карт / минуту
10 000
Запросов / час
Коды ошибок
error-response.json
{
  "error": "insufficient_funds",
  "message": "Your wallet balance is too low to fund this card.",
  "code": 400,
  "request_id": "req_7f8a9b2c3d4e"
}
200
Запрос успешен
201
Ресурс создан
400
Неверные параметры
401
Отсутствующий или неверный API ключ
404
Ресурс не найден
429
Превышен лимит частоты
Карты

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

Создавайте, управляйте и контролируйте виртуальные карты Visa и Mastercard. Каждая карта изолирована со своим балансом, лимитами и жизненным циклом.

Тело запроса
ParameterTypeDescription
bin_idstringrequiredBIN identifier (e.g. 491653). Use GET /bins to list available BINs.
amountnumberrequiredInitial funding amount in USD. Min: $1.00, Max: $5,000.00
labelstringoptionalCustom label for the card (max 64 chars)
spending_limitnumberoptionalMonthly spending limit in USD. Defaults to BIN maximum.
allowed_categoriesstring[]optionalMCC categories to whitelist (e.g. ["advertising", "software"])
auto_freeze_atnumberoptionalAuto-freeze when balance drops below this amount
metadataobjectoptionalKey-value pairs for your internal tracking (max 20 keys)
Пример запроса
curl
curl -X POST https://api.privcards.com/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": "spring_2026"}
  }'
Response 201 Created
response.json
{
  "id": "card_8xK2m9Lp4q",
  "bin_id": "491653",
  "network": "visa",
  "last4": "2039",
  "status": "active",
  "balance": 500.00,
  "spending_limit": 2000.00,
  "label": "Meta Ads Campaign #12",
  "allowed_categories": ["advertising"],
  "auto_freeze_at": null,
  "metadata": { "campaign": "spring_2026" },
  "created_at": "2026-04-15T12:00:00Z",
  "expires_at": "2029-04-15T23:59:59Z"
}
Query параметры
ParameterTypeDescription
statusstringoptionalactive, frozen, terminated
bin_idstringoptionalFilter by BIN
pageintegeroptionalPage number. Default: 1
per_pageintegeroptionalItems per page (1-100). Default: 25

apiDocs.cards.getDesc

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

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

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

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

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

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

Пополнения

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

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

Тело запроса
ParameterTypeDescription
amountnumberrequiredAmount in USD to add. Min: $1.00, Max: $5,000.00

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

Транзакции

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

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

Query параметры
ParameterTypeDescription
card_idstringoptionalFilter by card
typestringoptionalauthorization, settlement, refund, decline
fromstringoptionalStart date (ISO 8601)
tostringoptionalEnd date (ISO 8601)
pageintegeroptionalPage number. Default: 1
Кошелёк

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

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

Response 200 OK
response.json
{
  "balance": 1312.50,
  "currency": "USD",
  "pending_deposits": 500.00,
  "total_deposited": 15000.00,
  "total_spent": 13687.50,
  "cards_active": 8,
  "cards_total_balance": 2450.00
}
Query параметры
ParameterTypeDescription
currencystringoptionalbtc, eth, sol, usdt. Omit to get all.
BINs

Выбор BIN

Список доступных диапазонов BIN с их возможностями, лимитами и уровнем одобрения.

Response 200 OK
response.json
{
  "data": [
    {
      "id": "491653",
      "network": "visa",
      "type": "advertising",
      "3ds": true,
      "apple_pay": true,
      "google_pay": true,
      "max_transaction": 5000.00,
      "max_monthly": 50000.00,
      "acceptance_rate": 97.2,
      "best_for": ["meta_ads", "google_ads", "tiktok_ads"]
    }
  ]
}
3D Secure

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

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

Response 200 OK
response.json
{
  "data": [
    {
      "id": "3ds_m4n5o6p7",
      "card_id": "card_8xK2m9Lp4q",
      "merchant": "SPOTIFY",
      "amount": 9.99,
      "otp": "847291",
      "status": "pending",
      "expires_at": "2026-04-15T15: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Криптодепозит подтверждён
Проверка подписи
verify-webhook.py
import hmac, hashlib

def verify_webhook(payload, signature, secret):
    expected = hmac.new(
        secret.encode(),
        payload.encode(),
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature)
Тело запроса
ParameterTypeDescription
urlstringrequiredHTTPS endpoint URL to receive events
eventsstring[]requiredEvent types to subscribe. Use ["*"] for all.
secretstringoptionalCustom signing secret. Auto-generated if omitted.
SDKs

SDKs и библиотеки

Официальные клиентские библиотеки для вашего стека. Все SDKs поддерживают live и sandbox среды.

Python

Python

pip install privcards

Node.js

Node.js

npm i privcards

Go

Go

go get privcards

Быстрый старт — Python
quickstart.py
from privcards import Client

client = Client("sk_live_your_api_key")

# Create a card
card = client.cards.create(
    bin_id="491653",
    amount=500,
    label="Ad Spend"
)
print(card.id, card.last4)

# Get full card details (PAN, CVV)
details = client.cards.details(card.id)
print(details.pan, details.cvv)

# Fund the card
client.cards.fund(card.id, amount=200)

# List transactions
txns = client.transactions.list(card_id=card.id)
for t in txns.data:
    print(t.merchant.name, t.amount)
Быстрый старт — Node.js
quickstart.js
const { privcards } = require('privcards');

const client = new privcards('sk_live_your_api_key');

// Create a card
const card = await client.cards.create({
  binId: '491653',
  amount: 500,
  label: 'Ad Spend',
});

// Get 3DS OTPs
const challenges = await client.threeds.list({
  cardId: card.id,
  status: 'pending',
});

// Set up webhooks
await client.webhooks.create({
  url: 'https://yourapp.com/hooks',
  events: ['transaction.authorized', '3ds.challenge'],
});
Документация API — PrivCards API Виртуальных Карт