Smerch — API интеграции для мерчантов
    • Быстрый старт
    • Возвраты
    • Песочница, ошибки и go-live
    • Вебхуки (исходящие колбэки)
    • Авторизация и HMAC
    • Балансы и курсы
    • Платежи
    • Выводы (выплаты)
    • Авторизация
      • Проверить, что API отвечает
        GET
    • Балансы
      • Посмотреть балансы
        GET
    • Выводы
      • Создать вывод средств
        POST
      • Посчитать вывод без списания
        GET
      • Получить вывод по UUID
        GET
    • Возвраты
      • Сделать возврат по платежу
        POST
    • Песочница
      • Песочница: симулировать отказ оплаты
        POST
      • Песочница: отказ, затем запоздавшая оплата
        POST
      • Песочница: симулировать успешную оплату
        POST
      • Песочница: симулировать истечение платежа
        POST
    • Платежи
      • Список платежей
        GET
      • Создать платёж
        POST
      • Найти платёж по вашему external_id
        GET
      • Получить платёж по UUID
        GET
    • Вебхуки
      • Посмотреть настройки webhook
        GET
      • Задать URL для колбэков
        PUT
      • Журнал доставок webhook
        GET
      • Сменить secret подписи webhook
        POST
      • Отправить тестовый колбэк
        POST
      • Событие: изменился статус платежа
      • Событие: изменился статус вывода
    • Balances
      • Service method
    • Payments
      • Service method
    • Schemas
      • CreatePayoutRequest
      • CreateRefundRequest
      • CreateTransactionRequest
      • CursorMeta
      • ErrorResponse
      • HealthResponse
      • IntegrationBalancesResponse
      • MerchantBalance
      • MerchantPayoutCallback
      • MerchantTransactionCallback
      • PayoutQuoteResponse
      • PayoutResponse
      • RatesResponse
      • RefundResponse
      • StructuredError
      • TransactionResponse
      • TransactionCursorPage
      • ValidationErrorResponse

    Вебхуки (исходящие колбэки)

    Smerch сам вызывает ваш HTTPS URL, когда меняется статус платежа или выплаты.
    Это не метод, который вы вызываете: в OpenAPI события лежат в блоке webhooks.

    События#

    СобытиеКогда
    merchant.transaction.statusизменился статус платежа
    merchant.payout.statusизменился статус вывода

    Настройка#

    МетодЗачем
    GET /integration/webhookтекущий URL / настройки
    POST /integration/webhookзадать/обновить URL
    POST /integration/webhook/testтестовая доставка
    GET /integration/webhook/deliveriesжурнал доставок
    POST /integration/webhook/rotate-secretсменить secret подписи
    После ротации короткое время могут приниматься и старый, и новый secret (окно overlap) — чтобы вы успели обновить проверку на своей стороне.

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

    Исходящий запрос подписан отдельным webhook secret (не API secret).
    Заголовки (типично):
    X-Webhook-Id
    X-Webhook-Timestamp
    X-Webhook-Signature
    X-Webhook-Version
    Canonical string:
    {version}
    {webhookId}
    {timestamp}
    {sha256(rawBody)}
    signature = HMAC_SHA256(webhookSecret, canonical) → lowercase hex
    Сравнивайте подпись через constant-time compare (hash_equals).

    Ваши обязанности#

    1.
    Отвечать быстро кодом 2xx.
    2.
    Обрабатывать повторные доставки идемпотентно (один и тот же event_id / версия агрегата может прийти снова).
    3.
    Не доверять телу без проверки подписи.
    4.
    Тяжёлую логику уводить в очередь после 2xx.
    Modified at 2026-07-23 06:43:53
    Previous
    Песочница, ошибки и go-live
    Next
    Авторизация и HMAC
    Built with