Тайм-ауты и логика повторных запросов

Примечание:

Приведенные в данном разделе временные ограничения являются предварительными, могут быть скорректированы до начала пилотного проекта с участием БВУ.

Ограничения по времени обработки (тайм-ауты)

На стороне Банка отправителя денег

На стороне Банка отправителя денег должен быть предусмотрен общий тайм-аут на проведение финансовой операции - 120 секунд. Отсчет времени тайм-аута начинается:

  • для процесса “Инициализация оплаты по QR-коду (C2B2)” - после успешной отправки сообщения pacs.008 (Запрос на перевод денег);

  • для процесса “Инициализация оплаты по QR-коду в рамках электронной коммерции (C2B2E)” - после успешной отправки сообщения pacs.008 (Запрос на перевод денег);

  • для процесса “Возврат денег по проведенной ранее оплате за товар/ услугу (C2BR)” - после успешной отправки сообщения admi.009 (запрос данных по QR-коду для возврата);

  • для процесса “Инициализация перевода денег от отправителя денег к другому ФЛ в приложении Банка отправителя денег (C2C2)” - после успешной отправки сообщения acmt.023 (Запрос верификации наличия счета клиента);

  • для процесса “Инициализация перевода денег между своими счетами в приложении Банка отправителя денег (M2M2)” - после успешной отправки сообщения pacs.008 (Запрос на перевод денег);

  • для процесса “Возврат полученного перевода (C2CR)” - после успешной отправки сообщения pacs.004 (Запрос возврата денег).

Если, успешно направив запрос на платеж/перевод денег (сообщение pacs.008), запрос возврата денег (сообщение pacs.004), Банк отправителя денег не получает сообщение о статусе платежа/перевода pacs.002 с финальным статусом транзакции (RJCT или ACSC) в течение 60 секунд, то он должен направить запрос статуса транзакции pacs.028 Платформе.

Если Банк отправителя денег получает сообщение о статусе платежа/перевода pacs.002 со статусом транзакции PDNG (т.е. транзакция была успешно начата и находится в обработке) – он не должен разблокировать средства самостоятельно до получения от Платформы сообщения pacs.002 с финальным статусом транзакции (RJCT или ACSC) или до истечения тайм-аута в 120 секунд.

На стороне Банка бенефициара

На стороне Банка бенефициара должен быть предусмотрен общий тайм-аут на проведение финансовой операции - 120 секунд. Отсчет времени тайм-аута начинается:

  • для процесса “Инициализация оплаты по QR-коду (C2B2)” - после получения сообщения pacs.008 (Запрос на перевод денег);

  • для процесса “Инициализация оплаты по QR-коду в рамках электронной коммерции (C2B2E)” - после получения сообщения pacs.008 (Запрос на перевод денег);

  • для процесса “Возврат денег по проведенной ранее оплате за товар/ услугу (C2BR)” - после получения сообщения admi.009 (запрос данных по QR-коду для возврата);

  • для процесса “Инициализация перевода денег от отправителя денег к другому ФЛ в приложении Банка отправителя денег (C2C2)” - после получения сообщения acmt.023 (Запрос верификации наличия счета клиента);

  • для процесса “Инициализация перевода денег между своими счетами в приложении Банка отправителя денег (M2M2)” - после получения сообщения pacs.008 (Запрос на перевод денег);

  • для процесса “Возврат полученного перевода (C2CR)” - после получения сообщения pacs.004 (Запрос возврата денег).

Если Банк бенефициара не получает от Платформы сообщение о статусе платежа/перевода pacs.002 с финальным статусом транзакции (RJCT или ACSC) в течение 120 сек, то он завершает транзакцию неуспешно (RJCT) по тайм-ауту, начисление денег бенефициару не производится.

Банку бенефициара следует соблюдать следующие рекомендованные временные ограничения обработки сообщений:

  • обработка полученного сообщения admi.009 и формирование ответного сообщения admi.010 - не более 3 секунд;

  • обработка полученного сообщения acmt.023 и формирование ответного сообщения acmt.024 - не более 3 секунд;

  • обработка полученного сообщения pacs.008 и формирование ответного сообщения pacs.002 - не более 5 секунд.

Отправка повторных запросов

Для всех запросов, кроме запроса статуса транзакции pacs.028, запроса выписки camt.053 (см. Получение выписки):

  • Если Получатель сообщения не отвечает или отвечает с HTTP статусом 500, то отправитель сообщения должен производит повторную отправку запроса через 3 секунды.

  • Общее количество повторных попыток отправки запроса может быть не более 2, после чего операция завершается неуспешно.

При подсчете попыток повторной отправки сообщения используется комбинация следующих полей: тип сообщения, сквозной идентификатор, идентификатор банка отправителя сообщения (идентификатор Платформы).

При превышении количества повторных попыток отправки сообщения будет возвращен HTTP-статус 429

Для запроса статуса транзакции pacs.028:

Если Платформа не отвечает, отвечает с HTTP статусом 500 или направляет сообщение о статусе платежа/перевода pacs.002 (со статусом транзакции PDNG), то отправитель сообщения направляет повторно запрос pacs.028:

  • первые две попытки – интервал 3 секунды;

  • третья и последующие попытки – интервал определяется отправителем сообщения, но не менее 10 секунд. Отправка повторных запросов производится до получения от Платформы сообщения pacs.002 с финальным статусом транзакции (RJCT или ACSC) или до истечения времени тайм-аута.

Получение выписки

В случае неполучения выписки по счету camt.053 по запросу camt.060, повторный запрос выписки camt.060 Платформе можно направлять не ранее, чем через 2 минуты после предыдущей попытки.

Информирование об ошибках

Ошибка направляется в ответе на запрос (синхронно), если она возникает по следующим причинам:

  • не прошла успешно проверка формата сообщения (ответ с HTTP статусом 400 и кодом ошибки FIELD_INVALID);

  • не прошла успешно проверка заголовков запроса (ответ с HTTP статусом 400 и кодом ошибки INVALID_HEADER);

  • не прошла успешно проверка подписи запроса (ответ с HTTP статусом 401);

  • отсутствует или передан неверный токен доступа (ответ с HTTP статусом 401);

  • один из участников заблокирован, или в токене доступа отсутствует необходимый «scope» (ответ с HTTP статусом 403);

  • на стороне БВУ операция больше не может быть обработана (ответ с HTTP статусом 400 и кодом ошибки TRANSACTION_REJECTED).

В случае возникновения ошибок при обработке сообщения, связанных с бизнес-процессом (контроль лимитов, антифрод и т.д.) на стороне Платформы, Платформа направляет соответствующие ответные сообщения (acmt.024, pacs.002, admi.010), в которых указывается информация о возникшей ошибке (причина неуспешности запроса).

В случае возникновения ошибок при обработке сообщения, связанных с бизнес-процессом (контроль лимитов, антифрод и т.д.) на стороне БВУ, БВУ направляет соответствующие ответные сообщения (acmt.024, pacs.002, admi.010), в которых указывается информация о возникшей ошибке (причина неуспешности запроса).

Last updated