Дополнительные возможности

Статус заказа

После регистрации заказа узнать его статус можно одним из следующих способов:

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

curl -X POST 'https://api.router.rbsuat.com/v1/getOrderStatusExtended.do' -H 'Content-Type: application/json' \
--data-raw '{
    "orderId": "5ab8fb6a-421e-4396-9bf8-d7d77cc1e706",
    "userName": "test_user",
    "password": "test_user_password"
}'

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

Состояние заказа показывает параметр state. Он может принимать следующие значения:

Пример ответа для заказа, зарегистрированного в Платежном сервисе:

{
    "state": "PREREGISTERED",
    "depositedAmount": 0,
    "orderStatusResultModel": {
        "allowedPaymentWays": [
            "CARD_BINDING",
            "CARD",
            "MIR_PAY"
        ],
        "amount": 247,
        "clientId": "259753456",
        "currency": "643",
        "date": 1730530148222,
        "depositFlag": "PURCHASE",
        "gwId": null,
        "gwOrderId": null,
        "failUrl": "http://mybestmerchantreturnurl.com",
        "hasTimeout": false,
        "merchantLogin": "test_user",
        "orderDescription": "Test order",
        "orderId": "8e4c2673-98e6-11ef-ab20-4989eedfa34b",
        "orderNumber": "1730530146_3302",
        "orderParams": {
            "paramE": "deposit"
        },
        "orderStatus": -1,
        "paymentWay": null,
        "successUrl": "https://mybestmerchantreturnurl.com"
    }
}

Пример ответа для успешно оплаченного заказа:

{
    "state": "DEPOSITED",
    "depositedAmount": 920,
    "orderStatusResultModel": {
        "actionCode": 0,
        "actionCodeDescription": "",
        "amount": 920,
        "authDateTime": 1730537059726,
        "authRefNum": "152733574684",
        "bankInfo": {
            "bankName": "SBERBANK OF RUSSIA",
            "bankCountryCode": "RU"
        },
        "cardInfo": {
            "approvalCode": "123456",
            "cardholderName": "CARDHOLDER NAME",
            "expirationDate": "202412",
            "maskedPan": "427601**7761",
            "paymentSystem": "VISA"
        },
        "clientId": "259753456",
        "currency": "643",
        "date": 1730537058969,
        "depositFlag": "PURCHASE",
        "depositedDate": 1730537060295,
        "errorCode": "0",
        "errorMessage": "Успешно",
        "gwId": "SBERBANK",
        "gwOrderId": "e369c6ed-ea47-7b11-8087-bba24a87c214",
        "failUrl": "http://error.info?abc-123&def=567",
        "hasTimeout": false,
        "merchantLogin": "test_user",
        "operations": [
            {
                "amount": 920,
                "authCode": "123456",
                "cardHolder": "CARDHOLDER NAME",
                "currencyCode": "643",
                "operationDate": 1730537059726,
                "operationType": "PURCHASE",
                "maskedPan": "427601**7761",
                "processingResultCode": 0,
                "referenceNumber": "152733574684",
                "success": true,
                "terminalId": "22334477"
            }
        ],
        "orderDescription": "Monitored background synergy",
        "orderId": "954aab72-98f6-11ef-ab20-7d13eddab10a",
        "orderNumber": "1730537029_6667",
        "orderParams": {
            "binProductCategory": "CREDIT",
            "mdOrder_svip": "954aab72-98f6-11ef-ab20-7d13eddab10a",
            "paramE": "deposit",
            "paramF": "BG71MQIC844222679G7L4X",
            "binProductCode": "F"
        },
        "orderStatus": 2,
        "payerData": {
            "email": "Magdalena_Moen21@hotmail.com",
            "phone": "628-243-6459"
        },
        "paymentWay": "CARD",
        "processingId": "33224466",
        "refunds": [],
        "transactionAttributes": {
            "paymentNetRefNum": "ac4329d2-2031-416c-9e5b-836b5125c0c5"
        }
    }
}

Время жизни заказа

По умолчанию заказ можно оплатить в течение 30 минут после регистрации. Вы можете указать другое время сессии в параметре sessionTimeoutSecs при регистрации заказа register.do. Время сессии учитывается даже если оплата происходит по API без использования платежной страницы Платежного сервиса.

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

Если заказ не оплачен за время сессии и не было попыток оплаты, то по истечении времени статус заказа станет DECLINED с actionCode = -2007 без указания банка. Если заказ не оплачен за время сессии, но попытки оплаты были, то после истечения времени сессии будет статус заказа DECLINED и actionCode = -2007, с указанием банка. Подробнее об actionCodes см. Коды ответа платежей.

Отмены, возвраты

Отмена заказа

Платежный сервис Роутер поддерживает следующие способы отмены заказа:

Возврат средств

Платежный сервис Роутер поддерживает метод /refund.do для возврата средств за оплаченный заказ (в статусе DEPOSITED).

Особенности использования метода:

Пример частичного возврата по товарным позициям:

curl --location 'https://api.router.rbsuat.com/v1/refund.do' \
--header 'Content-Type: application/json' \
--data '{
    "amount": 102729,
    "orderNumber": "1730538506_7044",
    "password": "test_user_password",
    "userName": "test_user",
    "refundItems": {
        "items": [
            {
                "positionId": "1",
                "name": "Получен аванс",
                "quantity": {
                    "value": 1027.29,
                    "measure": "шт"
                },
                "itemAmount": 102729,
                "itemCurrency": 643,
                "itemCode": "36035_10.1",
                "itemAttributes": {
                    "attributes": [
                        {
                            "name": "paymentMethod",
                            "value": "3"
                        },
                        {
                            "name": "paymentObject",
                            "value": "10"
                        }
                    ]
                },
                "tax": {
                    "taxType": "4"
                },
                "itemPrice": 100
            }
        ]
    }
}'

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

{
    "errorCode": 0,
    "errorMessage": "Успешно"
}

Двухстадийные платежи

Виды платежей

В зависимости от специфики бизнеса компания может использовать два вида платежей:

Сумма завершения может быть меньше суммы удержания. Также есть возможность делать завершения на сумму, превышающую величину удержания (в пределах настраиваемых лимитов). Если вы хотите использовать этот функционал, свяжитесь с нашей службой поддержки.

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

Чтобы платеж был двухстадийным, заказ должен быть зарегистрирован с помощью запроса registerPreAuth.do, а не register.do.

При использовании метода instantPayment.do тип оплаты (одностадийная или двухстадийная) определяется параметром preAuth.

Двухстадийная оплата возможна при любом способе интеграции:

При оплате с помощью СБП есть некоторые особенности, см. Двухстадийная оплата и СБП

У Партнера должно быть разрешение на двухстадийную оплату в банке, в который будет направлен платеж.

Завершения

Завершение происходит на втором этапе двухэтапного платежа, когда предварительно зарезервированные средства списываются со счета держателя карты. Как только происходит списание, заказ становится завершенным и переходит в статус DEPOSITED. Сумма завершения может быть больше или меньше суммы предварительной авторизации. Также доступно поэтапное частичное завершение. Если вы не передадите сумму, то будет списана вся сумма.

Завершение осуществляется с помощью запроса deposit.do.

Для отмены авторизованного, но еще не завершенного заказа используется метод reverse.do. У Партнера должно быть разрешение на использование отмены в банке, в который направлен платеж.

Также есть возможность сделать частичное завершение. В этом случае заказ будет завершен на меньшую сумму (чем сумма авторизации).

Завершение и отмена заказов автоматически

Если наша служба поддержки включила для вас эту функцию, вы можете настроить свою интеграцию так, чтобы все предварительно авторизованные (в статусе Подтвержден) двухстадийные заказы завершались или отменялись автоматически по истечении определенного периода времени. В этом случае не нужно будет вызывать методы deposit.do и/или /reverse.do.

Чтобы задать период, по истечении которого заказ будет автоматически подтвержден или отменен, передавайте в запросе на регистрацию заказа register.do параметр autocompletionDate или autoReverseDate соответственно.

Категории:
router API V1
Категории
Результаты поиска