3.13. /api/v2/make-rebill-sale

Введение

Повторная оплата инициируется через запрос HTTPS POST на указанный ниже URL с использованием указанных параметров. Для аутентификации запроса используется SHA-1. См. Статусы транзакций.

API URL

Примечание

Путь API URL не должен быть задан фиксированным значением, т.к. он может быть изменён позднее.

Интеграционная среда

Производственная среда

https://sandbox.sbctech.ru/paynet/api/v2/make-rebill-sale/ENDPOINTID

https://gate.sbctech.ru/paynet/api/v2/make-rebill-sale/ENDPOINTID

https://sandbox.sbctech.ru/paynet/api/v2/make-rebill-sale/group/ENDPOINTGROUPID

https://gate.sbctech.ru/paynet/api/v2/make-rebill-sale/group/ENDPOINTGROUPID

Параметры запроса

Примечание

Запрос должен иметь заголовок content-type=application/x-www-form-urlencoded.

Название параметра

Описание

Значение

login

Логин Присоединяющейся стороны в Системе.

Необходимость: Обязательно
Тип: String
Длина: 20

client_orderid

Уникальный идентификатор заказа, присвоенный Присоединяющейся Стороной.

Необходимость: Обязательно
Тип: String
Длина: 128

cardrefid

Ссылочный идентификатор, полученный на этапе регистрации карты (или иного платежного метода) /api/v2/create-card-ref/.

Необходимость: Обязательно
Тип: String
Длина: 20

amount

Сумма к оплате. Сумма должна быть указана в наибольших единицах с разделителем .. Например, 10.5 для USD означает 10 долларов США и 50 центов.

Необходимость: Обязательно
Тип: Numeric
Длина: 10

currency

Валюта, в которой проводится операция. Примеры значений: USD для доллара США, EUR для европейского евро, RUB для российского рубля.

Необходимость: Обязательно
Тип: String
Длина: 3

enumerate_amounts

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

Необходимость: Опционально
Тип: String
Длина: 128

recurrent_scenario

Тип повторной оплаты. Возможные значения: REGULAR (регулярный) или IRREGULAR (нерегулярный). Если параметр передан в запросе, его значение имеет приоритет над значением этого параметра, установленном на шлюзе. Актуально только для некоторых Экваеров.

Необходимость: Опционально
Тип: String
Длина: 50

recurrent_initiator

Инициатор повторной оплаты. Возможные значения: CARDHOLDER (держатель карты) или MERCHANT (торговец). Если параметр передан в запросе, его значение имеет приоритет над значением этого параметра, установленном на шлюзе. Актуально только для некоторых Экваеров.

Необходимость: Опционально
Тип: String
Длина: 50

cvv2

CVV2-код Плательщика. CVV2 (Card Verification Значение) — это трех- или четырех-значное число ПОСЛЕ номера кредитной карты в области подписи карты. Может быть пустым или отсутствовать, если эквайринговый канал поддерживает процессинг без CVV2 или он не актуален для данного платёжного метода.

Необходимость: Опционально
Тип: Numeric
Длина: 3-4

ipaddress

IP-адрес Плательщика. Включен для отслеживания мошеннических действий.

Необходимость: Обязательно
Тип: String
Длина: 45

comment

Короткий комментарий.

Необходимость: Опционально
Тип: String
Длина: 50

order_desc

Описание заказа.

Необходимость: Обязательно
Тип: String
Длина: 64k

control

Контрольная сумма, сгенерированная SHA-1. Строка для подписи представляет собой объединение следующих параметров:
1. Параметр запроса: login
2. Параметр запроса: client_orderid
3. Параметр запроса: cardrefid
4. Параметр запроса:amount в минимальных денежных единицах (если отправлен).
5. Параметр запроса: currency
6.:ex:merchant_control (Контрольный ключ, назначенный для учетной записи Присоединяющейся Cтороны в SBC).
Необходимость: Обязательно
Тип: String
Длина: 40

