WestinPay API interface screenshot<

API Documentation

Introduction

This section describes the WestinPay payment gateway API.

WestinPay API is easy to implement in your business software. Our API is well formatted URLs, accepts cURL requests, returns JSON responses.

You can use the API in test mode, which does not affect your live data. The API key is used to authenticate the request and determines if the request is a valid payment or not. For test mode just use the sandbox URL and in case of live mode use the live URL from the section Initiate Payment.

Get The API Key

This section describes how you can get your API key.

Login to your WestinPay merchant account. If you don't have any? Click Here

Next step is to find the API Key menu in your dashboard sidebar. Click the menu.

The API keys can be found there which is Public key and Secret key. Use these keys to initiate the API request. Every time you can generate a new API key by clicking the Generate API Key button. Remember do not share these keys with anyone.

Initiate Payment

This section describes the process of initiating the payment.

To initiate the payment, follow the example code and be careful with the parameters. You will need to make a request with the following API endpoints.

Live End Point: https://westinpay.com/payment/initiate

Test End Point: https://westinpay.com/sandbox/payment/initiate

Test Mode Mail: test_mode@mail.com

Test Mode Verification Code: 222666

Request Method: POST

Request Parameters

Param Name Param Type Description
public_key string (50) Required: Your Public API key
identifier string (20) Required: Identifier is basically for identifying payment at your end
currency string (4) Required: Currency Code, Must be in Upper Case. e.g. USD, EUR
amount decimal Required: Payment amount.
details string (100) Required: Details of your payment or transaction.
ipn_url string Required: The URL of instant payment notification.
success_url string Required: Payment success redirect URL.
cancel_url string Required: Payment cancel redirect URL.
site_logo string/url Required: Your business site logo.
checkout_theme string Optional: Checkout form theme dark/light. Default theme is light.
customer_name string (30) Required: Customer name.
customer_email string (30) Required: Customer valid email.

Example PHP Code

<?php $parameters = [ 'identifier' => 'DFU80XZIKS', 'currency' => 'USD', 'amount' => 100.00, 'details' => 'Purchase T-shirt', 'ipn_url' => 'http://example.com/ipn_url.php', 'cancel_url' => 'http://example.com/cancel_url.php', 'success_url' => 'http://example.com/success_url.php', 'public_key' => 'your_public_key', 'site_logo' => 'https://westinpay.com/assets/images/logoIcon/logo.png', 'checkout_theme' => 'dark', 'customer_name' => 'John Doe', 'customer_email' => 'john@mail.com', ]; // Live end point $url = "https://westinpay.com/payment/initiate"; // Test end point $url = "https://westinpay.com/sandbox/payment/initiate"; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); // $result contains the response back. ?> Copy

Example Responses


Error Response

{ "error": "true", "message": "Invalid API key" } Copy

Success Response

{ "success": "ok", "message": "Payment Initiated. Redirect to URL.", "url":"http://example.com/initiate/payment/checkout?payment_id=eJSAASDxdrt4DASDASVNASJA7893232432cvmdsamnvASF" } Copy

Validate The Payment and IPN

This section describes the process to get your instant payment notification.

To initiate the payment follow the example code and be careful with the parameters. You will need to make a request with these following API end points.

End Point: Your business application IPN URL.

Request Method: POST

You will get the following parameters below.

Param Name Description
status Payment success status.
identifier Identifier is basically for identify payment at your end.
signature A hash signature to verify your payment at your end.
data Data contains some basic information with charges, amount, currency, payment transaction id etc.
<?php //Receive the response parameter $status = $_POST['status']; $signature = $_POST['signature']; $identifier = $_POST['identifier']; $data = $_POST['data']; // Generate your signature $customKey = $data['amount'] . $identifier; $secret = 'YOUR_SECRET_KEY'; $mySignature = strtoupper(hash_hmac('sha256', $customKey, $secret)); $myIdentifier = 'YOUR_GIVEN_IDENTIFIER'; if($status == "success" && $signature == $mySignature && $identifier == $myIdentifier) { // Your operation logic } ?> Copy

Sample HTML Form Codes

You can accept payments using the sample HTML codes below.

Codes and parameters:

Param Name Description
status Payment success status.
identifier Identifier is basically for identify payment at your end.
public_key Your WestinPay merchant public key.
success_url URL to redirect if payment is successful.
cancel_url URL to redirect if payment fails.
amount The payment amount you will receive; if you want, you can call the valid parameter on your site.
identifier Payment ID, random value can be defined. It is used to make it easier for you to control.
<form action="https://westinpay.com/payment/initiate" method="post"> <!-- For manual entry of amounts and other variables, you can use "text" instead of "hidden" --> <input type="hidden" name="identifier" value="DFU80XZIKS"> <input type="hidden" name="currency" value="USD"> <input type="hidden" name="amount" value="1.00"> <input type="hidden" name="details" value="Pay with WestinPay"> <!-- Set the return URL for your domain here --> <input type="hidden" name="ipn_url" value="http://yourdomain.com/ipn_url.php"> <input type="hidden" name="cancel_url" value="http://yourdomain.com/cancel_url.php"> <input type="hidden" name="success_url" value="http://yourdomain.com/success_url.php"> <input type="hidden" name="public_key" value="Your WestinPay Merchant Public Key"> <input type="hidden" name="site_logo" value="https://westinpay.com/assets/images/logoIcon/logo.png"> <input type="hidden" name="checkout_theme" value="dark"> <input type="hidden" name="customer_name" value="John Doe"> <input type="hidden" name="customer_email" value="john@mail.com"> <!-- Add more hidden fields as needed --> <input type="submit" value="Submit Payment"> </form> Copy

Supported Currencies

This section describes the currencies supported by WestinPay


WestinPay allows to make transactions with below currencies. Any new currency may update in future.

Currency Name Currency Symbol Currency Code
United States Dollar $ USD
GBP £ GBP
Euro EUR
Canadian dollar CAD CAD
Swiss franc CHF CHF
Australian dollar A$ AUD
Hong Kong dollar HK$ HKD
Indian rupee INR
New Zealand dollar NZ$ NZD
Russian ruble RUB
Romanian leu L RON
Bulgarian lev BGN BGN
Swedish krona kr SEK
Turkish lira TRY
Brazilian real R$ BRL
Polish Zloty PLN
South Africa ZAR R ZAR
Bitcoin BTC
ETHEREUM Ξ ETH
DOGECOİN Ð DOGE
AZN MANAT AZN
TRX TRX TRX
USDT.TRC20 USDT.TRC20
SOLONA SOL SOL
LTC Ł LTC
Kazakhstani Tenge KZT
Ukrainian Hryvnia UAH
United Arab Emirates Dirham د.إ AED
Hungarian Forint Ft HUF
Georgian Lari GEL