Разработчикам/Начало работы
CardV Merchant API
CardV продаёт компаниям предоплаченные цифровые товары: подарочные карты, пополнения для игр, eSIM и другое. Merchant API позволяет вашему серверу покупать их автоматически. Вы проверяете баланс, находите товар, узнаёте цену, оформляете заказ и получаете коды. Заказы оплачиваются с вашего предоплаченного кошелька в CardV. Всё остальное — пополнение кошелька, история заказов и так далее — делается в личном кабинете (Merchant Portal).
#Документация
| Документ | О чём |
|---|---|
| Аутентификация | Заголовки, подпись заказа, настройка ключа |
| Каталог и заказы | Баланс, товары, цены, заказы, коды |
| Общие правила | Суммы, даты, идентификаторы, лимит запросов, ошибки |
| Вебхуки | Уведомления о заказах на ваш сервер |
| Sandbox | Тестирование и чек-лист перед запуском |
| Безопасность | Как защитить ключи и коды |
#Среды
| Live | Sandbox | |
|---|---|---|
| Базовый URL API | https://b2b.cardv.net/api/v1 | https://sandbox.cardv.net/api/v1 |
| Личный кабинет | https://b2b.cardv.net/portal/ | Тот же кабинет, переключитесь на Sandbox |
Sandbox — это отдельная тестовая копия CardV с тестовыми деньгами. Ключи, балансы, заказы и ID товаров в каждой среде свои.
#Быстрый старт
Подайте заявку на аккаунт в кабинете и подтвердите email.
Дождитесь одобрения. CardV проверяет вашу компанию. После этого вы получаете Merchant ID, например
M00000001.Откройте Sandbox. Войдите в кабинет и выберите Sandbox в верхней панели. Вам начислят 1 000 USD тестовых денег.
Создайте API-ключ. В кабинете откройте Integrations → API keys. Создайте ключ и откройте его с помощью кода, который CardV пришлёт вам на почту. Сохраните ключ в хранилище секретов.
Проверьте баланс:
export CARDV_BASE=https://sandbox.cardv.net export CARDV_MERCHANT_ID=M00000001 # yours export CARDV_API_KEY=cvb2b_... # from your secret store AUTH=(-H "X-Merchant-Id: $CARDV_MERCHANT_ID" -H "X-Api-Key: $CARDV_API_KEY") curl -sS "$CARDV_BASE/api/v1/balance" "${AUTH[@]}"Найдите товар:
curl -sS "$CARDV_BASE/api/v1/skus?search=steam&limit=20" "${AUTH[@]}"Выберите товар с
"availability": "available"и запишите егоsku_id.Узнайте цену:
curl -sS "$CARDV_BASE/api/v1/skus/S000001/quote?quantity=1" "${AUTH[@]}"Запомните
merchant_price— это ваша цена за единицу.Оформите заказ. Этот запрос нужно подписать. Возьмите пример из раздела Аутентификация и отправьте такое тело:
{ "external_order_id": "TEST-0001", "items": [ {"sku_id": "S000001", "quantity": 1, "expected_unit_price": "9.2500"} ] }В ответ придёт HTTP 201 с номером заказа CardV, например
O-00001234.Получите коды. Вызывайте
GET/api/v1/orders/O-00001234, пока статус не станетsucceeded. Коды лежат вitems[].deliveries[].display_fields. Можно также получать вебхук, когда заказ завершится.Переходите в Live, когда пройдёте чек-лист Sandbox.
ID и цены выше — только примеры. Используйте значения из своего каталога.
#Кратко об API
Всего семь методов. Все пути начинаются с /api/v1.
| Метод | Для чего | Подпись |
|---|---|---|
GET/account | Данные вашей компании и статус доступа к API | Нет |
GET/balance | Сколько денег можно потратить | Нет |
GET/skus | Список товаров, доступных вам, с вашими ценами | Нет |
GET/skus/{sku_id} | Один товар | Нет |
GET/skus/{sku_id}/quote | Текущая цена за нужное количество | Нет |
POST/orders | Оформить заказ с оплатой из кошелька | Да |
GET/orders/{order_id} | Статус заказа и коды | Нет |
Любой другой метод при вызове с API-ключом вернёт HTTP 403:
{"detail": "This operation is only available in the Merchant Portal."}Пополнение мобильной связи через API недоступно.
#Идентификаторы
| Что | Пример | Пояснение |
|---|---|---|
| Merchant ID | M00000001 | Ваш идентификатор. Никогда не меняется. |
| SKU (товар, который можно купить) | S000456 | Нужен, чтобы узнать цену и заказать. |
| Номер заказа CardV | O-00001234 | Сохраните его вместе со своим заказом. |
| Ваш номер заказа | SHOP-10001 | Вы задаёте его сами (external_order_id). |
Храните ID как строки и не разбирайте их на части. Подробнее — в разделе Общие правила.
#Что делается в кабинете
- Пополнение кошелька и письмо о низком балансе
- История заказов, поиск и выгрузка в CSV
- Счета по заказам
- Операции по кошельку и сверка
- Настройка вебхуков, история отправок и повторная отправка
- API-ключи
- Список разрешённых IP
- Сотрудники и роли
- Журнал аудита
- Двухэтапная проверка (2FA)
- Переключение между Live и Sandbox
#Совместимость и поддержка
Мы можем без предупреждения добавлять новые поля в ответы и новые статусы. Незнакомые поля просто пропускайте. Если статус заказа вам незнаком, считайте, что заказ ещё не завершён. Не опирайтесь на формулировки сообщений об ошибках.
Пишите на [email protected]. Укажите Merchant ID, среду, номера заказов, время (UTC) и HTTP-статус.
Никогда не присылайте API-ключи, подписи, секреты вебхуков и коды карт.
Вопросы по интеграции? Напишите на [email protected], указав ваш Merchant ID и ID заказа или запроса.