purpose

Получатель платежа. Это полезно для Присоединяющейся стороны, позволяющей клиентам переводить деньги с кредитной карты на какой-либо счёт клиента, например игровой счёт или счёт мобильного телефона. Примеры значений: +9999999999; mail@example.com и т. д. Это значение будет использоваться системой мониторинга мошенничества.

Необходимость: Опционально
Тип: String
Длина: 128

redirect_url

URL-адрес, на который будет перенаправлен держатель карты после завершения транзакции. Обратите внимание: держатель карты будет перенаправлен в любом случае — независимо от того, была ли транзакция approved или declined. Этот параметр не следует использовать для получения результатов из Платёжного Шлюза SBC, поскольку все параметры передаются через браузер клиента и могут быть потеряны при передаче. Для доставки корректного результата платежа в бэкенд следует использовать server_callback_url. Параметр обязателен для сценария 3DS и необязателен для сценария без 3DS. https://doc.sbctech.ru/ можно использовать для тестирования, если неизвестно, используется ли 3DS.

Необходимость: Опционально
Тип: String
Длина: 1024

server_callback_url

URL-адрес server_callback_url, по которому будет отправлен обратный вызов с результатом транзакции. Присоединяющаяся сторона может использовать обратные вызовы для индивидуальной обработки завершения транзакции (например, для сбора данных о платежах в информационной системе Присоединяющейся стороны). Список параметров, включенных в обратный вызов, см. в разделе Обратного вызова Присоединяющейся стороны. Данный параметр может быть передан вместо notify_url. При использовании server_callback_url платежный шлюз отправляет callback-уведомление только при получении финального статуса исходной транзакции. При использовании notify_url платежный шлюз отправляет уведомление при получении финального статуса и продолжает отправлять уведомления о всех последующих изменениях (возвраты, chargeback и др.).
Необходимость: Опционально
Тип: String
Длина: 1024

notify_url

URL-адрес notify_url, по которому будет отправлен обратный вызов с результатом транзакции. Присоединяющаяся сторона может использовать обратные вызовы для индивидуальной обработки завершения транзакции (например, для сбора данных о платежах в информационной системе Присоединяющейся стороны). Список параметров, включенных в обратный вызов, см. в разделе Обратного вызова Присоединяющейся стороны. Данный параметр может быть передан вместо server_callback_url. При использовании notify_url платежный шлюз отправляет уведомление при получении финального статуса и продолжает отправлять уведомления о всех последующих изменениях (возвраты, chargeback и др.). При использовании server_callback_url платежный шлюз отправляет callback-уведомление только при получении финального статуса исходной транзакции.
Необходимость: Опционально
Тип: String
Длина: 1024

order_desc

Любая дополнительная информация о транзакции, которая может быть полезна во внешних системах Присоединяющейся стороны, например VIP клиент, лид промокампании на ТВ.

Необходимость: Опционально
Тип: String
Длина: 64

Параметры запроса страхования

Примечание

Эквайер может переопределить обязательность некоторых полей.
Ведущий и замыкающий пробельные символы во входных параметрах будут отсечены.

Название параметра

Описание

Значение

insurance_amount

Сумма к страхованию. Сумма должна быть указана в минимальных единицах с . разделителем. Например, 100.5 в RUB означает 100 российских рублей и 50 копеек.

Тип: Numeric
Длина: 10

insured_person_first_name

Имя страхователя

Тип: String
Длина: 256

insured_person_last_name

Фамилия страхователя

Тип: String
Длина: 256

insured_person_middle_name

Отчество страхователя

Тип: String
Длина: 256

insured_person_birthday

Дата рождения страхователя

Тип: String
Длина: 256

insured_person_document_series

Серия документа страхователя

Тип: String
Длина: 256

insured_person_document_number

Номер документа страхователя

Тип: String
Длина: 256

insured_person_document_issue_date

Дата выдачи документа страхователя

Тип: String
Длина: 256

insured_person_document_issuer_name

