Versions Compared

Key

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

Payment

  1. The user is provided with wallet details to which payment must be made.
  2. The user makes a payment in their wallet app and receives a unique transaction number.
  3. Next, the user enters a unique transaction number in the payment window, after which the transaction is activated.
  4. Paykassma sends a postback to the merchant's side.
  5. Funds are credited to the user’s balance on the merchant platform.

Payment window integration (plugin)

Example of a link to open a Ipay Manual payment window:

https://plugin.{URL_сервера}/?
label=label
&currency_code=LKR
&lang=en
&wallet_type=ipay_manual
&custom_transaction_id=custom_transaction_id
&fixed_amount=fixed_amount
&payment_url_success_id=2
&payment_url_pending_id=3
&payment_url_fail_id=1
&success_url=hash
&fail_url=hash
&pending_url=hash


Code Block
wallet_type=ipay_manual
currency_code=PKR
Available languages (lang): en, si
Info

Pay attention to the description of the parameters payment_url_success_id / payment_url_fail_idpayment_url_pending_id and success_url / fail_url pending_url.
To use payment_url_success_id / payment_url_fail_idpayment_url_pending_id you need to send the URLs to Paykassma support and use the received IDs in the parameters.
To use success_url / fail_urlpending_url you must use hashing URLs ( For more details on hashing click here ).

For the description of all the plug-in parameters click here.

API integration

Creating payment

URL: https://api.{URL server}/api/v1/transaction/create/ipay_manual?secret={pluginapi_secret}

At this stage, we provide the details of the wallet to which the user must make a payment.

Request method:

POST

Format:
JSON

Parameters:

Name

Type

Required

Max Length

Description

currencystringyes3Currency code.

label

string

yes

190

The unique identifier (ID) of the user who makes the payment.


Code Block
themeDJango
titleRequest
{
  'currency': 'LKR',
  'label': 'eligendi'
}


Code Block
themeDJango
titleResponse Success
{ 
    'status': 'ok', 
    'params':  { 
        'identifier': '0734234201'
    } 
}


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

Activation request

URL: http://api.{URL server}/api/v1/possible-transaction?secret={pluginapi_secret}

Request method:
POST

Format:
form-data

Parameters:

Name

Type

Required

Max Length

Description

currency_codestringyes3LKR.

wallet_type

string

yes

190

ipay_manual.
labelstringyes190The unique identifier (ID) of the user who makes the payment.
key1stringyes190

Transaction ID received from the user (8 digits).

screenshotfileyes
Screenshot of the payment from the user.
amountfloatyes256Amount of payment.
custom_transaction_id

string

yes190

Transaction ID in the Client's system. Must be unique.


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': 'MESSAGE'
}

Deposit postback

For the general documentation on post backs click here.

Example of deposit postback for Ipay Manual

