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

    Возвраты

    Раздел OpenAPI: Возвраты.
    POST /api/v1/integration/refunds создаёт возврат по уже оплаченной транзакции.

    Обязательный Idempotency-Key#

    В заголовке Idempotency-Key передайте уникальный ключ на одно бизнес-намерение, например:
    refund:order-10482:1
    Повтор с тем же ключом и тем же телом безопасен.
    Тот же ключ с другим телом → конфликт.
    Без Idempotency-Key запрос отклоняется.

    Ответы#

    КодСмысл
    201возврат создан уже в финальном состоянии
    202запрос создан, но ждёт approve или обработки

    Статусы возврата#

    СтатусСмысл
    requestedВозврат зарегистрирован и ожидает начала выполнения.
    pending_approvalНужна maker-checker проверка. action_request_id может присутствовать в ответе.
    processingВыполнение начато, но результат ещё не подтверждён.
    succeededВозврат подтверждён. Только это значение означает успешное завершение.
    failedВозврат не выполнен.
    cancelledЗапрос отменён без возврата денег.
    Частичные возвраты зависят от метода и провайдера. Автоматическая отмена у провайдера выполняется только для первого возврата на полную исходную сумму. Частичный возврат остаётся в статусе обработки и требует ручного подтверждения/внешнего подтверждающего документа — система не имитирует успешный возврат у провайдера.
    Integration API сейчас не предоставляет отдельный GET возврата. После 202 отслеживайте refund.status_updated; при пропуске события используйте журнал доставок или кабинет. Для полного возврата исходная транзакция станет refunded; частичный возврат сохраняет статус платежа paid.
    Modified at 2026-09-25 17:36:10
    Previous
    Выводы (выплаты)
    Next
    Вебхуки (исходящие колбэки)
    Built with