Кем выдан документ страхователя

Тип: String
Длина: 256

insured_person_document_issuer_code

Код подразделения отделения, выдавшего документ страхователя

Тип: String
Длина: 256

insured_person_registration_address

Адрес регистрации страхователя

Тип: String
Длина: 256

insured_person_phone

Телефон страхователя

Тип: String
Длина: 256

insured_person_email

Электронная почта страхователя

Тип: String
Длина: 256

card_insurance_agreement_number

Номер договора

Тип: String
Длина: 256

card_insurance_agreement_sell_date

Дата продажи

Тип: String
Длина: 256

card_insurance_agreement_start_date

Дата начала договора

Тип: String
Длина: 256

card_insurance_agreement_end_date

Дата окончания договора

Тип: String
Длина: 256

card_insurance_agreement_amount

Страховая сумма

Тип: String
Длина: 256

card_insurance_agreement_bonus

Страховая премия

Тип: String
Длина: 256

Параметры ответа

Примечание

Ответ имеет заголовок Content-Type: text/html;charset=utf-8. Все поля имеют кодировку x-www-form-urlencoded, с символом (0xA) в конце значения каждого параметра.

Параметры ответа

Описание

type

Тип ответа. Может принимать такие значения как - async-response, validation-error, error и т.д.
Если тип равен validation-error или error, параметры error-message и error-code будут содержать сведения об ошибке.

serial-number

Уникальный номер, присваиваемый сервером SBC конкретному запросу от Присоединяющейся стороны.

merchant-order-id

Номер заказа в системе Присоединяющейся Стороны.

paynet-order-id

Идентификатор заказа, присвоенный SBC.

end-point-id

Идентификатор терминала, используемый для транзакции.

error-message

Для транзакций в статусе error этот параметр будет содержать причину отклонения или сведения об ошибке.

error-code

Код ошибки для транзакций в статусе error.

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

POST /paynet/api/v2/make-rebill-sale/46750 HTTP/1.1
Host: https://sandbox.sbctech.ru
User-Agent: curl/7.85.0
Accept: */
Content-Length: 229
Content-Type: application/x-www-form-urlencoded
Connection: close

&login=login
&client_orderid=902B4FF5
&cardrefid=1461665
&amount=5.00
&currency=USD
&cvv2=123
&ipaddress=34.129.65.12
&comment=Information abount Rebill
&order_desc=Rebill order description
&control=a37f4972233b4a5dbfb4dcaae149ce7feed01ef9

Пример успешного ответа

HTTP/1.1 200
Server: server
Date: Thu, 02 Feb 2023 13:22:04 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=async-response
&serial-number=00000000-0000-0000-0000-000002e0d6b9
&merchant-order-id=902B4FF5
&paynet-order-id=6937242
&end-point-id=46750

Пример неуспешного ответа

HTTP/1.1 200
Server: server
Date: Thu, 02 Feb 2023 13:24:47 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: 164

type=validation-error
&serial-number=00000000-0000-0000-0000-000002e0d74c
&merchant-order-id=902B4FF5
&error-message=End+point+with+id+99999+not+found
&error-code=3

Коллекция Postman

Конструктор запросов

endpointid or groupid

input your ENDPOINTID or ENDPOINTGROUPID

login
client_orderid

make it or use your internal invoice ID

cardrefid
amount

currency
enumerate_amounts
recurrent_scenario
recurrent_initiator
cvv2
ipaddress
comment
order_desc
merchant_control

input your Control Key

insurance_amount
insured_person_first_name
insured_person_last_name
insured_person_middle_name
insured_person_birthday
insured_person_document_series
insured_person_document_number
insured_person_document_issue_date
insured_person_document_issuer_name
insured_person_registration_address
insured_person_phone
insured_person_email
card_insurance_agreement_number
card_insurance_agreement_sell_date
card_insurance_agreement_start_date
card_insurance_agreement_end_date
card_insurance_agreement_bonus

String to sign
Signature