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. В результате форма оплаты будет выглядеть подобным образом:
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 | Фамилия |
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 | Фамилия клиентов |
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" } }