Продукция API CRUD
Управляйте продуктами через Core API на https://api.licensechain.app/v1 с теми же полями, которые вы можете редактировать в Dashboard (продавец продукции), включая URL-адреса политик, параметры сторонних платежных партнеров и (на поддерживаемых уровнях) настройки доставки.
Отправлять Authorization: Bearer … с помощью ключа пользователя JWT или приложения API. Примеры копирования-вставки на многих языках: API примеры (многоязычный).
Конечные точки
GET /v1/products— перечислите свои продукты (нумерация страниц и фильтры ниже)POST /v1/products— создать (обязательно:name,price; необязательные поля, как в примере)GET /v1/products/{id}— прочитать одинPUT /v1/products/{id}— полная замена предоставленных ключей (та же проверка, что и PATCH)PATCH /v1/products/{id}— частичное обновление; пропущенные клавиши остаются неизменнымиDELETE /v1/products/{id}— удалить, если ни одна лицензия или подписка не ссылается на продукт
Получение списка параметров запроса
GET /v1/products?limit=20&offset=0&active=true&search=pro&sortBy=createdAt&sortDir=desc
limit (по умолчанию 20, максимум 100), offset, необязательно active (true/false), search (регистронезависимая подстрока в названии продукта), sortBy (createdAt | name | price), sortDir (asc | desc).
Создать продукт (пример тела)
Поля только для Enterprise (hideEmail, autoRedirect, licenseEmails, sendLicenseToCustomer) возвращают 403, если ваша учетная запись не находится на Enterprise. Для периодического выставления счетов требуется stripePriceIdRecurring. Для отключения cryptoPaymentsEnabled требуется Business или Enterprise. OpenAPI в репозитории API перечисляет все поля и ограничения.
{
"name": "Pro Monthly",
"description": "Recurring access to premium feature set",
"price": 49.99,
"currency": "USD",
"active": true,
"successUrl": "https://merchant.example.com/pay/success",
"cancelUrl": "https://merchant.example.com/pay/cancel",
"helpUrl": "https://merchant.example.com/help",
"supportUrl": "https://merchant.example.com/support",
"termsUrl": "https://merchant.example.com/terms",
"privacyUrl": "https://merchant.example.com/privacy",
"refundUrl": "https://merchant.example.com/refund",
"productType": "subscription",
"billingType": "recurring",
"interval": "month",
"stripePriceIdRecurring": "price_1AbCdEfGhIjKlMn",
"stripeTaxEnabled": true,
"stripeIdentityRequired": false,
"cryptoPaymentsEnabled": true,
"hideEmail": false,
"autoRedirect": false
} Обновить продукт
Используйте PATCH для частичных обновлений или PUT для полей, которые вы хотите изменить. URL-адреса перенаправления должны иметь формат http или https и содержать не более 2000 символов.
PATCH /v1/products/{id}
{
"name": "Pro Monthly Updated",
"price": 59.99,
"active": true,
"stripeTaxEnabled": true
} Удалить продукт
DELETE /v1/products/{id}
Возвращает 409, если лицензии или подписки клиентов все еще связаны с продуктом.
Форма ответа
callbackSecret выдается для новых продуктов и может меняться при включении скрытия потоков электронной почты; рассматривайте это как секрет для подписи веб-перехватчика (см. руководство по платежному веб-перехватчику). userId может быть null в некоторых внутренних или устаревших строках; клиенты должны терпеть отсутствие идентификатора владельца.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"userId": "user_123",
"name": "Pro Monthly",
"description": "Recurring access to premium feature set",
"price": 49.99,
"currency": "USD",
"active": true,
"successUrl": "https://merchant.example.com/pay/success",
"cancelUrl": "https://merchant.example.com/pay/cancel",
"helpUrl": "https://merchant.example.com/help",
"supportUrl": "https://merchant.example.com/support",
"termsUrl": "https://merchant.example.com/terms",
"privacyUrl": "https://merchant.example.com/privacy",
"refundUrl": "https://merchant.example.com/refund",
"productType": "subscription",
"billingType": "recurring",
"interval": "month",
"stripePriceIdRecurring": "price_1AbCdEfGhIjKlMn",
"stripeTaxEnabled": true,
"stripeIdentityRequired": false,
"cryptoPaymentsEnabled": true,
"hideEmail": false,
"autoRedirect": false,
"licenseEmails": [
"licenses-a@merchant.example.com",
"licenses-b@merchant.example.com"
],
"sendLicenseToCustomer": true,
"callbackSecret": "base64url_or_base64_secret_from_product_record",
"createdAt": "2026-05-11T07:00:00.000Z",
"updatedAt": "2026-05-11T07:00:00.000Z"
}