Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
ApV
ApV

Ввод 

Warning
titleВнимание!

Данный способ интеграции является НЕ рекомендуемым, если Вы ранее не интегрировали похожие платежные решения, требующие активации. Рекомендуемый способ интеграции.

При выборе интеграции по API, мы рекомендуем дополнительно провести следующие доработки:

  • Добавить под каждую ПС подсказки в текстовом виде для пояснения пользователю всех шагов оплаты.
  • Добавить визуальное пояснение процесса оплаты - gif-ки с отображением процесса и скриншоты шагов оплаты.
  • Скриншоты и всю необходимую минимально текстовую информацию можно получить напрямую от ТП Paykassma.

Доступ к общему API реализован по секретному ключу. PLUGINAPI_SECRET - строка секретного ключа. Ее необходимо будет добавлять ко всем запросам в виде get-параметра secret.
    Например: https://api.{URL_сервера_Paykassma}/api/v1/deposit-info?secret=pluginapi_secret 

При отправке запроса без использования данных параметров, будет выдаваться ошибка 404 'Не найдено'

Получение доступных ПС

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/payment-systems/available

Request method: GET

Format: JSON

Parameters:

Параметр

Тип

Обязательность

Описание

currency_code

string[] (3)

ДА

Массив состоящий из кодов валют. Отобразятся ПС работающие по указанным валютам 

label

string (190)

ДА

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

Code Block
themeDJango
titleRequest
{
    "currency_code": [ "USD", "INR" ],
    "label": "55"
}
Code Block
themeDJango
titleResponse Success
{
    "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
            }
        ]
        }
   
}
Code Block
themeDJango
titleResponse Fail
{
    "status": "fail"
    "message": "MESSAGE"
}

Получение медиаподсказок 

Для получения медиаподсказок о том, как совершить депозит по платежной системе, необходимо отправить запрос: 

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/wallet-type/images/

Request method: GET

Format: JSON

Code Block
themeDJango
titleResponse Success
collapsetrue
"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"
        }
    }
}
Code Block
themeDJango
titleResponse Fail
{
    "status": "fail"
    "message": "MESSAGE"
}

Создание платежа

В данный момент существуют два типа запросов для создания платежа, в зависимости от необходимости активации платежа при проведении.

Info

Внимание! Для получения полного списка ПС, для которых необходима активация, обратитесь в ТП Paykassma. ТП предоставят полные примеры запросов для доступных в данный момент ПС.

Для ПС, требующих активации платежа

1. Запрос по созданию платежа:

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/transaction/create/{wallet_type}
Пример запроса ПС PayTM
Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/transaction/create/paytm

Request method: POST

Format: JSON

Parameters:

Параметр

Тип

Обязательность

Описание

currency

string (3)

ДА

Код валюты

label

string (190)

ДА

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

Code Block
themeDJango
titleRequest
{
    "currency": "INR",
    "label": "eligendi"
}

 

Code Block
themeDJango
titleResponse Success
{
    "status": "ok",
    "params":  {
        "identifier": "6234234234"
                      }
}

 

Code Block
themeDJango
titleResponse Fail
{
    "status": "fail"
    "message": "MESSAGE"
}

2. Запрос для активации платежа

В зависимости от значения параметра is_manual, различают два типа запросов для активации платежей:

 1) если is_manual = false

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/transaction/activate

Request method: POST

Format: JSON

Parameters:

Параметр

Тип

Обязательность

Описание

currency_code

string (3)

ДА

Код валюты

wallet_type

string (190)

ДА

Значение из списка доступных ПС
Внимание: Д
ля получения полного доступного списка, обратитесь в ТП Paykassma

label

string (190)

ДА

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

key1

string (190)

ДА

Код, по которому происходит активация (Transaction_ID), полученный от пользователя

amountfloat*required ifСумма транзакции

custom_transaction_id

string (64)

ДА

Уникальный идентификатор транзакции в системе Клиента

Необходимо передавать неповторяющееся значение параметра

Code Block
themeDJango
titleRequest
{
    "currency_code": "USD",
    "wallet_type": "paytm",
    "label": "55",
    "key1": "123-ABC-456-DEF"
    "custom_transaction_id": "123465477897"
}

 

Code Block
themeDJango
titleResponse Success
{
    "status": "ok"
}

 

Code Block
themeDJango
titleResponse Fail
{
    "status": "fail"
    "message": "MESSAGE"
}

2) если is_manual = true

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/possible-transaction

Request method: POST

