Оплата
- Пользователю предоставляются реквизиты кошелька, на которые необходимо совершить оплату.
- Пользователь совершает оплату в своем приложении кошелька и получает уникальный номер транзакции.
- Далее пользователь вводит уникальный номер транзакции в платежном окне - активируется транзакцию.
- Paykassma отсылает постбек на сторону мерчанта.
- Средства начисляются на баланс пользователя на платформе мерчанта.
Интеграция через платежное окно (plugin)
Пример ссылки на открытие платежного окна Nagad:
https://plugin/.{URL_сервера}/? label =label ¤cy_code =BDT &lang =lang &wallet_type =nagad &custom_transaction_id =custom_transaction_id &fixed_amount =fixed_amount &payment_url_success_id=2 &payment_url_fail_id=1 |
---|
wallet_type=nagad currency_code=BDT Доступные языки (lang): en, bn
Обратите внимание на описание параметров 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/nagad?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': 'BDT', 'label': 'eligendi' }
{ "status": "ok", "params": { "identifier": "324342342", "account_type": "personal" //Тип кошелька/аккаунта. Возможные значения: agent - агентский аккаунт, personal - персональный аккаунт, merchant - мерчант аккаунт. } }
{ 'status': 'fail', 'message': 'MESSAGE' }
Способ оплаты в зависимости от типа аккаунта Nagad
Пользователь Клиента переходит в сервис Nagad и проводит там оплату в зависимости от типа аккаунта предоставленного кошелька.
На персональный аккаунт через "Send money".
На агентский аккаунт через "Cash out".
На мерчант аккаунт через "Merchant Pay".
Активация платежа
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 | Метод (Платежная система). |
label | string | yes | 190 | Это уникальный идентификатор (ID) пользователя, осуществляющего платеж. |
key1 | string | yes | 190 | Transaction_ID, полученный от пользователя. Nagad - 8 символов, буквы и цифры. |
amount | float | yes | 256 | Сумма платежа. |
custom_transaction_id | string | yes | 190 | Идентификатор транзакции в системе Клиента. Должен быть уникальным. |
{ "currency_code": "BDT", "wallet_type": "nagad", "label": "55", "amount": 500, "key1": "21NO1YRT", "custom_transaction_id": "123465477897" }
{ "status": "ok", "deposit": true, "deposit_amount": 500, "currency": { "code": "BDT", "symbol": "BDT" } }
{ "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' }
Постбек депозита
Общую документацию по постбекам смотрите здесь.
Пример постбека на депозит Nagad
{ "signature": "56beb10ead1cd49475f1e16dd668a29fff3d4fb9", "wallet_type": "nagad", "amount": 600, "currency_code": "BDT", "label": "234", "direction": "ingoing", "created_datetime": "2023-08-20 19:04:08", "access_key": "FQ9jMwrNSkFbyMNqYFf6Ed4xeKmjHK", "additional_data": [ { "activated_datetime": "2023-08-20 22:04:07", "exchanger_identifier": null, "comment": "", "amount": "600", "currency_code": "BDT", "wallet_type": "nagad", "stockpiling_id": 1061, "transaction_id": "52AD1EA4", "transaction_type": 1, "plugin_custom_order_id": "1234", "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.
Выводы / выплаты пользователям
Общую документацию по выводам смотрите здесь.
Создание вывода Nagad
URL: https://api.{ URL сервера }/v2/withdrawal/create
Request method:
POST
Format:
JSON
Parameters:
Name | Type | Required | Description |
withdrawal_id | string(1-36) | yes | Идентификатор вывода, если параметр не передается, то система генерирует withdrawal_id. |
payment_system | string | yes | Платежная система. |
amount | int | required | Дополнительные требования:
|
currency_code | string(3) | yes | Код валюты. |
is_test | boolean | yes | Параметр "is_test" может принимать одно из двух значений:
|
label | string(1-36) | yes | Label пользователя, для которого проводится вывод. |
account_email | string | yes | Е-mail держателя счета. |
account_number | string | yes | Номер счета получателя, 11 цифр, первые две - "01", example "01XXXXXXXXX". |
signature | string | yes | Подпись, формируемая с private_key. |
{ "withdrawal_id": "af84c26f-931d-4c28-a30d-7b75e46b7685", "payment_system": "nagad", "amount": 6000, "currency_code": "BDT", "is_test": true, "label": "c81594cc-e4b1-4ed5-914c-3817f2ccf13a", "account_email": "[email protected]", "account_number": "01642234663", "signature": "98565041a9e126d325e864da0ba3d467f6ab0566" }
{ "status": "ok", }
{ 'status': 'fail', 'message': 'MESSAGE' }
*Если при попытке создания заявки на вывод сумма балансов счетов в валюте заявки будет меньше, чем общая сумма новой и еще незавершенных заявок, то отобразится ошибка 'Недостаточный баланс' (для настройки данного функционала обратитесь в ТП Paykassma).
{ "status": "fail", "message": { "withdrawals_sum_amount": [ "Insufficient balance" ] } }
Пример постбека на вывод Nagad
{ "signature": "c36db9e7c7b45d429ee0ec5e4d2978cea1431287", "wallet_type": "nagad", "amount": 1000, "currency_code": "BDT", "label": "53928", "direction": "outgoing", "created_datetime": "2023-08-01 13:30:03", "access_key": "FQ9jMwrNSkFbyMNqYFf6Ed4xeKmjHK", "additional_data": [ { "activated_datetime": "", "exchanger_identifier": "", "comment": "1", "amount": "1000", "currency_code": "BDT", "wallet_type": "nagad", "stockpiling_id": null, "transaction_id": "", "transaction_type": null, "plugin_custom_order_id": "", "withdrawal_id": "10304", "withdrawal_status": 5, "account_number": "123456789013", "account_name": "", "account_email": "", "bank_details": { "bank_code": null, "branch_code": null } } ] }
На повторные постбеки необходимо также отвечать {"status":"ok"} код ответа 200.
После обработки вывода Paykassma пришлет постбек о результате вывода со статусом (withdrawal_status), подписанный сигнатурой.
Статусы выводов
1 | SUCCESS | Статус для вывода, когда заявка на вывод была успешно обработана. |
5 | FAIL | Статус для вывода, когда заявка на вывод была отклонена. |
Создание заявки на выплату в ЛК Paykassma
Для создания заявки на вывод, необходимо перейти на страницу Выводы (Оплаты → Выводы) и выполнить следующие шаги:
- Нажмите на кнопку "Добавить заявку на вывод".
- Выберите из списка нужную ПС.
- Заполните поля для создания заявки в следующем окне (список полей стандартизирован и не все поля являются обязательными. Для создания заявки по определенной ПС, необходимо заполнить обязательные поля для этой ПС).
Обязательные поля для выплаты Nagad:
- Лейбл (ID пользователя)
- Сумма
- Валюта
- Кошелек получателя
- Email получателя
4. После оплаты статус вывода поменяется.
Paykassma не высылает постбек по выводам, созданным вручную.