Оплата

  1. Пользователю предоставляются реквизиты кошелька, на которые необходимо совершить оплату.
  2. Пользователь совершает оплату в своем приложении кошелька и получает уникальный номер транзакции.
  3. Далее пользователь вводит уникальный номер транзакции в платежном окне - активируется транзакции.
  4. Paykassma отсылает постбек на сторону мерчанта.
  5. Средства начисляются на баланс пользователя на платформе мерчанта.

Интеграция через платежное окно (plugin)

Пример ссылки на открытие платежного окна Ipay:

https://plugin.{URL_сервера}/?
label=label
&currency_code=LKR
&lang=en
&wallet_type=ipay
&custom_transaction_id=custom_transaction_id
&fixed_amount=fixed_amount
&payment_url_success_id=2
&payment_url_pending_id=3
&payment_url_fail_id=1
&success_url=hash
&fail_url=hash
&pending_url=hash


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_idpayment_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

currencystringyes3Код валюты.

label

string

yes

190

Это уникальный идентификатор (ID) пользователя, осуществляющего платеж.


Request
{
  "currency": "LKR",
  "label": "eligendi"
}
Response Success
{
    'status': 'ok',
    'params':  {
        'identifier': '0734234234'
                      }
}
Response Fail
{
    '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_codestringyes3Код валюты

wallet_type

string

yes

190

Значение из списка доступных ПС, например: easypaisa и тд.
labelstringyes190Это уникальный идентификатор (ID) пользователя, осуществляющего платеж
key1stringyes190Transaction_ID, полученный от пользователя (8 цифр)
amountfloatyes256Сумма платежа
custom_transaction_id

string

yes190

Идентификатор транзакции в системе Клиента. Должен быть уникальным.

Request
{
   "currency_code": "LKR",
   "label": "786442",
   "wallet_type": "ipay",
   "key1": "23936785",
   "amount": 1000,
   "custom_transaction_id": "3158538"
}
Response Success
{
    "status": "ok",
    "deposit": true,
    "deposit_amount": 100,
    "currency": {
        "code": "LKR",
        "symbol": "LKR"
    }
}
Response Pending (при активации подозрительной)
{
    "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"
}


Response Possible Transaction Created (если включен функционал "Возможные транзакции")
{
    "status": "possible_transaction_created",
    "message": "Transaction not found. Possible transaction created"
}
Response Fail
{
    '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": ""
            }
        }
    ]
}
Сервер Paykassma ожидает ответ в json {"status":"ok"} код ответа 200, в противном случае, при получении отличающегося ответа, Paykassma будет пересылать постбек с определенной периодичностью.
На повторные постбеки необходимо также отвечать {"status":"ok"} код ответа 200.

Выводы / выплаты пользователям

Общую документацию по выводам смотрите здесь.

Создание вывода Ipay

URL: https://api.{ URL сервера }/v2/withdrawal/create

Request method:

POST

Format:
JSON

Parameters:

Name

Type

Required

Description

withdrawal_idstringyes Идентификатор вывода, если параметр не передается, то система генерирует withdrawal_id.
payment_systemstring yesПлатежная система.
amount

int


required

Дополнительные требования:

  1. amount >= величина установленного минимального значения;
  2. amount <= величина установленного максимального значения.
currency_codestringyesКод валюты.

label

string

yes

Label пользователя, для которого проводится вывод.

account_numberstring 

yes

Номер счета пользователя.

Валидация:

  • Цифры: 0-9.
bank_details.bank_codestring

yes

Здесь необходимо передавать название банка, пример "Bank of Ceylon".

account_namestringyesИмя держателя аккаунта.

is_test

booleanyes

Параметр is_test может принимать одно из двух значений:

  • true - если вывод тестовый; 
  • false - если вывод реальный. 
signaturestringyesПодпись, формируемая с private_key.
Request
{
   "withdrawal_id": "1234567test565856",
   "payment_system": "ipay",
   "amount": 10000,
   "currency_code": "LKR",
   "label": "125199",
   "account_number": "03405138",
   "account_name": "Test Name Acc",
   "is_test": true,
   "bank_details": {
        "bank_code": "Bank Of Ceylon"
    }, 
   "signature": "2e56786153bec935220fa1e9409ab24bd99cf9e8"
}
Response Success
{
    "status": "ok",
}


Response Fail
{
    'status': 'fail',
    'message': 'MESSAGE'
}

*Если при попытке создания заявки на вывод сумма балансов счетов в валюте заявки будет меньше, чем общая сумма новой и еще незавершенных заявок, то отобразится ошибка 'Недостаточный баланс' (для настройки данного функционала обратитесь в ТП Paykassma).

Response Fail (при недостаточном балансе)
{
    "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
            }
        }
    ]
}
Сервер Paykassma ожидает ответ в json {"status":"ok"} код ответа 200, в противном случае, при получении отличающегося ответа, Paykassma будет пересылать постбек с определенной периодичностью.
На повторные постбеки необходимо также отвечать {"status":"ok"} код ответа 200.

После обработки вывода, Paykassma пришлет постбек о результате вывода со статусом, подписанный сигнатурой.

Статусы выводов

1SUCCESSСтатус для вывода, когда заявка на вывод была успешно обработана.
5FAILСтатус для вывода, когда заявка на вывод была отклонена.

Оглавление: