API платёжного шлюза Paykassa

API Paykassa – универсальное решение для работы с онлайн-платежами в криптовалютах.

IP-адрес сервера отправки уведомлений для SCI: 54.37.60.196, 51.91.80.241, 138.68.137.53. Актуальный список IP может быть получен в текстовом формате по URL: https://paykassa.pro/ips.txt или в JSON формате: https://paykassa.pro/ips.php

Быстрый старт для тех, кому
лень изучать подробную документацию

Получаем адрес для оплаты криптовалютами

Не забудьте. Подключить SCI класс, указать "Merchant ID" и "Merchant Password".

<!-- Выставление счета на оплату, получение адреса для оплаты --> <?php require_once('paykassa_sci.class.php'); //подключаем класс для работы с SCI, скачать можно по ссылке $paykassa_merchant_id = 'your_merchant_id'; // идентификатор мерчанта $paykassa_merchant_password = 'your_merchant_password'; // пароль мерчанта $amount = 0.350; $system = 'bitcoin'; $currency = 'BTC'; $order_id = 'shop_377'; $comment = 'comment'; $paykassa = new PayKassaSCI( $paykassa_merchant_id, $paykassa_merchant_password ); $system_id = [ "bitcoin" => 11, // поддерживаемые валюты BTC "ethereum" => 12, // поддерживаемые валюты ETH "litecoin" => 14, // поддерживаемые валюты LTC "dogecoin" => 15, // поддерживаемые валюты DOGE "dash" => 16, // поддерживаемые валюты DASH "bitcoincash" => 18, // поддерживаемые валюты BCH "zcash" => 19, // поддерживаемые валюты ZEC "ripple" => 22, // поддерживаемые валюты XRP "tron" => 27, // поддерживаемые валюты TRX "stellar" => 28, // поддерживаемые валюты XLM "binancecoin" => 29, // поддерживаемые валюты BNB "tron_trc20" => 30, // поддерживаемые валюты USDT "binancesmartchain_bep20" => 31, // поддерживаемые валюты USDT, BUSD, USDC, ADA, EOS, BTC, ETH, DOGE "ethereum_erc20" => 32, // поддерживаемые валюты USDT ]; $res = $paykassa->sci_create_order_get_data( $amount, // обязательный параметр, сумма платежа, пример: 1.0433 $currency, // обязательный параметр, валюта, пример: BTC $order_id, // обязательный параметр, уникальный числовой идентификатор платежа в вашей системе, пример: 150800 $comment, // обязательный параметр, текстовый комментарий платежа, пример: Заказ услуги #150800 $system_id[$system] // обязательный параметр, пример: 12 - Ethereum ); if ($res['error']) { // $res['error'] - true если ошибка echo $res['message']; // $res['message'] - текст сообщения об ошибке // действия в случае ошибки } else { $invoice = $res['data']['invoice']; // Номер операции в системе Paykassa.pro $order_id = $res['data']['order_id']; // Ордер в мерчанте $wallet = $res['data']['wallet']; // Адрес для оплаты $amount = $res['data']['amount']; // Сумма к оплате, может измениться, если комиссия переведена на клинета $system = $res['data']['system']; // Система, в которой выставлен счет $url = $res['data']['url']; // Ссылка для перехода на оплату $tag = $res['data']['tag']; // Тег, указать при переводе для ripple echo 'Send funds to this address '.$wallet . ( !empty($tag) ? ' Tag: ' . $tag : '' ) . ' Balance will be updated automatically.'; //Send funds to this address 32e6LAW8Nps9GJMSQK4Busm6UUUkUc4tzE. Balance will be updated automatically. } ?> <!-- /.Выставление счета на оплату, получение адреса для оплаты -->

Выставление счета на оплату

Не забудьте. Подключить SCI класс, указать "Merchant ID" и "Merchant Password". Также пропишите действия при ошибке и обработайте платеж.

<!-- Выставление счета --> <?php require_once('paykassa_sci.class.php'); //подключаем класс для работы с SCI, скачать можно по ссылке $paykassa_merchant_id = 'your_merchant_id'; $paykassa_merchant_password = 'your_merchant_password'; $amount = 0.350; $system = 'bitcoin'; $currency = 'BTC'; $order_id = 'shop_377'; $comment = 'comment'; $paykassa = new PayKassaSCI( $paykassa_merchant_id, // идентификатор мерчанта $paykassa_merchant_password // пароль мерчанта ); $system_id = [ "perfectmoney" => 2, // поддерживаемые валюты USD "berty" => 7, // поддерживаемые валюты RUB, USD "bitcoin" => 11, // поддерживаемые валюты BTC "ethereum" => 12, // поддерживаемые валюты ETH "litecoin" => 14, // поддерживаемые валюты LTC "dogecoin" => 15, // поддерживаемые валюты DOGE "dash" => 16, // поддерживаемые валюты DASH "bitcoincash" => 18, // поддерживаемые валюты BCH "zcash" => 19, // поддерживаемые валюты ZEC "ripple" => 22, // поддерживаемые валюты XRP "tron" => 27, // поддерживаемые валюты TRX "stellar" => 28, // поддерживаемые валюты XLM "binancecoin" => 29, // поддерживаемые валюты BNB "tron_trc20" => 30, // поддерживаемые валюты USDT "binancesmartchain_bep20" => 31, // поддерживаемые валюты USDT, BUSD, USDC, ADA, EOS, BTC, ETH, DOGE "ethereum_erc20" => 32, // поддерживаемые валюты USDT ]; $res = $paykassa->sci_create_order( $amount, // обязательный параметр, сумма платежа, пример: 1.0433 $currency, // обязательный параметр, валюта, пример: BTC $order_id, // обязательный параметр, уникальный числовой идентификатор платежа в вашей системе, пример: 150800 $comment, // обязательный параметр, текстовый комментарий платежа, пример: Заказ услуги #150800 $system_id[$system] // обязательный параметр, указав его Вас минуя мерчант переадресует на платежную систему, пример: 12 - Ethereum ); if ($res['error']) { // $res['error'] - true если ошибка echo $res['message']; // $res['message'] - текст сообщения об ошибке //действия в случае ошибки } else { // формирование формы платежа ?> <form action="<?php echo $res["data"]["url"]; ?>" method="POST"> <button>Оплатить</button> </form> <?php } ?> <!-- /.Выставление счета -->

Проверка оплаты

Не забудьте. Подключить SCI класс, указать "Merchant ID" и "Merchant Password". Также обработайте ошибки при проверке платежа и пропишите действия при переплате и недоплате по платежу.

<?php require_once('paykassa_sci.class.php'); // подключаем класс для работы с SCI, скачать можно по ссылке $paykassa_merchant_id = 'your_merchant_id'; $paykassa_merchant_password = 'your_merchant_password'; $paykassa = new PayKassaSCI( $paykassa_merchant_id, // идентификатор мерчанта $paykassa_merchant_password // пароль мерчанта ); $res = $paykassa->sci_confirm_order(); if ($res['error']) { // $res['error'] - true если ошибка die($res['message']); // $res['message'] - текст сообщения об ошибке // действия в случае ошибки } else { // действия в случае успеха $id = $res["data"]["order_id"]; // уникальный числовой идентификатор платежа в вашей системе, пример: 150800 $transaction = $res["data"]["transaction"]; // номер транзакции в системе paykassa: 96401 $hash = $res["data"]["hash"]; // hash, пример: bde834a2f48143f733fcc9684e4ae0212b370d015cf6d3f769c9bc695ab078d1 $currency = $res["data"]["currency"]; // валюта платежа, пример: DASH $system = $res["data"]["system"]; // система, пример: Dash $address = $res["data"]["address"]; // адрес криптовалютного кошелька, пример: Xybb9RNvdMx8vq7z24srfr1FQCAFbFGWLg $tag = $res["data"]["tag"]; // Tag для Ripple и Stellar $partial = $res["data"]["partial"]; // настройка приема недоплаты или переплаты, 'yes' - принимать, 'no' - не принимать $amount = (float)$res["data"]["amount"]; // сумма счета, пример: 1.0000000 if ($partial === 'yes') { // сумма заявки может не совпадать с полученной суммой, если включен режим частичной оплаты // актуально только для криптовалют, по умолчанию 'no' } // ваш код... echo $id.'|success'; // обязательно, для подтверждения зачисления платежа } ?>