Format: JSON multipart/form-data

Parameters:

NameTypeRequiredDescription
secretstringyesКлюч доступа

Body:

Параметр

Тип

Обязательность

Описание

currency_code

string (3)

ДА

Код валюты

wallet_type

string (190)

ДА

Значение из списка доступных ПС.
Внимание:
Для получения полного доступного списка, обратитесь в ТП Paykassma.

label

string (190)

ДА

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

key1

string (190)

ДА

Код, по которому происходит активация (Transaction_ID), полученный от пользователя

amountfloatДАСумма транзакции
screenshotstring (190)НЕТЗагрузка скриншота об оплате

custom_id

string (190)

ДА

Идентификатор транзакции в системе Клиента

Code Block
themeDJango
titleResponse Success
{
    "status": "success",
    "message": "",
    "code": 20000,
    "data": [],
    "paginate": {
        "offset": 0,
        "total": 1,
        "limit": 1
    }
}
Code Block
themeDJango
titleResponse Fail
{
    "status": "fail",
    "message": {
        "key1": [
            "Transaction field has wrong length"
        ]
    }
}

*При включенном функционале Отложенная автоматическая активация транзакций(Возможные транзакции)

Code Block
themeDJango
titleResponse possible_transaction_created
{
    "status": "possible_transaction_created",
    "message": "Transaction not found. Possible transaction created"
}

**Для некоторых ПС, так же в запросе необходимо передать поле amount:

Платежная системаcurrency_codewallet_typelabelkey1amountcustom_transaction_id
UPI P2Prequiredrequiredrequiredrequiredrequiredrequired
PhonePerequiredrequiredrequiredrequiredrequiredrequired
bKashrequiredrequiredrequiredrequired-required
Nagadrequiredrequiredrequiredrequired-required

***При попытке активировать подозрительную транзакцию будет отображаться ошибка 400 'Запущена проверка статуса депозита. Операция может занять больше времени, чем ожидалось. По завершении проверки денежные средства будут зачислены на ваш счет'.

Для ПС, не требующих активации платежа

Создание платежа:

Code Block
themeRDark
titleAPI url
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)

ДА

Уникальный идентификатор транзакции в системе Клиента

Необходимо передавать неповторяющееся значение параметра

Code Block
themeDJango
titleRequest
{
   "language": "en",
   "currency": "USD",
   "bank": "MBB",
   "amount": 1000.00,
   "label": "55",
   "redirect_url": "https:\/\/google.com"
   "custom_transaction_id": "123465477897"
}

 

Code Block
themeDJango
titleResponse Success
{
    "status": "ok"
}

 

Code Block
themeDJango
titleResponse Fail
{
    "status": "fail"
    "message": "MESSAGE"
}

Возможные статусы ответа

Код состоянияТекст ошибки
400Unknown upi payment mode.
404Payment method is not supported.
405Payment acceptance for this system is suspended.
424Payment method is currently unavailable.
Пример запроса ПС Bkash API
Code Block
themeRDark
titleAPI url
http://api.{ URL_server_Paykassma }/api/v1/payment/create/bkash_api

Request method: POST

Format: JSON

Params:

NameTypeRequiredDescription
secretstringyesКлюч доступа


Body:

Параметр

Тип

Обязательность

Описание

amount

float (ограничена min и max. депозитом

ДА

Сумма платежа
account_numberstring (11)ДА

Одиннадцатизначный номер счета пользователя Клиента в Bkash, в формате 01ХХХХХХХХХ

Валидация:

  • Числа: 0-9.
currencystring (3)ДАКод валюты 
labelstring (190)ДАЭто уникальный идентификатор (ID) пользователя, осуществляющего платеж
custom_transaction_idstring (64)ДА

Уникальный идентификатор транзакции в системе Клиента

Необходимо передавать неповторяющееся значение параметра

success_urlstring (не ограничен)ДАСсылка, на которую нужно перенаправить пользователя со страницы Bkash в случае успешной оплаты.
failure_urlstring (не ограничен)ДАСсылка, на которую нужно перенаправить пользователя со страницы Bkash в случае ошибки оплаты.
cancel_urlstring (не ограничен)ДА

Ссылка, на которую нужно перенаправить пользователя со страницы Bkash в случае отмены оплаты.



Code Block
themeDJango
titleRequest
{
    "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/"
}



Code Block
themeDJango
titleResponse Success
{
    "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"
    }
}



Code Block
themeDJango
titleResponse Fail
{
    'status': 'fail'
    'message': 'MESSAGE'
}
Пример запроса ПС Nagad API
Code Block
themeRDark
titleAPI url
http://api.{ URL_server_Paykassma }/api/v1/payment/create/nagad_api

Request method: POST

Format: JSON

Params:

NameTypeRequiredDescription
secretstringyesКлюч доступа


Body:

Параметр

Тип

Обязательность

Описание

amount

float (ограничена min и max.
депозитом)

ДА

Сумма платежа
currencystring (3)ДАКод валюты 
labelstring (190)ДАЭто уникальный идентификатор пользователя, осуществляющего платеж
custom_transaction_idstring (64)ДА

Уникальный идентификатор транзакции в системе Клиента

Необходимо передавать неповторяющееся значение параметра

success_urlstring (не ограничен)ДАСсылка, по которой нужно перенаправить пользователя со страницы Nagad в случае успешной оплаты.
fail_urlstring (не ограничен)ДАСсылка, по которой нужно перенаправить пользователя со страницы Nagad в случае ошибки оплаты
cancel_urlstring (не ограничен)ДА

Ссылка, по которой нужно перенаправить пользователя со страницы Nagad в случае отмены оплаты.



Code Block
themeDJango
titleRequest
{
    "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"
}



Code Block
themeDJango
titleResponse Success
{
    "status": "ok",
    "payment_url": "callBackUrl"//ссылка на страницу оплаты Nagad, на которой пользователь должен ввести все необходимые реквизиты и совершить оплату.
}



Code Block
themeDJango
titleResponse Fail
{
    'status': 'fail'
    'message': 'MESSAGE'
}


Информация о накоплениях

Для сохранения информации о транзакциях, сумма которых не превышает размер минимального депозита для конкретной платёжной системы, был реализован функционал накоплений. Транзакции пользователя (выборка по параметру label) копятся в системе и не зачисляются на счёт пользователя до тех пор, пока их сумма не достигнет минимального депозита этой платёжной системы. Постбек на сервер клиента отправится только после достижения суммы минимального депозита. До момента отправки postback транзакция не считается зачисленной на счёт. 

В постбеке ввода, можно увидеть поле Stockpiling, в нем указана сконвертированная во все валюты сумма транзакций, участвующих в накоплении (одна и более транзакции). Конвертация осуществляется на основе открытых данных о курсах валют. Все валюты передаются с точностью до сотых долей, криптовалюты имеют 8 знаков в дробной части (стомиллионная точность). Так же в поле transactions передается информация о совершённых транзакциях, участвующих в накоплении (одна и более). Передается в виде массива.

Запрос на предоставление информации о накоплениях определенного пользователя

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/deposit-info

Request method: GET

Format: JSON

Parameters:

Параметр

Тип

Обязательность

Описание

label

string (190) 

ДА

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

wallet_type

url 

ДА

Значение из списка доступных ПС.
Внимание: Для получения полного доступного списка, обратитесь в ТП Paykassma.

currency

string (3)

ДА

Код валюты

code

string (190) 
или “null”

НЕТ

Название ручной платёжной системы.
Заполняется при wallet_type = manual

Code Block
themeDJango
titleRequest
{
   "label": "55",
   "wallet_type": "paytm",
   "currency": "UDS"
}

 

Code Block
themeDJango
titleResponse Success
{
    "status": "ok"
    "stockpiling_sum": 0,
    "lacks_sum": 0,
    "minimum_deposit": 148
}

 

Code Block
themeDJango
titleResponse Fail
{
    "status": "fail"
    "message": "MESSAGE"
}

< Вернуться на главную

Хеширование адресов для редиректа

В коде виджета заданы параметры для указания адресов для редиректа. Указывать адреса необходимо в хешированном виде. Для хеширования адресов необходимо отправить следующий запрос ((info) доступ реализован по ключу secret):

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/payment-plugin/hash-url?secret=pluginapi_secret  

Request method: POST

Format: JSON

Parameters:

Параметр

Тип

Обязательность

Описание

success_urlsarrayДАСписок адресов для редиректа при успешной оплате. 

orderinteger*ДАНомер адреса для редиректа в списке.

urlstring*ДААдрес для редиректа пользователя при успешной оплате. 
fail_urlsarrayДАСписок адресов для редиректа при неуспешной оплате. 

orderinteger*ДАНомер адреса для редиректа в списке.

urlstring*ДААдрес для редиректа пользователя при неуспешной оплате. 
pending_urlsarrayДАСписок адресов для редиректа при ожидании подтверждения оплаты.

orderintegerЕсли указано одно из свойств, то второе обязательноНомер адреса для редиректа в списке.

urlstringАдрес для редиректа при ожидании подтверждения оплаты.

*Один из массивов success_urls или fail_urls может быть пустым.

Code Block
themeDJango
titleRequest
collapsetrue
{
    "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"
        }
    ]
}
Code Block
themeDJango
titleResponse Success
collapsetrue
{
  "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"
      }
    ]
  }
}
Code Block
themeDJango
titleResponse Fail
collapsetrue
{
    "status": "fail"
    "message": "MESSAGE"
}


Полученные хеши адресов необходимо указать в соответствующих параметрах кода виджета.
Info
titleВнимание!

Время жизни хеша - 1 день. По истечении срока при необходимости запросить хеш для адреса повторно. 

Anchor
apvv
apvv

< Вернуться на главную

Вывод

Актуальный тип запросов для подключения выводов:

Для вывода денежных средств пользователем через доступные для Клиента платежные системы, необходимо:

  1. Единоразово передать ТП Paykassma URL-сервера, куда будут отправляться постбеки со статусом вывода.
  2. Отправить запросы на вывод (POST) по URL адресу, без использования "secret=pluginapi_secret " :
Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/v2/withdrawal/create

Request method:
POST

Format:
JSON

Warning
Внимание: При передаче данных не должно быть пробелов в начале и конце параметров в JSON файле

Каждый запрос на вывод подписывается signature, она формируется следующим образом:

Алгоритм формирования signature

  1. Инициализируется свой приватный ключ.
  2. Формируется массив с данными, которые будут захэшированы. Массив может быть многомерным.
  3. Элементы массива сортируются по ключу при помощи функции ksort()
  4. Элементы массива рекурсивно конкатенируются друг с другом через строку ":".
  5. Далее выделяется md5 hash полученной строки.
  6. Конкатенируется приватный ключ с hash строкой.
  7. Далее выделяется sha1 hash с полученной строки.

Пример формирования signature на php

Code Block
languagephp
themeDJango
titleSignature
$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_idstring(1-36) optional Идентификатор вывода, если параметр не передается, то система генерирует withdrawal_id
payment_systemstring requiredПлатежная система
amount

int


required

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

  1. amount >= Величина установленного минимального значения
  2. amount <= Величина установленного максимального значения
Note
titleКратность:

Для ПС PayTM: amount кратно "10".

currency_codestring(3) requiredКод валюты
labelstring requiredLabel пользователя, для которого проводится вывод

is_test

booleanrequired

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

  • true - если Вывод тестовый 
  • false - если вывод реальный 
account_numberstring 

*required_if
ПС = bkash,imps_ib,
upi_ib,paytm,....

Номер счета получателя

Note
titleМаска ввода:

Для ПС PayTM: Цифры(10) (без международного кода +91)

Для ПС UPI IB / IMPS IB: Цифры

Для ПС Bkash / Nagad: Цифры(11) в формате 01xxxxxxxxx

Для ПС Rocket:  Цифры(11-12) в формате 01xxxxxxxxxх

account_namestring *required_if
ПС = imps_ib,
upi_ib,....
Имя держателя счета
account_emailstring *required_if
ПС = bkash,...
Е-mail держателя счета
payments_details.payments_methodstring *required_ifСпособ оплаты
payments_details.payments_providerstring optionalПоставщик, который осуществляет электронный платеж, выбранным способом оплаты
bank_details.bank_codestring(11)*required_if

Уникальный идентификатор присваиваемый центральным банком страны

Note
titleМаска ввода:

Для ПС IMPS IB: IFSC code - длина должна составлять 11 символов, содержать буквы и цифры без пробела и тире. Подробнее: https://en.wikipedia.org/wiki/Indian_Financial_System_Code

bank_details.branch_codestring*required_ifКод филиала (отделения) банка
bank_details.bank_code_in_payments_systemstring*required_if

Код банка в платежной системе, с которой осуществляется обмен данными

account_typestring*required_ifТип аккаунта 
document_typestring*required_ifТип документа
document_idstring*required_ifИдентификатор документа получателя
account_digitstring*required_ifЦифра счета

ibanstring*required_ifIBAN



Info
*В запросе на вывод, имеются поля обязательные только для некоторых платежных систем(required_if), для полного списка обязательных полей для определенной ПС, необходимо обратиться в Техническую поддержку Paykassma.

