Page History
Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Deposit of funds (API)
Access to the shared API is implemented using a whitelist of IP addresses and a secret key. Before starting to work with the API for deposit, it is necessary to send to the Paykassma TS the IP address from which requests will be sent.
PLUGINAPI_SECRET - secret key string. It will need to be added to all requests in the form of the secret get parameter.
For example: https://api.{URL_Paykassma_Server}/api/v1/deposit-info?secret=pluginapi_secret
When you send a request without using these parameters, the error 404 'Not found' will be displayed
Attention: Before starting to work with the API for deposit, it is necessary to send the IP address from which requests will be sent to the Paykassma TS.
Obtaining available PSs
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_Paykassma_Server}/api/v1/payment-systems/available |
Request method: GET
Format: JSON
Parameters:
Parameter | Type | Required | Description |
currency_code | string[] (3) | YES | An array consisting of currency codes. PS that work with the specified currencies will be displayed |
label | string (190) | YES | Unique identifier (ID) of the user making the payment |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "currency_code": [ "USD", "INR" ], "label": "55" } |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
{ "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 | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
Creating a payment
Currently, there are two types of requests for creating a payment, depending on the PS.
Info |
---|
Attention! To get a complete list of available PSs, you need to contact Paykassma TS. TS will provide complete examples of requests for currently available PSs. They will also determine the correct request, depending on the selected PS. |
For PS that require payment activation
1. Payment creation request:
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_Paykassma_Server}/api/v1/transaction/create/{wallet_type} |
Example of request for PS PayTM
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_Paykassma_Server}/api/v1/transaction/create/paytm |
Request method: POST
Format: JSON
Parameters:
Parameter | Type | Required | Description |
currency | string (3) | YES | Currency code |
label | string (190) | YES | Unique identifier of the user making the payment |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "currency": "INR", "label": "eligendi" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok", "params": { "identifier": "6234234234" } } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
2. Activation request:
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_Paykassma_Server}/api/v1/transaction/activate |
Request method: POST
Format: JSON
Parameters:
Parameter | Type | Required | Description |
currency_code | string (3) | YES | Currency code |
wallet_type | string (190) | YES | Value from the list of available PSs. |
label | string (190) | YES | Unique identifier of the user making the payment |
key1 | string (190) | YES | A code on which activation is performed (Transiction_ID), received from the user |
amount | numeric | *required if | Transaction amount |
custom_transaction_id | string (190) | NO | Transaction ID in the Client’s system |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "currency_code": "USD", "wallet_type": "paytm", "label": "55", "key1": "123-ABC-456-DEF" "custom_transaction_id": "123465477897" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
*For some PS, it is also necessary to send the amount field in the request:
Payment system | currency_code | wallet_type | label | key1 | amount | custom_transaction_id |
---|---|---|---|---|---|---|
IMPS/UPI | required | required | required | required | required | - |
Paytm | required | required | required | required | - | - |
PhonePe | required | required | required | required | required | - |
bKash | required | required | required | required | - | - |
Nagad | required | required | required | required | - | - |
For PS that do not require payment activation
Payment creation request:
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_Paykassma_Server}/api/v1/payment/create/{payment_system} |
Request method: POST
Format: JSON
Parameters:
Parameter | Type | Required | Description |
language | string (2) | YES | Interface language |
currency | string (3) | YES | Currency code |
bank | string (3) | YES | The bank via which the payment is performed |
amount | numeric (ограничена max. | YES | Payment amount |
label | string (190) | YES | Unique identifier of the user making the payment |
redirect_url | url | YES | URL of the page for redirecting after payment |
custom_transaction_id | string (190) | NO | Transaction ID in the Client’s system |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "language": "en", "currency": "USD", "bank": "MBB", "amount": "1000", "label": "55", "redirect_url": "https:\/\/google.com" "custom_transaction_id": "123465477897" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
Information about savings
Request to provide information about savings of a certain user
To save information about transactions, the amount of which does not exceed the minimum deposit amount for a particular payment system, the functionality of savings has been implemented. The user's transactions (selected by the label parameter) are accumulated in the system and are not credited to the user's account until their amount reaches the minimum deposit amount of this payment system. The postback will be sent to the client's server only after the minimum deposit amount is reached. Until the postback is sent, the transaction is not considered credited to the account.
Code Block | ||||
---|---|---|---|---|
| ||||
https://api.{URL_Paykassma_Server}/api/v1/deposit-info |
Request method: GET
Format: JSON
Parameters:
Parameter | Type | Required | Description |
label | string (190) | YES | Unique identifier of the user making the payment |
wallet_type | url | YES | Value from the list of available PSs. |
currency | string (3) | YES | Currency code |
code | string (190) | NO | Name of the manual payment system. |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "label": "55", "wallet_type": "paytm", "currency": "UDS" } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "ok" "stockpiling_sum": 0, "lacks_sum": 0, "minimum_deposit": 148 } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ "status": "fail" "message": "MESSAGE" } |
Withdrawal of funds (API, actual version)
To withdraw funds by the user via payment systems available to the Client, it is necessary to:
- Once send Paykassma TS the URL of the server where postbacks with the withdrawal status will be sent.
Send withdrawal requests (POST) to the URL:
Code Block theme RDark title API url https://api.{URL_Paykassma_Server}/v2/withdrawal/create
Warning |
---|
Attention: When transmitting data, there should be no spaces at the beginning and end |
Each withdrawal request is signed by signature, it is formed as follows:
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
$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)); } function multiImplode($glue, $array): string { $finArray = []; foreach ($array as $val) { $finArray[] = is_array($val) ? self::multiImplode($glue, $val) : $val; } return implode($glue, $finArray); } |
Required parameters for transmission in POST request:
Parameter | Type | Required | Description |
withdrawal_id | string(1-36) | optional | Withdrawal ID, if the parameter is not passed, then the system generates withdrawal _id |
payment_system | string | required | Payment system |
amount | numeric | required | Withrawal amount |
currency_code | string(3) | required | Currency code |
label | string | required | Unique identifier of the user making the payment |
account_number | string | *required_if | Number of the bank account |
account_name | string | *required_if PS = imps, upi,.... | Name of the bank account holder |
account_email | string | *required_if PS = bkash,... | Email of the person who is being paid |
receiver_number | string(190) | required_if PS = imps | Number of the person who is being paid |
payments_details.payments_method | string | *required_if | Payment method |
payments_details.payments_provider | string | optional | Supplier who makes electronic payment using the selected payment method |
bank_details.bank_code | string | *required_if | Unique ID assigned by the country's central bank |
bank_details.branch_code | string | *required_if | Bank branch code |
bank_details.bank_code_in_payments_system | string | *required_if | Bank code in payments system, with which data is exchanged |
account_type | string | *required_if | Account type |
document_type | string | *required_if | Document type |
document_id | string | *required_if | Recipient document ID |
account_digit | string | *required_if | Account digit |
iban | string | *required_if | IBAN |
Info |
---|
*The withdrawal request contains fields that are required only for some payment systems (required_if), to get a complete list of required fields for a specific payment system, you need to contact Paykassma technical support. |
Required fields for PS Bkash, PayTm, IMPS/UPI:
Payment system | account_number | account_name | account_email | receiver_number | payments_details | bank_details | |||
---|---|---|---|---|---|---|---|---|---|
payments_method | payments_provider | bank_code | branch_code | bank_code_in_payment_system | |||||
Bkash | required | - | required | - | - | - | - | - | - |
IMPS/UPI | required | required | - | required for IMPS | - | - | optional | - | - |
Paytm | required | - | - | - | - | - | - | - | - |
Request:
Code Block | ||||
---|---|---|---|---|
| ||||
{ 'withdrawal_id': '1234567', 'payment_system': 'paytm', 'amount' : '1000', 'currency_code': 'INR', 'label': '55', 'comment': 'withdrawal', 'account_number': '11111111' } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ 'status': 'ok' } |
Code Block | ||||
---|---|---|---|---|
| ||||
{ 'status': 'fail' 'message': 'MESSAGE' } |
After processing the withdrawal, Paykassma will send a postback about the result of the withdrawal with a status, signed with a signature.
Withdrawal status
Status | Description |
---|---|
PROCESSED (1) | Uccessful |
REJECTED (5) | Unsuccessful |
Withdrawal of funds (API, the outdated version is not longer supported)
API url:
Code Block | ||
---|---|---|
| ||
https://api.{URL_Paykassma_Server}/withdrawal/manual/create |
Required parameters for transmission in POST request:
Parameter | Type | Description |
wallet_type | text(191) Selection from the available list | Type of the payment system |
wallet_recipient | string(191) | The recipient's wallet, to whose account the payment will be made Attention! wallet_recipient (For the Paytm method) must contain the Paytm wallet number without the international code +91 |
wallet_sender | string(191) | The sender's wallet, from whose account money will be withdrawn. The final choice of the sender is left to Paykassma. Attention: it is necessary to fill in the field with arbitrary four digits |
account_name | string(191) | Name of the bank account holder |
account_number | string(191) | Number of the bank account |
string(191) | Email of the person who is being paid | |
amount | Double | Withdrawal amount |
withdrawal_id | Integer | Client side withdrawal ID (returned in postback ). |
Request:
Code Block | ||
---|---|---|
| ||
{ "wallet_type":"paytm", "wallet_recipient":"123123232", "wallet_sender":1111, "email":"[email protected]", "amount":1000, "withdrawal_id":"13", "signature":"fae51673a8a9c85f724317214bd0bcc665ebc799" } |
When sending a withdrawal request to Paykassma, the first response received the generated data on the request, without a signature:
Example first response:
Code Block | ||
---|---|---|
| ||
{ "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" } |
Status | Description |
---|---|
NEW (0) | In processing |
CANCELED (2) | Unsuccessful |
PROCESSED (1) | Uccessful |
The second response will already come a postback about the withdrawal, signed by the signature.
Table of Contents |
---|