API
পেমেন্ট তৈরি করুন
এই API মেথডটি Pay2.House পেমেন্ট সার্ভিসের মাধ্যমে পেমেন্ট করার জন্য একটি নতুন পেমেন্ট ইনিশিয়ালাইজ করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| external_number | string | ইউনিক ট্রানজ্যাকশন বা অর্ডার নম্বর। |
| amount | number | পেমেন্ট বা ট্রানজ্যাকশনের পরিমাণ। |
| currency_code | string | পেমেন্টের কারেন্সি কোড, যেমন USD ডলার, EUR ইউরো, USDT Tether-এর জন্য। |
| merchant_id | string | আপনার যোগ করা মার্চেন্টের আইডেন্টিফায়ার (Merchant ID)। |
| description | string | পেমেন্ট বা ট্রানজ্যাকশনের বিবরণ। |
| deadline_seconds | number | পেমেন্ট সম্পন্ন করার সময়সীমা সেকেন্ডে নির্ধারণ করে, যেমন 600 মানে 10 মিনিট। সর্বোচ্চ মান 86400 সেকেন্ড (1 দিন)। |
| return_url | string | সফলভাবে পেমেন্ট সম্পন্ন হওয়ার পরে ক্লায়েন্টকে যে URL-এ ফেরত পাঠানো হবে। |
| cancel_url | string | পেমেন্ট বাতিল হলে ক্লায়েন্টকে যে URL-এ ফেরত পাঠানো হবে। |
| handling_fee | number | অতিরিক্ত পেমেন্ট ফি। |
| payer_email | string | পেমেন্ট ট্রানজ্যাকশনের সাথে যুক্ত ক্লায়েন্টের ইমেইল। |
| payment_method | string | এই ট্রানজ্যাকশনের জন্য ব্যবহৃত পেমেন্ট মেথড। উপলব্ধ মেথড: «PAY2_HOUSE», «USDT_TRC20», «CARDS». ডিফল্ট মান «ALL», অর্থাৎ ক্লায়েন্ট নিজে পেমেন্ট মেথড নির্বাচন করতে পারবে। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| invoice_number | string | সিস্টেমে পেমেন্ট ট্রানজ্যাকশন শনাক্তকারী ইউনিক ইনভয়েস নম্বর। |
| approval_url | string | পেমেন্ট সম্পন্ন করতে ক্লায়েন্টকে যে URL-এ রিডাইরেক্ট করতে হবে। |
<?php
function create_payment($request_body = [])
{
$curl = curl_init('https://pay2.house/api/create_payment');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'external_number' => '10001',
'amount' => 1000,
'currency_code' => 'USD',
'payment_method' => 'ALL',
'merchant_id' => 'SN6829106944',
'description' => 'Payment for Merchant.Name',
'deadline_seconds' => 600,
'handling_fee' => 10,
'payer_email' => '[email protected]',
'return_url' => 'https://mysite.com/result',
'cancel_url' => 'https://mysite.com/cancel',
]);
$api_response = create_payment(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['approval_url'])) {
header('Location: ' . $api_response['approval_url'], TRUE, 302);
}
?>
পেমেন্টের তথ্য
এই API মেথডটি Pay2.House পেমেন্ট সিস্টেমে আপনার পেমেন্ট সম্পর্কিত তথ্য অনুরোধ করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| merchant_id | string | আপনার যোগ করা মার্চেন্টের আইডেন্টিফায়ার (Merchant ID)। |
| invoice_number | string | আপনার ইনভয়েস নম্বর। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| invoice_number | string | সিস্টেমে পেমেন্ট ট্রানজ্যাকশন শনাক্তকারী ইউনিক ইনভয়েস নম্বর। |
| currency_code | string | পেমেন্টের কারেন্সি কোড, যেমন USD ডলার, EUR ইউরো, USDT Tether-এর জন্য। |
| currency_symbol | string | কারেন্সি সিম্বল, যেমন মার্কিন ডলারের জন্য "$"। |
| external_number | string | পেমেন্ট ট্রানজ্যাকশনের সাথে যুক্ত বাহ্যিক নম্বর। |
| description | string | পেমেন্ট ট্রানজ্যাকশন বা ইনভয়েসের বিবরণ। |
| amount | number | নির্দিষ্ট কারেন্সিতে পেমেন্টের পরিমাণ। |
| handling_fee | number | পেমেন্ট প্রসেসিং ফি-এর পরিমাণ। |
| payment_status | string |
পেমেন্টের স্ট্যাটাস। পেমেন্টের অপেক্ষায়: pending প্রসেসিং চলছে: in_processing পেমেন্ট সম্পন্ন: paid বাতিল করা হয়েছে: cancelled মেয়াদ শেষ: overdue আংশিকভাবে পরিশোধিত: partially পেমেন্ট ত্রুটি: error রিফান্ড: refunded |
<?php
function show_payment_details($request_body = [])
{
$curl = curl_init('https://pay2.house/api/show_payment_details');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'merchant_id' => 'SN6829106938',
'invoice_number' => 'IN9036982986'
]);
$api_response = show_payment_details(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Amount: ' . $api_response['amount'] . '<br />';
echo 'Fee: ' . $api_response['handling_fee'] . '<br />';
echo 'Currency Code: ' . $api_response['currency_code'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
ট্রান্সফার তৈরি করুন
এই API মেথডটি Pay2.House সিস্টেমে একটি অভ্যন্তরীণ অ্যাকাউন্টে নতুন ট্রান্সফার ইনিশিয়ালাইজ করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| sender_account | string | প্রেরকের অ্যাকাউন্ট। |
| recipient_account | string | প্রাপকের অ্যাকাউন্ট। |
| amount | number | ট্রান্সফারের পরিমাণ। |
| comment | string | ট্রান্সফার মন্তব্য। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| transaction_number | string | ইউনিক ট্রান্সফার নম্বর। |
<?php
function transfer_create($request_body = [])
{
$curl = curl_init('https://pay2.house/api/transfers/create');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'sender_account' => 'P2U49984694',
'recipient_account' => 'P2U93380055',
'amount' => 50,
'comment' => 'Transfer of funds to the client\'s account.'
]);
$api_response = transfer_create(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Payment successfully processed.';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
ট্রান্সফারের তথ্য
এই API মেথডটি ট্রান্সফারের বিস্তারিত তথ্য পেতে দেয়, যার মধ্যে স্ট্যাটাস, পরিমাণ, সম্পাদনের তারিখ ও সময় এবং অন্যান্য সম্পর্কিত ডেটা অন্তর্ভুক্ত।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| transaction_number | string | নির্দিষ্ট ট্রান্সফার শনাক্ত করতে ব্যবহৃত ইউনিক ট্রানজ্যাকশন নম্বর। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| transaction_number | string | ইউনিক ট্রানজ্যাকশন নম্বর। |
| time_created | number | Unix timestamp ফরম্যাটে ট্রানজ্যাকশন তৈরির সময়। |
| date_created | string | YYYY-MM-DD ফরম্যাটে ট্রানজ্যাকশন তৈরির তারিখ। |
| sender_account | string | অর্থ প্রেরকের অ্যাকাউন্ট নম্বর। |
| recipient_account | string | অর্থ প্রাপকের অ্যাকাউন্ট নম্বর। |
| amount | number | ট্রানজ্যাকশনে ট্রান্সফার করা পরিমাণ। |
| fee_amount | number | ট্রানজ্যাকশনের জন্য নেওয়া ফি-এর পরিমাণ। |
| currency_code | string | ট্রানজ্যাকশনের কারেন্সি কোড, যেমন USD ডলার, EUR ইউরো, USDT Tether-এর জন্য। |
| payment_method | string |
এই ট্রানজ্যাকশনের জন্য ব্যবহৃত পেমেন্ট মেথড। Pay2.House: house_money Push.House: push_house Cloaking.House: cloaking_house Capitalist.Net: capitalist Virtual Card Pay: virtual_card Visa Card Pay: visa Tether USDT: tether SWIFT: swift |
| confirm_method | string |
ট্রানজ্যাকশন কনফার্মেশন মেথড। SMS কনফার্মেশন: verification_phone Google Authenticator: verification_code API কনফার্মেশন: verification_api কোনো কনফার্মেশন নেই: none |
| payment_type | string |
পেমেন্টের ধরন। অভ্যন্তরীণ ট্রান্সফার: transfer অ্যাকাউন্ট টপ-আপ: refill কারেন্সি এক্সচেঞ্জ: exchange ইনভয়েস ইস্যু: invoice Merchant API: merchant |
| transaction_type | string | ট্রানজ্যাকশনের ধরন (incoming - জমা, withdrawal - কর্তন)। |
| transaction_status | string |
ট্রানজ্যাকশন স্ট্যাটাস। প্রসেসিং চলছে: in_processing কনফার্ম করা হয়েছে: confirmed ত্রুটি: error |
| comment | string | ট্রানজ্যাকশন সম্পর্কিত অতিরিক্ত তথ্য। |
| error_message | string | ট্রানজ্যাকশন ব্যর্থ হলে ত্রুটির বার্তা। |
<?php
function transfer_details($request_body = [])
{
$curl = curl_init('https://pay2.house/api/transfers/details');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'transaction_number' => 'TN4395601712'
]);
$api_response = transfer_details(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Transaction Number: ' . $api_response['transaction_number'] . '<br />';
echo 'Status: ' . $api_response['transaction_status'] . '<br />';
echo 'Time Created: ' . $api_response['time_created'] . '<br />';
echo 'Date Created: ' . $api_response['date_created'] . '<br />';
echo 'Sender Account: ' . $api_response['sender_account'] . '<br />';
echo 'Recipient Account: ' . $api_response['recipient_account'] . '<br />';
echo 'Amount: ' . $api_response['amount'] . '<br />';
echo 'Fee Amount: ' . $api_response['fee_amount'] . '<br />';
echo 'Currency Code: ' . $api_response['currency_code'] . '<br />';
echo 'Payment Method: ' . $api_response['payment_method'] . '<br />';
echo 'Confirm Method: ' . $api_response['confirm_method'] . '<br />';
echo 'Payment Type: ' . $api_response['payment_type'] . '<br />';
echo 'Transaction Type: ' . $api_response['transaction_type'] . '<br />';
echo 'Comment: ' . $api_response['comment'] . '<br />';
echo 'Error Message: ' . $api_response['error_message'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
ট্রান্সফার ইতিহাস
এই API মেথডটি সব সম্পন্ন ট্রান্সফারের তথ্যসহ ট্রানজ্যাকশনের তালিকা অনুরোধ করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| per_page | number | এক পৃষ্ঠায় প্রদর্শিত রেকর্ডের সংখ্যা। |
| page | number | পেজিনেশনের জন্য পৃষ্ঠা নম্বর। |
| transaction_type | string | ট্রানজ্যাকশনের ধরন অনুযায়ী ফিল্টার (incoming - জমা, withdrawal - কর্তন)। |
| status | string |
ট্রানজ্যাকশন স্ট্যাটাস অনুযায়ী ফিল্টার। প্রসেসিং চলছে: in_processing কনফার্ম করা হয়েছে: confirmed ত্রুটি: error |
| date_range | string | তারিখের পরিসর অনুযায়ী নির্বাচন করার ফিল্টার (DD.MM.YYYY - DD.MM.YYYY ফরম্যাটে), ফিল্টারিংয়ের জন্যও ব্যবহৃত। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| count | number | রিকোয়েস্টের সাথে মিলে যাওয়া মোট ট্রানজ্যাকশনের সংখ্যা। |
| transactions | array |
ট্রানজ্যাকশন অবজেক্টের অ্যারে, যেখানে প্রতিটি ট্রানজ্যাকশনের তথ্য থাকে, যেমন আইডেন্টিফায়ার, স্ট্যাটাস, ব্যালেন্স ইত্যাদি। ট্রান্সফারের তথ্য সেকশনে সব ফিল্ডের বিবরণ দেখুন। |
<?php
function get_transfers($request_body = [])
{
$curl = curl_init('https://pay2.house/api/transfers');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'per_page' => 10,
'page' => 1,
'status' => 'confirmed'
]);
$api_response = get_transfers(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Count Transactions: ' . $api_response['count'] . '<br />';
if ( ! empty($api_response['transactions'])) {
foreach($api_response['transactions'] AS $item) {
echo '----------------------------------------';
echo 'Transaction Number: ' . $item['transaction_number'] . '<br />';
echo 'Status: ' . $item['transaction_status'] . '<br />';
echo 'Time Created: ' . $item['time_created'] . '<br />';
echo 'Date Created: ' . $item['date_created'] . '<br />';
echo 'Sender Account: ' . $item['sender_account'] . '<br />';
echo 'Recipient Account: ' . $item['recipient_account'] . '<br />';
echo 'Amount: ' . $item['amount'] . '<br />';
echo 'Fee Amount: ' . $item['fee_amount'] . '<br />';
echo 'Currency Code: ' . $item['currency_code'] . '<br />';
echo 'Payment Method: ' . $item['payment_method'] . '<br />';
echo 'Confirm Method: ' . $item['confirm_method'] . '<br />';
echo 'Payment Type: ' . $item['payment_type'] . '<br />';
echo 'Transaction Type: ' . $item['transaction_type'] . '<br />';
echo 'Comment: ' . $item['comment'] . '<br />';
echo 'Error Message: ' . $item['error_message'] . '<br />';
echo '----------------------------------------';
echo '<br />';
}
} else {
echo 'No Transactions Found.';
}
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
অ্যাকাউন্টের তালিকা পান
এই API মেথডটি Pay2.House সিস্টেমে আপনার অ্যাকাউন্টের সাথে যুক্ত সব অ্যাকাউন্টের তালিকা অনুরোধ করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| delete_flag | number | অ্যাকাউন্ট ডিলিট ফ্ল্যাগ। মান 0 হলে সক্রিয় অ্যাকাউন্ট বোঝায়, আর মান 1 হলে ডিলিট করা বা ব্লক করা অ্যাকাউন্ট বোঝায়। |
| currency_code | string | অ্যাকাউন্ট ফিল্টার করার জন্য কারেন্সি কোড, যেমন "USD" ডলার, "EUR" ইউরো, "USDT" Tether-এর জন্য। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| count | number | রিকোয়েস্টের সাথে মিলে যাওয়া মোট অ্যাকাউন্টের সংখ্যা। |
| wallets | array |
অ্যাকাউন্ট অবজেক্টের অ্যারে, যেখানে প্রতিটি অ্যাকাউন্টের তথ্য থাকে, যেমন আইডেন্টিফায়ার, স্ট্যাটাস, ব্যালেন্স ইত্যাদি। অ্যাকাউন্টের তথ্য সেকশনে সব ফিল্ডের বিবরণ দেখুন। |
<?php
function get_wallets($request_body = [])
{
$curl = curl_init('https://pay2.house/api/wallets');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'delete_flag' => 0,
'currency_code' => 'USD'
]);
$api_response = get_wallets(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Count Wallets: ' . $api_response['count'] . '<br />';
if ( ! empty($api_response['wallets'])) {
foreach($api_response['wallets'] AS $item) {
echo '----------------------------------------';
echo 'Account Number: ' . $item['account_number'] . '<br />';
echo 'Name: ' . $item['name'] . '<br />';
echo 'Time Created: ' . $item['time_created'] . '<br />';
echo 'Date Created: ' . $item['date_created'] . '<br />';
echo 'Balance: ' . $item['balance'] . '<br />';
echo 'Bonus: ' . $item['bonus'] . '<br />';
echo 'Currency Code: ' . $item['currency_code'] . '<br />';
echo 'Currency Symbol: ' . $item['currency_symbol'] . '<br />';
echo 'Address TRC20: ' . $item['trc20_address'] . '<br />';
echo '----------------------------------------';
echo '<br />';
}
} else {
echo 'No Wallets Found.';
}
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
অ্যাকাউন্ট তৈরি করুন
এই API মেথডটি Pay2.House সিস্টেমের ভিতরে পেমেন্ট এবং ট্রানজ্যাকশন করার জন্য ব্যবহারযোগ্য ইউনিক অ্যাকাউন্ট তৈরি করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| name | string | অ্যাকাউন্টের নাম। |
| currency_code | string | পেমেন্টের কারেন্সি কোড, যেমন USD ডলার, EUR ইউরো, USDT Tether-এর জন্য। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| account_number | string | তৈরি করা অ্যাকাউন্ট নম্বর। |
<?php
function wallet_create($request_body = [])
{
$curl = curl_init('https://pay2.house/api/wallets/create');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'name' => 'Your Wallet Name',
'currency_code' => 'USD'
]);
$api_response = wallet_create(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Wallet created successfully.';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
অ্যাকাউন্টের তথ্য
এই API মেথডটি Pay2.House পেমেন্ট সিস্টেমে আপনার অ্যাকাউন্ট সম্পর্কিত তথ্য অনুরোধ করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| account_number | string | আপনার অ্যাকাউন্ট নম্বর। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| time_created | number | Unix timestamp ফরম্যাটে অ্যাকাউন্ট তৈরির সময়। |
| date_created | string | YYYY-MM-DD ফরম্যাটে অ্যাকাউন্ট তৈরির তারিখ। |
| delete_flag | number | ডিলিট ফ্ল্যাগ (0 — ডিলিট করা হয়নি, 1 — ডিলিট করা হয়েছে)। |
| account_number | string | অ্যাকাউন্ট নম্বর। |
| currency_code | string | অ্যাকাউন্টের কারেন্সি কোড, যেমন USD ডলার, EUR ইউরো, USDT Tether-এর জন্য। |
| currency_symbol | string | কারেন্সি সিম্বল, যেমন মার্কিন ডলারের জন্য "$"। |
| name | string | অ্যাকাউন্টের নাম। |
| balance | number | অ্যাকাউন্টের বর্তমান ব্যালেন্স। |
| bonus | number | প্রযোজ্য হলে অ্যাকাউন্টে উপলব্ধ বোনাস ফান্ডের পরিমাণ। |
| trc20_address | string | প্রযোজ্য হলে টোকেনের জন্য TRC-20 ঠিকানা। |
<?php
function wallet_details($request_body = [])
{
$curl = curl_init('https://pay2.house/api/wallets/details');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'account_number' => 'P2U49984694'
]);
$api_response = wallet_details(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Account Number: ' . $api_response['account_number'] . '<br />';
echo 'Name: ' . $api_response['name'] . '<br />';
echo 'Time Created: ' . $api_response['time_created'] . '<br />';
echo 'Date Created: ' . $api_response['date_created'] . '<br />';
echo 'Balance: ' . $api_response['balance'] . '<br />';
echo 'Bonus: ' . $api_response['bonus'] . '<br />';
echo 'Currency Code: ' . $api_response['currency_code'] . '<br />';
echo 'Currency Symbol: ' . $api_response['currency_symbol'] . '<br />';
echo 'Address TRC20: ' . $api_response['trc20_address'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
অ্যাকাউন্ট স্টেটমেন্ট পান
এই API মেথডটি নির্বাচিত অ্যাকাউন্টের বিস্তারিত স্টেটমেন্ট পেতে দেয়, যার মধ্যে সব ট্রানজ্যাকশন এবং ব্যালেন্স পরিবর্তনের তথ্য অন্তর্ভুক্ত।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| account_number | string | আপনার অ্যাকাউন্ট নম্বর। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| download_url | string | CSV ফরম্যাটে অ্যাকাউন্ট স্টেটমেন্ট ফাইল ডাউনলোড করার URL। |
<?php
function wallet_statement($request_body = [])
{
$curl = curl_init('https://pay2.house/api/wallets/statement');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'account_number' => 'P2U49984694'
]);
$api_response = wallet_statement(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
header('Location: ' . $api_response['download_url'], TRUE, 302);
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
BIN তালিকা পান
এই API মেথডটি Pay2.House সিস্টেমে ভার্চুয়াল কার্ড ইস্যুর জন্য উপলব্ধ BIN তালিকা পেতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| currency_code | string | BIN কারেন্সি কোড, যেমন USD, EUR। |
| country_code | string | ISO 3166-1 alpha-2 ফরম্যাটে BIN দেশের কোড, যেমন US, HK। |
| card_type | string |
কার্ডের ধরন। ভার্চুয়াল: virtual ফিজিক্যাল: physical |
| card_network | string |
পেমেন্ট সিস্টেম। Visa: visa MasterCard: mastercard |
| card_product_type | string |
কার্ড প্রোডাক্টের ধরন। পার্সোনাল: personal স্ট্যান্ডার্ড: standard |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| count | number | রিকোয়েস্টের সাথে মিলে যাওয়া মোট BIN সংখ্যা। |
| bins | array | BIN অবজেক্টের অ্যারে, যেখানে প্রতিটি BIN সম্পর্কে তথ্য থাকে। |
| bin | string | ব্যাংক আইডেন্টিফিকেশন নম্বর। |
| currency_code | string | BIN কারেন্সি কোড, যেমন USD, EUR। |
| country_code | string | ISO 3166-1 alpha-2 ফরম্যাটে BIN দেশের কোড, যেমন US, HK। |
| card_type | string | পেমেন্ট সিস্টেম, যেমন visa, mastercard। |
| card_product_type | string | কার্ড প্রোডাক্টের ধরন, যেমন standard, personal। |
| card_tier | string | কার্ডের স্তর, যেমন premium, shared। |
| verification_required | number | ভেরিফিকেশন প্রয়োজন কি না (1 — হ্যাঁ, 0 — না)। |
<?php
function cards_bins($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/bins');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'currency_code' => 'USD',
'country_code' => 'HK',
'card_type' => 'virtual',
'card_network' => 'mastercard',
'card_product_type' => 'standard',
]);
$api_response = cards_bins(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Count Bins: ' . $api_response['count'] . '<br />';
if ( ! empty($api_response['bins'])) {
foreach($api_response['bins'] AS $item) {
echo 'BIN: ' . $item['bin'] . '<br />';
echo 'Currency Code: ' . $item['currency_code'] . '<br />';
echo 'Country Code: ' . $item['country_code'] . '<br />';
echo 'Card Type: ' . $item['card_type'] . '<br />';
echo 'Card Network: ' . $item['card_network'] . '<br />';
echo 'Card Product Type: ' . $item['card_product_type'] . '<br />';
echo 'Card Tier: ' . $item['card_tier'] . '<br />';
echo '3DS Support: ' . $item['is_3ds_supported'] . '<br />';
echo 'Verification Required: ' . $item['verification_required'] . '<br />';
echo '----------------------------------------';
echo '<br />';
}
} else {
echo 'No Bins Found.';
}
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ডের তালিকা পান
এই API মেথডটি Pay2.House সিস্টেমে আপনার অ্যাকাউন্টে ইস্যু করা ভার্চুয়াল কার্ডের তালিকা অনুরোধ করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| per_page | number | এক পৃষ্ঠায় প্রদর্শিত রেকর্ডের সংখ্যা। |
| page | number | পেজিনেশনের জন্য পৃষ্ঠা নম্বর। |
| status | string |
কার্ড স্ট্যাটাস অনুযায়ী ফিল্টার। সক্রিয়: active ব্লক করা: blocked বন্ধ: closed ইস্যুর অপেক্ষায়: awaiting |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| count | number | রিকোয়েস্টের সাথে মিলে যাওয়া মোট কার্ডের সংখ্যা। |
| cards | array |
কার্ড অবজেক্টের অ্যারে, যেখানে প্রতিটি কার্ডের তথ্য থাকে, যেমন আইডেন্টিফায়ার, স্ট্যাটাস, ব্যালেন্স ইত্যাদি। কার্ডের তথ্য সেকশনে সব ফিল্ডের বিবরণ দেখুন। |
<?php
function get_cards($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'per_page' => 10,
'page' => 1,
'status' => 'active'
]);
$api_response = get_cards(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Count Cards: ' . $api_response['count'] . '<br />';
if ( ! empty($api_response['cards'])) {
foreach($api_response['cards'] AS $item) {
echo '----------------------------------------';
echo 'Card Name: ' . $item['card_name'] . '<br />';
echo 'Card Number: ' . $item['card_number'] . '<br />';
echo 'Card ID: ' . $item['card_id'] . '<br />';
echo 'CVV: ' . $item['cvv'] . '<br />';
echo 'Expire Date: ' . $item['expiration_date'] . '<br />';
echo '3DS Password: ' . $item['password'] . '<br />';
echo 'Currency Code: ' . $item['currency_code'] . '<br />';
echo 'Currency Symbol: ' . $item['currency_symbol'] . '<br />';
echo 'Time Created: ' . $item['time_created'] . '<br />';
echo 'Date Created: ' . $item['date_created'] . '<br />';
echo 'Time Renewal: ' . $item['time_renewal'] . '<br />';
echo 'Date Renewal: ' . $item['date_renewal'] . '<br />';
echo 'Email: ' . $item['email'] . '<br />';
echo 'Phone Number: ' . $item['phone_number'] . '<br />';
echo 'Address Line 1: ' . $item['address_line_1'] . '<br />';
echo 'City: ' . $item['city'] . '<br />';
echo 'Country Code: ' . $item['country_code'] . '<br />';
echo 'Post Code: ' . $item['post_code'] . '<br />';
echo 'First Name: ' . $item['first_name'] . '<br />';
echo 'Last Name: ' . $item['last_name'] . '<br />';
echo 'Sur Name: ' . $item['sur_name'] . '<br />';
echo 'Date Birth: ' . $item['date_birth'] . '<br />';
echo 'Card Status: ' . $item['card_status'] . '<br />';
echo 'Balance: ' . $item['balance'] . '<br />';
echo 'Issuance Cost: ' . $item['issuance_cost'] . '<br />';
echo 'Renewal Cost: ' . $item['renewal_cost'] . '<br />';
echo 'Recharge Cost: ' . $item['recharge_cost'] . '<br />';
echo 'Recharge Type: ' . $item['recharge_type'] . '<br />';
echo 'Account Refund Cost: ' . $item['account_refund_cost'] . '<br />';
echo 'Account Refund Type: ' . $item['account_refund_type'] . '<br />';
echo 'Refund Min Amount: ' . $item['refund_min_amount'] . '<br />';
echo 'Min Recharge Amount: ' . $item['min_recharge_amount'] . '<br />';
echo 'Max Recharge Amount: ' . $item['max_recharge_amount'] . '<br />';
echo 'Block Status: ' . $item['block_status'] . '<br />';
echo 'Time Blocked: ' . $item['time_blocked'] . '<br />';
echo 'Date Blocked: ' . $item['date_blocked'] . '<br />';
echo '----------------------------------------';
echo '<br />';
}
} else {
echo 'No Cards Found.';
}
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড ইস্যু করুন
এই API মেথডটি Pay2.House সিস্টেমে নতুন ভার্চুয়াল কার্ড ইস্যু করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| account_number | string | আপনার অ্যাকাউন্ট নম্বর, যেখান থেকে কার্ড ইস্যু ফি কাটা হবে। |
| first_name | string | কার্ডহোল্ডারের প্রথম নাম। |
| last_name | string | কার্ডহোল্ডারের শেষ নাম। |
| sur_name | string | কার্ডহোল্ডারের মধ্য নাম। |
| date_birth | string | DD.MM.YYYY ফরম্যাটে কার্ডহোল্ডারের জন্মতারিখ। |
| phone_number | string | দেশের কোডসহ কার্ডহোল্ডারের ফোন নম্বর। |
| address | string | কার্ডহোল্ডারের বাসস্থানের ঠিকানা। |
| city | string | কার্ডহোল্ডারের বসবাসের শহর। |
| region | string | কার্ডহোল্ডারের বসবাসের অঞ্চল বা রাজ্য। |
| post_code | string | বাসস্থানের ঠিকানার পোস্টাল কোড। |
| string | কার্ডহোল্ডারের ইমেইল। | |
| country_code | string | ISO 3166-1 alpha-2 স্ট্যান্ডার্ড অনুযায়ী দেশের কোড, যেমন যুক্তরাষ্ট্রের জন্য "US"। |
| bin_number | string | কার্ডের ব্যাংক আইডেন্টিফিকেশন নম্বর (BIN)। এটি টেকনিক্যাল সাপোর্ট টিকিটের মাধ্যমে অনুরোধ করতে হবে। |
| renewal_payment_flag | number | এই ফ্ল্যাগটি নির্দেশ করে, কার্ডে পর্যাপ্ত অর্থ না থাকলে কার্ড রিনিউয়ালের জন্য Pay2.House প্রধান অ্যাকাউন্ট থেকে অর্থ কাটা যাবে কি না (1 - হ্যাঁ, 0 - না)। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| card_number | string | ইস্যু করা কার্ড নম্বর। |
| card_id | string | সিস্টেমে কার্ডের ইউনিক আইডেন্টিফায়ার, পরবর্তী অপারেশনের জন্য ব্যবহৃত। |
<?php
function card_issue($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/issue');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'account_number' => 'P2U48633413',
'first_name' => 'John',
'last_name' => 'Doe',
'sur_name' => 'Smith',
'date_birth' => '01.01.1991',
'phone_number' => '+380990000000',
'address' => 'Kyiv, Ukraine',
'city' => 'Kyiv',
'region' => 'Kyiv',
'country_code' => 'UA',
'post_code' => '01001',
'email' => '[email protected]',
'bin_number' => '1122334455667788',
]);
$api_response = card_issue(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Card Number: ' . $api_response['card_number'] . '<br />';
echo 'Card ID: ' . $api_response['card_id'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ডের তথ্য
এই API মেথডটি ভার্চুয়াল কার্ডের বিস্তারিত তথ্য পেতে দেয়, যার মধ্যে কার্ড নম্বর, স্ট্যাটাস, ইস্যু তারিখ এবং অন্যান্য সম্পর্কিত ডেটা অন্তর্ভুক্ত।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | সিস্টেমে কার্ডের ইউনিক আইডেন্টিফায়ার, কার্ডের বিস্তারিত তথ্য পেতে ব্যবহৃত। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| card_name | string | কার্ড ইস্যুর সময় নির্ধারিত কার্ডের নাম। |
| card_number | string | ইস্যু করা কার্ড নম্বর। |
| card_id | string | সিস্টেমে কার্ডের ইউনিক আইডেন্টিফায়ার। |
| cvv | string | অনুমোদনের জন্য প্রয়োজনীয় কার্ড সিকিউরিটি কোড। |
| expiration_date | string | MM/YY ফরম্যাটে কার্ডের মেয়াদ শেষ হওয়ার তারিখ। |
| password | string | অনলাইন ট্রানজ্যাকশনে অতিরিক্ত নিরাপত্তার জন্য 3DS পাসওয়ার্ড। |
| currency_code | string | কার্ড অপারেশনে ব্যবহৃত কারেন্সি কোড। |
| currency_symbol | string | কারেন্সি সিম্বল, যেমন: $ বা €। |
| time_created | number | Unix timestamp ফরম্যাটে কার্ড তৈরির সময়। |
| date_created | string | YYYY-MM-DD ফরম্যাটে কার্ড তৈরির তারিখ। |
| date_renewal | string | YYYY-MM-DD ফরম্যাটে কার্ড রিনিউয়ালের পরবর্তী চার্জের তারিখ। |
| time_renewal | number | Unix timestamp ফরম্যাটে কার্ড রিনিউয়ালের পরবর্তী চার্জের সময়। |
| string | কার্ড ইস্যুর সময় উল্লেখ করা ইমেইল ঠিকানা। | |
| phone_number | string | কার্ড ইস্যুর সময় উল্লেখ করা ফোন নম্বর। |
| address_line_1 | string | কার্ড ইস্যুর সময় উল্লেখ করা বাসস্থানের ঠিকানা। |
| city | string | কার্ড ইস্যুর সময় উল্লেখ করা বসবাসের শহর। |
| country_code | string | ISO 3166-1 alpha-2 স্ট্যান্ডার্ড অনুযায়ী দেশের কোড, যেমন যুক্তরাষ্ট্রের জন্য "US"। |
| first_name | string | কার্ড মালিকের প্রথম নাম। |
| last_name | string | কার্ড মালিকের শেষ নাম। |
| sur_name | string | কার্ড মালিকের মধ্য নাম। |
| date_birth | string | DD.MM.YYYY ফরম্যাটে কার্ড মালিকের জন্মতারিখ। |
| post_code | string | পোস্টাল কোড। |
| card_status | string |
কার্ড স্ট্যাটাস। সক্রিয়: active ব্লক করা: blocked বন্ধ: closed ইস্যুর অপেক্ষায়: awaiting |
| balance | number | কার্ডের বর্তমান ব্যালেন্স। |
| issuance_cost | number | কার্ড ইস্যু খরচ। |
| renewal_cost | number | কার্ড রিনিউয়াল খরচ। |
| recharge_cost | number | কার্ড টপ-আপ ফি। |
| recharge_type | string | কার্ড টপ-আপ ফি-এর ধরন ("fixed" হলে নির্দিষ্ট ফি, "percent" হলে শতাংশভিত্তিক ফি)। ফি-এর মান recharge_cost প্যারামিটার থেকে নেওয়া হয়। |
| account_refund_cost | number | কার্ড থেকে অর্থ ফেরতের ফি। |
| account_refund_type | string | কার্ড থেকে অর্থ ফেরতের ফি-এর ধরন ("fixed" হলে নির্দিষ্ট ফি, "percent" হলে শতাংশভিত্তিক ফি)। ফি-এর মান account_refund_cost প্যারামিটার থেকে নেওয়া হয়। |
| refund_min_amount | number | কার্ড থেকে অর্থ ফেরতের ন্যূনতম পরিমাণ। |
| min_recharge_amount | number | কার্ড টপ-আপের ন্যূনতম পরিমাণ। |
| max_recharge_amount | number | কার্ড টপ-আপের সর্বোচ্চ পরিমাণ। |
| block_status | string |
কার্ড ব্লক স্ট্যাটাস। সম্ভাব্য মানগুলো কার্ড ব্লক স্ট্যাটাস সেকশনে পাওয়া যাবে। |
| date_blocked | string | YYYY-MM-DD ফরম্যাটে কার্ড ব্লক করার তারিখ। |
| time_blocked | number | Unix timestamp ফরম্যাটে কার্ড ব্লক করার সময়। |
<?php
function card_details($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/details');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264'
]);
$api_response = card_details(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Card Name: ' . $api_response['card_name'] . '<br />';
echo 'Card Number: ' . $api_response['card_number'] . '<br />';
echo 'Card ID: ' . $api_response['card_id'] . '<br />';
echo 'CVV: ' . $api_response['cvv'] . '<br />';
echo 'Expire Date: ' . $api_response['expiration_date'] . '<br />';
echo '3DS Password: ' . $api_response['password'] . '<br />';
echo 'Currency Code: ' . $api_response['currency_code'] . '<br />';
echo 'Currency Symbol: ' . $api_response['currency_symbol'] . '<br />';
echo 'Time Created: ' . $api_response['time_created'] . '<br />';
echo 'Date Created: ' . $api_response['date_created'] . '<br />';
echo 'Time Renewal: ' . $api_response['time_renewal'] . '<br />';
echo 'Date Renewal: ' . $api_response['date_renewal'] . '<br />';
echo 'Email: ' . $api_response['email'] . '<br />';
echo 'Phone Number: ' . $api_response['phone_number'] . '<br />';
echo 'Address Line 1: ' . $api_response['address_line_1'] . '<br />';
echo 'City: ' . $api_response['city'] . '<br />';
echo 'Country Code: ' . $api_response['country_code'] . '<br />';
echo 'Post Code: ' . $api_response['post_code'] . '<br />';
echo 'First Name: ' . $api_response['first_name'] . '<br />';
echo 'Last Name: ' . $api_response['last_name'] . '<br />';
echo 'Sur Name: ' . $api_response['sur_name'] . '<br />';
echo 'Date Birth: ' . $api_response['date_birth'] . '<br />';
echo 'Card Status: ' . $api_response['card_status'] . '<br />';
echo 'Balance: ' . $api_response['balance'] . '<br />';
echo 'Issuance Cost: ' . $api_response['issuance_cost'] . '<br />';
echo 'Renewal Cost: ' . $api_response['renewal_cost'] . '<br />';
echo 'Recharge Cost: ' . $api_response['recharge_cost'] . '<br />';
echo 'Recharge Type: ' . $api_response['recharge_type'] . '<br />';
echo 'Account Refund Cost: ' . $api_response['account_refund_cost'] . '<br />';
echo 'Account Refund Type: ' . $api_response['account_refund_type'] . '<br />';
echo 'Refund Min Amount: ' . $api_response['refund_min_amount'] . '<br />';
echo 'Min Recharge Amount: ' . $api_response['min_recharge_amount'] . '<br />';
echo 'Max Recharge Amount: ' . $api_response['max_recharge_amount'] . '<br />';
echo 'Block Status: ' . $api_response['block_status'] . '<br />';
echo 'Time Blocked: ' . $api_response['time_blocked'] . '<br />';
echo 'Date Blocked: ' . $api_response['date_blocked'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ডের নাম পরিবর্তন করুন
এই API পদ্ধতিটি Pay2.House সিস্টেমে একটি ভার্চুয়াল কার্ডের নাম পরিবর্তন করতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | সিস্টেমে কার্ডের ইউনিক আইডেন্টিফায়ার, কার্ডের বিস্তারিত তথ্য পেতে ব্যবহৃত। |
| name | string | ভার্চুয়াল কার্ডের নতুন নাম। সর্বোচ্চ দৈর্ঘ্য — 100 অক্ষর। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| card_name | string | পরিবর্তনের পর ভার্চুয়াল কার্ডের নাম। |
<?php
function card_rename($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/rename');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264',
'name' => 'New Card Name'
]);
$api_response = card_rename(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Card Name: ' . $api_response['card_name'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড টপ-আপ
এই API মেথডটি আপনার অভ্যন্তরীণ অ্যাকাউন্ট ব্যবহার করে ভার্চুয়াল কার্ডের ব্যালেন্স টপ-আপ করতে দেয়।
টপ-আপ রিকোয়েস্ট তৈরি হওয়ার 2-3 মিনিটের মধ্যে কার্ডে অর্থ জমা হবে।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | আপনি যে ভার্চুয়াল কার্ড টপ-আপ করতে চান তার আইডেন্টিফায়ার। |
| account_number | string | আপনার অভ্যন্তরীণ অ্যাকাউন্ট নম্বর, যেখান থেকে টপ-আপের পরিমাণ কাটা হবে। |
| amount | number | আপনি ভার্চুয়াল কার্ডে যে পরিমাণ জমা করতে চান। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| transaction_number | string | কার্ড টপ-আপের সাথে যুক্ত ট্রানজ্যাকশন নম্বর। |
<?php
function card_top_up($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/top_up');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264',
'account_number' => 'P2U48633413',
'amount' => 50
]);
$api_response = card_top_up(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Transaction Number: ' . $api_response['transaction_number'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড থেকে অর্থ ফেরত
এই API মেথডটি ভার্চুয়াল কার্ড থেকে আপনার অভ্যন্তরীণ অ্যাকাউন্টে অর্থ ফেরত শুরু করতে দেয়।
অর্থ একই অ্যাকাউন্টে ফেরত দেওয়া হয়, যেখান থেকে কার্ড ইস্যু করা হয়েছিল।
কার্ডের ট্যারিফ অনুযায়ী রিফান্ড ফি কেটে বাকি পরিমাণ আপনি পাবেন।
উদাহরণস্বরূপ, আপনি যদি $10 রিফান্ড করেন এবং রিফান্ড ফি 3% হয়, তাহলে $10 × 3% = $0.30 ফি হিসেবে কাটা হবে এবং আপনার অ্যাকাউন্টে $9.70 জমা হবে।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | যে কার্ড থেকে অর্থ ফেরত করা হচ্ছে তার ইউনিক আইডেন্টিফায়ার। |
| amount | number | অভ্যন্তরীণ অ্যাকাউন্টে ট্রান্সফার করার জন্য রিফান্ডের পরিমাণ। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| transaction_number | string | কার্ড থেকে সম্পন্ন অর্থ ফেরতের সাথে যুক্ত ইউনিক ট্রানজ্যাকশন নম্বর। |
<?php
function card_refund($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/refund');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264',
'amount' => 10
]);
$api_response = card_refund(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Transaction Number: ' . $api_response['transaction_number'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড অপারেশন ইতিহাস
এই API মেথডটি আপনার ভার্চুয়াল কার্ড দিয়ে সম্পন্ন সব অপারেশনের পূর্ণ তালিকায় অ্যাক্সেস দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | যে ভার্চুয়াল কার্ডের অপারেশন ইতিহাস পেতে চান তার ইউনিক আইডেন্টিফায়ার। |
| per_page | number | এক পৃষ্ঠায় প্রদর্শিত রেকর্ডের সংখ্যা। |
| page | number | পেজিনেশনের জন্য পৃষ্ঠা নম্বর। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| count | number | এই কার্ডের অপারেশন ইতিহাসে মোট ট্রানজ্যাকশনের সংখ্যা। |
| transactions | array | প্রতিটি ট্রানজ্যাকশনের তারিখ, পরিমাণ এবং অপারেশন টাইপসহ বিস্তারিত তথ্যের অবজেক্টের তালিকা। |
<?php
function cards_history($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/history');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264',
'per_page' => 10,
'page' => 3
]);
$api_response = cards_history(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Count Transactions: ' . $api_response['count'] . '<br />';
if ( ! empty($api_response['transactions'])) {
foreach($api_response['transactions'] AS $item) {
echo 'Transaction Time: ' . $item['transaction_time'] . '<br />';
echo 'Transaction Number: ' . $item['transaction_number'] . '<br />';
echo 'Status: ' . $item['status'] . '<br />';
echo 'Type: ' . $item['type'] . '<br />';
echo 'Transaction Amount: ' . $item['transaction_amount'] . '<br />';
echo 'Transaction Currency Code: ' . $item['transaction_currency_code'] . '<br />';
echo 'Account Amount: ' . $item['account_amount'] . '<br />';
echo 'Account Currency Code: ' . $item['account_currency_code'] . '<br />';
echo 'Merchant Name: ' . $item['merchant_name'] . '<br />';
echo 'Merchant Url: ' . $item['merchant_url'] . '<br />';
echo 'Merchant Domain: ' . $item['merchant_domain'] . '<br />';
echo 'Merchant Icon Url: ' . $item['merchant_icon_url'] . '<br />';
echo 'Error Message: ' . $item['error_message'] . '<br />';
echo '----------------------------------------';
echo '<br />';
}
} else {
echo 'No Transactions Found.';
}
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড ব্যালেন্স আপডেট করুন
এই API মেথডটি ভার্চুয়াল কার্ডের ব্যালেন্স আপডেট শুরু করতে দেয়, যাতে কার্ডের বর্তমান অর্থের অবস্থা সম্পর্কে আপডেটেড ডেটা পাওয়া যায়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | যে ভার্চুয়াল কার্ডের ব্যালেন্স আপডেট করতে চান তার ইউনিক আইডেন্টিফায়ার। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| balance | number | আপডেটের পরে ভার্চুয়াল কার্ডের বর্তমান ব্যালেন্স, যা উপলব্ধ অর্থ দেখায়। |
<?php
function card_balance_refresh($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/balance/refresh');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264'
]);
$api_response = card_balance_refresh(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Card Balance: ' . $api_response['balance'] . '<br />';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড কনফার্মেশন কোড
এই API মেথডটি ভার্চুয়াল কার্ডের অপারেশন অনুমোদনের জন্য প্রয়োজনীয় কনফার্মেশন কোডের তালিকা পেতে দেয়।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | যে ভার্চুয়াল কার্ডের জন্য অপারেশন কনফার্মেশন কোড প্রয়োজন তার ইউনিক আইডেন্টিফায়ার। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
| codes | array | কার্ড ট্রানজ্যাকশন সম্পন্ন করতে প্রয়োজনীয় কনফার্মেশন কোডের তালিকা। |
<?php
function card_confirmation_codes($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/confirmation_codes');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264'
]);
$api_response = card_confirmation_codes(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
if ( ! empty($api_response['codes'])) {
foreach($api_response['codes'] AS $item) {
echo 'Time Created: ' . $item['time_created'] . '<br />';
echo 'Date Created: ' . $item['date_created'] . '<br />';
echo 'Otp Code: ' . $item['otp_code'] . '<br />';
echo '----------------------------------------';
echo '<br />';
}
} else {
echo 'No Confirmation Codes Found.';
}
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড ব্লক করুন
এই API মেথডটি ভার্চুয়াল কার্ড ব্লক করতে দেয়, যার ফলে পরবর্তীতে কার্ড ব্যবহার করা যাবে না।
কার্ড ব্যালেন্সে অর্থ থাকলে, তা রিফান্ড ট্যারিফ অনুযায়ী সেই অভ্যন্তরীণ অ্যাকাউন্টে ফেরত দেওয়া হবে, যেখান থেকে কার্ড ইস্যু করা হয়েছিল।
তবে ফি কাটার পরে রিফান্ডের পরিমাণ যদি ন্যূনতম রিফান্ডের পরিমাণের চেয়ে কম হয়, তাহলে সেই অর্থ কার্ড ব্যালেন্স থেকে কেটে নেওয়া হবে।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | আপনি যে ভার্চুয়াল কার্ড ব্লক করতে চান তার ইউনিক আইডেন্টিফায়ার। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
<?php
function cards_block($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/block');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264'
]);
$api_response = cards_block(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Card Blocked Successfully.';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড বন্ধ করুন
এই API মেথডটি ভার্চুয়াল কার্ড বন্ধ করতে দেয়, যার ফলে পরবর্তীতে কার্ড ব্যবহার করা যাবে না।
গুরুত্বপূর্ণ: কার্ডে অর্থ অবশিষ্ট থাকলে এই মেথড দিয়ে কার্ড বন্ধ করা যাবে না।
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| card_id | string | আপনি যে ভার্চুয়াল কার্ড বন্ধ করতে চান তার ইউনিক আইডেন্টিফায়ার। |
রেসপন্স প্যারামিটার:
| প্যারামিটার | টাইপ | বিবরণ |
|---|---|---|
| status | string | রিকোয়েস্ট সম্পাদনের স্ট্যাটাস, যেমন সফল রিকোয়েস্টের জন্য "success"। |
| code | string | রেসপন্স কোড, যেমন সফল রিকোয়েস্টের জন্য "REQUEST_SUCCESS"। |
<?php
function card_close($request_body = [])
{
$curl = curl_init('https://pay2.house/api/cards/close');
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($request_body));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$body = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
if ( ! empty($info['http_code']) && $info['http_code'] === 200) {
return json_decode($body, TRUE);
}
}
$sign_token = create_token([
'card_id' => 'VC7914059264'
]);
$api_response = card_close(['sign_token' => $sign_token, 'api_key' => 'YOUR_API_KEY']);
if ( ! empty($api_response['status'])) {
if ($api_response['status'] == 'success') {
echo 'Card Closed Successfully.';
} else {
echo 'Error Code: ' . $api_response['code'] . '<br />';
echo 'Error Message: ' . $api_response['msg'] . '<br />';
}
} else {
echo 'Unknown Error';
}
?>
কার্ড ব্লক স্ট্যাটাস
সম্ভাব্য কার্ড ব্লক স্ট্যাটাস এবং তাদের অর্থের বিবরণ।
| স্ট্যাটাস | বিবরণ |
|---|---|
| terms_violation | ব্যবহারের শর্ত লঙ্ঘন |
| insufficient_funds | অপর্যাপ্ত অর্থ |
| unauthorized_topup | অননুমোদিত টপ-আপ প্রচেষ্টা |
| high_refund_rate | উচ্চ রিফান্ড হার |
| prebilling | প্রথম বিলিং |
| subscription_delay | সাবস্ক্রিপশন ফি বিলম্ব |
| invalid_personal_data | ভুল বা অসম্পূর্ণ ব্যক্তিগত তথ্য |
| illegal_activity | অবৈধ কার্যকলাপের চেষ্টা |
| verification_issues | ভেরিফিকেশন সমস্যা |
| high_risk | উচ্চ ঝুঁকির মাত্রা |
| terms_change | কার্ডের শর্ত পরিবর্তন |
| inactivity | নিষ্ক্রিয়তা |
| internal_errors | অভ্যন্তরীণ ত্রুটি |
| regulatory_requirements | নিয়ন্ত্রক প্রয়োজনীয়তা |
| user_blocked | ক্লায়েন্ট কার্ড ব্লক করেছে |
| not_blocked | ব্লক করা হয়নি |
Webhook Events
পেমেন্ট স্ট্যাটাস "পেমেন্ট সম্পন্ন" হলে Pay2.House স্বয়ংক্রিয়ভাবে আপনার মার্চেন্টের জন্য নির্ধারিত Webhook URL-এ webhook ফরম্যাটে নোটিফিকেশন পাঠায়।
আমরা HTTP স্ট্যাটাস 200 এবং "OK" রেসপন্স টেক্সট না পাওয়া পর্যন্ত 100 বার নোটিফিকেশন পাঠাব।
এছাড়া, আমাদের সিস্টেম স্বয়ংক্রিয়ভাবে রিকোয়েস্ট হেডারে "Pay2-House-Signature" প্যারামিটারসহ একটি ইউনিক টোকেন যুক্ত করে। আপনি এই টোকেন ব্যবহার করে রিকোয়েস্টের সত্যতা যাচাই করতে পারেন।
<?php
// Function for decoding webhook data
function decrypt_webhook($data = NULL, $secret_key = NULL)
{
$decoded_data = base64_decode($data);
if ($decoded_data === FALSE) {
return FALSE;
}
list($iv, $signature, $encrypted_data) = explode('|', $decoded_data);
$calculated_signature = hash_hmac('sha256', $iv . '|' . $encrypted_data, $secret_key);
if (hash_equals($calculated_signature, $signature)) {
$decoded_encrypted_data = openssl_decrypt(
base64_decode($encrypted_data),
'AES-256-CBC',
hex2bin(hash('sha256', $secret_key)),
0,
hex2bin(bin2hex(hex2bin($iv)))
);
if ($decoded_encrypted_data !== FALSE) {
return $decoded_encrypted_data;
}
}
return FALSE;
}
// Retrieving the webhook request body and decoding the JSON
$payload_body = file_get_contents('php://input');
$payload_decode = json_decode($payload_body, TRUE);
// Checking for the presence of a signature in the request header
if ( ! empty($_SERVER['HTTP_PAY2_HOUSE_SIGNATURE'])) {
// Decoding webhook data and outputting the decoded data
$decrypt_webhook = decrypt_webhook($_SERVER['HTTP_PAY2_HOUSE_SIGNATURE'], 'YOUR_API_KEY');
if ($decrypt_webhook !== FALSE) {
$webhook_decode = json_decode($decrypt_webhook, TRUE);
}
}
// Example print of $payload_decode and $webhook_decode
// Array
// (
// [invoice_number] => IN4063112032
// [external_number] => test
// [amount] => 10
// [handling_fee] => 0
// [currency_code] => EUR
// [description] => Test Payment for Pay2.House
// [status] => paid
// )
// Setting HTTP status 200 and terminating the script with the response text "OK"
http_response_code(200);
exit('OK');
?>
সম্ভাব্য ত্রুটি
API ব্যবহার করার সময় দেখা দিতে পারে এমন কিছু সম্ভাব্য ত্রুটি নিচে দেওয়া হলো।
| ত্রুটি কোড | ত্রুটির বিবরণ |
|---|---|
| INVALID_TOKEN | সিগনেচার টোকেন অবৈধ বা অনুপস্থিত। |
| INVALID_API_KEY | API কী অবৈধ বা অনুপস্থিত। |
| API_KEY_NOT_FOUND | নির্দিষ্ট API কী পাওয়া যায়নি। |
| INACTIVE_API_KEY | প্রদত্ত API কী সক্রিয় নয়। |
| SIGNATURE_DECODING_FAILED | সিগনেচার ডিকোড করার সময় ত্রুটি। |
| INVALID_SIGNATURE_DATA | সিগনেচার ডেটা অবৈধ। |
| EXPIRED_SIGNATURE | সিগনেচারের মেয়াদ শেষ হয়েছে। |
| MISMATCHED_SIGNATURE_ISSUER | Key ID অবৈধ বা অনুপস্থিত। |
| INVALID_MERCHANT_ID | Merchant ID অবৈধ বা অনুপস্থিত। |
| MERCHANT_ID_NOT_FOUND | Merchant ID পাওয়া যায়নি। |
| ACCESS_DENIED_MERCHANT | নির্দিষ্ট Merchant ID-তে অ্যাক্সেস নিষিদ্ধ। |
| INVALID_EXTERNAL_NUMBER | বাহ্যিক পেমেন্ট নম্বর অবৈধ বা অনুপস্থিত। |
| INVALID_AMOUNT | পরিমাণ অবৈধ। |
| INVALID_CURRENCY_CODE | কারেন্সি কোড অবৈধ। |
| INVALID_DESCRIPTION | পেমেন্টের বিবরণ অবৈধ বা অনুপস্থিত। |
| SIGNATURE_VERIFICATION_FAILED | ত্রুটির কারণে সিগনেচার যাচাই ব্যর্থ হয়েছে। |
| INVALID_RETURN_URL | সফল পেমেন্টের পর ফেরত যাওয়ার URL অবৈধ বা অনুপস্থিত। |
| INVALID_CANCEL_URL | পেমেন্ট বাতিলের URL অবৈধ বা অনুপস্থিত। |
| INVALID_PAYER_EMAIL | ক্লায়েন্টের ইমেইল ঠিকানা অবৈধ। |
| INVALID_COMMENT | মন্তব্য অবৈধ বা অনুপস্থিত। |
| INSUFFICIENT_SENDER_BALANCE | প্রেরকের অ্যাকাউন্টে অপর্যাপ্ত ব্যালেন্স। |
| AMOUNT_EXCEEDS_SENDER_BALANCE | ট্রান্সফারের পরিমাণ প্রেরকের অ্যাকাউন্টের উপলব্ধ ব্যালেন্স ছাড়িয়ে গেছে। |
| SENDER_ACCOUNT_NOT_FOUND | প্রেরকের অ্যাকাউন্ট পাওয়া যায়নি। |
| INVALID_SENDER_ACCOUNT | প্রেরকের অ্যাকাউন্ট অবৈধ। |
| RECIPIENT_ACCOUNT_NOT_FOUND | প্রাপকের অ্যাকাউন্ট পাওয়া যায়নি। |
| INVALID_RECIPIENT_ACCOUNT | প্রাপকের অ্যাকাউন্ট অবৈধ। |
| DIFFERENT_CURRENCY_CODES | প্রেরক এবং প্রাপকের অ্যাকাউন্টের কারেন্সি ভিন্ন। |
| INVALID_TRANSFER | প্রেরক এবং প্রাপকের অ্যাকাউন্ট একই হতে পারে না। |
| PROVIDER_NOT_FOUND | পেমেন্ট মেথড পাওয়া যায়নি বা সক্রিয় নয়। |
| PROVIDER_OPTION_NOT_FOUND | পেমেন্ট মেথড অপশন পাওয়া যায়নি। |
| AMOUNT_BELOW_MINIMUM | ট্রান্সফারের পরিমাণ ন্যূনতম সীমার নিচে। |
| AMOUNT_EXCEEDS_MAXIMUM | ট্রান্সফারের পরিমাণ সর্বোচ্চ সীমা ছাড়িয়েছে। |
| INSUFFICIENT_BALANCE_AFTER_FEE | ফি হিসাব করার পরে প্রেরকের অ্যাকাউন্টে অপর্যাপ্ত ব্যালেন্স। |
| INVALID_NAME_WALLET | অ্যাকাউন্টের নাম অবৈধ বা অনুপস্থিত। |
| INVALID_PAYMENT_METHOD | পেমেন্ট মেথড অবৈধ। |
| PAY2_HOUSE_NOT_ENABLED | Pay2.House পেমেন্ট মেথড আপনার মার্চেন্টের জন্য উপলব্ধ নয়। |
| USDT_TRC20_NOT_ENABLED | Tether USDT পেমেন্ট মেথড আপনার মার্চেন্টের জন্য উপলব্ধ নয়। |
| CARDS_NOT_ENABLED | CARDS পেমেন্ট মেথড আপনার মার্চেন্টের জন্য উপলব্ধ নয়। |
| TRON_ACCOUNT_CREATION_ERROR | TRON অ্যাকাউন্ট তৈরি করার সময় ত্রুটি। |
| INVALID_INVOICE_NUMBER | অ্যাকাউন্ট নম্বরের ফরম্যাট অবৈধ। |
| INVOICE_NOT_FOUND | অ্যাকাউন্ট পাওয়া যায়নি। |
| MAX_WALLETS_REACHED | আপনার অ্যাকাউন্টের জন্য অনুমোদিত সর্বোচ্চ অ্যাকাউন্ট সংখ্যায় পৌঁছেছে। |
| MERCHANT_NOT_APPROVED | মার্চেন্ট পেমেন্ট প্রসেসিংয়ের জন্য অনুমোদিত নয়। |
| INVALID_DEADLINE_SECONDS | পেমেন্ট মেয়াদ শেষ হওয়ার সময়সীমার মান অবৈধ। |
| USER_DELETED | ব্যবহারকারী ডিলিট করা হয়েছে। |
| USER_BANNED | ব্যবহারকারী ব্লক করা হয়েছে। |
| USER_TEMPORARILY_BLOCKED | ব্যবহারকারী সাময়িকভাবে ব্লক করা হয়েছে। |
| USER_NOT_FOUND | ব্যবহারকারী পাওয়া যায়নি। |
| INVALID_PER_PAGE | "per_page" প্যারামিটারের মান অবৈধ। মান 10 থেকে 100-এর মধ্যে হতে হবে। |
| INVALID_PAGE | "page" প্যারামিটারের মান অবৈধ। মান ধনাত্মক পূর্ণসংখ্যা হতে হবে। |
| INVALID_STATUS | স্ট্যাটাস অবৈধ। |
| INSUFFICIENT_BALANCE | এই অপারেশন সম্পাদনের জন্য অ্যাকাউন্টে পর্যাপ্ত অর্থ নেই। |
| INVALID_FIRST_NAME | প্রথম নাম ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_LAST_NAME | শেষ নাম ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_SUR_NAME | মধ্য নাম ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_ADDRESS | বাসস্থানের ঠিকানা ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_CITY | বসবাসের শহর ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_REGION | বসবাসের অঞ্চল ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_POST_CODE | পোস্টাল কোড ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_EMAIL | ইমেইল ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_DATE_BIRTH | জন্মতারিখ ভুলভাবে উল্লেখ করা হয়েছে। |
| FORBIDDEN_COUNTRY | দেশটি ব্যবহারের জন্য অনুমোদিত নয়। |
| INVALID_PHONE_NUMBER | ফোন নম্বর ভুলভাবে উল্লেখ করা হয়েছে। |
| INVALID_COUNTRY_CODE | দেশের কোড ভুলভাবে উল্লেখ করা হয়েছে। |
| VERIFICATION_REQUIRED | অপারেশন সম্পাদনের জন্য অ্যাকাউন্ট ভেরিফিকেশন প্রয়োজন। |
| CARD_ISSUANCE_FAILED | কার্ড ইস্যু করা যায়নি। |
| INVALID_BIN_NUMBER | BIN নম্বর অবৈধ বা অনুপস্থিত। |
| ACCOUNT_NOT_FOUND | নির্দিষ্ট অ্যাকাউন্ট পাওয়া যায়নি। |
| INVALID_ACCOUNT_NUMBER | অ্যাকাউন্ট নম্বর অবৈধ বা অনুপস্থিত। |
| CARD_NOT_FOUND | কার্ড পাওয়া যায়নি। |
| CARD_BLOCKED | কার্ড ব্লক করা হয়েছে। |
| CARD_CLOSED | কার্ড বন্ধ করা হয়েছে। |
| CARD_AWAITING | কার্ড ইস্যু হওয়ার প্রক্রিয়ায় আছে। |
| CARD_REFUND_FAILED | কার্ড থেকে অর্থ ফেরত ব্যর্থ হয়েছে। |
| CARD_BLOCKING_FAILED | অভ্যন্তরীণ সিস্টেম ত্রুটির কারণে কার্ড ব্লক করা ব্যর্থ হয়েছে। |
| CARD_DETAILS_FAILED | কার্ডের বিস্তারিত তথ্য পাওয়া যায়নি। |
| CARD_BALANCE_NOT_ZERO | কার্ডে অর্থ অবশিষ্ট থাকায় কার্ড বন্ধ করা যাবে না। |
| CARD_CLOSING_FAILED | অভ্যন্তরীণ সিস্টেম ত্রুটির কারণে কার্ড বন্ধ করা ব্যর্থ হয়েছে। |
| REFUND_NOT_ALLOWED | অর্থ ফেরত অনুমোদিত নয়। |
| CARD_HAS_NO_BALANCE | কার্ডে কোনো ব্যালেন্স নেই। |
| CARD_REFUND_MIN_AMOUNT | ন্যূনতম রিফান্ড পরিমাণে পৌঁছানো হয়নি। |
| CARD_REFUND_MAX_AMOUNT | রিফান্ড পরিমাণ সর্বোচ্চ সীমা ছাড়িয়েছে। |
| CARD_REFUND_COST_GREATER | ফি কাটার পরে রিফান্ড পরিমাণ ন্যূনতম অনুমোদিত রিফান্ড পরিমাণের চেয়ে কম। |
| CARD_REFUND_AMOUNT_ZERO | রিফান্ড পরিমাণ শূন্যের বেশি হতে হবে। |
| ACCOUNT_DELETED | নির্দিষ্ট অ্যাকাউন্ট ডিলিট করা হয়েছে। |
| CARD_MINIMUM_AMOUNT | টপ-আপ পরিমাণ ন্যূনতম পরিমাণের বেশি হতে হবে। |
| CARD_MAXIMUM_AMOUNT | টপ-আপ পরিমাণ সর্বোচ্চ অনুমোদিত পরিমাণ ছাড়িয়েছে। |
| CARD_BALANCE_REFRESH_FAILED | কার্ড ব্যালেন্স আপডেট করা যায়নি। |
| CARD_HISTORY_REFRESH_FAILED | কার্ড অপারেশন ইতিহাস আপডেট করা যায়নি। |
| SENDER_ACCOUNT_DELETED | প্রেরকের অ্যাকাউন্ট ডিলিট বা নিষ্ক্রিয় হওয়ায় অর্থ ট্রান্সফার করা সম্ভব নয়। |
| RECIPIENT_ACCOUNT_DELETED | প্রাপকের অ্যাকাউন্ট ডিলিট বা নিষ্ক্রিয় হওয়ায় অর্থ ট্রান্সফার করা সম্ভব নয়। |
| TRANSACTION_NOT_PROCESSED | ত্রুটি বা অভ্যন্তরীণ সীমাবদ্ধতার কারণে ট্রানজ্যাকশন প্রসেস করা হয়নি। |
| TRANSACTION_NOT_FOUND | সিস্টেমে ট্রানজ্যাকশন পাওয়া যায়নি। |
| INVALID_TRANSACTION_NUMBER | ট্রানজ্যাকশন নম্বর অবৈধ বা অনুপস্থিত। |
| INVALID_DATE_RANGE | ভুল তারিখ পরিসর উল্লেখ করা হয়েছে। ফরম্যাট এবং যুক্তি পরীক্ষা করুন (শুরুর তারিখ শেষ তারিখের পরে হতে পারে না)। |