Code Block
themeDJango
collapsetrue
{
    "signature": "2ad41735cd2d225cb30fe0665e83a3ade8618e0d",
    "wallet_type": "ipay_manual",
    "amount": 1000,
    "currency_code": "LKR",
    "label": "545932754",
    "converted_amount": {
"USD": 3.44, "INR": 287, "EUR": 3.26, , . . . , "USDTTRC20": 0, "USDT20": 0
},
    "direction": "ingoing",
    "created_datetime": "2023-09-26 19:37:02",
    "access_key": "TA25Ea9sjPUFJvIG",
    "additional_data": [
        {
          "activated_datetime": "2023-09-26 22:37:00",
          "exchanger_identifier": null,
          "comment": "",
          "amount": "1000",
          "currency_code": "LKR",
          "wallet_type": "ipay_manual",
          "stockpiling_id": 4819603,
          "transaction_id": "56052385",
          "transaction_type": 0,
          "plugin_custom_order_id": "5586199250",
          "withdrawal_id": null,
          "withdrawal_status": null,
          "account_number": "",
          "account_name": "",
          "account_email": "",
          "bank_details": {
               "bank_code": "",
               "branch_code": "" 
        }
    ]
}


Warning

The Paykassma server is waiting for a response in json {"status": "ok"} response code 200, otherwise, when receiving a different response, Paykassma will forward the postback with a certain frequency.
Repeated postbacks must also be answered with {"status":"ok"} response code 200.

Withdrawals for users

For the general documentation on the withdrawals of funds click here.

Creating withdrawal

URL: https://api.{URL server}/api/v2/withdrawal/create

Request method:

POST

Format:
JSON

Parameters:

Name

Type

Required

Description

withdrawal_idstring(1-36) yes Withdrawal ID, if the parameter is not passed, then the system generates withdrawal _id.
payment_systemstring yesPayment system.
amount

int


yes

Additional requirements:

  1. amount >= The value of the set minimum value;
  2. amount <=The value of the set maximum value.
currency_codestring(3) yesCurrency code.

is_test

booleanyes

The is_test parameter possible values:

true - if Withdrawal is test;
false - if Withdrawal is real.

label

string(1-36)

yes

The unique identifier (ID) of the user who makes the payment.

account_namestringoptionalThe name of the account holder.
account_numberstring 

yes


User's Ipay account number.

bank_details.bank_codestringyes

Here you need to pass the name of the bank, for example, "Bank of Ceylon".

bank_details.branch_codestringyes

 User's bank account number.

signaturestringyesSignature generated with private_key.


Code Block
themeDJango
titleRequest
{
    "withdrawal_id": "1234567test565856",
    "payment_system": "ipay_manual",
    "amount": 10000,
    "currency_code": "LKR",
    "label": "125199",
    "account_number": "03405138",
    "account_name": "Test Name Acc",
    "is_test": true,
    "bank_detailssignature": {
        "bank_code": "Bank Of Ceylon"
    },
    "signature": ""2e56786153bec935220fa1e9409ab24bd99cf9e8"
}


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


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

*If, when trying to create a withdrawal request, the amount of account balances in the currency of the request is less than the total amount of new and still incomplete applications, the error message"Insufficient balance" will be displayed (to configure this functionality, contact the TP Paykassma).

Code Block
languagephp
themeDJango
titleResponse Fail (if the balance is insufficient)
{
    "status": "fail",
    "message": {
        "withdrawals_sum_amount": [
            "Insufficient balance"
        ]
    }
}
List of currentbanks

Amana Bank
Asia Asset Finance PLC
Bank of Ceylon
Bimputh Finance PLC
Cargills Bank
CDB
Central Finance
Citibank
CLC
Commercial Bank of Ceylon PLC
Commercial Bank PLC
Deutsche Bank AG
DFCC Bank
Dialog Finance PLC
Fintrex Finance Limited
Habib Bank Limited
Hatton National Bank PLC
HDFC Bank
HSBC
Indian Bank
Indian Overseas Bank
LB Finance
LOFC
LOLC Development Finance PLC
MCB Bank Limited
Merchant Bank of Sri Lanka & Finance PLC
Nations Trust Bank PLC
NDB Bank
HNB Finance Limited
NSB
National Savings Bank
PABC
People's Bank
Peoples Bank
People’s Leasing and Finance PLC
Public Bank Berhad
Regional Development Bank
Sampath Bank PLC
State Bank of India
SDB Bank (Sanasa)
Senkadagala Finance
Seylan Bank
Standard Chartered Bank
Singer Finance
Union Bank of Colombo PLC

Example of withdrawal postback for Ipay Example of withdrawal postback for Ipay Manual

Code Block
themeDJango
collapsetrue
{
    "signature": "c698b4961e4bfd93957c3144647f4a6704960f03",
    "wallet_type": "ipay_manual",
    "amount": 10000,
    "currency_code": "LKR",
    "label": "125199",
    "converted_amount": {
    "USD": 30.63, "INR": 2553, "EUR": 28.07, "USDTTRC20": 0, "USDT20": 0
    },
    "direction": "outgoing",
    "created_datetime": "2023-11-19 21:39:01",
    "access_key": "icK2pOJnH7wxSZy9jmLslGeo",
    "additional_data": [
        {
            "activated_datetime": "",
            "exchanger_identifier": "",
            "comment": "test",
            "amount": "10000",
            "currency_code": "LKR",
            "wallet_type": "ipay_manual",
            "stockpiling_id": null,
            "transaction_id": "",
            "transaction_type": null,
            "plugin_custom_order_id": "",
            "withdrawal_id": "1234567test565856",
            "withdrawal_status": 5,
            "account_number": "03405138",
            "account_name": "Test Name Acc",
            "account_email": "",
            "bank_details": {
            "bank_code": "Bank Of Ceylon",
            "branch_code": null
                      }
        }
     ]
}


Warning

The Paykassma server is waiting for a response in json {"status": "ok"} response code 200, otherwise, when receiving a different response, Paykassma will forward the postback with a certain frequency.
Repeated postbacks must also be answered with {"status":"ok"} response code 200.

After processing the withdrawal, Paykassma will send a postback about the withdrawal result with status, signed with a signature.

Withdrawal statuses

1SUCCESSStatus for withdrawal when the withdrawal request has been successfully processed.
5FAILStatus for withdrawal when the withdrawal request was rejected.

Creating withdrawal request in Paykassma BO

To create a withdrawal request, you need to go to the Withdrawals pagePayments  → Withdrawals and perform the following steps

  1. Press the button "Add withdrawal request".


  2. Select payment system from list.



  3. Fill in the fields to create the request in the next window(the list of fields is standardized and not all fields are required. To create a request for a specific PS, you should fill in the required fields for this PS).
    Required fields for Ipay Manual withdrawal:
    - Label (user ID);
    - Amount;
    - Currency;
    - Wallet recipient.



    4. After payment the withdrawal status will change.


    Paykassma does not send postback for withdrawals created manually.

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