Versions Compared

Key

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

Anchor
ApV
ApV

Ввод 

Warning
titleВнимание!

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

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

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

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

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

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

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

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

    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 Successcollapsetrue
    {
        "status": "ok",
        "params": {
            "gifcurrency_guidedata": [
                {
                    "upicode": "http:\/\/api.pay.test\/storage\/guide-image\/upi.mp4?cache=1587635151USD",
                    "phonePesymbol": "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": "INR"
                }
            ],
            "wallets": [
                {
                    "type": "paytmstaging_b_ml",
                    "currency_code": "INR",
            "order": 5,
            "order": 6,
                    "logo": "httphttps:\/\/api.staging.pay.test\client-paykassma.com/storage\/payment_system\/logos\/paytmstaging_b_defaultml.svgpng",
                    "name": "PayTMstaging B ml",
          },
          {
            "typeis_manual": "paytm"true,
            "currency_code": "INR",
            "orderuploading_payment_bill": 5,true
            "logo": "http:\/\/api.pay.test\/storage\/payment_system\/logos\/paytm_34.svg",
            "name": "paytm",
          },
          "hints": [
          {
        {
                "type": "requisites_hintnagad",
                    "textcurrency_code": null"USD",
              },
          "order": 17,
        {
                "typelogo": "payment_hint",
       https://api.staging.client-paykassma.com/storage/payment_system/logos/nagad_default.svg",
             "text": null
              },
              true"name": "Nagad",
            ],
            "showis_limitsmanual": truefalse,
          }
        ],
          "impsuploading_payment_bill": {false
            "INR": {
       }
           "min": "8000", ]
            }
      "max": "560000"
            }
          },
          "bkash": {
            "BDT": {
              "min": "100",
              "max": "1000000"
            }
          },
          "upi": {
            "INR}
    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": {
              "minimps": "20000",
    {
                "maxid": "50000"486,
            }
        "url":  },
    "https://api.staging.client-paykassma.com/storage/guide-image/bkash.mp4"
           "paytm": { },
            "INRpaytm": {
                "minid": "100000"500,
                "maxurl": "20000000https://api.staging.client-paykassma.com/storage/guide-image/Ghjkfre22.gif"
            },
          },
          "phone_pe""upi": {
            "INR": {
              "minid": "100"506,
                "maxurl": "800000https://api.staging.client-paykassma.com/storage/guide-image/upi_in.mp4"
            }
          }
        }
      }
    }
    Code Block
    themeDJango
    titleResponse Fail
    {
        "status": "fail"
        "message": "MESSAGE"
    }

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

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

    Info

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

    Warning
    titleВнимание!


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

    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
    theme
    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)

    ДА

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

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

    custom_transaction_id

    string (19064)

    НЕТДА

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

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

    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"
    }

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

    Платежная системаcurrency_codewallet_typelabelkey1amountcustom_transaction_idIMPS/UPIrequiredrequiredrequiredrequiredrequired-Paytmrequiredrequiredrequiredrequired--PhonePerequiredrequiredrequiredrequiredrequired-bKashrequiredrequiredrequiredrequired--Nagadrequiredrequiredrequiredrequired--

    2) если is_manual = true

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

    Request method: POST

    Format: JSON

    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
    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

    numeric 

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

    ДА

    Сумма платежа

    label

    string (190)

    ДА

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

    redirect_url

    url 

    ДА

    URL страницы для редиректа после платежа

    custom_transaction_id

    string (190)

    НЕТ

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

    Code Block
    themeDJango
    titleRequest
    {
       "language": "en",
       "currency": "USD",
       "bank": "MBB",
       "amount": "1000",
       "label": "55",
       "redirect_url": "https:\/\/google.com"
       "custom_transaction_id": "123465477897"
    }
    Code Block
    themeDJango
    titleResponse SuccessFail
    {
           "status": "okfail"
    },
        "message": {
            "key1": [
                "Transaction field has wrong length"
            ]
        }
    }

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

    Code Block
    theme
    Code Block
    themeDJango
    titleResponse Failpossible_transaction_created
    {
           "status": "failpossible_transaction_created",
           "message": "MESSAGE "Transaction not found. Possible transaction created"
    }

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

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

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

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

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

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

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

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

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

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

    Request method: GETPOST

    Format: JSON

    Parameters:

    Параметр

    Тип

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

    Описание

    label

    language

    string 

    string (

    190

    2)

     

    ДА

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

    wallet_type

    url 

    ДА

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

    currency

    string (3)

    ДА

    Код валюты

    code

    string (190) 
    или
    “null”

    НЕТ

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

    Язык интерфейса

    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
    {
       "labellanguage": "55en",
       "wallet_typecurrency": "paytmUSD",
       "currencybank": "UDSMBB"
    }
    Code Block
    themeDJango
    titleResponse Success
    {,
       "amount": 1000.00,
         "statuslabel": "ok55",
        "stockpilingredirect_sumurl": "https:\/\/google.com"
       "custom_transaction_id": "123465477897"
    }


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


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

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

    Вывод

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

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

    Единоразово передать ТП Paykassma URL-сервера, куда будут отправляться постбеки со статусом вывода.

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

    Код состоянияТекст ошибки
    400Unknown upi payment mode.
    404Payment method is not supported.
    405Payment acceptance for this system is suspended.
    424Payment method is currently unavailable.
    Пример запроса ПС Bkash API
    Отправить запросы на вывод (POST) по URL адресу, без использования "secret=pluginapi_secret " :
    Code Block
    themeRDark
    titleAPI url
    httpshttp://api.{ URL_server_Paykassma }/v2api/v1/withdrawalpayment/create/bkash_api

    Request method:
    POST

    Format:
    JSON

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

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

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

    1. Инициализируется свой приватный ключ.
    2. Формируется массив с данными, которые будут захэшированы. Массив может быть многомерным.
    3. Элементы массива рекурсивно конкатенируются друг с другом через строку ":".
    4. Далее выделяется md5 hash полученной строки.
    5. Конкатенируется приватный ключ с hash строкой.
    6. Далее выделяется 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_idpayment_systemstring requiredПлатежная системаamount

    int

    required

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

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

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

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

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

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

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

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

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

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

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

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

    Для ПС UPI / IMPS: IFSC code Буквы(4)Цифры(7). Подробнее: 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/UPI:

    Платежная системаaccount_numberaccount_nameaccount_emailpayments_detailsbank_detailspayments_methodpayments_providerbank_codebranch_codebank_code_in_payment_system

    Bkash

    required-required-----IMPS/UPIrequiredrequired---required--Paytmrequired-------

    Request:

    Code Block
    themeDJango
    titleПример тела запроса
    {
    	'withdrawal_id': '1234567',
        'payment_system': 'paytm',
    	'amount' : '1000',  
        'currency_code': 'INR',
    	'label': '55',        
    	'comment': 'withdrawal',       
    	'account_number': '11111111', 
    }
    Code Block
    languagephp
    titleResponse Success
    {
        'status': 'ok'
    }
    Code Block
    languagephp
    titleResponse Fail
    {
        'status': 'fail'
        'message': 'MESSAGE'
    }

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

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

    СтатусОписаниеPROCESSED (1)Статус для вывода, когда заявка на вывод была успешно обработанаREJECTED (5)Статус для вывода, когда заявка на вывод была отклонена

    Устаревшие запросы для вывода:

    Note

    Данный раздел описывает устаревший тип подключения. При подключении необходимо использовать актуальный тип подключения к выводам.

    API url:

    Code Block
    themeDJango
    https://api.{URL_server_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)

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

    email

    string(191)

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

    amount

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

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

    withdrawal_id

    integer

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

    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."
            ]
        }
    }

    Пример тела запроса:

    Code Block
    themeDJango
    {
        "wallet_type":"paytm",
        "wallet_recipient":"123123232",
        "wallet_sender":1111,
        "email":"[email protected]",
        "amount":1000,
        "withdrawal_id":"13",
        "signature":"fae51673a8a9c85f724317214bd0bcc665ebc799"
    }

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

    Пример данных ответа:

    Code Block
    themeDJango
    {
        "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"
    }
    СтатусОписаниеCANCELED (2)Статус для вывода, когда он был отклонён на стороне ПСNEW (0)Новый статус для вывода, с момента принятия заявки на вывод,
    до момента, когда будет обработана модератором(принята или отклонена)
    PROCESSED (1)Статус для вывода, когда заявка на вывод была успешно обработанаВторым ответом уже придет постбек о результате вывода, подписанной сигнатурой.


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

    Оглавление:

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