Payment.Cancel

Отменяет платёж, созданный методом Payment.Create. VCR самостоятельно определяет необходимую операцию по текущему состоянию платежа:

  • незавершённый платёж отменяется у провайдера;
  • по успешно проведённому платежу выполняется полный возврат средств;
  • повторный запрос возвращает сохранённый результат и не выполняет операцию повторно.

Поддерживается только отмена или возврат полной суммы исходного платежа. Для возврата через банковский терминал может потребоваться исходная карта покупателя.

Если платёж связан с фискальным чеком, после подтверждения денежного возврата необходимо зарегистрировать чек методом Receipt.Refund. Текущее состояние денежного возврата возвращается в поле refund.

Для асинхронной операции вызывайте Payment.Get с тем же payment_id. Статус refund.status = 9 означает неопределённый результат: не повторяйте операцию до проверки у провайдера и подтверждения администратором в VCR.

Входные параметры

Название Тип данных Обязательность Описание
payment_id string Обязательный Локальный id платежа VCR из ответа Payment.Create

Пример запроса

{
    "jsonrpc": "2.0",
    "method": "Payment.Cancel",
    "params": {
        "payment_id": "58847e73-b40b-4746-8a07-44582991bd6b"
    },
    "auth": "a2Fzc2E6a2FzMTIzNDU2",
    "id": 1
}

Выходные параметры

Метод возвращает актуальный объект платежа в формате Payment.Get. Если потребовался возврат проведённых средств, поле refund содержит состояние этой операции.

Пример ответа — отменён незавершённый платёж

{
    "jsonrpc": "2.0",
    "result": {
        "id": "58847e73-b40b-4746-8a07-44582991bd6b",
        "payment_system_id": -3,
        "payment_id": "4f7afa7c-3d89-4fea-8025-a8b8f1e1468a",
        "status": 5,
        "amount": 1000000
    },
    "ok": true,
    "id": 1
}

Пример ответа — деньги возвращены, ожидается возвратный чек

{
    "jsonrpc": "2.0",
    "result": {
        "id": "58847e73-b40b-4746-8a07-44582991bd6b",
        "payment_system_id": -3,
        "status": 8,
        "amount": 1000000,
        "receipt_id": "исходный-чек",
        "refund": {
            "refund_id": "0e3bbfd2-6f43-4316-839a-95d460a020d1",
            "payment_id": "58847e73-b40b-4746-8a07-44582991bd6b",
            "amount": 1000000,
            "status": 5
        }
    },
    "ok": true,
    "id": 1
}

Статусы refund: 1 — создана, 2 — выполняется, 4 — подтверждена провайдером, 5 — ожидает фискализации, 6 — завершена, 8 — ошибка, 9 — результат неизвестен.