3.22. /api/v4/transfer-form

Введение

Перевод - это тип комплексной оплаты, которая позволяет перечислять средства между банковскими картами (Primary Account Number - PAN), карточными токенами (Recurring Payment ID - RPI) и банковским аккаунтом Присоединяющейся Стороны (Депозит).
Перевод с использованием формы подходит Присоединяющимся Сторонам, не принимающим карточные данные Отправителя (веб-сайт Присоединяющейся Стороны обязан быть сертифицированным по PCI DSS). Используя перевод с внешней формой, Присоединяющаяся Сторона освобождена от обработки данных для оплаты. В данном случае получение и обработка данных оплаты производится на стороне SBC (если не отправлен PAN). Такой тип интеграции позволяет Отправителю (для перевода между картами) и Получателю (для выплат с депозита на карту) подтверждать PAN на стороне SBC.
Перевод инициируется через запрос HTTPS POST на указанный ниже URL с использованием указанных параметров в зависимости от сценария перевод (см. ниже). Для аутентификации запроса используется OAuth RSA-SHA256.
Диаграмма сценариев перевода по форме:

hide members
hide circle

circle " " as c2
package From <<Frame>> {
class "Форма" as f1a
class "Номер карты\n(Pan)" as pan1a
class "ИД повторяющейся транзакции\n(RPI)" as rpi1a
class "Аккаунт Присоединяющейся Стороны\n(Deposit to card)" as dca

}
package To <<Frame>> {
class "Номер карты\n(Pan)" as pan2
class "ИД повторяющейся транзакции\n(RPI)" as rpi2
class "Форма" as f2

}

f1a --|> pan2
f1a --|> rpi2
f1a -- c2
pan1a -- c2
rpi1a -- c2
dca -- c2
dca -[hidden]> f2
c2 --|> f2

Form to PAN

Перевод по форме по сценарию Form to PAN происходит при перечислении средств с платёжных данных, указанных в форме, на банковскую карту, номер которой указан.

Form to RPI

Перевод по форме по сценарию Form to RPI происходит при перечислении средств с платёжных данных, указанных в форме, на банковскую карту, идентификатор повторных выплат которой указан.

PAN to Form

Перевод по форме по сценарию PAN to Form происходит при перечислении средств с банковской карты, номер которой указан, на платёжные данные, указанные в форме.

RPI to Form

Перевод по форме по сценарию RPI to Form происходит при перечислении средств с банковской карты, идентификатор повторных выплат которой указан, на платёжные данные, указанные в форме.

Form to Form

Перевод по форме по сценарию Form to Form происходит при перечислении средств с одних платёжных данных на другие платёжные данные, указанные в форме.

Deposit to Form

Перевод по форме по сценарию deposit to Form происходит при перечислении средств с аккаунта Присоединяющейся Стороны на платёжные данные, указанные в форме.

API URL

Примечание

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

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

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

https://sandbox.sbctech.ru/paynet/api/v4/transfer-form/ENDPOINTID

https://gate.sbctech.ru/paynet/api/v4/transfer-form/ENDPOINTID

https://sandbox.sbctech.ru/paynet/api/v4/transfer-form/group/ENDPOINTGROUPID

https://gate.sbctech.ru/paynet/api/v4/transfer-form/group/ENDPOINTGROUPID

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

Примечание

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

Параметр

Описание

Значение

destination-card-no, также

destination

Номер банковской карты Получателя.

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

deposit2card

Маркер перевода депозита на карту. Если true, данные держателя карты отправителя для обработки транзакции не требуются. Если false, данные держателя карты отправителя необходимы.

Значение: False
Тип: Boolean

ipaddress

IP-адрес отправителя или получателя, укажите для защиты от мошенничества. Примечание: 45 используется для туннелирования IPv4, например: 0000:0000:0000:0000:0000:0000:192.168.100.101.

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

amount

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

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

currency

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

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

order_desc

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

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

client_orderid

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

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

first_name

Имя отправителя или получателя.

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

last_name

Фамилия отправителя или получателя.

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

ssn

Последние четыре цифры номера социального страхования отправителя или получателя.

Необходимость: Условно
Тип: Numeric
Длина: 4

birthday

День рождения отправителя или получателя.

Необходимость: Условно
Тип: Numeric
Длина: 8

address1

Адрес отправителя или получателя. (Обратите внимание, что в некоторых случаях невозможно отправить адрес длиной более 50 символов. Для получения более подробной информации обратитесь к вашему менеджеру.)

Необходимость: Условно
Тип: String
Длина: 256

city

Город отправителя или получателя.

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

state

Штат отправителя или получателя (двухбуквенный код штата). Список допустимых кодов штатов см. в разделе Обязательное поле Коды штатов. Обязательно для США, Канады и Австралии.

Необходимость: Условно
Тип: String
Длина: 2

zip_code

Почтовый индекс отправителя или получателя.

Необходимость: Условно
Тип: String
Длина: 10

country

Страна отправителя или получателя (двухбуквенное сокращение).

Необходимость: Условно
Тип: String
Длина: 2

phone

Полный международный номер телефона отправителя или получателя, включая суффикс страны.

Необходимость: Условно
Тип: String
Длина: 15

cell_phone

Полный международный номер мобильного телефона отправителя или получателя, включая суффикс страны.

Необходимость: Условно
Тип: String
Длина: 15

purpose

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

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

email

Адрес электронной почты отправителя или получателя.

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

site_url

URL, с которого был проведён перевод.

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

redirect_url

URL-адрес, на который будет перенаправлен держатель карты после завершения транзакции. Обратите внимание, что держатель карты будет перенаправлен в любом случае, независимо от того, была ли транзакция одобрена или отклонена. Необязательно для прямой интеграции (без формы) deposit2card. Этот параметр необходимо использовать, если нет ни redirect_success_url, ни redirect_fail_url.

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

redirect_success_url

URL, на который будет перенаправлен держатель карты после завершения транзакции. Обратите внимание, что перенаправление выполнится только в случае, если транзакция одобрена. Этот параметр не должен использоваться для получения результатов от шлюза SBC, поскольку все параметры проходят через браузер клиента и могут быть утеряны в процессе передачи. Для доставки корректных результатов оплаты в backend следует использовать параметр server_callback_url. gate.sbctech.ru должен быть передан при использовании не-3DS схемы обработки транзакций, когда нет необходимости куда-либо перенаправлять Отправителя или Получателя. Этот параметр должен использоваться, если отсутствует redirect_url.

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

redirect_fail_url

URL, на который будет перенаправлен держатель карты после завершения транзакции. Обратите внимание, что перенаправление выполнится только в случае, если транзакция отклонена или отфильтрована. Этот параметр не должен использоваться для получения результатов от шлюза SBC, поскольку все параметры проходят через браузер клиента и могут быть утеряны в процессе передачи. Для доставки корректных результатов оплаты в backend следует использовать параметр server_callback_url. gate.sbctech.ru должен быть передан при использовании не-3DS схемы обработки транзакций, когда нет необходимости куда-либо перенаправлять Отправителя или Получателя. Этот параметр должен использоваться, если отсутствует redirect_url.

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

preferred_language

Двухбуквенный языковой код Отправителя или Получателя для многоязычных форм перевода.

Необходимость: Условно
Тип: String
Длина: 2

merchant_form_data

