.. meta:: :description: Transfer Status API в процессе Mobile Device Payneteasy: опрашивает текущий статус перевода peer-to-peer, инициированного с мобильного устройства, из мобильного приложения. .. _api_transfer_status: Transfer статус ############### .. role:: ex .. role:: code Введение ^^^^^^^^^^^^ | Статус перевода инициируется через запрос :code:`HTTPS POST` с использованием :ref:`URLs` и :ref:`parameters`. | Funds transfer статус запрос is made by Присоединяющаяся сторона’s app to site.company_название to get the статус of transfer транзакция. Payneteasy | Рекомендуется отправлять запрос статуса Transfer в течение 2–3 минут с интервалом 3–5 секунд между запросами. Сервер Присоединяющейся стороны должен полагаться на callback для окончательного статуса. .. _api_url_transfer_status: API URL ^^^^^^^^ .. note:: | Путь API URL не должен быть задан фиксированным значением, т.к. он может быть изменён позднее. .. list-table:: :widths: 50, 50 :header-rows: 1 :class: longtable * - Интеграционная среда - Производственная среда * - :ex:`https://sandbox.payneteasy.ru/paynet/dapi/v1/transfer/{endpointId}/{invoiceId}/status` - :ex:`https://gate.payneteasy.ru/paynet/dapi/v1/transfer/{endpointId}/{invoiceId}/status` .. _api_parameters_transfer_status: Параметры запроса ^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 30, 45, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Значение * - :code:`session` - - | ``Тип``: **Object** * - :code:`session.accessToken` - The access token key received in Необязательное потребителя authentication. - | ``Тип``: String | ``Длина``: 32-128 * - :code:`session.token` - Token сессии транзакции transfer. - | ``Тип``: String | ``Длина``: 16-36 Параметры успешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 30, 45, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Значение * - :code:`invoiceId` - Идентификатор транзакции transfer. - | ``Тип``: String * - :code:`session` - - | ``Тип``: **Object** * - :code:`session.token` - Token сессии транзакции transfer. - | ``Тип``: String * - :code:`state` - Возможные значения: ``PROCESSING``, ``REDIRECT_REQUEST``, ``APPROVED``, ``DECLINED``. Если включены заданные Покупателем тарифы перевода, возвращается ``TRANSFER_FEE_REQUEST``. - | ``Тип``: Enum * - :code:`bankOrderId` - Обязательное if state is ``APPROVED`` or ``DECLINED``. - | ``Необходимость``: Условно | ``Тип``: String | ``Длина``: 128 * - :code:`redirectUrl` - Обязательное if state is ``REDIRECT_REQUEST``. - | ``Необходимость``: Условно | ``Тип``: String | ``Длина``: 128 * - :code:`orderId` - Идентификатор заказа в системе обработки платежей. - | ``Необходимость``: Условно | ``Тип``: String * - :code:`transaction` - - | ``Необходимость``: Условно | ``Тип``: **Object** * - :code:`transaction.amountCentis` - Сумма денежного перевода в центах: 1,00 EUR = 100 центов. - | ``Необходимость``: Условно | ``Тип``: Integer * - :code:`transaction.commissionCentis` - Сумма удержанной комиссии в центах. - | ``Необходимость``: Условно | ``Тип``: Integer * - :code:`transaction.orderCreatedDate` - Дата создания заказа в системе обработки платежей. - | ``Необходимость``: Условно | ``Тип``: String * - :code:`transaction.transactionCreatedDate` - Дата создания транзакции в системе обработки платежей. - | ``Необходимость``: Условно | ``Тип``: String * - :code:`errorCode` - Код причины отклонения; может присутствовать, если состояние — ``DECLINED``. - | ``Необходимость``: Опционально | ``Тип``: Integer * - :code:`errorMessage` - Сообщение о причине отклонения; может присутствовать, если состояние — ``DECLINED``. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`secure3DAuthStatus` - Возможные значения: ``AUTHENTICATED``, ``NOT_AUTHENTICATED``, ``UNSUPPORTED`` означают, что карта не поддерживает 3-D Secure либо процесс аутентификации 3DS завершился с неизвестным статусом. - | ``Необходимость``: Опционально | ``Тип``: Enum * - :code:`randomSumAuthStatus` - Возможные значения: ``AUTHENTICATED``, ``NOT_AUTHENTICATED``. - | ``Необходимость``: Опционально | ``Тип``: Enum Параметры успешного ответа для определённых клиентом тарифов Transfer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | Ответ статуса Transfer содержит параметр :code:`state` со значением :ex:`TRANSFER_FEE_REQUEST` и объект :code:`transferFeeList` со списком комиссий для возможных гейтов обработки. Каждый гейт обработки представлен собственным псевдонимом в параметре :code:`assignedId`. Значение :ex:`TRANSFER_FEE_REQUEST` параметра :code:`state` существует только в потоке «Consumer defined transfer rates». | Когда транзакция достигает состояния :ex:`TRANSFER_FEE_REQUEST`, обработка останется приостановленной, пока не будет отправлен запрос Complete transfer. .. list-table:: :widths: 30, 45, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Значение * - :code:`transferFeeList` - - | ``Тип``: **Object** * - :code:`transferFeeList.assignedId` - Aliased платёж gateway название. - | ``Тип``: String * - :code:`transferFeeList.commissionCentis` - Сумма комиссии для удержания в центах: 1,00 EUR = 100 центов. - | ``Тип``: Integer * - :code:`transferFeeList.currency` - Буквы верхнего регистра (alpha-код по ISO 4217). - | ``Тип``: String * - :code:`state` - Помимо значений из :ref:`Status Transfer`, только в этом процессе существует значение ``TRANSFER_FEE_REQUEST``. - | ``Тип``: String Параметры неуспешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^ .. list-table:: :widths: 30, 45, 25 :header-rows: 1 :class: longtable * - Название параметра - Описание - Значение * - :code:`error` - - | ``Тип``: **Object** * - :code:`error.cause` - Причина ошибки. Возможные значения: ``FILTERED``, ``INVALID_REQUEST``, ``INTERNAL_ERROR``, ``PROCESSING_FAILED``, ``ORDER_NOT_FOUND``. - | ``Тип``: Enum * - :code:`error.code` - Уникальный код ошибки. - | ``Тип``: String * - :code:`error.message` - Описание ошибки. - | ``Тип``: String * - :code:`invoiceId` - Идентификатор транзакции transfer. - | ``Тип``: String Пример запроса ^^^^^^^^^^^^^^^ .. code-block:: json { "session": { "accessToken": "string", "token": "string" } } Пример успешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json { "bankOrderId": "string", "invoiceId": "string", "redirectUrl": "string", "session": { "token": "string" }, "state": "enum" } Success Ответ Example for Потребитель defined transfer rates ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | **Следующая структура расширяет стандартное тело ответа о статусе Transfer (например, 2 обрабатывающих шлюза):** | .. code-block:: json { "bankOrderId": "string", "invoiceId": "string", "redirectUrl": "string", "session": { "token": "string" }, "state": "TRANSFER_FEE_REQUEST", "transferFeeList": [ { "assignedId": "string", "commissionCentis": "integer", "currency": "string" }, { "assignedId": "string", "commissionCentis": "integer", "currency": "string" } ] } Пример неуспешного ответа ^^^^^^^^^^^^^^^^^^^^^ .. code-block:: json { "error": { "cause": "enum", "code": "string", "message": "string" }, "invoiceId": "string" } Конструктор запросов ^^^^^^^^^^^^^^^ .. raw:: html :file: ../../_static/examples/dapi_Transfer_Status_Debug.html