Page History
Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Anchor | ||||
---|---|---|---|---|
|
Ввод
Info |
---|
Внимание! Перед началом работы с API на ввод, необходимо передать ТП Paykassma IP-адрес с которого будут отправляться запросы. |
Сохранение клиентского ID транзакции
Запрос для передачи в Paykassma вашего ID транзакции (custom_transaction_id). В дальнейшем этот ID присваивается транзакции совершаемой пользователем и передается в постбеке.
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/payment/save-transaction-custom-id |
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
label | string (190) | ДА | Уникальный идентификатор (ID) пользователя, осуществляющего платеж |
transaction_custom_id | string (190) | ДА | Идентификатор транзакции в системе Клиента |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "label": "55", "transaction_custom_id": "123465477897" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
Получение доступных ПС
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/payment-systems/available |
Request method: GET
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
currency_code | string[] (3) | ДА | Массив состоящий из кодов валют. Отобразятся ПС работающие по указанным валютам |
label | string (190) | ДА | Уникальный идентификатор (ID) пользователя, осуществляющего платеж |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "currency_code": [ "USD", "INR" ], "label": "55" } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "status": "ok", "params": { "gif_guide": { "upi": "http:\/\/api.pay.test\/storage\/guide-image\/upi.mp4?cache=1587635151", "phonePe": "http:\/\/api.pay.test\/storage\/guide-image\/phonePe.gif?cache=1589958899", "bkash": "http:\/\/api.pay.test\/storage\/guide-image\/bkash.mpg?cache=1611553163" }, "currency_data": [ { "code": "INR", "symbol": "₹" } ], "wallets": [ { "type": "paytm", "currency_code": "INR", "order": 5, "logo": "http:\/\/api.pay.test\/storage\/payment_system\/logos\/paytm_default.svg", "name": "PayTM" }, { "type": "paytm", "currency_code": "INR", "order": 5, "logo": "http:\/\/api.pay.test\/storage\/payment_system\/logos\/paytm_34.svg", "name": "paytm", "hints": [ { "type": "requisites_hint", "text": null }, { "type": "payment_hint", "text": null }, true ], "show_limits": true } ], "imps": { "INR": { "min": "8000", "max": "560000" } }, "bkash": { "BDT": { "min": "100", "max": "1000000" } }, "upi": { "INR": { "min": "20000", "max": "50000" } }, "paytm": { "INR": { "min": "100000", "max": "20000000" } }, "phone_pe": { "INR": { "min": "100", "max": "800000" } } } } } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
Создание платежа
В данный момент существуют два вида запроса для создания платежа в зависимости от ПС.
Info |
---|
Внимание! Для получения полного списка доступных Вам ПС, необходимо обратиться в ТП Paykassma. ТП предоставят полные примеры запросов для доступных в данный момент ПС. Они же определят правильный запрос, зависящий от выбранной ПС. |
Вид запроса №1:
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/transaction/create/{wallet_type} |
1.1
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/transaction/create/paytm |
В данном случае сначала мы принимаем запрос на ввод по PayTM, далее в ответе мы предоставим реквизиты кошелька, на который пользователь должен перевести платеж, а после оплаты Вам необходимо отправить запрос на активацию транзакции
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
currency | string (3) | ДА | Код валюты |
label | string (190) | ДА | Уникальный идентификатор пользователя, осуществляющего платеж |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "currency": "INR", "label": "eligendi" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok", "params": { "identifier": "6234234234" } } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
1.2 Запрос активации:
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/transaction/activate |
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
currency_code | string (3) | ДА | Код валюты |
wallet_type | string (190) | ДА | Значение из списка доступных ПС. |
label | string (190) | ДА | Уникальный идентификатор пользователя, осуществляющего платеж |
key1 | string (190) | ДА | Код, по которому происходит активация (Transiction_ID), полученный от пользователя |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "currency_code": "USD", "wallet_type": "paytm", "label": "55", "key1": "123-ABC-456-DEF" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
Вид запроса №2:
2.1
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/payment/create/{payment_system} |
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
language | string (2) | ДА | Язык интерфейса |
currency | string (3) | ДА | Код валюты |
bank | string (3) | ДА | Банк, через который осуществляется платеж |
amount | numeric (ограничена max. | ДА | Сумма платежа |
label | string (190) | ДА | Уникальный идентификатор пользователя, осуществляющего платеж |
redirect_url | url | ДА | URL страницы для редиректа после платежа |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "language": "en", "currency": "USD", "bank": "MBB", "amount": "1000", "label": "55", "redirect_url": "https:\/\/google.com" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
Информация о накоплениях
Запрос на предоставление информации о накоплениях определенного пользователя
Для сохранения информации о транзакциях, сумма которых не превышает размер минимального депозита для конкретной платёжной системы, был реализован функционал накоплений. Транзакции пользователя (выборка по параметру label) копятся в системе и не зачисляются на счёт пользователя до тех пор, пока их сумма не достигнет минимального депозита этой платёжной системы. Постбек на сервер клиента отправится только после достижения суммы минимального депозита. До момента отправки postback транзакция не считается зачисленной на счёт.
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/deposit-info |
Request method: GET
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
label | string (190) | ДА | Уникальный идентификатор пользователя, осуществляющего платеж |
wallet_type | url | ДА | Значение из списка доступных ПС. |
currency | string (3) | ДА | Код валюты |
code | string (190) | НЕТ | Название ручной платёжной системы. |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "label": "55", "wallet_type": "paytm", "currency": "UDS" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok" "stockpiling_sum": 0, "lacks_sum": 0, "minimum_deposit": 148 } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
Anchor | ||||
---|---|---|---|---|
|
Вывод
Для вывода денежных средств пользователем через доступные для Клиента платежные системы, необходимо:
- Единоразово передать ТП Paykassma URL-сервера, куда будут отправляться постбеки со статусом вывода.
- Отправить запросы на вывод (POST) по URL адресу:
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{ URL_ сервера_Paykassma }/v2/withdrawal/manual/create |
Request method:
POST
Format:
JSON
Warning |
---|
Внимание: При передаче данных не должно быть пробелов в начале и конце параметров в JSON файле |
Необходимые параметры для передачи в POST запросе
Параметр
Тип данных
Описание
wallet_type
text(191)
Выбор из доступного списка
Тип платежной системы
wallet_recipient
string(191)
Кошелек получателя, на чей счет будет совершенна выплата
Внимание! wallet_recipient (Для метода Paytm) должен содержать номер кошелька Paytm без международного кода +91
wallet_sender
string(191)
Кошелек отправителя, с чьего счета будет снятие денежных средств. Конечный выбор отправителя остается за Paykassma.
Внимание: в текущей реализации необходимо заполнить поле произвольными четырьмя цифрами
account_name
string(191)
Имя держателя банковского аккаунта
account_number
string(191)
Номер банковского аккаунта
string(191)
Электронная почта того, кому выплачивают
amount
double
Note |
---|
Внимание: Для выводов для ПС PayTM, поле amount должно быть целым и кратным 10. |
Сумма вывода, в случае с PayTm, принимается сумма кратная 10!
withdrawal_id
integer
ID вывода на стороне клиента (возвращается в постбеке).
Каждый запрос на вывод подписывается signature, она формируется следующим образом:
Code Block | ||||
---|---|---|---|---|
| ||||
$data = [
...
];
$data['signature'] = generateSignature($data); // return fa0ee1e2acf7f898635ec417491381c0a4f9d35c
//send $data like json ...
function generateSignature(array $data) {
$privateKey = 'yourprivatekey';
ksort($data);
$implode = implode(':', $data);
return sha1($privateKey . md5($implode));
} |
Необходимые параметры для передачи в POST запросе
Наименование | Тип | Обязательность | Описание |
withdrawal_id | string(1-7) | optional | Идентификатор вывода, если параметр не передается, то система генерирует withdrawal_id |
payment_system | string | required | Платежная система |
amount | numeric | required | Сумма вывода |
currency_code | string(3) | required | Код валюты |
label | string | required | Label пользователя, для которого проводится вывод |
comment | string(4-64) | optional | Комментарий |
account_number | string | *required_if | Номер счета получателя |
account_name | string | *required_if ПС = imps, upi,.... | Имя держателя счета |
account_email | string | *required_if ПС = bkash,... | Е-mail держателя счета |
receiver_name | string(190) | required_if ПС = imps | Имя получателя |
payments_details.payments_method | string | *required_if | Способ оплаты |
payments_details.payments_provider | string | optional | Поставщик, который осуществляет электронный платеж, выбранным способом оплаты |
bank_details.bank_code | string | *required_if | Уникальный идентификатор присваиваемый центральным банком страны |
bank_details.branch_code | string | *required_if | Код филиала (отделения) банка |
bank_details.bank_code_in_payments_system | string | *required_if | Код банка в платежной системе, с которой осуществляется обмен данными |
account_type | string | *required_if | Тип аккаунта |
document_type | string | *required_if | Тип документа |
document_id | string | *required_if | Идентификатор документа получателя |
account_digit | string | *required_if | Цифра счета |
iban | string | *required_if | IBAN |
*В запросе на вывод, имеются поля обязательные только для некоторых платежных систем(required_if), для полного списка обязательных полей для определенной ПС, необходимо обратиться в Техническую поддержку Paykassma.
Обязательные поля для ПС Bkash, PayTm, IMPS/UPI:
Платежная система | account_number | account_name | account_email | receiver_name | payments_details | bank_details | |||
---|---|---|---|---|---|---|---|---|---|
payments_method | payments_provider | bank_code | branch_code | bank_code_in_payment_system | |||||
Bkash | required | - | required | - | - | - | - | - | - |
IMPS/UPI | required | required | - | required for IMPS | - | - | optional | - | - |
Paytm | required | - | - | - | - | - | - | - | - |
Request:
Code Block | ||||
---|---|---|---|---|
| ||||
{
'withdrawal_id': '1234567',
'payment_system': 'paytm',
'amount' : '1000',
'type': '0',
'currency_code': 'IDR',
'label': '55',
'comment': 'withdrawal',
'account_number': '11111111',
'account_name' : '',
'account_email' : '',
'payments_details':
{
'payments_method': '',
'payments_provider': ''
},
'bank_details':
{
'bank_code': '',
'branch_code': '',
'bank_code_in_payments_system': ''
},
'account_type': '',
'document_type': '',
'document_id': '',
'account_digit': '',
'iban': ''
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
'status': 'ok'
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
'status': 'fail'
'message': 'MESSAGE'
} |
После обработки вывода, Paykassma пришлет постбек о результате вывода с определенным статусом, подписанной сигнатурой
Статусы выводов:
Статус | Описание |
---|---|
NEW (0) | Новый статус для вывода, с момента принятия заявки на вывод, до момента, когда будет обработана модератором(принята или отклонена) |
CANCELED (2) | Статус для вывода, когда он был отклонён на стороне ПС |
PROCESSED (1) | Статус для вывода, когда заявка на вывод была успешно обработана |
Формирование signature вывода
Code Block | ||||
---|---|---|---|---|
| ||||
$data = [
'wallet_type' => 'paytm',
'wallet_recipient' => 1234567890,
'wallet_sender' => 'empty',
'email' => '[email protected]',
'amount' => 300,
'withdrawal_id' => '1234567',
];
$data['signature'] = generateSignature($data); // return fa0ee1e2acf7f898635ec417491381c0a4f9d35c
//send $data like json ...
function generateSignature(array $data) {
$privateKey = 'yourprivatekey';
ksort($data);
$implode = implode(':', $data);
return sha1($privateKey . md5($implode));
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"wallet_type":"paytm",
"wallet_recipient":"123123232",
"wallet_sender":1111,
"email":"[email protected]",
"amount":1000,
"withdrawal_id":"13",
"signature":"fae51673a8a9c85f724317214bd0bcc665ebc799"
} |
При отправки к Paykassma запроса на вывод, в первом ответе получаете сформированные данные по заявке, без сигнатуры следующего вида:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"id":1,
"wallet_type":"paytm",
"wallet_recipient":"123123232",
"wallet_sender":"1111",
"email":"[email protected]",
"amount":1000,
"status":1,
"created_at":"2020-07-08 07:06:06",
"updated_at":"2020-07-08 09:40:39"
} |
Статусы выводов:
Статус
Причина
NOT_APPROVE (0)
в обработке
APPROVE (1)
успешно
FAILED (2)
Note |
---|
Внимание! Данный раздел находится в доработке. При интеграции конкретных платежных систем необходимо уточнять актуальные статусы у ТП Paykassma.com. |
Оглавление:
Table of Contents | ||
---|---|---|
|