Versions Compared

Key

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

Anchor
ApV
ApV

Ввод 

Info

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

Сохранение клиентского ID транзакции

Запрос для передачи в Paykassma вашего ID транзакции (custom_transaction_id). В дальнейшем этот ID присваивается транзакции совершаемой пользователем и передается в постбеке.

Code Block
themeRDark
titleAPI url
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
themeDJango
titleRequest
{
    "label": "55",
    "transaction_custom_id": "123465477897"
}
Code Block
themeDJango
titleResponse Success
{
    "status": "ok"
}
Code Block
themeDJango
titleResponse Fail
{
    "status": "fail"
    "message": "MESSAGE"
}

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

Code Block
themeRDark
titleAPI url
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
themeDJango
titleRequest
{
    "currency_code": [ "USD", "INR" ],
    "label": "55"
}


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

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

В данный момент существуют два вида запроса для создания платежа в зависимости от ПС.

Info

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

Вид запроса №1:

Code Block
themeRDark
titleAPI url
https://api.{URL_сервера_Paykassma}/api/v1/transaction/create/{wallet_type}

1.1

Code Block
themeRDark
titleAPI url
https://api.{URL_сервера_Paykassma}/api/v1/transaction/create/paytm

В данном случае сначала мы принимаем запрос на ввод по 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"
}

1.2 Запрос активации:

Code Block
themeRDark
titleAPI url
https://api.{URL_сервера_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)

ДА

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

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


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


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

Вид запроса №2:

2.1 

Code Block
themeRDark
titleAPI url
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
themeDJango
titleRequest
{
   "language": "en",
   "currency": "USD",
   "bank": "MBB",
   "amount": "1000",
   "label": "55",
   "redirect_url": "https:\/\/google.com"
}


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


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

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

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

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

Code Block
themeRDark
titleAPI url
https://api.{URL_сервера_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"
}

Anchor
apvv
apvv

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

Вывод

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

  1. Единоразово передать ТП Paykassma URL-сервера, куда будут отправляться постбеки со статусом вывода.
  2. Отправить запросы на вывод (POST) по URL адресу:
Code Block
themeRDark
titleAPI url
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)

Номер банковского аккаунта

email

string(191)

Электронная почта того, кому выплачивают

amount

double

Note
Внимание: Для выводов для ПС PayTM, поле amount должно быть целым и кратным 10.

Сумма вывода, в случае с  PayTm, принимается сумма кратная 10!

withdrawal_id

integer

ID вывода на стороне клиента (возвращается в постбеке).


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

Code Block
themeDJango
titleSignature
$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_idstring(1-7) optional Идентификатор вывода, если параметр не передается, то система генерирует withdrawal_id
payment_systemstring requiredПлатежная система
amountnumericrequiredСумма вывода 
currency_codestring(3) requiredКод валюты
labelstring requiredLabel пользователя, для которого проводится вывод
commentstring(4-64) optionalКомментарий 
account_numberstring 

*required_if
ПС = bkash,imps,
upi,paytm,....

Номер счета получателя
account_namestring *required_if
ПС = imps,
upi,....
Имя держателя счета
account_emailstring *required_if
ПС = bkash,...
Е-mail держателя счета
receiver_namestring(190)required_if
ПС = imps
Имя получателя
payments_details.payments_methodstring *required_ifСпособ оплаты
payments_details.payments_providerstring optionalПоставщик, который осуществляет электронный платеж, выбранным способом оплаты
bank_details.bank_codestring*required_ifУникальный идентификатор присваиваемый центральным банком страны
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

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

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

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

Bkash

required-required------
IMPS/UPIrequiredrequired-required for IMPS--optional--
Paytmrequired--------


Request:

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


После обработки вывода, Paykassma пришлет постбек о результате вывода с определенным статусом, подписанной сигнатурой

Статусы выводов:

СтатусОписание
NEW (0)Новый статус для вывода, с момента принятия заявки на вывод,
до момента, когда будет обработана модератором(принята или отклонена)
CANCELED (2)Статус для вывода, когда он был отклонён на стороне ПС
PROCESSED (1)Статус для вывода, когда заявка на вывод была успешно обработана

Формирование signature вывода

Code Block
themeDJango
titleПример запроса
$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
themeDJango
titleПример тела запроса
{
"wallet_type":"paytm",
"wallet_recipient":"123123232",
"wallet_sender":1111,
"email":"[email protected]",
"amount":1000,
"withdrawal_id":"13",
"signature":"fae51673a8a9c85f724317214bd0bcc665ebc799"
}

При отправки к Paykassma запроса на вывод, в первом ответе получаете сформированные данные по заявке, без сигнатуры следующего вида:

Code Block
themeDJango
titleПример данных ответа
{
"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
minLevel2