Оплата
- Пользователю предоставляются реквизиты кошелька, на которые необходимо совершить оплату.
- Пользователь совершает оплату в своем приложении кошелька и получает уникальный номер транзакции.
- Далее пользователь вводит уникальный номер транзакции в платежном окне - активируется транзакции.
- Paykassma отсылает постбек на сторону мерчанта.
- Средства начисляются на баланс пользователя на платформе мерчанта.
Интеграция через платежное окно (plugin)
Пример ссылки на открытие платежного окна Ipay:
https://plugin.{URL_сервера}/? label =label ¤cy_code =LKR &lang =en &wallet_type =ipay &custom_transaction_id =custom_transaction_id &fixed_amount=fixed_amount &payment_url_fail_id=1 |
---|
wallet_type=ipay currency_code=LKR Доступные языки (lang): en, si(Сингальский)
Обратите внимание на описание параметров payment_url_success_id / payment_url_fail_id / payment_url_pending_id и success_url / fail_url / pending_url
Для использования payment_url_success_id / payment_url_fail_id / payment_url_pending_id необходимо передать URL'ы саппорту Paykassma, и использовать полученные ID в параметрах.
Для использования success_url / fail_url / pending_url необходимо использовать хеширование URL'ов (подробнее про хеширование см. здесь).
Описание всех параметров плагина смотрите здесь.
Интеграция через клиентский API
Создание платежа
URL: https://api.{URL_сервера}/api/v1/transaction/create/ipay?secret={pluginapi_secret}
В данном случае сначала мы принимаем запрос на ввод по платежной системе. Далее в ответе мы предоставим реквизиты кошелька, на который пользователь должен перевести платеж. После оплаты Вам необходимо отправить запрос на активацию транзакции.
Request method:
POST
Format:
JSON
Parameters:
Name | Type | Required | Max Length | Description |
currency | string | yes | 3 | Код валюты. |
label | string | yes | 190 | Это уникальный идентификатор (ID) пользователя, осуществляющего платеж. |
{ "currency": "LKR", "label": "eligendi" }
{ 'status': 'ok', 'params': { 'identifier': '0734234234' } }
{ 'status': 'fail', 'message': 'MESSAGE' }
Запрос активации
URL: http://api.{URL_сервера}/api/v1/transaction/activate?secret={pluginapi_secret}
На данном этапе пользователь передает номер транзакции, который вы пересылаете на сторону Paykassma для активации.
Request method:
POST
Format:
JSON
Parameters:
Name | Type | Required | Max Length | Description |
currency_code | string | yes | 3 | Код валюты |
wallet_type | string | yes | 190 | Значение из списка доступных ПС, например: easypaisa и тд. |
label | string | yes | 190 | Это уникальный идентификатор (ID) пользователя, осуществляющего платеж |
key1 | string | yes | 190 | Transaction_ID, полученный от пользователя (8 цифр) |
amount | int | yes | 256 | Сумма платежа |
custom_transaction_id | string | yes | 190 | Идентификатор транзакции в системе Клиента. Должен быть уникальным. |
{ "currency_code": "LKR", "label": "786442", "wallet_type": "ipay", "key1": "23936785", "amount": 1000, "custom_transaction_id": "3158538" }
{ "status": "ok", "deposit": true, "deposit_amount": 100, "currency": { "code": "LKR", "symbol": "LKR" } }
{ "status": "pending", "message": "The deposit status check has been started. The operation may take longer than expected. Upon completion of the verification, the funds will be credited to your account" }
{ "status": "possible_transaction_created", "message": "Transaction not found. Possible transaction created" }
{ 'status': 'fail', 'message': 'MESSAGE' }
Постбек депозита
Общую документацию по постбекам смотрите здесь.
Пример постбека на депозит Ipay
{ "signature": "2ad41735cd2d225cb30fe0665e83a3ade8618e0d", "wallet_type": "ipay", "amount": 1000, "currency_code": "LKR", "label": "545932754", "converted_amount": { "USD": 3.44, "INR": 287, "EUR": 3.26, , . . . , "USDTTRC20": 0, "USDT20": 0 }, "direction": "ingoing", "created_datetime": "2023-09-26 19:37:02", "access_key": "TA25Ea9sjPUFJvIG", "additional_data": [ { "activated_datetime": "2023-09-26 22:37:00", "exchanger_identifier": "923139471223", "comment": "", "amount": "1000", "currency_code": "LKR", "wallet_type": "ipay", "stockpiling_id": 4819603, "transaction_id": "23936218009", "transaction_type": 0, "plugin_custom_order_id": "5586199250", "withdrawal_id": null, "withdrawal_status": null, "account_number": "", "account_name": "", "account_email": "", "bank_details": { "bank_code": "", "branch_code": "" } } ] }
На повторные постбеки необходимо также отвечать {"status":"ok"} код ответа 200.
Выводы / выплаты пользователям
Общую документацию по выводам смотрите здесь.
Создание вывода Ipay
URL: https://api.{URL_сервера}/v2/withdrawal/create
Request method:
POST
Format:
JSON
Parameters:
Name | Type | Required | Description |
withdrawal_id | string | yes | Идентификатор вывода, если параметр не передается, то система генерирует withdrawal_id. |
payment_system | string | yes | Платежная система. |
amount | int | required | Дополнительные требования:
|
currency_code | string | yes | Код валюты. |
label | string | yes | Label пользователя, для которого проводится вывод. |
account_number | string | yes | Номер счёта пользователя в Ipay. Валидация:
|
account_name | string | yes | Имя держателя аккаунта. |
is_test | boolean | yes | Параметр is_test может принимать одно из двух значений:
|
signature | string | yes | Подпись, формируемая с private_key. |
{ "withdrawal_id": "1234567test565856", "payment_system": "ipay", "amount": 10000, "currency_code": "LKR", "label": "125199", "account_number": "0718448214", "account_name": "Test Name Acc", "is_test": true, "signature": "2e56786153bec935220fa1e9409ab24bd99cf9e8" }
{ "status": "ok" }
{ 'status': 'fail', 'message': 'MESSAGE' }
*Если при попытке создания заявки на вывод сумма балансов счетов в валюте заявки будет меньше, чем общая сумма новой и еще незавершенных заявок, то отобразится ошибка 'Недостаточный баланс' (для настройки данного функционала обратитесь в ТП Paykassma).
{ "status": "fail", "message": { "withdrawals_sum_amount": [ "Insufficient balance" ] } }
Пример постбека на вывод Ipay
{ "signature": "c698b4961e4bfd93957c3144647f4a6704960f03", "wallet_type": "ipay", "amount": 10000, "currency_code": "LKR", "label": "125199", "converted_amount": { "USD": 30.63, "INR": 2553, "EUR": 28.07, "IDR": 472521.76, "MYR": 143.14, "VND": 743295, "SGD": 41.16, "THB": 1070.52, "NGN": 25221.65, "TRY": 874.05, "AED": 112.52, "CAD": 42.03, "AUD": 47.03, "BDT": 3376.16, "AFN": 2105.26, "ALL": 2916.34, "AMD": 12276.97, "AOA": 25356.99, "ARS": 10783.69, "AWG": 55.14, "AZN": 52.08, "BAM": 54.87, "BBD": 61.27, "BGN": 54.99, "BHD": 11.5, "BIF": 86645.6, "BMD": 30.63, "BND": 40.98, "BOB": 210.67, "BRL": 150.29, "BSD": 30.63, "BTC": 0.00082744, "BTN": 2538.25, "BWP": 408.93, "BYN": 100.42, "BZD": 61.45, "CDF": 75665.01, "CHF": 27.17, "CLF": 0.97, "CLP": 26741.95, "CNH": 221.21, "CNY": 220.9, "COP": 124674.61, "CRC": 16201.88, "CUC": 30.63, "CUP": 788.85, "CVE": 3093.51, "CZK": 687.73, "DJF": 5427.84, "DKK": 209.33, "DOP": 1731.29, "DZD": 4115.86, "EGP": 943.4, "ERN": 459.52, "ETB": 1705.02, "FJD": 70.12, "FKP": 24.6, "GBP": 24.6, "GEL": 82.56, "GGP": 24.6, "GHS": 364.52, "GIP": 24.6, "GMD": 2060.2, "GNF": 261951.11, "GTQ": 238.69, "GYD": 6378.07, "HKD": 238.85, "HNL": 752.97, "HRK": 211.51, "HTG": 4045.28, "HUF": 10613.67, "ILS": 113.67, "IMP": 24.6, "IQD": 39936.57, "IRR": 1294707.12, "ISK": 4296.66, "JEP": 24.6, "JMD": 4750.59, "JOD": 21.73, "JPY": 4582.98, "KES": 4642.86, "KGS": 2730.36, "KHR": 125604.2, "KMF": 13896.75, "KPW": 27571.4, "KRW": 39714.46, "KWD": 9.39, "KYD": 25.4, "KZT": 14145.17, "LAK": 632174.3, "LBP": 458197.51, "LKR": 10000, "LRD": 5754.77, "LSL": 558.23, "LYD": 147.71, "MAD": 309.19, "MDL": 543.71, "MGA": 138087.39, "MKD": 1728.62, "MMK": 64018.94, "MNT": 105690.38, "MOP": 244.89, "MRO": 0, "MRU": 1207.83, "MUR": 1350.91, "MVR": 473.31, "MWK": 51318.72, "MXN": 527.78, "MZN": 1956.04, "NAD": 562.76, "NIO": 1115.76, "NOK": 331.26, "NPR": 4061.19, "NZD": 51.17, "OMR": 11.74, "PAB": 30.63, "PEN": 117.9, "PGK": 115.17, "PHP": 1697.1, "PKR": 8734.09, "PLN": 123.14, "PYG": 226546.82, "QAR": 111.15, "RON": 139.89, "RSD": 3289.19, "RUB": 2757.42, "RWF": 37599.57, "SAR": 114.9, "SBD": 257.94, "SCR": 401.89, "SDG": 18411.57, "SEK": 322.68, "SHP": 24.6, "SLL": 642398.37, "SOS": 17422.28, "SRD": 1168.57, "SSP": 3990.5, "STD": 682600.54, "STN": 687.35, "SVC": 266.75, "SYP": 76971.09, "SZL": 558.05, "TJS": 333.51, "TMT": 107.22, "TND": 95.41, "TOP": 72.97, "TTD": 207.02, "TWD": 972.65, "TZS": 76153.27, "UAH": 1101.09, "UGX": 115223.26, "UYU": 1210.86, "UZS": 374360.44, "VEF": 0, "VES": 1083.45, "VUV": 3637.04, "WST": 85.78, "XAF": 18415.41, "XAG": 1.29, "XAU": 0.02, "XCD": 82.79, "XDR": 23.02, "XOF": 18415.41, "XPD": 0.03, "XPF": 3350.13, "XPT": 0.03, "YER": 7670.98, "ZAR": 562.01, "ZMW": 708.03, "ZWL": 9864.44, "ETH": 0.01543202, "LTC": 0.4361802, "DOGE": 383.50853967, "DASH": 1.00749336, "BCH": 0.13397526, "ZEC": 1.05372295, "ETC": 1.58097916, "XRP": 49.1340353, "TRX": 296.99120488, "XLM": 253.48232578, "WAVES": 14.24118893, "USDT": 30.61996208, "USDTTRC20": 0, "USDT20": 0 }, "direction": "outgoing", "created_datetime": "2023-11-19 21:39:01", "access_key": "icK2pOJnH7wxSZy9jmLslGeo", "additional_data": [ { "activated_datetime": "", "exchanger_identifier": "", "comment": "test", "amount": "10000", "currency_code": "LKR", "wallet_type": "ipay", "stockpiling_id": null, "transaction_id": "", "transaction_type": null, "plugin_custom_order_id": "", "withdrawal_id": "1234567test565856", "withdrawal_status": 5, "account_number": "100670008622", "account_name": "Test Name Acc", "account_email": "", "bank_details": { "bank_code": "Bank Of Ceylon", "branch_code": null } } ] }
На повторные постбеки необходимо также отвечать {"status":"ok"} код ответа 200.
После обработки вывода, Paykassma пришлет постбек о результате вывода со статусом, подписанный сигнатурой.
Статусы выводов
1 | SUCCESS | Статус для вывода, когда заявка на вывод была успешно обработана. |
5 | FAIL | Статус для вывода, когда заявка на вывод была отклонена. |
Создание заявки на выплату в ЛК Paykassma
Для создания заявки на вывод, необходимо перейти на страницу Выводы (Оплаты → Выводы) и выполнить следующие шаги:
- Нажмите на кнопку "Добавить заявку на вывод".
- Выберите из списка нужную ПС.
- Заполните поля для создания заявки в следующем окне (Cписок полей стандартизирован и не все поля являются обязательными. Для создания заявки по определенной ПС, необходимо заполнить обязательные поля для этой ПС).
Обязательные поля для выплаты Ipay:
- Лейбл (ID пользователя);
- Сумма;
- Валюта;
- Кошелек получателя. - После оплаты статус вывода поменяется.
Paykassma не высылает постбек по выводам, созданным вручную.