Обработка уведомлений для входящих транзакций

Не забудьте. Подключить SCI класс, указать "Merchant ID" и "Merchant Password". Также обработайте ошибки и проверьте статус платежа и количество уведомлений.

<?php require_once('paykassa_sci.class.php'); // подключаем класс для работы с SCI, скачать можно по ссылке $paykassa_merchant_id = 'your_merchant_id'; $paykassa_merchant_password = 'your_merchant_password'; $paykassa = new PayKassaSCI( $paykassa_merchant_id, // идентификатор мерчанта $paykassa_merchant_password // пароль мерчанта ); $res = $paykassa->sci_confirm_transaction_notification(); if ($res['error']) { // $res['error'] - true если ошибка die($res['message']); // $res['message'] - текст сообщения об ошибке // действия в случае ошибки } else { // действия в случае успеха $transaction = $res["data"]["transaction"]; // номер транзакции в системе paykassa: 2431548 $txid = $res["data"]["txid"]; // Транзакция в сети криптовалюты, пример: 0xb97189db3555015c46f2805a43ed3d700a706b42fb9b00506fbe6d086416b602 $shop_id = $res["data"]["shop_id"]; // Номер Вашего мерчанта, пример: 138 $id = $res["data"]["order_id"]; // уникальный числовой идентификатор платежа в вашей системе, пример: 150800 $amount = (float)$res["data"]["amount"]; // поступившая сумма, пример: 1.0000000 $fee = (float)$res["data"]["fee"]; // комиссия за обработку платежа: 0.0000000 $currency = $res["data"]["currency"]; // валюта платежа, пример: DASH $system = $res["data"]["system"]; // система, пример: Dash $address_from = $res["data"]["address_from"]; // адрес криптовалютного кошелька плательщика, пример: 0x5d9fe07813a260857cf60639dac710ebb9531a20 $address = $res["data"]["address"]; // адрес криптовалютного кошелька, пример: Xybb9RNvdMx8vq7z24srfr1FQCAFbFGWLg $tag = $res["data"]["tag"]; // Tag для Ripple и Stellar - целое число $confirmations = $res["data"]["confirmations"]; // Текущее количество подтверждений сети $required_confirmations = $res["data"]["required_confirmations"]; // Требуеться количество подтверждений сети для зачисления $status = $res["data"]["status"]; // yes - если платеж зачислен $static = $res["data"]["static"]; // Всегда yes $date_update = $res["data"]["date_update"]; // последнее обновление информации, пример: "2018-07-23 16:03:08" $explorer_address_link = $res["data"]["explorer_address_link"]; // Ссылка для просмотра информации о адресе $explorer_transaction_link = $res["data"]["explorer_transaction_link"]; // Ссылка для просмотра информации о транзакции if ($status !== 'yes') { //платеж еще не зачислен // ваш код... echo $id.'|success'; // подтвердить получение заявки } else { //платеж зачислен // ваш код... echo $id.'|success'; // обязательно, для подтверждения зачисления платежа } } ?>

Моментальные выплаты

Не забудьте. Подключить API класс, указать "API ID", "API Password" и "Merchant ID". А также обработать действия при успешной выплате или ошибке.

<!-- Выплата --> <?php require_once('paykassa_api.class.php'); // подключаем класс для работы с API, скачать можно по ссылке $paykassa_api_id = 'your_api_id'; $paykassa_api_password = 'your_api_password'; $paykassa_merchant_id = 'your_merchant_id'; $amount = 0.25; $system = "bitcoin"; $currency = 'BTC'; $wallet = '3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r'; $comment = 'comment'; $paid_commission = ''; $tag = ''; $real_fee = true; // поддерживаются - BTC, LTC, DOGE, DASH, BSV, BCH, ZEC, ETH $priority = "high"; // low - медленно, medium - средне, high - быстро $paykassa = new PayKassaAPI( $paykassa_api_id, // идентификатор api $paykassa_api_password // пароль api ); $system_id = [ "perfectmoney" => 2, // поддерживаемые валюты USD "berty" => 7, // поддерживаемые валюты RUB, USD "bitcoin" => 11, // поддерживаемые валюты BTC "ethereum" => 12, // поддерживаемые валюты ETH "litecoin" => 14, // поддерживаемые валюты LTC "dogecoin" => 15, // поддерживаемые валюты DOGE "dash" => 16, // поддерживаемые валюты DASH "bitcoincash" => 18, // поддерживаемые валюты BCH "zcash" => 19, // поддерживаемые валюты ZEC "ripple" => 22, // поддерживаемые валюты XRP "tron" => 27, // поддерживаемые валюты TRX "stellar" => 28, // поддерживаемые валюты XLM "binancecoin" => 29, // поддерживаемые валюты BNB "tron_trc20" => 30, // поддерживаемые валюты USDT "binancesmartchain_bep20" => 31, // поддерживаемые валюты USDT, BUSD, USDC, ADA, EOS, BTC, ETH, DOGE "ethereum_erc20" => 32, // поддерживаемые валюты USDT ]; $res = $paykassa->api_payment( $paykassa_merchant_id, // обязательный параметр, id мерчанта с которого нужно сделать выплату $system_id[$system], // обязательный параметр, id платежного метода $wallet, // обязательный параметр, номер кошелька на который отправляем деньги (float)$amount, // обязательный параметр, сумма платежа, сколько отправить $currency, // обязательный параметр, валюта платежа $comment, // обязательный параметр, комментарий к платежу, можно передать пустой $paid_commission, // необязательный параметр, кто оплачивает комиссию за перевод, shop или client $tag, // необязательный параметр, тег для выплаты, можно передать пустой $real_fee, // устаревший параметр, всегда имеет значение true $priority // необязательный параметр(по умолчанию medium), используется для задания // приоритета включения в блок вместе с $real_fee === true ); if ($res['error']) { // $res['error'] - true если ошибка echo $res['message']; // $res['message'] - текст сообщения об ошибке //действия в случае ошибки } else { //действия в случае успеха $shop_id = $res['data']['shop_id']; // id мерчанта, с которого была сделана выплата, пример 122 $transaction = $res['data']['transaction']; // номер транзакции платежа, пример 130236 $txid = $res['data']['txid']; // txid 70d6dc6841782c6efd8deac4b44d9cc3338fda7af38043dd47d7cbad7e84d5dd , может быть пустым, // в этом случае информацию о транзакции можно получить с помощью универсальной ссылки из поля explorer_transaction_link, смотрите ниже $amount = $res['data']['amount']; // сумма выплаты, сколько списалось с баланса мерчанта, 0.42 $amount_pay = $res['data']['amount_pay']; // сумма выплаты, столько пришло пользователю, пример: 0.41 $system = $res['data']['system']; // система выплаты, куда была сделана выплата, пример: Bitcoin $currency = $res['data']['currency']; // валюта выплаты, пример: BTC $number = $res['data']['number']; // номер адреса куда были отправлены средства $comission_percent = $res['data']['shop_comission_percent'];// комиссия за перевод в процентах, пример: 1.5 $comission_amount = $res['data']['shop_comission_amount']; // комиссия за перевод сумма, пример: 1.00 $paid_commission = $res['data']['paid_commission']; // кто оплачивал комиссию, пример: shop $explorer_address_link = $res["data"]["explorer_address_link"]; // Ссылка для просмотра информации о адресе $explorer_transaction_link = $res["data"]["explorer_transaction_link"]; // Ссылка для просмотра информации о транзакции } ?> <!-- /.Выплата -->