Santrapay API для веб-разработчиков

Регистрация и верификация

1) Зарегистрируйтесь в системе SantraPay: https://secure.santrapay.com/site/signup

2) Войдите в систему и перейдите на страницу создания мерчанта: https://secure.santrapay.com/merchant

3) В левой части заполните необходимые поля, а в правой выберите доступные методы оплаты для Вашего мерчанта. Адрес веб-сайта необходимо указать вместе с протоколом, например: https://my-merchant-site.com .
После этого нажмите на кнопку "Отправить запрос". Добавленный сайт появится внизу страницы. Для просмотра параметров мерчанта просто кликните по ссылке сайта.

4) Пройдите верификацию сайта: https://secure.santrapay.com/verification/merchant .
Выберите сайт и нажмите на кнопку "Подтвердить". Будет создан автоматический запрос в Службу поддержки SantraPay о том, что Вы хотите подтвердить свой сайт. Сохраните полученный текстовый файл и разместите его в корневой директории сайта, не меняя его название.

Файл должен быть доступен по сслыке, подобного вида:
https://my-merchant-site.com/6023275085114c5c1b7c4ddc1998d447.txt

Интеграция

1) Выберите добавленный сайт из списка внизу страницы: https://secure.santrapay.com/merchant

Вам понадобятся следующие параметры:

  • Merchant ID
  • Secret
  • Payment Methods ID

2) Создайте платеж.

Параметры платежа указываются в виде ассоциативного массива. Затем они кодируются и создается подпись в виде их хэша.

Параметр Ключ Описание
Мерчант merchant Ваш Merchant ID
Ордер order Номер ордера в Вашей системе
Цена amount Сумма, которую Вы хотите получить от покупателя
Валюта currency Валюта, в которой указана цена
Описание desc Описание платежа (Необязательно)
Метод оплаты method Payment Method ID (Необязательно)
Показать кнопку выбора метода оплаты allowchoice Если параметр allowchoice = true , то будет выводиться кнопка для выбора других платежных методов на странице оплаты. Если параметр не задан то нет. (Необязательно)
$params = [
	'merchant'  => 235,
	'order'     => '12345ABC',
	'amount'    => 51.3,
	'currency'  => 'EUR',
	'desc'     => 'purchase #43968',
];
$secret = 'Your_Secret';
$data = base64_encode(json_encode($params));
$sign = hash_hmac('sha256', $data, $secret);
                

Если передать method в параметрах, например:
$params['method'] => 123,
то клиент после нажатия на кнопку оплаты будет перенаправлен сразу на страницу оплаты с помощью указанного метода.

Доступные методы:

Метод Payment Methods ID
Bitcoin 2
Etherium 3

Если задать method в параметрах в виде пустой строки:
$params['method'] => '',
то клиент после нажатия на кнопку оплаты будет перенаправлен сразу на страницу оплаты через личный кабинет SantraPay.

3) Создайте форму платежа.

В ней необходимо указать полученные значения $data и $sign. В результате форма оплаты будет выглядеть подобным образом:

<form action="https://secure.santrapay.com/api/merchant" method="post">
	<input type="hidden" name="data"
           value="eyJtZXJjaGFudCI6IjQiLCJvcmRlciI6IjIzNTMyNjIzMyIsImN1cnJlbmN5IjoiVVNEIiwiYW1vdW50IjoiNTEuNDAiLCJ==">
	<input type="hidden" name="sign" value="b657953b504975057c7a466b0131583daea940b12fdb26fbba84a36ec83518b2">
	<button type="submit">Pay</button>
</form>

SantraPay поддерживает несколько языков. Для указания конкретного языка страниц оплаты необходимо отправлять форму на подобный адрес: https://secure.santrapay.com/ru/api/merchant

4) Задайте обработчик платежа.

После того, как произойдет оплата, её детали будут направлены по адресу Process URL Вашего мерчанта.
Чтобы задать Process URL, необходимо обратиться в Службу поддержки SantraPay:
https://secure.santrapay.com/support