Обязательные поля для ПС Bkash, PayTm, IMPS IB/UPI IB:

Платежная системаaccount_numberaccount_nameaccount_emailpayments_detailsbank_details
payments_methodpayments_providerbank_codebranch_codebank_code_in_payment_system

Bkash

required-required-----
IMPS IBrequiredrequired---required--
Paytmrequired-------

Request:

Code Block
themeDJango
titleПример тела запроса
{
    "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"
}
Code Block
languagephp
titleResponse Success
{
    "status": "ok"
}
Code Block
languagephp
titleResponse Fail
{
    "status": "fail"
    "message": "MESSAGE"
}

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

Code Block
themeDJango
titleResponse Fail
{
    "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 

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/postback

Request method: GET

Format: JSON

Parameters:

Параметр

Тип

Обязательность

Описание

type

string 

ДА

Тип постбека.

Возможные значения:

  • deposit
  • withdrawal

transaction_id

string

Обязателен хотя бы один из параметров,

если type = deposit

Номер транзакции

custom_idstring

Номер заказа

Note

Если в Paykassma  содержится несколько транзакций с одинаковым номером заказа, будет отобрана только одна из них.

Поэтому уникальность custom_id необходимо контролировать на стороне системы Клиента.

withdrawal_idstringОбязателен, если type = withdrawalID вывода
Code Block
themeDJango
titleResponse Success (type=deposit)
collapsetrue
   {
    "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
            }
        ]
    }
}
Code Block
themeDJango
titleResponse Success (type=withdrawal)
collapsetrue
{
    "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
        }
    }
}
Code Block
themeDJango
titleResponse Fail
collapsetrue
{
    "status": "fail"
    "message": "MESSAGE"
}


< Вернуться на главную

Баланс счетов

Запрос на предоставление информации о балансе счетов Клиента (кроме баланса Сеттлемента) формируется следующим образом:

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/accounts-balance?secret={{pluginapi.secret}}

Request method: GET

Format: JSON

Parameters:

NameTypeRequiredDescription
secretstringyesКлюч доступа
Code Block
themeDJango
titleResponse Success
{
    "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
             }
                         ]
}
Code Block
themeDJango
titleResponse Fail
{
    "status": "error",
    "code": 30228,
    "errors": {
        "target": "secret",
        "code": 36205,
        "message": "Wrong secret"
    },
    "error_message": "Data validation error"
}


< Вернуться на главную


Статусы заказов

Запрос на предоставление информации о статусах заказов Клиента формируется следующим образом:

Code Block
themeRDark
titleAPI url
https://api.{URL_server_Paykassma}/api/v1/pullpostbacks?secret={{pluginapi.secret}}

Request method: GET

Format: JSON

Parameters:

НаименованиеТипОбязательностьОписание
secretstringYESКлюч доступа

Наименование

Тип

Обязательность

Описание

typestring ДА

Возможные значения:

  • deposit 
  • withdrawal
plugin_custom_order_idarrayДА, если type depositID транзакции пользователя/номер заказа
withdrawal_idarray

ДА, если type withdrawal

ID вывода


Response body:

НаименованиеТипОбязательностьОписание

status

stringДАСтатус запроса
massagestringЗаполняется в случае успешного ответаСообщение при успешном ответе
codeintДАКод ответа 
dataarray/objectЗаполняется в случае успешного ответа

transactionsarrayДА, если type depositИнформация о депозите


plugin_custom_order_idstringДАID транзакции пользователя/номер заказа


message

stringДА,  если транзакция не найдена 

Сообщение, если транзакция не была найдена 



postbackarrayДА, если транзакция найдена 

Информация о постбеке


withdrawalsarrayДА, если type withdrawalИнформация о выводе


withdrawal_idstringДАID вывода


messagestringДА, если вывод не найден

Сообщение, если транзакция не была найдена 



postbackarrayДА, если вывод не найден

Информация о постбеке

Code Block
themeDJango
titleResponse Success (type = deposit)
collapsetrue
{
    "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
    }
}
Code Block
themeDJango
titleResponse Success (type = withdrawal)
collapsetrue
{
    "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
    }
}
Code Block
themeDJango
titleResponse Fail
collapsetrue
{
    "status": "fail",
    "message": {
        "plugin_custom_order_id": [
            "The plugin custom order id field is required when type is deposit."
        ]
    }
}


< Вернуться на главную

Оглавление:

Table of Contents
excludeОглавление: