.. meta:: :description: /api/v4/transfer-by-ref API endpoint Payneteasy: перевод deposit-to-card с использованием сохранённого референса карты (v4) для повторных транзакций отправки денег. .. _d2c: /api/v4/transfer-by-ref ####################### .. role:: ex .. role:: code Введение ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Трансфер Deposit to card (D2C) - это тип перевода средств с банковского аккаунта Присоединяющейся Стороны (Депозит) на номер банковской карты Получателя (PAN) или токенизированный идентификатор карточных данных (Card Reference ID). Deposit to card инициируется через запрос :code:`HTTPS POST` на указанный ниже :ref:`URLs` с использованием :ref:`указанных параметров`. Для аутентификации запроса используется :ref:`OAuth RSA-SHA256`. .. _api_v4_transfer-by-ref_url: API URL ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: | Путь API URL не должен быть задан фиксированным значением, т.к. он может быть изменён позднее. .. list-table:: :widths: 50, 50 :header-rows: 1 :class: longtable * - Интеграционная среда - Производственная среда * - :ex:`https://sandbox.payneteasy.ru/paynet/api/v4/transfer-by-ref/ENDPOINTID` - :ex:`https://gate.payneteasy.ru/paynet/api/v4/transfer-by-ref/ENDPOINTID` * - :ex:`https://sandbox.payneteasy.ru/paynet/api/v4/transfer-by-ref/group/ENDPOINTGROUPID` - :ex:`https://gate.payneteasy.ru/paynet/api/v4/transfer-by-ref/group/ENDPOINTGROUPID` .. _api_v4_transfer-by-ref_request: Параметры запроса ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: | Запрос должен иметь content-type=application/x-www-form-urlencoded и :ref:`Заголовки авторизации`. | Параметры отмеченные как :ex:`Опциональные*` могут быть Обязательными в зависимости от интеграции. Свяжитесь с менеджером Payneteasy для получения дополнительной информации. .. list-table:: :widths: 26, 50, 24 :header-rows: 1 :class: longtable * - Название параметра - Описание - Значение * - :code:`client_orderid` - Идентификационный номер транзакции, присовенный Присоединяющейся Стороной. - | ``Необходимость``: Обязательно | ``Тип``: String | ``Длина``: 128 * - :code:`login` - Логин Присоединяющейся Стороны. Должен быть использован как параметри oauth_consumer_key в авторизации OAuth и не должен быть включен в запрос как параметр :ex:`login`. - | ``Необходимость``: Обязательно | ``Тип``: String | ``Длина``: 20 * - :code:`destination-card-no` - Номер карты Получателя. Параметр является обязательным в случае присутствия :ex:`destination-card-ref-id`. Для сценариев выплат на карту внутри системы, данная карта будет расцениваться как целевая и все процессинговые лимиты, листы и Фрод очки применятся как к целевой карте. - | ``Необходимость``: Условно | ``Тип``: String | ``Длина``: 16-19 * - :code:`destination-card-ref-id` - Ссылочный идентификатор карты, полученный на шаге Регистрации Карты. Параметр является обязательным в случае присутствия :ex:`destination-card-no`. Для сценариев выплат на карту внутри системы, данная карта будет расцениваться как целевая и все процессинговые лимиты, листы и Фрод очки применятся как к целевой карте. - | ``Необходимость``: Условно | ``Тип``: Numeric | ``Длина``: 20 * - :code:`destination_expire_month` - Месяц истечения срока действия карты получателя. - | ``Необходимость``: Условно | ``Тип``: String | ``Длина``: 512 * - :code:`destination_expire_year` - Год истечения срока действия карты получателя. - | ``Необходимость``: Условно | ``Тип``: String | ``Длина``: 2-3 * - :code:`amount` - Сумма для перевода. Сумма должна быть указана в старших единицах с разделителем :ex:`.`. Например, :ex:`10.5` для USD означает 10 долларов США и 50 центов. - | ``Необходимость``: Обязательно | ``Тип``: Numeric | ``Длина``: 10 * - :code:`currency` - Валюта, в которой проводится операция. Примеры значений: :ex:`USD` для доллара США, :ex:`EUR` для европейского евро, RUB для российского рубля. - | ``Необходимость``: Обязательно | ``Тип``: String | ``Тип``: 3 * - :code:`order_desc` - Описание заказа. - | ``Необходимость``: Обязательно | ``Тип``: String | ``Длина``: 64k * - :code:`receiver_identity_document_series` - Серия докумета, удостоверяющего личность Получателя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 512 * - :code:`receiver_identity_document_number` - Номер докумета, удостоверяющего личность Получателя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 512 * - :code:`receiver_identity_document_id` - Идентификационный номер документа, удостоверяющего личноть Получателя. Возможные значения: :ex:`21` для местного паспорта или :ex:`31` для международного. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 512 * - :code:`receiver_address1` - Адрес Получателя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 512 * - :code:`receiver_city` - Город Получателя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 512 * - :code:`receiver_first_name` - Имя Получателя. - | ``Необходимость``: Обязательно | ``Тип``: String | ``Длина``: 128 * - :code:`receiver_middle_name` - Среднее имя/патроним Получателя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`receiver_last_name` - Фамилия Получателя. - | ``Необходимость``: Обязательно | ``Тип``: String | ``Длина``: 128 * - :code:`receiver_phone` - Полный номер мобильного телефона Получателя, включая код страны. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`receiver_resident` - Является ли Получатель резидентом? - | ``Необходимость``: Опционально | ``Тип``: Boolean | ``Длина``: true/false * - :code:`ipaddress` - IP-адрес Плательщика. Включен для отслеживания мошеннических действий. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 45 * - :code:`first_name` - Имя Отправителя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`middle_name` - Среднее имя/патроним Отправителя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`last_name` - Фамилия Отправителя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`ssn` - Последние четыре цифры номера социального страхования Отправителя. - | ``Необходимость``: Опционально | ``Тип``: Numeric | ``Длина``: 32 * - :code:`birthday` - Дата рождения Отправителя в формате :ex:`MMDDYY`. - | ``Необходимость``: Опционально | ``Тип``: Numeric | ``Длина``: 8 * - :code:`address1` - Адрес Плательщика, строка 1. (Обратите внимание, что в некоторых случаях невозможно отправить адрес длиной более 50 символов. Для получения более подробной информации обратитесь к вашему менеджеру.) - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 256 * - :code:`city` - Город Отправителя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 50 * - :code:`state` - Регион отправителя. Список допустимых кодов регионов см. в Приложении A. Обязателен для США, Канады и Австралии. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 2-3 * - :code:`zip_code` - Почтовый индекс Отправителя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 10 * - :code:`receiver_zip_code` - Почтовый индекс Получателя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 10 * - :code:`country` - Страна отправителя (двухбуквенный код страны). Список допустимых кодов стран см. в приложении B. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 2 * - :code:`receiver_country_code` - Страна получателя (двухбуквенный код страны). Список допустимых кодов стран см. в Приложении B. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 2 * - :code:`phone` - Полный международный номер телефона Отправителя, включая код страны. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 15 * - :code:`cell_phone` - Полный номер мобильного телефона Отправителя, включая код страны. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 15 * - :code:`email` - Электронный адрес Отправителя. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 50 * - :code:`purpose` - Куда совершается платёж. Может быть полезно для Присоединяющихся Сторон, позволяющих своим клиентам совершать трансфер с кредитной карты на какой-либо тип аккаунта клиента, например, игры или аккаунт мобильного телефона. Например: :ex:`+9999999999`; :ex:`mail@example.com` и т.д. Данный параметр может быть использован в целях отслеживания мошеннических действий. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`server_callback_url` - | URL-адрес :ex:`server_callback_url`, по которому будет отправлен обратный вызов с результатом транзакции. Присоединяющаяся сторона может использовать обратные вызовы для индивидуальной обработки завершения транзакции (например, для сбора данных о платежах в информационной системе Присоединяющейся стороны). Список параметров, включенных в обратный вызов, см. в разделе :ref:`Обратного вызова Присоединяющейся стороны`. Данный параметр может быть передан вместо :ex:`notify_url`. При использовании :ex:`server_callback_url` платежный шлюз отправляет callback-уведомление только при получении финального статуса исходной транзакции. При использовании :ex:`notify_url` платежный шлюз отправляет уведомление при получении финального статуса и продолжает отправлять уведомления о всех последующих изменениях (возвраты, chargeback и др.). - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`notify_url` - | URL-адрес :ex:`notify_url`, по которому будет отправлен обратный вызов с результатом транзакции. Присоединяющаяся сторона может использовать обратные вызовы для индивидуальной обработки завершения транзакции (например, для сбора данных о платежах в информационной системе Присоединяющейся стороны). Список параметров, включенных в обратный вызов, см. в разделе :ref:`Обратного вызова Присоединяющейся стороны`. Данный параметр может быть передан вместо :ex:`server_callback_url`. При использовании :ex:`notify_url` платежный шлюз отправляет уведомление при получении финального статуса и продолжает отправлять уведомления о всех последующих изменениях (возвраты, chargeback и др.). При использовании :ex:`server_callback_url` платежный шлюз отправляет callback-уведомление только при получении финального статуса исходной транзакции. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 128 * - :code:`redirect_url` - :ex:`URL`, на который держатель карты будет перенаправлен после завершения транзакции. Перенаправление выполняется независимо от одобрения или отклонения транзакции. Подробнее см. в :ref:`статусах`. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 250 * - :code:`redirect_success_url` - URL-адрес, на который будет перенаправлен Плательщик после завершения транзакции. Перенаправление осуществляется только в случае получения транзакцией статуса :ex:`успешно` - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 1024 * - :code:`redirect_fail_url` - URL-адрес, на который будет перенаправлен Плательщик после завершения транзакции. Перенаправление осуществляется только в случае получения транзакцией статуса :ex:`неуспешно` или :ex:`отфильтровано` - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 1024 * - :code:`order_desc` - Любая дополнительная информация о транзакции, которая может быть полезна во внешних системах Присоединяющейся стороны, например :ex:`VIP клиент`, :ex:`лид промокампании на ТВ`. - | ``Необходимость``: Опционально | ``Тип``: String | ``Длина``: 64k .. include:: empty.txt Параметры ответа ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: | Ответ имеет заголовок Content-Type: text/html;charset=utf-8. Все поля имеют кодировку x-www-form-urlencoded, с символом (0xA) в конце значения каждого параметра. .. list-table:: :widths: 20, 80 :header-rows: 1 :class: longtable * - Параметр ответа - Описание * - :code:`type` - Тип ответа. Может принимать такие значения как: :ex:`async-response`, :ex:`validation-error`, :ex:`error` и т.д. Если тип ответа :ex:`validation-error` или :ex:`error`, параметры :ex:`error-message` и :ex:`error-code` будут содержать детали ошибки. * - :code:`paynet-order-id` - Идентификатор заказа, присвоенный Payneteasy. * - :code:`merchant-order-id` - Идентификатор заказа Присоединяющейся Стороны. * - :code:`serial-number` - Уникальный номер, присваиваемый сервером Payneteasy конкретному запросу от Присоединяющейся стороны. * - :code:`error-message` - Для транзакций в статусе :ex:`error` этот параметр будет содержать причину отклонения или сведения об ошибке. * - :code:`error-code` - Код ошибки для транзакций в статусе :ex:`error`. Пример запроса ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: guess POST /paynet/api/v4/transfer-by-ref/39915 HTTP/1.1 Host: sandbox.payneteasy.ru User-Agent: curl/7.83.0 Accept: */* Authorization: OAuth oauth_consumer_key="TestMerchant", oauth_nonce="w1rmMzx2Sq2k5Hi7KAZmdhHHD6BygKcE", oauth_signature="rXn0DwLOlaV%2Ft1q3s%2FJdLybJTdxKKN0XeFtyVNZ0U5bG0Qfcc6iyHqQG66Ohb852CYKjhrxvG3wf33RlIQdO9f23OSg91JkdrUgl8QDrMqntC5myWGR1woums%2BMjpV821fAY8AS%2BBByNUKOuC1mwFgLYwr5YinbhjDa6P8aEdHgbf%2FVw5vg9OqjwKxJhSXPGB5mIg7T9gTNXF4n4YTUJA0l%2BWyeGcIjuTSsiCUnbsrNjBOGYc0PlUSuHirwJ0NiKVdHk3qaZrGaEw8SZEq%2F8x0naoaaOXUq%2FkpqPfTJT%2FjTl%2FbGyX1x%2FwTl6EYgIElavHYj2psIGmFnyUk%2FYnaGZHikE00rSf4IkG5Ye2M4hyl7lKQOCXMZMvvGtfvLm0RsAod8o30KuDD5Tw%2BRmDiQNCqN8GeZawHsZipgwZuy2IdZ3sHiot3U6NEt1OVH9TsWDU%2FstfBJOWBBStTRTTh4hn3Zvf5jLuTfTcepKz4CIgdQGGmMmRSz6dcBnkYJaa7VRTh27dz%2BnEuC0laEYAytVuzQA43MvUXNLmAuh9JlmqQquAZwB%2BRFfLPgOj%2FVVsFsqX35UWBYQtWlWdEVc3jWBVxCjEW0s8cAcowlb4R2g4V48HC2Rz3ggfINzP9%2FWtX1nkNnIlzQAeYbMREguYqFrK%2BYK6Lqyu%2BM1jeo6j9CWhhk%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1697442690", oauth_version="1.0" Content-Length: 805 Content-Type: application/x-www-form-urlencoded Connection: close address1=10020Main%20st &amount=100 &birthday=19820115 &cell_phone=%2B19023384543 &city=Seattle &client_orderid=34T43R77N &country=US ¤cy=USD &destination-card-ref-id=1461819 &card-exp-month=07 &card-exp-year=2028 &email=john.smith%40gmail.com &first_name=John &ipaddress=65.153.12.232 &last_name=Smith &merchant_data=VIP%20customer &middle_name=M &order_desc=Test%20Order%20Описание &phone=%2B12063582043 &purpose=user_account1 &receiver_address1=Red%20Sq%2C%201a &receiver_city=Moscow &receiver_first_name=Jane &receiver_identity_document_id=21 &receiver_identity_document_number=222222 &receiver_identity_document_series=1111 &receiver_last_name=Doe &receiver_middle_name=L &receiver_phone=%2B79031110022 &receiver_resident=true &redirect_url=http%3A%2F%2Fwww.example.com%2F &server_callback_url=https%3A%2F%2Fhttpstat.us%2F200 &ssn=1267&state=WA &zip_code=98102 Пример успешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: text HTTP/1.1 200 Server: server Date: Mon, 16 Oct 2023 13:20:25 GMT Content-Type: text/html;charset=utf-8 Connection: close Vary: Accept-Encoding X-XSS-Protection: 1 X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000 Content-Language: en-US Strict-Transport-Security: max-age=31536000 Content-Length: 145 type=async-response &serial-number=00000000-0000-0000-0000-000002ee3a57 &merchant-order-id=34T43R77N &paynet-order-id=7234671 &end-point-id=39915 Пример неуспешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: text HTTP/1.1 200 Server: server Date: Mon, 16 Oct 2023 07:54:11 GMT Content-Type: text/html;charset=utf-8 Connection: close Vary: Accept-Encoding X-XSS-Protection: 1 X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000 Content-Language: en-US Strict-Transport-Security: max-age=31536000 Content-Length: 162 type=validation-error &serial-number=00000000-0000-0000-0000-000002ee3a4f &merchant-order-id=34T43R77N &error-message=Rebill+1461819+was+not+found &error-code=104 .. only:: openapi_doc_enabled Open API Collection ^^^^^^^^^^^^^^^^^^^ Open this method in the OpenAPI Reference .. raw:: html View in OpenAPI Коллекция Postman ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. raw:: html :file: ../_static/Postman/Postman_deposit2card.html Конструктор запросов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Введите приватный ключ, содержащийся в PKCS#1. См. :ref:`RSA-SHA256`. .. only:: insurance_enabled .. raw:: html :file: ../_static/examples/d2_insurance_Request_Debug_transfer_new.html .. only:: insurance_disabled .. raw:: html :file: ../_static/examples/deposit_to_card_Request_Debug_new.html