Skip to Content
ИнтеграцияMerchant API и JS-клиент

Merchant API и JS-клиент

Пакет npm

Опубликованный клиент: @wilix/billbill-client-js .

Исходный код в монорепозитории BillBill: каталог billbill-client-js/ (генерация из OpenAPI: yarn generate).

Установка и инициализация

yarn add @wilix/billbill-client-js
import { ApiClient, MerchantApi } from '@wilix/billbill-client-js' const client = new ApiClient({ apiKey: process.env.BILLBILL_MERCHANT_KEY!, baseUrl: 'https://api.billbill.ru', userAgent: 'MySaaS/1.0 OpenAPI' }) const merchant = new MerchantApi(client)

Категории методов MerchantApi (ориентир)

Ниже — группы вызовов; точные имена и тела запросов смотрите в TypeScript-типах и Swagger.

ОбластьПримеры методов клиента
Профиль и ключиnewApikey, настройки профиля
Продукты и планыproductNew, productEdit, planNew, planEdit, planActivate, planAddonsBinding
Пользователи мерчантаоперации с пользователями/клиентами (user* / member* — по версии клиента)
ПодпискиsubscriptionCreatePreview, subscriptionCreateSubmit, subscriptionRenew, subscriptionUpdate*
Счета и платежиinvoiceNew, invoiceDetail, paymentNew, paymentRefund*
МетрикиmetricNew, metricEdit, metricNewEvent, metricEventList, userMetric, limitGrantNew, limitGrantList, limitGrantRevoke
ШлюзыgatewaySetup, gatewaySetupWebhook, gatewayEdit
Шаблоныdocument_templateNew, document_templateEdit
СкриптыscriptNew, scriptEdit, scriptDebug
ВебхукиwebhookNewEndpoint, getWebhookEndpointList, getWebhookEventList

Полный список — в файле billbill-client-js/src/merchant.ts.

Частые ошибки интеграции

СимптомПричинаРешение
sub not foundВ subscriptionId передан subscription.id (number)Используйте subscription.subscriptionId (string)
BaseGateway invalidНет gatewayId в create_submitПередайте id активного шлюза, даже для free-плана
product not foundПерепутаны productId и planIdДля дефолтного продукта: productId: 0
Server Error при апгрейдеНет returnUrl при totalAmount > 0Сначала update_preview, затем returnUrl в submit

Подробный справочник: Справочник полей подписки. Сквозной пример: Быстрый старт.

Вспомогательные функции SDK

import { assertReturnUrlForPaidOperation, isValidProductId, getSubscriptionApiId, } from '@wilix/billbill-client-js' // productId: 0 — валиден isValidProductId(0) // true // из ответа detail — правильный id для API const subscriptionId = getSubscriptionApiId(subscription)

Ответы API

Типичный конверт GoFrame: поле code (0 = успех), data, сообщение об ошибке. Клиент бросает BillBillError при неуспехе — см. errors.ts.

OpenAPI / Swagger

Актуальная схема — на работающем инстансе API: http://127.0.0.1:8088/swagger-ui.html (dev) или URL, выданный облаком.