Данные в виде ассоциативного массива передаются в обработчик платежа с помощью POST-запроса.
Они имеют структуру:

$_POST = [
	'order' => string,
	'data' => array,
	'sign' => string,
];
                    

Информация, содержащаяся под ключом 'data', в свою очередь так же имеет структуру ассоциативного массива:

Параметр Ключ Описание
Дата счета date Дата выставления счета
Дата оплаты payDate Дата оплаты счета
Сумма счета amount Сумма выставленного Вами счета
Валюта счета currency Валюта выставленного Вами счета
Метод оплаты method Название метода, с помощью которого произошла оплата счета
Валюта оплаты methodCurrency Валюта, в которой оплачивался счет
Сумма оплаты methodAmount Сумма счета, пересчитанная в валюту оплаты счета
Итоговая сумма methodAmount Итоговая сумма счета в валюте оплаты с учетом комиссий
Santra транзакция transaction Номер транзакции в системе SantraPay
Транзакции в сети transactionNetwork Номер транзакции в блокчейне
Валюта зачисления transactionCurrency Валюта, в которой поступили средства на счет мерчанта в системе SantraPay
Сумма зачисления transactionAmount Сумма поступивших на счет мерчанта средств в системе SantraPay
Итоговая сумма transactionTotal Итоговая сумма транзакции в системе SantraPay с учетом комиссий
Описание desc Описание платежа
Задержка платежа cautionPaymentDelay Задержка платежа в секундах. Указывается, если покупатель произвел оплату, но по каким-то причинам, она пришла в SantraPay с запазданием
Частичная оплата cautionPartialPayment Сумма частичной оплаты в валюте зачисления в системе SantraPay. Указывается, если клиент произвел неполную оплату. Например, при переводе крипто валюты.

В ответ на переданные параметры наш сервис будет ожидать Вашего ответа.
Ответ ДОЛЖЕН имееть следующий вид:

  • Начинаться со слов 'success' или 'error'.
  • Далее через знак '|' может содержать URL для редиректа покупателя.
  • Быть не длиннее 255 символов.

Пример простейшего обработчика:

$post = $_POST;
$secret = 'Your_Secret';
if (isset($post['order'], $post['data'], $post['sign'])) {
	$data = base64_encode(json_encode($post['data']));
	$sign = hash_hmac('sha256', $data, $secret);
	if ($sign == $post['sign']) {
		if (isset($post['data']['cautionPartialPayment'])) {
			exit("error|https://my-merchant-site.com/payment/error/?order={$post['order']}");
		}
		exit("success|https://my-merchant-site.com/payment/complete/?order={$post['order']}");
	}
}
                

Переводы в Биткоинах будут зачислены на счет Вашего мерчанта только после 3х подтверждений, в то время как уведомления на Process URL отсылаются после 2-х подтверждений.

Оплата в системе SantraPay не будет завершена, пока платеж не будет обработан Вашим сайтом и мы не получим корректный ответ.

После получения корректного ответа от Вашего обработчика платежа покупателю будет показано уведомление об успешной/неуспешной оплате, а также предложено перейти по указанному URL, если он будет передан.

Аутентификация

Аутентификация происходит посредством Http Bearer Token. Токен выдается после подачи заявки. Ответ от сервера в JSON формате .

Информация об авторизованном пользователе

https://secure.santrapay.com/api/

curl -X GET "https://secure.santrapay.com/api/" -H "accept: application/json" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"

Пример на PHP:

if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$headers = array();
$headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
$out = curl_exec($curl);
curl_close($curl);
}
                    

История операций

https://secure.santrapay.com/api/history

account - номер кошелька, по которому нужно посмотреть историю

curl -X POST "https:// secure.santrapay.com/api/history " -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "account=RD1234567" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"

Пример на PHP:

$postData = array (
'account' => 'RD1234567',
);
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/history');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$headers = array();
$headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
$out = curl_exec($curl);
curl_close($curl);
}
                

Информация о балансе

https://secure.santrapay.com/api/balance

account - номер кошелька, по которому нужно получить баланс

currency - валюта

curl -X POST "https:// secure.santrapay.com/api/balance " -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "account=RD1234567¤cy=USD" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"

Пример на PHP:

$postData = array (
'currency' => 'USD',
'account' => 'RD1234567',
);
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/balance');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$headers = array();
$headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
$out = curl_exec($curl);
curl_close($curl);
}
                

Выплаты \ Массовые выплаты

https://secure.santrapay.com/api/payout

merchant - ID мерчанта в системе Santrapay

to - номер кошелька, email, телефон или крипто адрес получателя в системе SantraPay

amount - сумма платежа

currency - валюта платежа

fee - признак того , кто платит комиссию. Если не задан, то платит мерчант, если true или 1 - то платит клиент

curl -X POST "https://secure.santrapay.com/api/payout" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "merchant=123456&to=RD1234567&amount=10¤cy=USD" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"

Возвращает JSON строку с номером транзакции при успешной операции.

Пример на PHP:

$postData = array (
'amount' => 10,
'currency' => 'USD',
'to' => 'client@gmail.com',
'merchant' => 12345678,
);
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/payout');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$headers = array();
$headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
$out = curl_exec($curl);
curl_close($curl);
}
                

Перевод средств

https://secure.santrapay.com/api/transfer

from - Ваш номер кошелька, с которого будет производится оплата

to - номер кошелька, email, телефон или крипто адрес получателя в системе SantraPay

сумма платежа

валюта платежа

curl -X POST "https://secure.santrapay.com/api/transfer" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "from=RD1234567&to=RD1234568&amount=10¤cy=USD" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"

Возвращает JSON строку с номером транзакции при успешной операции.

Пример на PHP:

$postData = array (
'from' => 'RD1234567',
'to' => 'RD1234568',
'amount' => 10,
'currency' => 'USD',
);
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/transfer');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$headers = array();
$headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
$out = curl_exec($curl);
curl_close($curl);
}
                

Проверка доступности кошелька

https://secure.santrapay.com/api/check-account

номер кошелька, который необходимо проверить

curl -X POST "ttps://secure.santrapay.com/api/check-account" -H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "account=RD1234567" -H "Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533"

Возвращает JSON строку true или false

{"success":true}

Пример на PHP:

$postData = array (
'account' => 'RD1234567',
);
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/check-account');
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
$headers = array();
$headers[] = 'Authorization: Bearer a9ac071cda6f4bd6e20d29695c9a4533';
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
$out = curl_exec($curl);
curl_close($curl);
}
                

Индивидуальные выплаты

Обращение по api к выплатам требует передачи заголовка для аутентификации

Headers 
Authorization: Bearer {{access_token}}

Первый шаг - это запрос предложения

https://secure.santrapay.com/api/withdrawal/request

POST:

Обязательные параметры
Параметр Описание
amount Запрашиваемая сумма вывода
currency Валюта запрашиваемой суммы вывода
currency_in Валюта перевода
account_in Аккаунт для перевода (можно указывать email, кошельки, крипто адреса и пр.)
order Идентификатор заказа у Мерчанта
merchant ID мерчанта в системе Santrapay
Дополнительные параметры
client_id Идентификатор клиента у Мерчанта
desc Произвольное описание транзакции

Второй шаг - это подтверждение запроса

https://secure.santrapay.com/api/withdrawal/confirm

POST:

Параметр Описание
offer_id ID предложения в системе Santrapay
merchant ID мерчанта в системе Santrapay
sign Подпись

Подпись формируется следующим образом:

$sign = hash_hmac('sha256', $offer_id . $merchant, {{secret}});
                    

Ответ возвращается в формате JSON.:

Пример хорошего ответа:

{"status":"success","tx":"5B89B69E5533B2A9F2CAC64B6"}

tx - хэш транзакции в системе Santrapay

Пример ответа с ошибкой:

{"name":"Bad Request","message":"Amount cannot be blank.","code":0,"status":400}
{"name":"Bad Request","message":"Offer already paid","code":100,"status":400}

Пополнить аккаунт через банк

https://secure.santrapay.com/api/deposit/request

curl --location --request POST "https://secure.santrapay.com/api/deposit/request" \ --header "Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35" \ --header "Content-Type: application/x-www-form-urlencoded" \ --form "amount=99" \ --form "currency=USD" \ --form "oid=17" \ --form "language=English" \ --form "senderFirstName=Test Name" \ --form "senderSecondName=Test Name" \ --form "email=test@gmail.com" \ --form "address=Test Address" \ --form "senderCountry=India" \ --form "bankName=SBI" \ --form "bankCountry=India" \ --form "sign=f9e16383cf4c06649741207a54a814ba8f047505c99bf1bbfd8370c16e50955d" \ --form "file[]=@"

POST:

Параметр Описание
amount Сумма депозита
currency Валюта пополнения
oid id запроса Мерчанта
language язык формирования инвойса для отправителя
senderFirstName Имя
senderSecondName Фамилия
email Email
address Адрес отправителя
senderCountry Страна отправителя
bankName Название банка отправителя
bankCountry Страна банка отправителя
sign Подпись
file[] Загрузка документов

Шаги для формирования подписи в запросе:

Шаг 1: Подпись необработанных данных:

{"oid":"17","amount":"99","currency":"USD","senderFirstName":"Test Name","senderSecondName":"Test Name"}

Шаг 2: Данные 64 из шага 1:

eyJvaWQiOiIxNyIsImFtb3VudCI6Ijk5IiwiY3VycmVuY3kiOiJVU0QiLCJzZW5kZXJOYW1lIjoiVGVzdCBOYW1lIn0=

Шаг 3:

hash_hmac('sha256',’<output of step2>’, $secret) of step 2
f9e16383cf4c06649741207a54a814ba8f047505c99bf1bbfd8370c16e50955d

Пример для PHP:

                    $postData = array (
                        'amount' => 10,
                        'currency' => 'USD',
                        'oid' => '17',
                        'language'=>'English',
                        'senderFirstName'=>'Test Name',
                        'senderSecondName'=>'Test Name',
                        'email'=>'test@gmail.com',
                        'address'=>'Test Address',
                        'senderCountry'=>'Country',
                        'bankName'=>'Bank',
                        'bankCountry'=>'Country'
                        'sign'=>'cc6b36890daeca59a828dd83483fad139a0e68c733602a25147b9d8371c8db4d'
                    );
                    if( $curl = curl_init() ) {
                        curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/deposit/request');
                        curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
                        $headers = array();
                        $headers[] = 'Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35';
                        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
                        curl_setopt($curl, CURLOPT_POST, TRUE);
                        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
                        $out = curl_exec($curl);
                        curl_close($curl);
                    }
                

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

{ "responseData": { "currency": "USD", "amount": "99", "datetime": "2019-02-25 13:38:23", "depositId": 441, "status": 0, "invoiceNumber": "12121", "invoice": "https://secure.santrapay.com/api/deposit/invoice?id=441" }, "result": { "status": "success", "message": "Transaction successful" } }

Пример ответа файла:

{ "responseData": null, "result": { "status": "error", "message": "Invalid authorization" } }

Получение статуса депозита (пополнения)

https://secure.santrapay.com/api/deposit/status

curl --location --request POST "https://secure.santrapay.com/api/deposit/status" \ --header "Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35" \ --header "Content-Type: application/x-www-form-urlencoded" \ --data "depositId=406&oid="

depositId -> id пополнения
or
oid -> id запроса Мерчанта

