Hosted Checkout
Hosted Checkout Integration
Here, you will redirect the customer to Paystation Hosted page to display the payment channels and Customer will be redirected after completing payment to your website with payment response.
Payment Process Environment
We have both Live environment and Test/Sandbox environment in Paystation. You just need to use proper URL and Store ID's to process payments. We provide separate store ID for live and test
Live Environment
All the transaction made using this environment are counted as real transaction, URL starts with https://api.paystation.com.bd
Grant Token
API NAME : GRANT TOKEN
API URL : https://api.paystation.com.bd/grant-token
METHOD : POST
Request Data
Param_Name | Data_Type | Description |
---|---|---|
Request Header | ||
merchantId |
string (30) | Mandatory - Your Merchant ID will be provided by PayStation. |
password |
string (30) | Mandatory - Your Password will be provided by PayStation. |
Request Response
Param_Name | Description |
---|---|
status_code |
status_code "200" indicates successfully token generated. All codes except "200" are for failed. |
status |
success/failed |
message |
Details message |
token |
If success, you will get token here. |
Sample Request & Response
1.PHP CURL SCRIPT :
$header=array(
'merchantId:xxxxxx',
'password:xxxxxx'
);
$url = curl_init("https://api.paystation.com.bd/grant-token");
curl_setopt($url,CURLOPT_HTTPHEADER, $header);
curl_setopt($url,CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($url,CURLOPT_RETURNTRANSFER, true);
curl_setopt($url,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($url,CURLOPT_FOLLOWLOCATION, 1);
$tokenData=curl_exec($url);
curl_close($url);
2. SUCCESS RESPONSE (json format):
{
"status_code":"200",
"status":"success",
"message":"Token generated successfully.",
"token":"lGxWsAwfLa1oHuTAWQOhubunmZmmpVQltKJJoznC7ntrO58CeJOnDspKd1xT"
}
3. FAILED RESPONSE (json format):
{
"status_code":"1001",
"status":"failed",
"message":"Invalid Credential."
}
Create Payment
API NAME : PAYMENT CREATE
API URL : https://api.paystation.com.bd/create-payment
METHOD : POST
Request Data
Param_Name | Data_Type | Description | |||
---|---|---|---|---|---|
Request Header | |||||
token |
Mandatory Generated token using grant token API. | ||||
Request Body | |||||
invoice_number |
string (20) | Mandatory - Unique Invoice ID to identify your order in both your end and Paystation. | |||
currency |
string (20) | Mandatory - Transaction Currency i.e BDT. | |||
payment_amount |
decimal (10,2) | Mandatory - Total Amount of your order to be paid. i.e 1250.00 | |||
pay_with_charge |
integer (1) |
- Value 1 (Customer will bear the charge) - Value 0 (Merchant will bear the charge) |
|||
reference |
string (20) | - Extra Reference number to identify your order in your end. | |||
cust_name |
string (200) | Mandatory - Your customer name to address the customer in payment receipt email | |||
cust_phone |
string (15) | Mandatory - The phone/mobile number of your customer to contact if any issue arises | |||
cust_email |
string (50) | Mandatory - Valid email address of your customer to send payment receipt from Paystation end | |||
cust_address |
string (255) | Address of your customer. Not mandatory but useful if provided | |||
callback_url |
string (200) | Mandatory - Callback URL of your website. After success/failed we will send you the response via your callback URL. | |||
checkout_items |
~ ~ ~ | Your customer order's checkout items/cart data you need to send the checkout items in json_encode format. | |||
opt_a |
string (25) | - Optional parameter to pass your extra information. | |||
opt_b |
string (25) | - Optional parameter to pass your extra information. | |||
opt_c |
string (25) | - Optional parameter to pass your extra information. |
Request Response
Param_Name | Description |
---|---|
status_code |
status_code "200" indicates successfully payment link generated. All codes except "200" are for failed. |
status |
success/failed |
message |
Details message |
payment_url |
If success, you will get payment_url here. |
Sample Request & Response
1.PHP CURL REQUEST :
$header=array(
'token:lGxWsAwfLa1oHuTAWQOhubunmZmmpVQltKJJoznC7ntrO58CeJOnDspKd1xT'
);
$body=array(
'invoice_number' => "2021252525",
'currency' => "BDT",
'payment_amount' => "120",
'reference' => "102030",
'cust_name' => "Jhon Max",
'cust_phone' => "01700000001",
'cust_email' => "max@gmail.com",
'cust_address' => "Dhaka, Bangladesh",
'callback_url' => "http://www.yourdomain.com/success.php",
'checkout_items' => "orderItems"
);
$url = curl_init("https://api.paystation.com.bd/create-payment");
curl_setopt($url,CURLOPT_HTTPHEADER, $header);
curl_setopt($url,CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($url,CURLOPT_RETURNTRANSFER, true);
curl_setopt($url,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($url,CURLOPT_POSTFIELDS, $body);
curl_setopt($url,CURLOPT_FOLLOWLOCATION, 1);
$responseData=curl_exec($url);
curl_close($url);
2. SUCCESS RESPONSE (json format):
{
"status_code":"200",
"status":"success",
"message":"Payment Created Successfully.",
"payment_url":"https://api.paystation.com.bd/checkout/121301028928655/2jWsXVEsi1waq33QEbN0MxZjm7axBnZEIkZmeHoQFdLb7tz57h"
}
3. FAILED RESPONSE (json format):
{
"status_code":"2001",
"status":"failed",
"message":"Invalid Token."
}
Payment Notification (callback)
After completing the payment, we will send the payment information to the callback URL that you provided in the create payment API. The payment details will be sent via the URL parameters in the callback request.
Example : http://yourdomain.com/success.php?status=Successful&invoice_number=2021252525&trx_id=10XB9900
URL Parameters
Param Name | Description |
---|---|
status |
Payment Status: Successful/Failed/Canceled |
invoice_number |
Your unique invoice_number that you have been sent in payment create API. |
trx_id |
Payment Transaction ID (you will get trx_id for success payment only) |
Retrive Transaction
API NAME : TRANSACTION RETRIVE
API URL : https://api.paystation.com.bd/retrive-transaction
METHOD : POST
Request Data
Param Name | Data Type | Description | |||
---|---|---|---|---|---|
Request Header Parameter | |||||
token |
Mandatory Generated token using grant token API. | ||||
Request Body | |||||
invoice_number |
Mandatory - Your unique invoice_number that you have been sent in payment create API. | ||||
trx_id |
Payment Transaction ID (the value could be null if you get null value in your callback url) |
Request Response
Param_Name | Description |
---|---|
status_code |
status_code "200" indicates your request reached to us successfully. |
status |
success/failed (request status) |
message |
Details message |
data (If status_code is "200") |
|
invoice_number |
Your unique invoice_number that you have been sent in payment create API. |
trx_status |
Transaction status (Success/Failed/Refund) - You must be confirmed the payment is success/failed/canceled by this parameter. |
trx_id |
Payment Transaction ID |
payment_amount |
Payment Amount (1200.00) |
order_date_time |
Transaction Time (2022-12-25 10:25:30) |
payer_mobile_no |
Payer Mobile Number |
payment_method |
bKash/Nagad/Rocket/Upay/Mastercard/Visa |
reference |
Your extra reference number that you have sent in payment create API |
checkout_items |
checkout_items that you have sent in payment create API |
Sample Request & Response
1.PHP CURL REQUEST :
$header=array(
'token:lGxWsAwfLa1oHuTAWQOhubunmZmmpVQltKJJoznC7ntrO58CeJOnDspKd1xT'
);
$body=array(
'invoice_number' => "2021252525",
'trx_id' => "10XB9900"
);
$url = curl_init("https://api.paystation.com.bd/retrive-transaction");
curl_setopt($url,CURLOPT_HTTPHEADER, $header);
curl_setopt($url,CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($url,CURLOPT_RETURNTRANSFER, true);
curl_setopt($url,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($url,CURLOPT_POSTFIELDS, $body);
curl_setopt($url,CURLOPT_FOLLOWLOCATION, 1);
$responseData=curl_exec($url);
curl_close($url);
2. SUCCESS RESPONSE (json format):
{
"status_code":"200",
"status":"success",
"message":"Transaction found.",
"data":
{
"invoice_number":"2021252525",
"trx_status":"Success",
"trx_id":"10XB9900",
"payment_amount":"120",
"order_date_time":"2022-12-25 10:25:30",
"payer_mobile_no":"01700000001",
"payment_method":"bkash",
"reference":"102030",
"checkout_items":"orderItems",
}
}
3. SUCCESS RESPONSE (BUT TRANSACTION FAILED):
{
"status_code": "200",
"status": "success",
"message": "Transaction found",
"data": {
"invoice_number": "2021252525",
"trx_status": "Failed",
"trx_id": "",
"payment_amount": "120.00",
"order_date_time": "2023-01-14 11:04:42",
"payer_mobile_no": "",
"payment_method": "",
"reference": "102030",
"checkout_items": "orderItems"
}
}
3. FAILED RESPONSE (json format):
{
"status_code":"2001",
"status":"failed",
"message":"Invalid Token."
}