.. meta:: :description: API-метод /api/v2/create-card-ref Payneteasy: создание ссылочного идентификатора карты (токена) на основе ранее одобренной транзакции для повторных списаний. .. _api-v2-card-ref-id: /api/v2/create-card-ref #################################### .. role:: ex .. role:: code Введение ^^^^^^^^^^^^^^^^^^^^^^^^^^ Создание идентификатора ссылки на карту инициируется запросом :code:`HTTPS POST` с использованием указанных ниже :ref:`URL-адресов` и :ref:`параметров`. Для аутентификации используйте :ref:`SHA-1`. .. _api_v2_card-ref-id_request_url: API URL ^^^^^^^^^^^^^^^^^^^^^^ .. note:: | Путь API URL не должен быть задан фиксированным значением, т.к. он может быть изменён позднее. .. list-table:: :widths: 50, 50 :header-rows: 1 :class: longtable * - Интеграционная среда - Производственная среда * - :ex:`https://sandbox.payneteasy.ru/paynet/api/v2/create-card-ref/ENDPOINTID` - :ex:`https://gate.payneteasy.ru/paynet/api/v2/create-card-ref/ENDPOINTID` * - :ex:`https://sandbox.payneteasy.ru/paynet/api/v2/create-card-ref/group/ENDPOINTGROUPID` - :ex:`https://gate.payneteasy.ru/paynet/api/v2/create-card-ref/group/ENDPOINTGROUPID` Параметры запроса ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: | Запрос должен иметь заголовок content-type=application/x-www-form-urlencoded. .. _card-ref-id_request_parameters: .. list-table:: :widths: 25, 75 :header-rows: 1 :class: longtable * - Параметры запроса - Описание * - :code:`login` - | Логин Присоединяющейся стороны в Системе. * - :code:`client_orderid` - | Уникальный идентификатор заказа, присвоенный Присоединяющейся Стороной. * - :code:`orderid` - | Идентификатор заказа транзакции, присвоенный Платёжным Шлюзом. * - :code:`control` - | Контрольная сумма, сгенерированная :ref:`SHA-1`. Строка для подписи представляет собой объединение следующих параметров: | 1. Параметр запроса: :ex:`login` | 2. Параметр запроса: :ex:`client_orderid` | 3. Параметр запроса: :ex:`orderid` | 4. :ex:`merchant_control` (Контрольный ключ, назначенный для аккаунта Присоединяющейся стороны в системе Payneteasy). Присоединяющаяся Сторона должна предоставить:code:`orderid` и:code:`client_orderid`, связанные с первой платёжной транзакцией. Это подчёркивает, что первый платёж является обязательным шагом для обработки рекуррентных платежей. Для авторизации кредитной карты информация о ней должна быть достаточной, а первоначальный платёж должен находиться в:ref:`финальном статусе`. The returned Recurring Payment ID and/or Card Reference ID is a token that refers to cardholder data stored on Payment Gateway side. See the required API command to find which type of token is supported in request parameters. This ID has the following usage: 1. In direct API commands it can be passed instead of cardholder data to initiate new transaction. 2. In form API commands it can be passed to prefill the payment form with previously saved cardholder data. Параметры ответа ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. note:: | Ответ имеет заголовок Content-Type: text/html;charset=utf-8. Все поля имеют кодировку x-www-form-urlencoded, с символом (0xA) в конце значения каждого параметра. .. _api_v2_card-ref-id_response_parameters: .. list-table:: :widths: 35, 65 :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:`serial-number` - Уникальный номер, присваиваемый сервером Payneteasy конкретному запросу от Присоединяющейся стороны. * - :code:`card-ref-id` - Ссылочный идентификатор, для использования в повторных оплатах. * - :code:`unq-card-ref-id` - Уникальный идентификатор ссылки на карту для каждого :ex:`PAN`. Может использоваться Присоединяющейся стороной для программ лояльности или контроля мошенничества. * - :code:`status` - | См. :ref:`список статусов`. * - :code:`error-message` - Для транзакций в статусе:ex:`declined` или:ex:`error` этот параметр будет содержать причину отклонения или сведения об ошибке. * - :code:`error-code` - Код ошибки для транзакций в статусе:ex:`declined` или:ex:`error`. Пример запроса ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: none POST /paynet/api/v2/create-card-ref/46750 HTTP/1.1 Host: https://sandbox.payneteasy.ru User-Agent: curl/7.85.0 Accept: */* Content-Length: 100 Content-Type: application/x-www-form-urlencoded Connection: close login=login &client_orderid=902B4FF5 &orderid=6937242 &control=717349cab3fcab2c13c93ff5770ae07a7b8e0727 Пример успешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: none HTTP/1.1 200 Server: server Date: Tue, 07 Feb 2023 08:46:24 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: 144 type=create-card-ref-response &serial-number=00000000-0000-0000-0000-000002e110a2 &card-ref-id=1461670 &unq-card-ref-id=2463777 &status=approved Пример неуспешного ответа ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. code-block:: none HTTP/1.1 200 Server: server Date: Tue, 07 Feb 2023 08:55:26 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: 123 type=validation-error &serial-number=00000000-0000-0000-0000-000002e110ad &error-message=INVALID_CONTROL_CODE &error-code=2 Коллекция Postman ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. raw:: html :file: ../_static/Postman/Postman_recurrent.html Конструктор запросов ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. raw:: html :file: ../_static/examples/recurrent_transaction_Request_Debug.html