Пример для PHP:

                    $postData = array (
                        'depositId' => 73,
                        'oid' =>
                    );
                    if( $curl = curl_init() ) {
                        curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/deposit/status');
                        curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
                        $headers = array();
                        $headers[] = 'Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35';
                        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
                        curl_setopt($curl, CURLOPT_POST, TRUE);
                        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
                        $out = curl_exec($curl);
                        curl_close($curl);
                    }
                

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

{ "responseData": { "id": "406", "amount": "99.0000000000000000", "currency": "USD", "depositAmount": null, "depositCurrency": "USD", "status": "0", "datetime": "2019-02-21 10:44:11", "datetimeProcessed": null, "invoiceNumber": "2348" }, "result": { "status": "success", "message": "Transaction successful" } }

Пример ответа файла:

{ "responseData": null, "result": { "status": "error", "message": "Invalid authorization" } }

Уведомление для изменения статуса депозита:

Пример уведомления:

{ "id": 498, "amount": "100.0000000000000000", "currency": "USD", "depositAmount": null, "depositCurrency": "USD", "status": "1", "datetime": "2019-03-14 09:18:26", "datetimeProcessed": null, "invoiceNumber": "2563", "oid": "Invoice #2563", "sign": "48a4421f0a3a5a36fda1a70b7b78c73e79923bd18cffaae48a169d8c27df47f8" }

Шаги для уведомления создания подписи:

Необработанные данные для подписи:

{"id":498,"amount":"100.0000000000000000","currency":"USD","depositAmount":null,"depositCurrency":"USD","status":"1","datetime":"2019-03-14 09:18:26","datetimeProcessed":null,"invoiceNumber":"2563","oid":"Invoice #2563"}

Данные 64 из шага 1:

eyJpZCI6NDk4LCJhbW91bnQiOiIxMDAuMDAwMDAwMDAwMDAwMDAwMCIsImN1cnJlbmN5IjoiVVNEIiwiZGVwb3NpdEFtb3VudCI6bnVsbCwiZGVwb3NpdEN1cnJlbmN5IjoiVVNEIiwic3RhdHVzIjoiMSIsImRhdGV0aW1lIjoiMjAxOS0wMy0xNCAwOToxODoyNiIsImRhdGV0aW1lUHJvY2Vzc2VkIjpudWxsLCJpbnZvaWNlTnVtYmVyIjoiMjU2MyIsIm9pZCI6Ikludm9pY2UgIzI1NjMifQ==

Hash из шага 2:

hash_hmac('sha256',<output of step2>, 'cp52uedlhxc0sk8sowwsokc48ksoogo')
48a4421f0a3a5a36fda1a70b7b78c73e79923bd18cffaae48a169d8c27df47f8

Вывод денег банковским переводом

https://secure.santrapay.com/api/withdraw/request

curl --location --request POST "https://secure.santrapay.com/api/withdraw/request" \ --header "Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35" \ --header "Content-Type: application/x-www-form-urlencoded" \ --form "amount=10" \ --form "currency=USD" \ --form "oid=17" \ --form "beneficiaryType=individual" \ --form "account=A123456" \ --form "iban=12121212" \ --form "bankSwift=S1234" \ --form "paymentsDetails=Test" \ --form "receiverCountry=IN" \ --form "receiverZip=12345" \ --form "receiverCity=Test" \ --form "receiverAddress=Test Address" \ --form "receiverFirstName=First" \ --form "receiverLastName=Last" \ --form "corporateName=Corporate Name" \ --form "comment=Comment" \ --form "sign=8fbf350c2e05f605d75ae606103e5ef4c64ae7e4c2ee733ba1481f4a44a50a55" \ --form "file[]=@"

POST:

