Ввод
Внимание!
Данный способ интеграции является НЕ рекомендуемым, если Вы ранее не интегрировали похожие платежные решения, требующие активации. Рекомендуемый способ интеграции.
При выборе интеграции по API, мы рекомендуем дополнительно провести следующие доработки:
- Добавить под каждую ПС подсказки в текстовом виде для пояснения пользователю всех шагов оплаты.
- Добавить визуальное пояснение процесса оплаты - gif-ки с отображением процесса и скриншоты шагов оплаты.
- Скриншоты и всю необходимую минимально текстовую информацию можно получить напрямую от ТП Paykassma.
Доступ к общему API реализован по секретному ключу. PLUGINAPI_SECRET - строка секретного ключа. Ее необходимо будет добавлять ко всем запросам в виде get-параметра secret.
Например: https://api.{URL_сервера_Paykassma}/api/v1/deposit-info?secret=pluginapi_secret
При отправке запроса без использования данных параметров, будет выдаваться ошибка 404 'Не найдено'
Получение доступных ПС
https://api.{URL_server_Paykassma}/api/v1/payment-systems/available
Request method: GET
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
currency_code | string[] (3) | ДА | Массив состоящий из кодов валют. Отобразятся ПС работающие по указанным валютам |
label | string (190) | ДА | Уникальный идентификатор (ID) пользователя, осуществляющего платеж |
{ "currency_code": [ "USD", "INR" ], "label": "55" }
{ "status": "ok" "params": { "currency_data": [ { "code": "USD", "symbol": "$" }, { "code": "INR", "symbol": "INR" } ], "wallets": [ { "type": "staging_b_ml", "currency_code": "INR", "order": 6, "logo": "https://api.staging.client-paykassma.com/storage/payment_system/logos/staging_b_ml.png", "name": "staging B ml", "is_manual": true, "uploading_payment_bill": true }, { "type": "nagad", "currency_code": "USD", "order": 17, "logo": "https://api.staging.client-paykassma.com/storage/payment_system/logos/nagad_default.svg", "name": "Nagad", "is_manual": false, "uploading_payment_bill": false } ] } }
{ "status": "fail" "message": "MESSAGE" }
Получение медиаподсказок
Для получения медиаподсказок о том, как совершить депозит по платежной системе, необходимо отправить запрос:
https://api.{URL_server_Paykassma}/wallet-type/images/
Request method: GET
Format: JSON
"status": "success", "message": "", "code": 20000, "data": { "imps": { "id": 486, "url": "https://api.staging.client-paykassma.com/storage/guide-image/bkash.mp4" }, "paytm": { "id": 500, "url": "https://api.staging.client-paykassma.com/storage/guide-image/Ghjkfre22.gif" }, "upi": { "id": 506, "url": "https://api.staging.client-paykassma.com/storage/guide-image/upi_in.mp4" } } }
{ "status": "fail" "message": "MESSAGE" }
Создание платежа
В данный момент существуют два типа запросов для создания платежа, в зависимости от необходимости активации платежа при проведении.
Внимание! Для получения полного списка ПС, для которых необходима активация, обратитесь в ТП Paykassma. ТП предоставят полные примеры запросов для доступных в данный момент ПС.
Для ПС, требующих активации платежа
1. Запрос по созданию платежа:
https://api.{URL_server_Paykassma}/api/v1/transaction/create/{wallet_type}
Пример запроса ПС PayTM
https://api.{URL_server_Paykassma}/api/v1/transaction/create/paytm
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
currency | string (3) | ДА | Код валюты |
label | string (190) | ДА | Уникальный идентификатор пользователя, осуществляющего платеж |
{ "currency": "INR", "label": "eligendi" }
{ "status": "ok", "params": { "identifier": "6234234234" } }
{ "status": "fail" "message": "MESSAGE" }
2. Запрос для активации платежа
В зависимости от значения параметра is_manual, различают два типа запросов для активации платежей:
1) если is_manual = false
https://api.{URL_server_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) | ДА | Код, по которому происходит активация (Transaction_ID), полученный от пользователя |
amount | float | *required if | Сумма транзакции |
custom_transaction_id | string (64) | ДА | Уникальный идентификатор транзакции в системе Клиента Необходимо передавать неповторяющееся значение параметра |
{ "currency_code": "USD", "wallet_type": "paytm", "label": "55", "key1": "123-ABC-456-DEF" "custom_transaction_id": "123465477897" }
{ "status": "ok" }
{ "status": "fail" "message": "MESSAGE" }
2) если is_manual = true
https://api.{URL_server_Paykassma}/api/v1/possible-transaction
Request method: POST
Format: multipart/form-data
Parameters:
Name | Type | Required | Description |
secret | string | yes | Ключ доступа |
Body:
Параметр | Тип | Обязательность | Описание |
currency_code | string (3) | ДА | Код валюты |
wallet_type | string (190) | ДА | Значение из списка доступных ПС. |
label | string (190) | ДА | Уникальный идентификатор пользователя, осуществляющего платеж |
key1 | string (190) | ДА | Код, по которому происходит активация (Transaction_ID), полученный от пользователя |
amount | float | ДА | Сумма транзакции |
screenshot | string (190) | НЕТ | Загрузка скриншота об оплате |
custom_id | string (190) | ДА | Идентификатор транзакции в системе Клиента |
{ "status": "success", "message": "", "code": 20000, "data": [], "paginate": { "offset": 0, "total": 1, "limit": 1 } }
{ "status": "fail", "message": { "key1": [ "Transaction field has wrong length" ] } }
*При включенном функционале Отложенная автоматическая активация транзакций(Возможные транзакции)
{ "status": "possible_transaction_created", "message": "Transaction not found. Possible transaction created" }
**Для некоторых ПС, так же в запросе необходимо передать поле amount:
Платежная система | currency_code | wallet_type | label | key1 | amount | custom_transaction_id |
---|---|---|---|---|---|---|
UPI P2P | required | required | required | required | required | required |
PhonePe | required | required | required | required | required | required |
bKash | required | required | required | required | - | required |
Nagad | required | required | required | required | - | required |
***При попытке активировать подозрительную транзакцию будет отображаться ошибка 400 'Запущена проверка статуса депозита. Операция может занять больше времени, чем ожидалось. По завершении проверки денежные средства будут зачислены на ваш счет'.
Для ПС, не требующих активации платежа
Создание платежа:
https://api.{URL_server_Paykassma}/api/v1/payment/create/{payment_system}
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
language | string (2) | ДА | Язык интерфейса |
currency | string (3) | ДА | Код валюты |
bank | string (3) | ДА | Банк, через который осуществляется платеж |
amount | float (ограничена max. | ДА | Сумма платежа |
label | string (190) | ДА | Уникальный идентификатор пользователя, осуществляющего платеж |
redirect_url | url | ДА | URL страницы для редиректа после платежа |
custom_transaction_id | string (64) | ДА | Уникальный идентификатор транзакции в системе Клиента Необходимо передавать неповторяющееся значение параметра |
{ "language": "en", "currency": "USD", "bank": "MBB", "amount": 1000.00, "label": "55", "redirect_url": "https:\/\/google.com" "custom_transaction_id": "123465477897" }
{ "status": "ok" }
{ "status": "fail" "message": "MESSAGE" }
Возможные статусы ответа
Код состояния | Текст ошибки |
---|---|
400 | Unknown upi payment mode. |
404 | Payment method is not supported. |
405 | Payment acceptance for this system is suspended. |
424 | Payment method is currently unavailable. |
Пример запроса ПС Bkash API
http://api.{ URL_server_Paykassma }/api/v1/payment/create/bkash_api
Request method: POST
Format: JSON
Params:
Name | Type | Required | Description |
secret | string | yes | Ключ доступа |
Body:
Параметр | Тип | Обязательность | Описание |
amount | float (ограничена min и max. депозитом) | ДА | Сумма платежа |
account_number | string (11) | ДА | Одиннадцатизначный номер счета пользователя Клиента в Bkash, в формате 01ХХХХХХХХХ Валидация:
|
currency | string (3) | ДА | Код валюты |
label | string (190) | ДА | Это уникальный идентификатор (ID) пользователя, осуществляющего платеж |
custom_transaction_id | string (64) | ДА | Уникальный идентификатор транзакции в системе Клиента Необходимо передавать неповторяющееся значение параметра |
success_url | string (не ограничен) | ДА | Ссылка, на которую нужно перенаправить пользователя со страницы Bkash в случае успешной оплаты. |
failure_url | string (не ограничен) | ДА | Ссылка, на которую нужно перенаправить пользователя со страницы Bkash в случае ошибки оплаты. |
cancel_url | string (не ограничен) | ДА | Ссылка, на которую нужно перенаправить пользователя со страницы Bkash в случае отмены оплаты. |
{ "amount": 1.00, "account_number": "01770618575", "currency": "BDT", "label": "test", "custom_transaction_id": "01abc0095689", "success_url": "https://static5.depositphotos.com/1029663/395/i/600/depositphotos_3955476-stock-photo-green-check-mark.jpg?status=success", "failure_url": "https://top-fon.com/uploads/posts/2021-07/1626870875_29-p-krasnii-krest-fon-32.png?status=failure", "cancel_url": "https://yandex.ru/" }
{ "status": "ok", "data": { "orderId": "1cb4627a420a6e69", "bkashUrl": "https://sandbox.payment.bkash.com/redirect/tokenized/?paymentID=TR00114E1661778153815&hash=dcRq9geuCtjkN6rFpaGxdLAMrmyxIxL*kEN-p41SLL2M!xXy9m2OTUTLwlAGMVWDKyE8xkOHj_N_AHaTxNGT*(V2LXyC5y4zpUsG1661778154005&mode=0011&apiVersion=v1.2.0-beta", "message": "Successful" } }
{ 'status': 'fail' 'message': 'MESSAGE' }
Пример запроса ПС Nagad API
http://api.{ URL_server_Paykassma }/api/v1/payment/create/nagad_api
Request method: POST
Format: JSON
Params:
Name | Type | Required | Description |
secret | string | yes | Ключ доступа |
Body:
Параметр | Тип | Обязательность | Описание |
amount | float (ограничена min и max. | ДА | Сумма платежа |
currency | string (3) | ДА | Код валюты |
label | string (190) | ДА | Это уникальный идентификатор пользователя, осуществляющего платеж |
custom_transaction_id | string (64) | ДА | Уникальный идентификатор транзакции в системе Клиента Необходимо передавать неповторяющееся значение параметра |
success_url | string (не ограничен) | ДА | Ссылка, по которой нужно перенаправить пользователя со страницы Nagad в случае успешной оплаты. |
fail_url | string (не ограничен) | ДА | Ссылка, по которой нужно перенаправить пользователя со страницы Nagad в случае ошибки оплаты |
cancel_url | string (не ограничен) | ДА | Ссылка, по которой нужно перенаправить пользователя со страницы Nagad в случае отмены оплаты. |
{ "custom_transaction_id": "custom_transaction_1", "amount": 100.00, "currency": "BDT", "label": "test_user", "success_url": "https://success_url.com", "fail_url": "https://fail_url.com", "cancel_url": "https://cancel_url.com" }
{ "status": "ok", "payment_url": "callBackUrl"//ссылка на страницу оплаты Nagad, на которой пользователь должен ввести все необходимые реквизиты и совершить оплату. }
{ 'status': 'fail' 'message': 'MESSAGE' }
Информация о накоплениях
Для сохранения информации о транзакциях, сумма которых не превышает размер минимального депозита для конкретной платёжной системы, был реализован функционал накоплений. Транзакции пользователя (выборка по параметру label) копятся в системе и не зачисляются на счёт пользователя до тех пор, пока их сумма не достигнет минимального депозита этой платёжной системы. Постбек на сервер клиента отправится только после достижения суммы минимального депозита. До момента отправки postback транзакция не считается зачисленной на счёт.
В постбеке ввода, можно увидеть поле Stockpiling, в нем указана сконвертированная во все валюты сумма транзакций, участвующих в накоплении (одна и более транзакции). Конвертация осуществляется на основе открытых данных о курсах валют. Все валюты передаются с точностью до сотых долей, криптовалюты имеют 8 знаков в дробной части (стомиллионная точность). Так же в поле transactions передается информация о совершённых транзакциях, участвующих в накоплении (одна и более). Передается в виде массива.
Запрос на предоставление информации о накоплениях определенного пользователя
https://api.{URL_server_Paykassma}/api/v1/deposit-info
Request method: GET
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
label | string (190) | ДА | Уникальный идентификатор пользователя, осуществляющего платеж |
wallet_type | url | ДА | Значение из списка доступных ПС. |
currency | string (3) | ДА | Код валюты |
code | string (190) | НЕТ | Название ручной платёжной системы. |
{ "label": "55", "wallet_type": "paytm", "currency": "UDS" }
{ "status": "ok" "stockpiling_sum": 0, "lacks_sum": 0, "minimum_deposit": 148 }
{ "status": "fail" "message": "MESSAGE" }
Хеширование адресов для редиректа
В коде виджета заданы параметры для указания адресов для редиректа. Указывать адреса необходимо в хешированном виде. Для хеширования адресов необходимо отправить следующий запрос ( доступ реализован по ключу secret):
https://api.{URL_server_Paykassma}/payment-plugin/hash-url?secret=pluginapi_secret
Request method: POST
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание | |
success_urls | array | ДА | Список адресов для редиректа при успешной оплате. | |
order | integer | *ДА | Номер адреса для редиректа в списке. | |
url | string | *ДА | Адрес для редиректа пользователя при успешной оплате. | |
fail_urls | array | ДА | Список адресов для редиректа при неуспешной оплате. | |
order | integer | *ДА | Номер адреса для редиректа в списке. | |
url | string | *ДА | Адрес для редиректа пользователя при неуспешной оплате. | |
pending_urls | array | ДА | Список адресов для редиректа при ожидании подтверждения оплаты. | |
order | integer | Если указано одно из свойств, то второе обязательно | Номер адреса для редиректа в списке. | |
url | string | Адрес для редиректа при ожидании подтверждения оплаты. |
*Один из массивов success_urls или fail_urls может быть пустым.
{ "success_urls": [ { "order": 2, "url": "https://test.com/success2.jpg" }, { "order": 1, "url": "https://test.com/success1.jpg" } ], "fail_urls": [ { "order": 1, "url": "https://test.com/fail1.jpg" }, { "order": 2, "url": "https://test.com/fail2.jpg" } ], "pending_urls": [ { "order": 3, "url": "https://test.com/pending1.jpg" }, { "order": 4, "url": "https://test.com/pending2.jpg" } ] }
{ "status": "ok", "urls": { "success_url": [ { "order": 1, "url": "a93558ba9e4f04eef3b1f759ae4281305776559ce86ae2af5f6e6498d84b99be" }, { "order": 2, "url": "7c51f9d6b35a80a8fcce9cf3f4f0ae56b818c2e375a8b3297cb3fafb41a921eb" } ], "fail_url": [ { "order": 1, "url": "8b99db57e0bda63400b0e852d7fe73d8c6da52b8e32894987a8bd00bcadf8c66" }, { "order": 2, "url": "e72ed31e2f3814563a3bc446f6a59f43c946c3a4339c7b2f5c29d12e8066b37c" } ], "pending_url": [ { "order": 1, "url": "8b99db57e0bda63400b0e852d7fe73d8c6da52b8e32894987a8bd00bcadf9v69" }, { "order": 2, "url": "e72ed31e2f3814563a3bc446f6a59f43c946c3a4339c7b2f5c29d12e8066b37f" } ] } }
{ "status": "fail" "message": "MESSAGE" }
Внимание!
Время жизни хеша - 1 день. По истечении срока при необходимости запросить хеш для адреса повторно.
Вывод
Актуальный тип запросов для подключения выводов:
Для вывода денежных средств пользователем через доступные для Клиента платежные системы, необходимо:
- Единоразово передать ТП Paykassma URL-сервера, куда будут отправляться постбеки со статусом вывода.
- Отправить запросы на вывод (POST) по URL адресу, без использования "secret=pluginapi_secret " :
https://api.{URL_server_Paykassma}/v2/withdrawal/create
Request method:
POST
Format:
JSON
Каждый запрос на вывод подписывается signature, она формируется следующим образом:
Алгоритм формирования signature
- Инициализируется свой приватный ключ.
- Формируется массив с данными, которые будут захэшированы. Массив может быть многомерным.
- Элементы массива сортируются по ключу при помощи функции ksort()
- Элементы массива рекурсивно конкатенируются друг с другом через строку ":".
- Далее выделяется md5 hash полученной строки.
- Конкатенируется приватный ключ с hash строкой.
- Далее выделяется sha1 hash с полученной строки.
Пример формирования signature на php
$data = [ ... ]; $data['signature'] = generateSignature($data); // return fa0ee1e2acf7f898635ec417491381c0a4f9d35c //send $data like json ... function generateSignature(array $data) { $privateKey = 'yourprivatekey'; ksort($data); $implode = self::multiImplode( ':', $data); return sha1($privateKey . md5($implode)); } function multiImplode($glue, $array): string { $finArray = []; foreach ($array as $val) { $finArray[] = is_array($val) ? self::multiImplode($glue, $val) : $val; } return implode($glue, $finArray); }
Необходимые параметры для передачи в POST запросе
Наименование | Тип | Обязательность | Описание |
withdrawal_id | string(1-36) | optional | Идентификатор вывода, если параметр не передается, то система генерирует withdrawal_id |
payment_system | string | required | Платежная система |
amount | int | required | Дополнительные требования:
Кратность: Для ПС PayTM: amount кратно "10". |
currency_code | string(3) | required | Код валюты |
label | string | required | Label пользователя, для которого проводится вывод |
is_test | boolean | required | Параметр is_test может принимать одно из двух значений:
|
account_number | string | *required_if | Номер счета получателя Маска ввода: Для ПС PayTM: Цифры(10) (без международного кода +91) Для ПС UPI IB / IMPS IB: Цифры Для ПС Bkash / Nagad: Цифры(11) в формате 01xxxxxxxxx Для ПС Rocket: Цифры(11-12) в формате 01xxxxxxxxxх |
account_name | string | *required_if ПС = imps_ib, upi_ib,.... | Имя держателя счета |
account_email | string | *required_if ПС = bkash,... | Е-mail держателя счета |
payments_details.payments_method | string | *required_if | Способ оплаты |
payments_details.payments_provider | string | optional | Поставщик, который осуществляет электронный платеж, выбранным способом оплаты |
bank_details.bank_code | string(11) | *required_if | Уникальный идентификатор присваиваемый центральным банком страны Маска ввода: Для ПС IMPS IB: IFSC code - длина должна составлять 11 символов, содержать буквы и цифры без пробела и тире. Подробнее: https://en.wikipedia.org/wiki/Indian_Financial_System_Code |
bank_details.branch_code | string | *required_if | Код филиала (отделения) банка |
bank_details.bank_code_in_payments_system | string | *required_if | Код банка в платежной системе, с которой осуществляется обмен данными |
iban | string | *required_if | IBAN |
Обязательные поля для ПС Bkash, PayTm, IMPS IB/UPI IB:
Платежная система | account_number | account_name | account_email | payments_details | bank_details | |||
---|---|---|---|---|---|---|---|---|
payments_method | payments_provider | bank_code | branch_code | bank_code_in_payment_system | ||||
Bkash | required | - | required | - | - | - | - | - |
IMPS IB | required | required | - | - | - | required | - | - |
Paytm | required | - | - | - | - | - | - | - |
Request:
{ "withdrawal_id": "1234567", "payment_system": "paytm", "amount" : 1000, "currency_code": "INR", "label": "55", "is_test": false, "comment: "withdrawal", "account_number": "11111111", "payments_details": { "payments_provider": "56", "payments_method": "MOBILE_MONEY" }, "bank_details": { "bank_code": "MAHB0001821", "branch_code": "000254", "bank_code_in_payments_system": "9393" }, "signature":"fae51673a8a9c85f724317214bd0bcc665ebc799" }
{ "status": "ok" }
{ "status": "fail" "message": "MESSAGE" }
*Если при попытке создания заявки на вывод сумма балансов счетов в валюте заявки будет меньше, чем общая сумма новой и еще незавершенных заявок, то отобразится ошибка 'Недостаточный баланс' (для настройки данного функционала обратитесь в ТП Paykassma).
{ "status": "fail", "message": { "withdrawals_sum_amount": [ "Insufficient balance" ] } }
После обработки вывода, Paykassma пришлет постбек о результате вывода с определенным статусом, подписанной сигнатурой
Статусы выводов
Статус | Описание |
---|---|
PROCESSED (1) | Статус для вывода, когда заявка на вывод была успешно обработана |
REJECTED (5) | Статус для вывода, когда заявка на вывод была отклонена |
Информация о ранее отправленном постбеке
Запрос на предоставление информации о ранее успешно отправленном постбеке.
PLUGINAPI_SECRET - строка секретного ключа. Ее необходимо будет добавлять ко всем запросам в виде get-параметра secret.
Например: https://api.{URL_сервера_Paykassma}/api/v1/postback?secret=pluginapi_secret
https://api.{URL_server_Paykassma}/api/v1/postback
Request method: GET
Format: JSON
Parameters:
Параметр | Тип | Обязательность | Описание |
type | string | ДА | Тип постбека. Возможные значения:
|
transaction_id | string | Обязателен хотя бы один из параметров, если type = deposit | Номер транзакции |
custom_id | string | Номер заказа Если в Paykassma содержится несколько транзакций с одинаковым номером заказа, будет отобрана только одна из них. Поэтому уникальность custom_id необходимо контролировать на стороне системы Клиента. | |
withdrawal_id | string | Обязателен, если type = withdrawal | ID вывода |
{ "status": "ok", "postback": { "transaction_id": "453535345", "label": "435", "stockpiling": { "USD": 4610062.05, "INR": 345345345, "EUR": 3983190.43, "IDR": 65837909699.54, "MYR": 19134062.55, "VND": 104893839449.17, "SGD": 6221984.08, "THB": 153749990.51, "NGN": 1898193050.29, "TRY": 43873352.03, "AED": 16933679.93, "CAD": 5706403.96, "AUD": 6134591.13, "BDT": 394891290.79, "AFN": 418156964.72, "ALL": 488772456.91, "AMD": 2202143869.02, "AOA": 2752207045.6, "ARS": 459519460.28, "AWG": 8300416.73, "AZN": 7840816.59, "BAM": 7789732.49, "BBD": 9220124.11, "BGN": 7790566.91, "BHD": 1737744.45, "BIF": 9169348711.83, "BMD": 4610062.05, "BND": 6216396.68, "BOB": 31801277.58, "BRL": 26023403.82, "BSD": 4610062.05, "BTC": 74.54470339, "BTN": 345299119.91, "BWP": 52763690.74, "BYN": 11244314.76, "BZD": 9240952.37, "CDF": 9143497429.28, "CHF": 4208184.5, "CLF": 135913.85, "CLP": 3750285480.05, "CNH": 29495130.91, "CNY": 29495177.01, "COP": 17331717342.01, "CRC": 2939207744.86, "CUC": 4610062.05, "CUP": 118709097.86, "CVE": 436572876.41, "CZK": 102052399.68, "DJF": 820509207.6, "DKK": 29632944.11, "DOP": 260174176.58, "DZD": 634030335.09, "EGP": 72425457.87, "ERN": 69153789.03, "ETB": 218717216.23, "FJD": 9542828.45, "FKP": 3369190.09, "GBP": 3369190.09, "GEL": 14521695.47, "GGP": 3369190.09, "GHS": 28121143.41, "GIP": 3369190.09, "GMD": 239723226.75, "GNF": 44360498102.61, "GTQ": 35672982.87, "GYD": 964839822.52, "HKD": 35879882.45, "HNL": 111443474.11, "HRK": 29978196.27, "HTG": 452476986.58, "HUF": 1435716207.54, "ILS": 14476908.71, "IMP": 3369190.09, "IQD": 6725977357.42, "IRR": 194775122390.71, "ISK": 598293853.23, "JEP": 3369190.09, "JMD": 712559367.6, "JOD": 3268534, "JPY": 526637353.71, "KES": 513053805.87, "KGS": 390935115.33, "KHR": 18835091650.05, "KMF": 1942681734.96, "KPW": 4149055847.63, "KRW": 5430630260.1, "KWD": 1391132.33, "KYD": 3840638.09, "KZT": 1971237418.21, "LAK": 47201661108.42, "LBP": 6965551762.15, "LKR": 930998873.7, "LRD": 698424377.97, "LSL": 70723847.09, "LYD": 21015783.85, "MAD": 41858708.81, "MDL": 80357078.85, "MGA": 18336748035.86, "MKD": 245401836.65, "MMK": 8326080171.86, "MNT": 13147861127.1, "MOP": 36946291.23, "MRO": 1645791359.96, "MRU": 166749005.54, "MUR": 198463171.38, "MVR": 71225458.72, "MWK": 3763215975.72, "MXN": 95382589.56, "MZN": 294260260.84, "NAD": 69704138.24, "NIO": 162371876.09, "NOK": 38796622.62, "NPR": 552477876.37, "NZD": 6414537.15, "OMR": 1774767.86, "PAB": 4610062.05, "PEN": 18422162.94, "PGK": 16182622.45, "PHP": 233052471.57, "PKR": 792501444.06, "PLN": 18414837.55, "PYG": 31817465481.06, "QAR": 16780842.55, "RON": 19712487.04, "RSD": 468340620.4, "RUB": 327660160.41, "RWF": 4695797248.61, "SAR": 17293947.06, "SBD": 37028825.17, "SCR": 63024218.26, "SDG": 2030732334.31, "SEK": 39500786.54, "SHP": 3369190.09, "SLL": 49746487532.16, "SOS": 2666103446.02, "SRD": 99148604.57, "SSP": 600506683.01, "STD": 96610491131.87, "STN": 98424824.83, "SVC": 40330104.44, "SYP": 5794559138.65, "SZL": 70735399.9, "TJS": 51758475.93, "TMT": 16158267.5, "TND": 12965799.52, "TOP": 10312565.9, "TTD": 31286296.76, "TWD": 128400374.92, "TZS": 10616972907.89, "UAH": 121246397.65, "UGX": 16393718610.02, "UYU": 202666561.42, "UZS": 49202252751, "VEF": 1145543450116.04, "VES": 19910627.5, "VUV": 512750542.16, "WST": 11839063.48, "XAF": 2612802535.54, "XAG": 192248.81, "XAU": 2577.02, "XCD": 12458923.2, "XDR": 3272982.71, "XOF": 2612802535.54, "XPD": 2235.88, "XPF": 475321217.85, "XPT": 4398, "YER": 1153668019.52, "ZAR": 70640049.99, "ZMW": 79757295.95, "ZWL": 1484439981.04, "ETH": 1054.27509088, "LTC": 110641.4892702, "DOGE": 16950326.08316667, "DASH": 65854.73642603, "BCH": 18901.25441699, "ZEC": 126163.56820239, "ETC": 878106.17959294, "XRP": 24711011.35819838, "TRX": 45776463.64719361, "XLM": 98741900.28788687, "WAVES": 172375.10682464 }, "stockpiling_id": 1585, "transactions": [ { "amount": 345345345, "currency_code": "INR", "wallet_type": "phone_pe", "transaction_id": "453535345", "transaction_type": 0, "from": null, "created_datetime": "2021-10-21 13:34:12", "activated_datetime": "2021-11-01 14:16:51", "custom_id": null } ] } }
{ "status": "ok", "postback": { "withdrawal_id": "2298635", "status": 1, "comment": "test", "payment_system": "paytm", "amount": 500, "currency_code": "INR", "label": "55", "account_number": "5422222225", "account_name": "5645646", "account_email": null, "payments_details": { "payments_provider": null }, "bank_details": { "bank_code": null, "branch_code": null } } }
{ "status": "fail" "message": "MESSAGE" }
Баланс счетов
Запрос на предоставление информации о балансе счетов Клиента (кроме баланса Сеттлемента) формируется следующим образом:
https://api.{URL_server_Paykassma}/api/v1/accounts-balance?secret={{pluginapi.secret}}
Request method: GET
Format: JSON
Parameters:
Name | Type | Required | Description |
secret | string | yes | Ключ доступа |
{ "status": "success", "message": "", "code": 20000, "data": { "balances": [ { "wallet_type": "paytm", "currency_code": "IDR", "amount": -324324.00 }, { "wallet_type": "paytm", "currency_code": "USD", "amount": -10800.00 }, { "wallet_type": "bkash", "currency_code": "VND", "amount": 155.00 }, { "wallet_type": "bkash", "currency_code": "BRL", "amount": 187239.195 }, { "wallet_type": "bkash", "currency_code": "EUR", "amount": 23.9375 }, { "wallet_type": "nagad", "currency_code": "CUC", "amount": 471.00 }, { "wallet_type": "upi_ib", "currency_code": "SAR", "amount": 499.00 } ] }
{ "status": "error", "code": 30228, "errors": { "target": "secret", "code": 36205, "message": "Wrong secret" }, "error_message": "Data validation error" }
Статусы заказов
Запрос на предоставление информации о статусах заказов Клиента формируется следующим образом:
https://api.{URL_server_Paykassma}/api/v1/pullpostbacks?secret={{pluginapi.secret}}
Request method: GET
Format: JSON
Parameters:
Наименование | Тип | Обязательность | Описание |
secret | string | YES | Ключ доступа |
Наименование | Тип | Обязательность | Описание |
---|---|---|---|
type | string | ДА | Возможные значения:
|
plugin_custom_order_id | array | ДА, если type deposit | ID транзакции пользователя/номер заказа |
withdrawal_id | array | ДА, если type withdrawal | ID вывода |
Response body:
Наименование | Тип | Обязательность | Описание | |||||
---|---|---|---|---|---|---|---|---|
status | string | ДА | Статус запроса | |||||
massage | string | Заполняется в случае успешного ответа | Сообщение при успешном ответе | |||||
code | int | ДА | Код ответа | |||||
data | array/object | Заполняется в случае успешного ответа | ||||||
transactions | array | ДА, если type deposit | Информация о депозите | |||||
plugin_custom_order_id | string | ДА | ID транзакции пользователя/номер заказа | |||||
message | string | ДА, если транзакция не найдена | Сообщение, если транзакция не была найдена | |||||
postback | array | ДА, если транзакция найдена | Информация о постбеке | |||||
withdrawals | array | ДА, если type withdrawal | Информация о выводе | |||||
withdrawal_id | string | ДА | ID вывода | |||||
message | string | ДА, если вывод не найден | Сообщение, если транзакция не была найдена | |||||
postback | array | ДА, если вывод не найден | Информация о постбеке |
{ "status": "success", "message": "", "code": 20000, "data": { "transactions": [ { "plugin_custom_order_id": "autotest51191116971521", "message": "Postback not found" }, { "plugin_custom_order_id": "autotest51191472141726", "postback": { "label": "autotest51191472141726", "stockpiling": { "USD": 3.6, "EUR": 3.37, "IDR": 55405.29, "MYR": 16.92, "VND": 87878.53, "SGD": 4.91, "THB": 129.67, "NGN": 2844.58, "TRY": 97.39, "AED": 13.23, "CAD": 4.85, }, "stockpiling_id": 269866, "transactions": [ { "amount": 300.00, "currency_code": "INR", "wallet_type": "upi_l", "transaction_id": "770425808190", "transaction_type": 0, "from": "autotest51190375323527", "created_datetime": "2023-09-19 10:25:47", "activated_datetime": "2023-09-19 10:25:48", "custom_id": "autotest51191472141726" } ] } } ] }, "paginate": { "offset": 0, "total": 2, "limit": 2 } }
{ "status": "success", "message": "", "code": 20000, "data": { "withdrawals": [ { "withdrawal_id": "autotest51180853781767", "postback": { "withdrawal_id": "autotest51180853781767", "status": 1, "comment": "autotest approve by file", "payment_system": "upi_idb", "amount": 330, "currency_code": "INR", "label": "autotest95118085378184", "account_number": "1950478885", "account_name": "autotest95117145615335", "account_email": "", "payments_details": { "payments_provider": null }, "bank_details": { "bank_code": null, "branch_code": null } } } ] }, "paginate": { "offset": 0, "total": 1, "limit": 1 } }
{ "status": "fail", "message": { "plugin_custom_order_id": [ "The plugin custom order id field is required when type is deposit." ] } }