Перейти к содержанию

api/wallet/reverse - Отмена или возврат средств

  • HTTP‑метод: POST
  • URL: /api/wallet/reverse
  • Форма взаимодействия: Сервер-сервер
  • Формат тела запроса: application/json
  • Назначение: выполнение отмены или возврата средств по операциям пополнения Кошелька и покупки с его помощью.

Важно: Идентификатор кошелька необходимо указывать только для отмены операций, созданных в рамках payer.wallet_public_id.

URL

1
https://gateway-docs.wallet.kvell.group/api/wallet/reverse
1
/api/wallet/reverse

Структура запроса

Поле Тип Обяз. Описание
terminal str Уникальный идентификатор учетной записи ТСП в ПЦ.
order_id int Уникальный идентификатор платежа (Заказа) в ПЦ.
signature str Цифровая подпись запроса. Алгоритм расчёта — см. Формирование подписи.
Необязательные параметры
payer object Данные Кошелька. Значимое поле (см. структуру payer/receiver): wallet_public_id. Применяется только для сделок, которые были выполнены с указанием этого параметра. Для возвратов операций relocate-funds укажите в этом поле уникальный идентификатор Кошелька получателя средств из оригинальной (отменяемой) операции.
amount int Общая сумма Возврата/Отмены в минимальных единицах валюты. Для рублей — копейки. Если не указана — считается, что запрос сделан на полную остаточную сумму заказа. Сумма не может быть больше суммы отменяемого Заказа.
currency int Код валюты по ISO4217 (643 для RUB; 978 для EUR; 840 для USD). Если не указан — берется из Заказа.
unique_key str Ключ уникальности запроса. Генерируется на стороне ТСП. При получении ключа ПЦ выполняет проверку на наличие дубликата среди обрабатываемых запросов и созданных операций. Формат: допустимы цифры [0-9], латинские буквы [a-zA-Z], дефис и нижнее подчёркивание [-_].

Структура ответа

Поле Тип Обяз. Описание
order_id int Идентификатор заказа в ПЦ. Пример: 1009982
order_status str Статус заказа. Пример: REGISTERED
client_id str Идентификатор пользователя ТСП. Пример: test
tx_id int Идентификатор операции в ПЦ. Пример: 5587788
tx_completed_at datetime Дата и время совершения операции в ПЦ. Пример: 2024.01.28 00:23:19
tx_type str Тип операции. Пример: P2PTRANSFER
tx_status str Статус операции. Пример: APPROVED
tx_reason_code int Код ответа на операцию ПЦ. Пример: 1
message str Краткое описание кода ответа на операцию ПЦ. Пример: Successful financial transaction
payer_pm_number str Маскированный номер карты Плательщика. Пример: 480938******7309
amount int Сумма операции в минимальных единицах валюты. Пример: 100
currency int Код валюты по ISO4217. Пример: 643
tx_approval_code str Код авторизации, полученный в Банке на данную операцию. Пример: 122004
unique_key str Ключ уникальности запроса. Пример: unique_key
terminal_id str Уникальный идентификатор учётной записи ТСП в ПЦ. Пример: 893
bin_issuer str Идентификационный номер банка-Эмитента. Пример: JOINT STOCK COMMERCIAL BANK MOSCOW INDUSTRIAL BANK
expdate str Дата истечения срока действия карты. Пример: 10/2024
iso int Код валюты по ISO4217. Пример: 643
bank_terminal_id str Идентификатор банковского терминала. Пример: POS_1
signature str Цифровая подпись сообщения.

Пример ответов

{
    "order_id": 1009982,
    "order_status": "REGISTERED",
    "client_id": "test",
    "tx_id": 5587788,
    "tx_completed_at": "2024.01.28 00:23:19",
    "tx_type": "P2PTRANSFER",
    "tx_status": "APPROVED",
    "tx_reason_code": 1,
    "message": "Successful financial transaction",
    "payer_pm_number": "480938******7309",
    "amount": 100,
    "currency": 643,
    "tx_approval_code": "122004",
    "unique_key": "unique_key",
    "terminal_id": "893",
    "bin_issuer": "JOINT STOCK COMMERCIAL BANK MOSCOW INDUSTRIAL BANK",
    "expdate": "10/2024",
    "iso": 643,
    "bank_terminal_id": "POS_1",
    "signature": "8f2a1c9e3b7d4056a1f8c2e9d3b6a70158fce29b4d7a1e6c0938fa2d17bc45e9"
}
{
    "error_code": "TERMINAL_NOT_FOUND",
    "technical_message": "Terminal not found",
    "timestamp": 1751976000,
    "details": null,
    "request_id": "b3b3c1f0-4b3a-4f3a-9b1a-1234567890ab"
}
{
    "duplicated_operation": {
        "unique_key": "test2",
        "tx_id": 449800,
        "tx_type": "REVERSE",
        "tx_status": "APPROVED",
        "order_id": 480413,
        "client_id": "721716fc-6837-4dbc-8308-37de445c30f0"
    },
    "code": "DUPLICATE_UNIQUE_KEY",
    "description": "Another request with unique key is in progress",
    "signature": "1a4f9c02e7b3d685f0a219c4e7b03d58f61ca2e9b7d0143f5a8c62e9d0b7415"
}

Примечания

  • При получении запроса ПЦ проверяет:
  • Если в запросе передан параметр unique_key, то ПЦ проверяет запрос на наличие дубля;
  • Правильность расчета подписи и корректность параметров запроса;
  • Статус Заказа должен быть AUTHORIZED или COMPLETED.

  • Дальнейшие проверки и обработка запроса зависят от того, какая операция подлежит отмене/возврату:

  • Если отмена/возврат выполняется для pay-in-debit: отмена возможна только на полную сумму заказа. При указании payer.wallet_public_id сумма баланса Кошелька не изменяется;
  • Если отмена/возврат выполняется для complete или одной из операций пополнения (pay-in-*): если в запросе указан payer.wallet_public_id, такой же идентификатор Кошелька должен быть задан у отменяемой операции. Сумма возврата не должна превышать сумму баланса Кошелька. При успешной операции баланс Кошелька уменьшится на величину amount;
  • Если отмена/возврат выполняется для purchase: если в запросе указан payer.wallet_public_id, такой же идентификатор Кошелька должен быть задан у отменяемой операции. При успешной операции баланс Кошелька увеличится на величину amount.

  • По окончании работы сервиса в случае успешной операции если сумма списания равна остаточной сумме заказа, то статус заказа меняется на CANCELED.