Параметр Описание
amount Сумма вывода
currency Валюта вывода
oid id запроса Мерчанта
beneficiaryType Тип бенефициара, т.е. физическое или юридическое лицо
account Номер аккаунта
iban IBAN
bankSwift Bank SWIFT
paymentsDetails Детали платежа
receiverCountry Страна получателя. Код страны 2 символа
receiverZip Индекс получателя
receiverCity Город получателя
receiverAddress Адрес получателя
receiverFirstName Требование, если тип бенефициара «физическое лицо»
receiverLastName Требование, если тип бенефициара «физическое лицо»
corporateName Требование, если тип бенефициара «юридическое лицо»
comment Комментарий
sign Подпись
file[] Загрузить документы

Шаги для формирования подписи в запросе:

Шаг 1: Подпись необработанных данных:

{"oid":"17","amount":"10","currency":"USD","account":"A123456","iban":"12121212","bankSwift":"S1234"}

Шаг 2: Данные 64 из шага 1:

eyJvaWQiOiIxNyIsImFtb3VudCI6IjEwIiwiY3VycmVuY3kiOiJVU0QiLCJhY2NvdW50IjoiQTEyMzQ1NiIsImliYW4iOiIxMjEyMTIxMiIsImJhbmtTd2lmdCI6IlMxMjM0In0=
                

Шаг 3:

hash_hmac('sha256',’<output of step2>’, '‘cp52uedlhxc0sk8sowwsokc48ksoogo’') of step 2
8fbf350c2e05f605d75ae606103e5ef4c64ae7e4c2ee733ba1481f4a44a50a55

Пример для PHP:

                    $postData = array (
                    ‘amount’ => 10,
                    ‘currency’ => ‘USD’,
                    ‘oid’ => ‘17’,
                    ‘beneficiaryType’ => ‘individual’,
                    ‘account’ => ‘A123456’,
                    ‘Iban’ => ‘12121212’,
                    ‘bankSwift’ => ‘S1234’,
                    ‘paymentsDetails’ => ‘Test’,
                    ‘receiverCountry’ => ‘IN’,
                    ‘receiverZip’ => ‘12345’,
                    ‘receiverCity’ => ‘Test’,
                    ‘receiverAddress’ => ‘Test Address’,
                    ‘receiverFirstName’ => ‘First’,
                    ‘receiverLastName’ => ‘Last’,
                    ‘corporateName’ => ‘Corporate Name’,
                    ‘comment’ => ‘Comment’
                    ‘sign’ => ‘8fbf350c2e05f605d75ae606103e5ef4c64ae7e4c2ee733ba1481f4a44a50a55’,
                    ‘file’ => []
                    );

                    if( $curl = curl_init() ) {
                    curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/withdraw/request');
                    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
                    $headers = array();
                    $headers[] = 'Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35';
                    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
                    curl_setopt($curl, CURLOPT_POST, TRUE);
                    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
                    $out = curl_exec($curl);
                    curl_close($curl);
                    }
                

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

{ "responseData": { "currency": "USD", "amount": 7.5, "fee": 2.5, "datetime": "2019-03-13 12:33:43", "withdrawalId": 105, "status": 0, "invoiceNumber": "2542" }, "result": { "status": "success", "message": "Transaction successful" } }

Пример ответа файла:

{ "responseData": null, "result": { "status": "error", "message": "Invalid authorization" } }

Получить статус вывода денег из банка

https://secure.santrapay.com/api/withdraw/status

curl --location --request POST "https://secure.santrapay.com/api/withdraw/status" \ --header "Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35" \ --header "Content-Type: application/x-www-form-urlencoded" \ --data "withdrawalId=406&oid="

withdrawalId -> Идентификатор вывода (ID)
or
oid -> id запроса Мерчанта

Пример для PHP:

                    $postData = array (
                        ‘withdrawalId’ => 406,
                        'oid' =>
                    );

                    if( $curl = curl_init() ) {
                    curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/withdrawdeposit/status');
                    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
                    $headers = array();
                    $headers[] = 'Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35';
                    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
                    curl_setopt($curl, CURLOPT_POST, TRUE);
                    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
                    $out = curl_exec($curl);
                    curl_close($curl);
                    }
                    

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

