Prepaid Coupons(Epin)

Manage Coupons

Active Coupons

GET ‎https://<domain>/<api prefix>/<version>/user/get/active-epin/

This API endpoint will return a list of active coupons.

Query Parameters

NameTypeDescription

wallet

string

eg: wallet1, wallet2, ....

code

string

coupon code

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

​HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {
        "results": [
            {
                "id": <coupon_id>,
                "pin": "<coupon_pin>",
                "charge": "<coupon_charge>",
                "balance": "<balance>",
                "reusable": <reusable_status>,
                "transferable": <transferable_status>,
                "wallet_type": "<wallet_type>",
                "currecy_data": {
                    "decimals": <decimals>,
                    "symbol_placement": "<symbol_placement>",
                    "symbol": "<currency_symbol>",
                    "rate": <currency_multiple_rate>
                },
                "currency_code": "<currency_code>"
            },
            ...
        ],
        "count": <list_count>,
        "previous": <previous_page_url>,
        "next": <next_page_url>
    }
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/user/get/active-epin/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {}
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/user/get/active-epin/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Transfer Coupon

POST ‎https://<domain>/<api prefix>/<version>/user/transfer/epin/

This API endpoint will transfer a coupon to a user.

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

Request Body

NameTypeDescription

user

string

Username

epin

string

Coupon id

​HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://<domain>/<api prefix>/<version>/user/transfer/epin/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {
    'user': '<username>',
    'epin': '<coupon id>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/user/transfer/epin/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('user' => '<username>','epin' => '<coupon id>'),
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code

Error Type

FIeld

Description

400

Validation Error

user

User is not found.

Field may not be blank.

Self transfer not allowed.

User already has the maximum number of active coupons.

400

Validation Error

epin

Coupon is not found.

Coupon is not transferable.

Invalid coupon.

Share Coupon

POST ‎https://<domain>/<api prefix>/<version>/user/share/epin/

This API endpoint will share an amount from coupon to anonymous user.

Headers

NameTypeDescription

apikey*

string

apikey

Authorization*

string

Bearer access token

Request Body

NameTypeDescription

email*

string

user mail address

epin*

string

coupon id

share_amount*

string

amount to share

​HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://<domain>/<api prefix>/<version>/user/share/epin/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {
    'email': '<user_mail>',
    'epin': '<coupon_id>',
    'share_amount': '<amount>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/user/share/epin/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('email' => '<user_mail>','epin' => '<coupon_id>','share_amount' => '<share_amount>'),
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code

Error Type

FIeld

Description

400

Validation Error

email

This field is required.

This field may not be blank.

Enter a valid email address.

400

Validation Error

epin

This field is required.

This field may not be blank.

Only numeric characters are allowed.

Coupon is not found.

Coupon is not transferable.

400

Validation Error

share_amount

This field is required.

This field may not be blank.

Only numeric characters are allowed.

Insufficient Balance.

Delete Coupon

DELETE ‎https://<domain>/<api prefix>/<version>/user/delete/epin/

This API endpoint will delete a coupon. Use the same endpoint to get refund status without status in query params.

Query Parameters

NameTypeDescription

epin*

string

Coupon id

status

string

1

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

​HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'DELETE',
  'url': 'https://<domain>/<api prefix>/<version>/user/delete/epin/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
    'Cookie': 'store_user=admin_store; sessionid=2ysk6htgc4b3w2f87zvw9cn4v5rxqkws'
  },
  formData: {}

  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/user/delete/epin/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'DELETE',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code

Error Type

FIeld

Description

400

Validation Error

epin

This field is required.

This field may not be blank.

Only numeric characters are allowed.

Coupon is not found.

Generate Coupon

Get Wallet List

GET ‎https://<domain>/<api prefix>/<version>/user/generate/epin/

This API endpoint will return the coupon facility enabled wallet list with data.

Headers

NameTypeDescription

apikey*

string

Apiekey

Authorization*

string

Bearer access token

​HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": [
        {
            "wallet_name": "<wallet_name>",
            "wallet_key": "<wallet>",
            "charges": "<coupon_generate_charge>",
            "ewallet_balance": "<wallet_balance>",
            "active_pins": <active_coupons>,
            "max_active_pins": <maximum_active_coupons>
        },
        ...
    ]
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/user/generate/epin/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {}
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/user/generate/epin/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code

Error Type

Description

401

Request Failed

Coupon facility is disabled, Please contact your administrator.

Create Coupon

POST ‎https://<domain>/<api prefix>/<version>/user/generate/epin/

This API endpoint will create a coupon.

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearer access token

Request Body

NameTypeDescription

wallet_type*

string

wallet key

epin_amount*

string

amount

number_of_pins*

string

number of coupons

transferable*

string

True or False

reusable*

string

True or False

token_field*

string

Mail token

token_checksum_field*

string

token checksum

form_key*

string

form post key

​HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {}
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://<domain>/<api prefix>/<version>/user/generate/epin/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {
    'wallet_type': '<wallet_key>',
    'epin_amount': '<amount>',
    'number_of_pins': '<number_of_coupon>',
    'form_key': '<form_key>',
    'token_checksum_field': '<token_checksum>',
    'token_field': '<token>',
    'transferable': '<True or False>',
    'reusable': '<True or False>'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/user/generate/epin/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('wallet_type' => '<wallet_key>','epin_amount' => '<amount>','number_of_pins' => '<number of coupon>','form_key' => '<form key>','token_checksum_field' => '<token_cheksum>','token_field' => '<token>','transferable' => '<True or False>','reusable' => '<True or False>'),
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Error Responses

Status Code

Error Type

FIeld

Description

400

Validation Error

wallet_type

This field is required.

This field may not be blank.

You don't have sufficient balance to continue with this operation.

400

Validation Error

epin_amount

Invalid or empty Amount.

This field is required.

This field may not be blank.

Please enter an amount between <min> and <max>.

Only integers are allowed.

Ensure this field has no more than 7 characters.

400

Validation Error

number_of_pins

This field is required.

This field may not be blank.

This operation exceeds the maximum number of active Coupons.

Invalid number of Coupon.

Only numeric characters are allowed.

400

Validation Error

transferable

This field is required.

This field may not be blank.

Select True or False

400

Validation Error

reusable

This field is required.

This field may not be blank.

Select True or False

400

Validation Error

token_checksum_field

This field is required.

This field may not be blank.

400

Validation Error

token_field

This field is required.

This field may not be blank.

Token is not matching.

400

Validation Error

form_key

You have another form running, Please reload.

401

Request Failed

Coupon facility is disabled, Please contact your administrator.

Coupon History

GET ‎https://<domain>/<api prefix>/<version>/user/epin/history/

This API endpoint will return the history of used coupons.

Query Parameters

NameTypeDescription

wallet

string

wallet key, eg: wallet1, wallet2, etc

Headers

NameTypeDescription

apikey*

string

Apikey

Authorization*

string

Bearere access token

​HTTP/1.1 200 OK
Content-Type: application/json

Body:
{
    "status_code": 200,
    "errors": {},
    "data": {
        "results": [
            {
                "charge": "<charge>",
                "currecy_data": {
                    "decimals": <decimals>,
                    "symbol_placement": "<symbol_placement>",
                    "symbol": "<symbol>",
                    "rate": <multiple_rate>
                },
                "currency_code": "<currency_code>",
                "pin": "<coupon_pin>",
                "used_on": "<used_date>"
            }
        ],
        "count": <list_count>,
        "previous": <previous_page_url>,
        "next": <next_page_url> 
    }
}

Sample Code

Node

var request = require('request');
var options = {
  'method': 'GET',
  'url': 'https://<domain>/<api prefix>/<version>/user/epin/history/',
  'headers': {
    'apikey': '<apikey>',
    'Authorization': 'Bearer <access token>',
  },
  formData: {}
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

PHP

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://<domain>/<api prefix>/<version>/user/epin/history/',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  CURLOPT_POSTFIELDS => array(),
  CURLOPT_HTTPHEADER => array(
    'apikey: <apikey>',
    'Authorization: Bearer <access token>',
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Last updated