Page History
Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Deposit of funds (API)
Доступ к общему API реализован по белому листу IP-адресов и секретному ключу. Перед началом работы с API на ввод, необходимо передать ТП Paykassma IP-адрес с которого будут отправляться запросы.
PLUGINAPI_SECRET - строка секретного ключа. Ее необходимо будет добавлять ко всем запросам в виде get-параметра secret.
Например: https://api.{URL_сервера_Paykassma}/api/v1/deposit-info?secret=pluginapi_secret
При отправки запроса без использования данных параметров, будет выдаваться ошибка 404 'Не найдено'
Attention: Before starting to work with the API for deposit, it is necessary to send the IP address from which requests will be sent to the Paykassma TS.
Saving the client’s ID transaction
Request for sending your transaction ID (custom_transaction_id) to Paykassma. In the future, this ID is assigned to the transaction performed by the user and is transmitted in the postback.
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/payment/save-transaction-custom-id |
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
label | string (190) | YES | Unique identifier (ID) of the user making the payment |
transaction_custom_id | string (190) | YES | Transaction ID in the Client’s system |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"label": "55",
"transaction_custom_id": "123465477897"
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"status": "ok"
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"status": "fail"
"message": "MESSAGE"
} |
Obtaining available PSs
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/payment-systems/available |
Request method: GET
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
currency_code | string[] (3) | YES | An array consisting of currency codes. PS that work with the specified currencies will be displayed |
label | string (190) | YES | Unique identifier (ID) of the user making the payment |
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"
} |
Creating a payment
Currently, there are two types of requests for creating a payment, depending on the PS.
Info |
---|
Attention! To get a complete list of available PSs, you need to contact Paykassma TS. TS will provide complete examples of requests for currently available PSs. They will also determine the correct request, depending on the selected PS. |
Type of request №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 |
In this case, first we accept a request for deposit via PayTM, then in response we will provide details of the wallet to which the user should transfer the payment, and after payment you need to send a request to activate the transaction
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
currency | string (3) | YES | Currency code |
label | string (190) | YES | Unique identifier of the user making the payment |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"currency": "INR",
"label": "eligendi"
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"status": "ok",
"params": {
"identifier": "6234234234"
}
} |
Code Block | ||||
---|---|---|---|---|
| ||||
{
"status": "fail"
"message": "MESSAGE"
} |
1.2 Activation request:
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/transaction/activate |
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
currency_code | string (3) | YES | Currency code |
wallet_type | string (190) | YES | Value from the list of available PSs. |
label | string (190) | YES | Unique identifier of the user making the payment |
key1 | string (190) | YES | A code on which activation is performed (Transiction_ID), received from the user |
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"
} |
Type of request №2:
2.1
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/payment/create/{payment_system} |
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
language | string (2) | YES | Interface language |
currency | string (3) | YES | Currency code |
bank | string (3) | YES | The bank via which the payment is performed |
amount | numeric (ограничена max. | YES | Payment amount |
label | string (190) | YES | Unique identifier of the user making the payment |
redirect_url | url | YES | URL of the page for redirecting after payment |
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"
} |
Information about savings
Request to provide information about savings of a certain user
Для сохранения информации о транзакциях, сумма которых не превышает размер минимального депозита для конкретной платёжной системы, был реализован функционал накоплений. Транзакции пользователя (выборка по параметру label) копятся в системе и не зачисляются на счёт пользователя до тех пор, пока их сумма не достигнет минимального депозита этой платёжной системы. Постбек на сервер клиента отправится только после достижения суммы минимального депозита. До момента отправки postback транзакция не считается зачисленной на счёт.
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_сервера_Paykassma}/api/v1/deposit-info |
Request method: GET
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
label | string (190) | YES | Unique identifier of the user making the payment |
wallet_type | url | YES | Value from the list of available PSs. |
currency | string (3) | YES | Currency code |
code | string (190) | NO | Name of the manual payment system. |
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"
} |
Withdrawal of funds (API)
To withdraw funds by the user via payment systems available to the Client, it is necessary to:
- Once send Paykassma TS the URL of the server where postbacks with the withdrawal status will be sent.
Send withdrawal requests (POST) to the URL:
Code Block theme RDark title API url https://api.{ URL сервера }/v2/withdrawal/create
Warning |
---|
Attention: When transmitting data, there should be no spaces at the beginning and end |
Each withdrawal request is signed by signature, it is formed as follows:
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));
} |
Required parameters for transmission in POST request:
Наименование | Тип | Обязательность | Описание |
withdrawal_id | string(1-7) | optional | Withdrawal ID, if the parameter is not passed, then the system generates withdrawal _id |
payment_system | string | required | Payment system |
amount | numeric | required | Withrawal amount |
currency_code | string(3) | required | Currency code |
label | string | required | Unique identifier of the user making the payment |
comment | string(4-64) | optional | Comment |
account_number | string | *required_if | Number of the bank account |
account_name | string | *required_if ПС = imps, upi,.... | Name of the bank account holder |
account_email | string | *required_if ПС = bkash,... | Email of the person who is being paid |
receiver_name | string(190) | required_if ПС = imps | Name of the person who is being paid |
payments_details.payments_method | string | *required_if | Payment method |
payments_details.payments_provider | string | optional | Supplier who makes electronic payment using the selected payment method |
bank_details.bank_code | string | *required_if | Unique ID assigned by the country's central bank |
bank_details.branch_code | string | *required_if | Bank branch code |
bank_details.bank_code_in_payments_system | string | *required_if | Bank code in payments system, с которой осуществляется обмен данными |
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 |
Info |
---|
*В запросе на вывод, имеются поля обязательные только для некоторых платежных систем(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) | Статус для вывода, когда заявка на вывод была успешно обработана |
Так же к работе доступен старый запрос на вывод
API url:
Code Block | ||
---|---|---|
| ||
https://api.{URL_сервера_Paykassma}/withdrawal/manual/create |
Необходимые параметры для передачи в POST запросе
Внимание: При передаче данных не должно быть пробелов в начале и конце параметров в JSON файле
Параметр | Тип данных | Описание |
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 | Сумма вывода, в случае с PayTm, принимается сумма кратная 10! |
withdrawal_id | integer | ID вывода на стороне клиента (возвращается в постбеке). |
Пример тела запроса:
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"
} |
Вторым ответом уже придет постбек о результате вывода, подписанной сигнатурой.
Table of Contents | ||
---|---|---|
|