3.21. /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

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

Sender Customer Data

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

Параметр

Описание

Значение

sender_first_name

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

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

sender_last_name

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

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

sender_middle_name

Sender’s middle name/patronym.

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

sender_ssn

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

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

sender_birth_place

Имя Отправителя-владельца карты.

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

sender_birthday

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

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

sender_address1

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

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

sender_city

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

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

sender_state

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

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

sender_zip_code

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

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

sender_citizenship

Sender`s citizenship.

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

sender_country_code

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

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

sender_phone

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

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

sender_cell_phone

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

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

sender_email

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

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

sender_resident

Is sender a resident?

Тип: Boolean

sender_identity_document_id

Имя Отправителя-владельца карты.

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

sender_identity_document_series

Номер банковской карты Отправителя.

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

sender_identity_document_number

Номер банковской карты Отправителя.

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

sender_identity_document_issuer_name

Номер банковской карты Отправителя.

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

sender_identity_document_issuer_department_code

Sender`s identity document issuer department code.

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

sender_identity_document_issue_date

Sender`s identity document issue date.

Тип: String

Receiver Customer Data

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

Параметр

Описание

Значение

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

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

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

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

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

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

receiver_middle_name

Receiver’s middle name/patronym.

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

receiver_birth_place

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

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

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

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

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

receiver_address1

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

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

receiver_city

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

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

receiver_state

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

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

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

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

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

receiver_region

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

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

receiver_area

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

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

receiver_citizenship

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

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

receiver_country_code

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

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

receiver_phone

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

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

receiver_email

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

Тип: 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
Длина: 128

receiver_identity_document_number

Receiver`s identity document number.

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

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
Длина: 3

receiver_identity_document_issue_date

Receiver`s identity document issue date.

Тип: String

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

Примечание

Ответ имеет заголовок 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.