{ "responseData": { "id": "93", "amount": "7.5000000000000000", "currency": "USD", "fee": "2.5000000000000000", "status": "0", "datetime": "2019-03-11 09:49:44", "invoiceNumber": "2518" }, "result": { "status": "success", "message": "Transaction successful" } }

Пример ответа файла:

{ "responseData": null, "result": { "status": "error", "message": "Invalid authorization" } }

Подтверждение депозита

https://secure.santrapay.com/api/deposit/verification

curl --location --request POST "https://secure.santrapay.com/api/deposit/verification" \ --header "Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35" \ --header "Content-Type: application/x-www-form-urlencoded" \ --form "depositId=496" \ --form "oid=" \ --form "file[]=@"

file[] -> Документы
depositId -> Идентификатор депозита (ID)
or
oid -> id запроса Мерчанта

Пример для PHP:

                    $postData = array (
                    ‘file’ => [],
                    ‘depositId’ => 496,
                    'oid' =>’’
                    );

                    if( $curl = curl_init() ) {
                    curl_setopt($curl, CURLOPT_URL, 'https://secure.santrapay.com/api/deposit/verification);
                    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
                    $headers = array();
                    $headers[] = 'Authorization: Bearer 584fa7dda45ec9a4d9b5b56508db4e35';
                    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
                    curl_setopt($curl, CURLOPT_POST, TRUE);
                    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($postData));
                    $out = curl_exec($curl);
                    curl_close($curl);
                    }
                    

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

{ "result": { "status": "success", "message": "Transaction successful" } }

Пример ответа файла:

{ "result": { "status": "error", "message": "Documents already provided" } }

Отзыв заявки через форму

Первый шаг - запрос на вывод средств

https://secure.santrapay.com/api/merchant/payment-withdraw

POST:

Обязательные параметры
Параметр Описание
merchant ID мерчанта в системе Santrapay
order Идентификатор заказа у Мерчанта
amount Запрашиваемая сумма вывода
currency Валюта запрашиваемой суммы вывода
desc Произвольное описание транзакции
Дополнительные параметры
sign Подпись

Подпись формируется следующим образом:

                    $params = [
                        'merchant'  => '235',
                        'order'     => '12345ABC',
                        'amount'    => '51.3',
                        'currency'  => 'EUR',
                        'desc'     => 'purchase #43968',
                    ];
                    $secret = 'Your_Secret';
                    $data = base64_encode(json_encode($params));
                    $sign = hash_hmac('sha256', $data, $secret);
                    

В ответ вы получите страницу вывода средств с дополнительными полями, которые необходимо отправить.:

Вторым этапом является подача дополнительных данных запроса на вывод средств.

https://secure.santrapay.com/api/merchant/withdraw-submit

POST:

Параметр Описание
beneficiaryType Тип получателя
receiverFirstName Имя получателя
receiverLastName Фамилия получателя
corporateName Название компании
account Aккаунт
bankSwift Bank SWIFT
paymentsDetails Детали платежа
receiverCountry Страна получателя
receiverCity Город получателя
receiverAddress Адрес получателя
receiverZip Индекс получателя

В ответ вы получите страницу успеха транзакции с деталями транзакции или страницу ошибки, or error page.

Продавец добавляет документы клиентов

https://secure.santrapay.com/api/merchant/add-customers

POST:

Обязательные параметры
Параметр Описание
firstName Имя Клиента
lastName Фамилия клиентов
email Email
file[] Загрузка документов

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

{ "responseData": { "first_name": "zzzzz", "last_name": "ccccc", "email": "test@gmail.com", "merchant_id": 10 }, "result": { "status": "success", "message": "Transaction successful" } }

Пример ответа файла:

{ "responseData": null, "result": { "status": "error", "message": "Invalid input" } }