Параметры, отправляющиеся в API параметре merchant_form_data, парсятся в макросе под тем же именем, параметр url-закодирован, например, testparam%3Dtest1%26mynewparam%3Dtest2 и анализирован в макросы $MFD_testparam = test1 и $MFD_mynewparam = test2 в форме. Символы названия параметра [a-zA-Z0-9], символы значения параметра [a-zA-Z0-9], контрольные символы [=&], максимальный размер 2MB. Например, этот параметр может быть использован для отображение платежной формы в светлом/темном режиме в зависимости от значения, записанного Присоединяющейся Стороной (т.е. прописать merchant_form_data=theme%3Ddark в запросе и $MFD_theme макрос будет изменен на dark.

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

server_callback_url

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

notify_url

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

Additional Параметрs

Sender Customer Data

Параметрs below can be required for specific integrations. For more information, please contact Support manager.

Параметр Name

Описание

Значение

sender_first_name

Sender’s first name.

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

sender_last_name

Sender’s last name.

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

sender_middle_name

Sender’s middle name/patronym.

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

sender_ssn

Last four digits of the Sender’s social security number.

Тип: String
Length: 11

sender_birth_place

Sender`s birth place.

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

sender_birthday

Sender’s birthday.

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

sender_address1

Sender’s address.

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

sender_city

Sender’s city.

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

sender_state

Sender’s US states (two letter abbreviation). Not applicable outside the US.

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

sender_zip_code

Sender`s zip code.

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

sender_citizenship

Sender`s citizenship.

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

sender_country_code

Sender’s country (two letter abbreviation).

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

sender_phone

Sender’s full international phone number, including country suffix.

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

sender_cell_phone

Sender’s full international cell phone number, including country suffix.

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

sender_email

Sender’s email address.

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

sender_resident

Is sender a resident?

Тип: Boolean

sender_identity_document_id

Sender`s identity document name.

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

sender_identity_document_series

Sender`s identity document series.

Тип: String
Length: 12

sender_identity_document_number

Sender`s identity document number.

Тип: String
Length: 16

sender_identity_document_issuer_name

Sender`s identity document issuer.

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

sender_identity_document_issuer_department_code

Sender`s identity document issuer department code.

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

sender_identity_document_issue_date

Sender`s identity document issue date.

Type: Date

Receiver Customer Data

Параметрs below can be required for specific integrations. For more information, please contact Support manager.

Параметр Name

Описание

Значение

receiver_first_name

Receiver’s first name.

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

receiver_last_name

Receiver’s last name.

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

receiver_middle_name

Receiver’s middle name/patronym.

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

receiver_birth_place

Receiver`s birth place.

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

receiver_birthday

Receiver’s birthday.

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

receiver_address1

Receiver’s address.

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

receiver_city

Receiver’s city.

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

receiver_state

Receiver’s state.

Тип: String
Длина: 2-4

receiver_zip_code

Receiver`s zip code.

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

receiver_region

Receiver`s region.

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

receiver_area

Receiver`s area.

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

receiver_citizenship

Receiver`s citizenship.

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

receiver_country_code

Receiver`s country (two letter abbreviation).

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

receiver_phone

Receiver’s full international phone number, including country suffix.

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

receiver_email

Receiver’s email address.

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

receiver_resident

Is receiver a resident?

Тип: Boolean

receiver_identity_document_id

Receiver`s identity document name.

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

receiver_identity_document_series

Receiver`s identity document series.

Тип: String
Length: 12

receiver_identity_document_number

Receiver`s identity document number.

Тип: String
Length: 16

receiver_identity_document_issuer_name

Receiver`s identity document issuer.

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

receiver_identity_document_issuer_department_code

Receiver`s identity document issuer department code.

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

receiver_identity_document_issue_date

Receiver`s identity document issue date.

Type: Date

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

Примечание

Ответ имеет заголовок 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 будут содержат детали ошибки.

paynet-order-id

Номер заказа в системе SBC

merchant-order-id

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

serial-number

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

error-message

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

error-code

Код ошибки, в случае статуса error.

redirect-url

URL-адрес страницы, на которую подключающаяся сторона должна перенаправить браузер клиента. Подключающаяся сторона должна отправить перенаправление HTTP 302, см. Общую схему процесса перевода.

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

Перевод по форме Form to PAN

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

POST /paynet/api/v4/transfer-form/39915 HTTP/1.1
Host: sandbox.sbctech.ru
User-Agent: curl/7.83.0
Accept: */*
Authorization: OAuth oauth_consumer_key="TestMerchant", oauth_nonce="eZCXwEp9fO17vGFwPUDStKjOKIP9u0nu", oauth_signature="2qrf7DY0fiy88doBrIGafZBqLLX12ePYWDGLqNxwBfU9T3RzwSYtEj92EPuiJulnZxbPY6av4F2jT1JS02D4KqPAtadsEYb8AabBoSvXPK13FrIXKQ38hrcapmXwz%2Fbh0JJBnN3aMvKJ%2FnsvRChY%2FFpRhdudfdBxZLKpAXYfJQgk42%2FB9pu%2FsBSRWJwTnVZxfavHYMWmrY2rvg2x1nedSJq6O%2Fxffz9OU3CvHOlK%2FGfdI4WFvpHIXpw1Mlz%2F6AnQRdMmYHnoDsFu79GI57NeoBRsZazJBYh%2FE%2FFcS9sHU5BF0yvLQYz%2FCXtb7lDbKeDJTHDDWakyyZPQcOQReIMHpNwNr9mjC%2FucIJitFEldsWWGaOnTc2Tqtrdjzzwukm%2BP7Bi5siJ5Pl%2BxWqOMAEFPnCXfThBKIJrxQXbBwR4YfPaBb70nePybCH8JCX0vakoaH%2BwFJfR0WNgOBfYxQfUYNcEXDmrk8hLbwz%2FXJ6bfanFaE8N3OwijJmlzY%2B4ZrEqBjnklQcBnNuvuxKSb6dKtnRo5UVXEszEiCxEvWQifggohkU1CTHZFpA2qmrxjIcgJoDOhQPV6Lk92LiDtVSE2drxZ%2Bjui69ZzGlnKlM0lVCnFfdahrhtMM9GYNN%2B24YaKd5UkCMIMru%2BfOfvqwrJu00%2FIms8VXwsm9aP8pP4Lr3I%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1670421183", oauth_version="1.0"
Content-Length: 303
Content-Type: application/x-www-form-urlencoded
Connection: close

amount=100
&client_orderid=34T43R77N
&currency=USD
&deposit2card=false
&destination-card-no=4268736646656312
&destination_card_printed_name=Test%20Test
&destination_expire_month=12
&destination_expire_year=2023
&ipaddress=1.1.1.1
&order_desc=Your%20order%20description
&redirect_url=http%3A%2F%2Fwww.example.com
&server_callback_url=https://httpstat.us/200

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

HTTP/1.1 200
Server: server
Date: Wed, 07 Dec 2022 13:56:03 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: 285

type=async-form-response
&serial-number=00000000-0000-0000-0000-000002ddbfa2
&merchant-order-id=34T43R77N
&paynet-order-id=6863810
&redirect-url=https%3A%2F%2Fsandbox.sbctech.ru%2Fpaynet%2Fform%2Finit%2FBB587546567A31587163597A684535634A775969614A577953626976766D4B494A66796F55434370393032673D

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

HTTP/1.1 403
Server: server
Date: Mon, 12 Dec 2022 08:25:15 GMT
Content-Type: text/html
Content-Length: 735
Connection: close
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>403</title>
    <style type="text/css">
        body {
            font-family: Arial, sans-serif;
            font-size: 130%;
            background-color: #eee;
        }
        p {
            margin: 10em auto 0;
            width: 500px;
            border: 1px solid gray;
            text-align: center;
            vertical-align: middle;
            padding: 40px 20px;
            background-color: #fff;
            -webkit-border-radius: 20px;
            -moz-border-radius: 20px;
            border-radius: 20px;
        }
    </style>
</head>
<body>
    <p>Access is denied</p>
</body>
</html>

Перевод по форме Form to RPI

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

POST /paynet/api/v4/transfer-form/39915 HTTP/1.1
Host: sandbox.sbctech.ru
User-Agent: curl/7.83.0
Accept: */*
Authorization: OAuth oauth_consumer_key="TestMerchant", oauth_nonce="yQFnx1Zerg4pH28VmLQL3HWc7dQJlAqg", oauth_signature="G2ZRjHOxzhsQ5xIurkM7Bo7REnoBfG3HIDDzwG9XfFGZdFC0815%2FPVS4ESdLPYVEr7iT2K3LtlO2mhMzmIWuRV3YTVKKCbfbuJkPk1OwJOx66ZaX4q0DI5Zej%2FadXiKuJ%2FLe%2BLL8Tp%2Ftzrylk6fiTAoX2AT471hp02xezERVwdEwkhoWB1mqwYE4VxOL8wDk0W0oqR%2Bk1XgWXPcj3E8WV3kEVFwxYwgi6daQyimqReEc5q8fqbUl7sANmIozrSRWqjG2K%2FBLs0W2UFLMcvWdHi2ON%2B%2BnTzaLCExB2991ozSE2jPp4eahkd69Zz%2BEwLENVIn8KDwvA5j25XaGgbqLKK%2BBt5CshObkvZZZ%2FuWqujp%2FzbOBGMuucuwyXe4yW8Ter1YC%2F9zoR%2BMwIcKBd5gaV4mOxQCZ5pe9GMD2805BlM2XDtcB9UT%2FeMs3MR3WIXN51EVCn%2BcazxwEI4LmZ5966aaUGu4GF41JWRQAZBchx4F%2Bd%2BRadwCceBJJSiQg82hwRk4QYnyDEx%2BWqcwErVZGCH8yJhph1Etn3e0G8z0PLBlG2hqTqGPFYivzyFHI1LNW8jl7%2BKJq2HZgXjtcU8Ji%2BVw2JVr86nnM4nPbpIRl7qr%2BSYUpXjWw%2B3e%2F6GtOL%2BOWzVFMo5jKf%2FfyJSdOgbyco1sBHplZRZ8Gsts8UGiIuQ8%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1670847388", oauth_version="1.0"
Content-Length: 213
Content-Type: application/x-www-form-urlencoded
Connection: close

amount=100
&client_orderid=34T43R77N
&currency=USD
&deposit2card=false
&destination_card_recurring_payment_id=1491854
&ipaddress=1.1.1.1
&order_desc=Your%20order%20description
&redirect_url=http%3A%2F%2Fwww.example.com
&server_callback_url=https://httpstat.us/200

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

HTTP/1.1 200
Server: server
Date: Mon, 12 Dec 2022 12:17:14 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: 285

type=async-form-response
&serial-number=00000000-0000-0000-0000-000002ddc2d7
&merchant-order-id=34T43R77N
&paynet-order-id=6863948
&redirect-url=https%3A%2F%2Fsandbox.sbctech.ru%2Fpaynet%2Fform%2Finit%2FBB587546567A31587163597A684535634A775969614A66354B455A714F6F32684D61414E78767241354872343D

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

HTTP/1.1 200
Server: server
Date: Mon, 12 Dec 2022 12:08:14 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: 132

type=validation-error
&serial-number=00000000-0000-0000-0000-000002ddc2b8
&error-message=Recurring+payment+not+found
&error-code=122

Перевод по форме PAN to Form

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

POST /paynet/api/v4/transfer-form/39915 HTTP/1.1
Host: sandbox.sbctech.ru
User-Agent: curl/7.83.0
Accept: */*
Authorization: OAuth oauth_consumer_key="TestMerchant", oauth_nonce="BpGsiUR8CbIjGAD1Qxu8MTtGHnlIvzcF", oauth_signature="ozovWc0wjugTlGfrS8TeSxqQtnSEQ7UrGh7z6B5px5BoKgTWF44Ej6VCAxCWMl%2B1Qxg5iZ5ExOqTWZ2GTx70ly%2B%2BgHkSmz3t02PEr9XJsj2%2FOm4XFoF0LnbVPDje7AmZZBuF2l0iandlUBjJVA%2BarD6dWVv8LNrv3RVyheuhBreAr7dLcSD4Iu44MH76tOZS%2BuMnqqFjKwC37owAdC7xtJwOIF8wrFM272qHnzxbfvZRaJruoG6WO%2F%2BMGJLPnaNbrhfJ99%2BtvCybb0CsVMQqJ%2FsUWM8Z89ci6a4MCPE41v1i9lXyvkZDm6qfoVgKVPUHVVsjbvuu5Ub7MeMgBsl76ZrRsi9yLiHmPLQGqhzxydy14GpCNH9FFM2BdRSlkxfBYV1yzX2Ym4gZMq6myvVsCTDgHeGXeQe%2F%2F7z6lLE3S0%2BgcA6NkuhfLU7lvAl0CguRAvU3%2FlVh3R1p8C9S3BXQak6eM0xYp7hO1wQKXMq4uMM2FjmtTUYe6ZiqyjGbkTrrIEkD%2Fo%2FX1NXXylMbWxuNyoTnQXx%2BQzDsUrY3Mhtb%2FslwCGDY4puOlwiVqGg31EBz0wFWzJFX7n2uQO76g5q%2FnTJqf3dq3AdTC6xpaGC2kek0fxc6FEDdaoVeQ3PwJWYi1kcPbwkcvo4gIi03rcO3JUJZF3TfomkFs%2BFnh%2FwLJHs%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1670569138", oauth_version="1.0"
Content-Length: 275
Content-Type: application/x-www-form-urlencoded
Connection: close

amount=100
&card_printed_name=Test%20Test
&client_orderid=34T43R77N
&credit_card_number=4047753518764320
&currency=USD
&cvv2=123
&deposit2card=false
&expire_month=12
&expire_year=2023
&ipaddress=1.1.1.1
&order_desc=Your%20order%20description
&redirect_url=http%3A%2F%2Fwww.example.com
&server_callback_url=https://httpstat.us/200

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

HTTP/1.1 200
Server: server
Date: Fri, 09 Dec 2022 06:59:20 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: 285

type=async-form-response
&serial-number=00000000-0000-0000-0000-000002ddc004
&merchant-order-id=34T43R77N
&paynet-order-id=6863822
&redirect-url=https%3A%2F%2Fsandbox.sbctech.ru%2Fpaynet%2Fform%2Finit%2FBB587546567A31587163597A684535634A775969614A61365A5A5637456C4545743867705438697A512F30633D

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

HTTP/1.1 403
Server: server
Date: Fri, 09 Dec 2022 06:45:14 GMT
Content-Type: text/html
Content-Length: 735
Connection: close
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>403</title>
    <style type="text/css">
        body {
            font-family: Arial, sans-serif;
            font-size: 130%;
            background-color: #eee;
        }
        p {
            margin: 10em auto 0;
            width: 500px;
            border: 1px solid gray;
            text-align: center;
            vertical-align: middle;
            padding: 40px 20px;
            background-color: #fff;
            -webkit-border-radius: 20px;
            -moz-border-radius: 20px;
            border-radius: 20px;
        }
    </style>
</head>
<body>
    <p>Access is denied</p>
</body>
</html>

Перевод по форме RPI to Form

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

POST /paynet/api/v4/transfer-form/39915 HTTP/1.1
Host: sandbox.sbctech.ru
User-Agent: curl/7.83.0
Accept: */*
Authorization: OAuth oauth_consumer_key="TestMerchant", oauth_nonce="y03UAVaLM9NXEwAHD0R9YDCQQFzRWx8b", oauth_signature="Zgx05s2b%2Fr4wSbo0sb2tGXbhPeDYlfJfnziSH57mkYfEMNtGoWCeUlLanQLKq1ddusIBhGUFwpwoh5f22y9tqHRsekiAQ92s9ixQxmvE8sEV3Ov%2FHoTyktrxN0vhPxuwSmwD%2FhX%2FOMJgDaCoOZK%2BxeXfPRVRwlNM8LsDd29i%2FnIUsExWCBujs3M5ThYGz58UJdZmOxrWW3poH2Lb6Fw9b6XMwV2DzvyomhMzZfyQYYX%2BhP22rCmXTg%2BEyTVnJDBiWI3pF6WYQFjdO5tPbcK4bxw4IYNIKKEi78dw0%2FZcb65gfHlaUtqHd3ZXiFiob4YFeV%2B1XKI2wSVBVemEd3jVjOFXDZv2GLzrZOUkxcns6BqkRxMqaWc9%2FbpsL65XdFxB4LUuP2h1PVk6A5yjjanSjp1XqzyAx8EGpxYGAzIPNSsYPVN9x5TuyIqtYVXhz2y0z8RPx5VFmSYr%2BaCr6ruhRNkyonNmk47oPkIkG9PpLivBaq8PnIzUNpExTRIYJXJOwD69CjCPxT%2Fhr3udDQJD4ZHFE3TNA9g1H0VRL%2Ff60jPhZeanf9MgcFqz6jckPQghBixOaTBf9DmP9jmv12IQZ3PR3J3n53nDEUIw%2Fhiga3%2BdZswkJMYS57VB282SVfDXQPO%2F40OC%2B3annev%2BMftiSfChhRgazDRToCnbETXqoKc%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1670850681", oauth_version="1.0"
Content-Length: 266
Content-Type: application/x-www-form-urlencoded
Connection: close

amount=100
&card_recurring_payment_id=1491854
&client_orderid=34T43R77N
&currency=USD
&cvv2=123
&deposit2card=false
&ipaddress=1.1.1.1
&order_desc=Your%20order%20description
&redirect_url=http%3A%2F%2Fwww.example.com
&server_callback_url=https://httpstat.us/200

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

HTTP/1.1 200
Server: server
Date: Mon, 12 Dec 2022 13:12:21 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: 285

type=async-form-response
&serial-number=00000000-0000-0000-0000-000002ddc34e
&merchant-order-id=34T43R77N
&paynet-order-id=6863959
&redirect-url=https%3A%2F%2Fsandbox.sbctech.ru%2Fpaynet%2Fform%2Finit%2FBB587546567A31587163597A684535634A775969614A5A716755336669466574615739747A737059777A50493D

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

HTTP/1.1 200
Server: server
Date: Mon, 12 Dec 2022 12:25:05 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: 176

type=validation-error
&serial-number=00000000-0000-0000-0000-000002ddc2ec
&merchant-order-id=34T43R77N
&error-message=Src+card+cvv2+should+be+filled+in+transfer.
&error-code=29

Перевод по форме Form to Form

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

POST /paynet/api/v4/transfer-form/39915 HTTP/1.1
Host: sandbox.sbctech.ru
User-Agent: curl/7.83.0
Accept: */*
Authorization: OAuth oauth_consumer_key="TestMerchant", oauth_nonce="3FUX1QCRBPF7am99UO4bty1qD7FK08I8", oauth_signature="CCvlgjfVBZOwoMS%2FbUXv1LiRlc0Nu3Owf3FwNmPnbP49RWi3ve3VE9Jt61QpRx14pmCz3xFKQt%2Bi4UvXJYlsn206TSZ9H7TGCSHhQQP5vD0mm3Pnq0YgtI2oPpn2PhgM%2FlgwwWcBjBqmCyzM%2FGGqK24zn5C20bxvHL9LfuMgF4bEpIYDGXVh3%2BbhlU5Z2H25fjjttZylm1SLhAi9lOct2%2BtH00TJ%2FgjdWR%2FCnIroLVPWqnYbE8f%2F%2Bz1HuynqW684UUaAiB8WgEulH1BBM6HqYiFAVyfWlLNzDv08cKZew7JPsso17XBdqYyE2QWkREM61FPSQpQsuAnRpezxjRZnmxsShXKqgNwj%2B%2BVeEEP7Z0IFqUreDgSYYSntrgtvZHhX6oNuEn4V8jWA6TO0wPNPKqkEXTk7w53nF0Hn%2FLgAa3FfYSHtCnFP1uELmPnVrO03IWaPPw0%2BcCJzNMua7g%2FYjlCsdV3tlwUwne1R0V3togR5k%2FTnG%2Bub4txjaFeqOm9p517ppKZQn8Fe0jtIIJMCYVRVmsYkeBZyyRgcdIBOAn09fCKZ7y74gI12py%2FvVzagFCjZo05T20gY6OpCkrP4HhWEkKJhrqSCBe7NLC1xZDszfkLFjF9Z4dWvk2PIcNfI3SGYZRks0YFPECycfYzYIJfuKplYAACzR47h30SaOiI%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1670835177", oauth_version="1.0"
Content-Length: 167
Content-Type: application/x-www-form-urlencoded
Connection: close

amount=100
&client_orderid=34T43R77N
&currency=USD
&deposit2card=false
&ipaddress=1.1.1.1
&order_desc=Your%20order%20description
&redirect_url=http%3A%2F%2Fwww.example.com
&server_callback_url=https://httpstat.us/200

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

HTTP/1.1 200
Server: server
Date: Mon, 12 Dec 2022 08:53: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: 285

type=async-form-response
&serial-number=00000000-0000-0000-0000-000002ddc1f8
&merchant-order-id=34T43R77N
&paynet-order-id=6863917
&redirect-url=https%3A%2F%2Fsandbox.sbctech.ru%2Fpaynet%2Fform%2Finit%2FBB587546567A31587163597A684535634A775969614A613368326D746C2B72645043314744502B537A6E57343D

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

HTTP/1.1 403
Server: server
Date: Mon, 12 Dec 2022 09:18:33 GMT
Content-Type: text/html
Content-Length: 735
Connection: close
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>403</title>
    <style type="text/css">
        body {
            font-family: Arial, sans-serif;
            font-size: 130%;
            background-color: #eee;
        }
        p {
            margin: 10em auto 0;
            width: 500px;
            border: 1px solid gray;
            text-align: center;
            vertical-align: middle;
            padding: 40px 20px;
            background-color: #fff;
            -webkit-border-radius: 20px;
            -moz-border-radius: 20px;
            border-radius: 20px;
        }
    </style>
</head>
<body>
    <p>Access is denied</p>
</body>
</html>

Перевод по форме Deposit to Form

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

POST /paynet/api/v4/transfer-form/39915 HTTP/1.1
Host: sandbox.sbctech.ru
User-Agent: curl/7.83.0
Accept: */*
Authorization: OAuth oauth_consumer_key="TestMerchant", oauth_nonce="SDrbaim155azbf2UthcVDrhwiOA6liE4", oauth_signature="CFUUC1Y6QT5Gj7LA%2FdW6gkGN%2Fh73J8HAxhvYtFx%2F%2FChlQIU7f4uvVmKpOossrRD05wdx0ENHJZLZ8SI%2B610ygcWP%2B3K%2FqEYDI7qjdg8HgKlT3BnjSoGU6EjGjvcMwQSY0AwNJ4adYYZG6G%2Ble9SOvbPcQalkfxIjpTl%2FkyrIVtNS4h9ExkD%2Fg9UUXZ%2F2YAOCyhTy26QwOLOo5NmNeh%2FX7wpqPEyjHfEE%2FWbc3iSNSjlJA9b%2BfX5eFAVxzzZ2X76HRxy%2FuHqah9NszgXsagMHpXOpvovNRLEh7NFBqVDWhoHFfDS%2Bwd6vcLqXxwLKOVecmq06GN1%2BiZX4C9QebaNw6JSx72jMon3hnn37pUSLhzWXz%2BwlMX7XN%2FcTWsZ0kL51DzFXwPAJPVAeNevgxlaFtbELMGcZNOU19u72cOZKMu7%2FsxLAfCgUITCO2NhvZw%2BR8xUZUcxvwu4fvoTXr6rf8r0iloJIA9RoaKobzmPUDcGx3%2F4Hswjbqk7YOg6jxQJD6ZoKscHpLiQLvBWPILsSVMpQUpnUqzBNGexdCd8zaRzqiszwz4hEg6teTMFOLA%2FoQ8Wu%2FxtSs8JMuXsWtestY9h1y5KuXWDy8O9hpN45pBF%2BvtoDfyr6ktKrkZZTZG49FBKk%2FcKi5FjzL5Bsbwv9fgk1%2BRYDexMtHCqX%2Fdrz%2BzMM%3D", oauth_signature_method="RSA-SHA256", oauth_timestamp="1670851416", oauth_version="1.0"
Content-Length: 166
Content-Type: application/x-www-form-urlencoded
Connection: close

amount=100
&client_orderid=34T43R77N
&currency=USD
&deposit2card=true
&ipaddress=1.1.1.1
&order_desc=Your%20order%20description
&redirect_url=http%3A%2F%2Fwww.example.com
&server_callback_url=https://httpstat.us/200

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

HTTP/1.1 200
Server: server
Date: Mon, 12 Dec 2022 13:23:58 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: 285

type=async-form-response
&serial-number=00000000-0000-0000-0000-000002ddc35a
&merchant-order-id=34T43R77N
&paynet-order-id=6863960
&redirect-url=https%3A%2F%2Fsandbox.sbctech.ru%2Fpaynet%2Fform%2Finit%2FBB587546567A31587163597A684535634A775969614A5878476D6E717A31324167486F61674C6830743070343D

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

HTTP/1.1 403
Server: server
Date: Mon, 12 Dec 2022 13:19:46 GMT
Content-Type: text/html
Content-Length: 735
Connection: close
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>403</title>
    <style type="text/css">
        body {
            font-family: Arial, sans-serif;
            font-size: 130%;
            background-color: #eee;
        }
        p {
            margin: 10em auto 0;
            width: 500px;
            border: 1px solid gray;
            text-align: center;
            vertical-align: middle;
            padding: 40px 20px;
            background-color: #fff;
            -webkit-border-radius: 20px;
            -moz-border-radius: 20px;
            border-radius: 20px;
        }
    </style>
</head>
<body>
    <p>Access is denied</p>
</body>
</html>

Коллекция Postman

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

Введите приватный ключ, содержащийся в PKCS#1. См. RSA-SHA256.

Debug form
URL
login

login should be used as Consumer Public for OAuth

destination-card-no
credit_card_number
destination_card_recurring_payment_id

use either RPI or card number, not both

card_recurring_payment_id

use either RPI or card number, not both

amount
currency
cvv2
card_printed_name
expire_month
expire_year
ipaddress
order_desc
redirect_url
redirect_success_url
redirect_fail_url
client_orderid
merchant_form_data
deposit2card

boolean used only to determine if transaction type is deposit2card

sender_first_name
sender_last_name
sender_middle_name
sender_ssn
sender_birth_place
sender_birthday
sender_address1
sender_city
sender_state
sender_zip_code
sender_citizenship
sender_country_code
sender_phone
sender_cell_phone
sender_email
sender_resident
sender_identity_document_id
sender_identity_document_series
sender_identity_document_number
sender_identity_document_issuer_name
sender_identity_document_issuer_department_code
sender_identity_document_issue_date
receiver_first_name
receiver_last_name
receiver_middle_name
receiver_birth_place
receiver_birthday
receiver_address1
receiver_city
receiver_state
receiver_zip_code
receiver_region
receiver_area
receiver_citizenship
receiver_country_code
receiver_phone
receiver_email
receiver_resident
receiver_identity_document_id
receiver_identity_document_series
receiver_identity_document_number
receiver_identity_document_issuer_name
receiver_identity_document_issuer_department_code
receiver_identity_document_issue_date

Normalized parameters string to sign, according to OAuth 1.0a rules
POST body parameters to submit
OAuth 1.0a headers to submit.
HEX Encoded Signature
* HEX encoded string is for debug purposes only. You shouldn't send this string to the server neither in HEX nor in Encoded HEX representation.
Base64 Encoded Signature
* Binary RSA-SHA256 signature directly encoded in base64 should be sent to the server.