Products

EZYREC + Plugins

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

Plugins

PHP

Download

Params required for phpcore-ezyway-1.1

Params Type Description
firstName string First Name eg: Aaila
lastName string Last Name eg: Kaira
postalCode string Billing Postal Code eg: 50460
shippingState string Shipping State eg: negeri
cardnum int 4918914107195005
ccv int Security Pin eg: 123
exp_mm int Expiry Month eg: 09
exp_yy int Expiry Year eg: 2022
emailid string Email address
amount int Total amount of the checkout
ordrid int Order ID

wordpress - Download and Installation steps

Download

Installation Steps

1. - Go to wp-admin

2. - Plugins -> Add Plugin -> Upload Plugin 'ezyway-mobiversa' -> Install Now -> Activate Plugin

OR. --- Or unzip ezyway-mobiversa.zip file and paste on 'wp-content/plugins' go to Wp-admin -> Plugins -> Installed Plugins -> 'Ezyway Mobiversa' click Activate.

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Add this [ezyway_mobiversa]-Shortcode in any page or post

For PHP templates copy the following anyone and paste it

- echo do_shortcode('[ezyway_mobiversa]'); - ezyway_mobiversa_shortcode();

WooCommerce - Download and Installation steps

Download

Installation Steps

1. - Go to wp-admin

2. - Plugins -> Add Plugin -> Upload Plugin 'Mobiversa Woocommerce payment gateway 2.0' -> Install Now -> Activate Plugin

OR. --- Or unzip ezyway-mobiversa.zip file and paste on 'wp-content/plugins' go to Wp-admin -> Plugins -> Installed Plugins -> 'Mobiversa Woocommerce payment' click Activate.

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Mobiversa is one of the fastest growing fintech companies in Malaysia. EZYWAY by Mobiversa now also offers a plugin for Prestashop. We comply with the highest security standards with a PCI DSS level 1 certification. Now you can track your sales and grow your business online with EZYWAY by Mobiversa.

Prestashop

Download

https://addons.prestashop.com/en/payment-card-wallet/41370-ezyway-mobiversa.html

Installation Steps

- Go to Prestashop admin panel

- Improve -> Modules -> Modules & Services

- Selection -> Upload a module 'After loadking it will automatically install

--- Or unzip module and paste on 'prestashop/module' then install it by admin

Configuration

- Choose Payment Mode

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

Installation Steps

- Go to OpenCart admin panel

- Extensions -> Installer -> Upload

- After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

- Choose Payment Mode

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

If you face any issue on installation then you can install by manually.

Zencart

Download

Installation Steps

- Go to Zencart admin panel

- Extensions -> Installer -> Upload

Configuration

- Choose Payment Mode

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

If you face any issue on installation then you can install by manually.

  1. Introduction

This document is intended to explain the Infrastructure Detailed Design for the features available in the EZYWAY SDK (Library) and the implementation / integration guide for iOS application. It gives explanation of infrastructure and related components in the Functional to the extent that the infrastructure design is sufficiently complete to be implemented.

  1. Feature / API’s available

Following are the features available in EZYWAY SDK:

Sale Using 3d Secure pin from a web link.

  1. EZYWAY SDK

Please include the EZYWAY SDK as framework in your iOS application.

EZYWAY.framework

 

  1. Integration

Drag and drop EZYWAY framework into iOS project. Select destination copy if needed.

Project -> Settings -> Genetral -> Remove framework from linked framework -> Add in Embedded Binaries (Will Auto add to linked framework).

 

  1. SDK SETUP

When the 3d secure function is completed in SDK side the result will be given to the main app (you can get result in JSON response).

Require:

XCODE

Deployment Target version 9.0

Required testing in Real device

  1. Sale Request

Pre-requisite

Strings MobileNo, Email, Amount(Accepts only 2 decimals), OrderID,Apikey,UserId,Carddetails,URL, latitude, longitude are the mandatory fields in JSONRequest.

Method to Initialize EZYWAY:

-(void)IniliazeEZYWAYPaymentDetailswithIdentity :(NSString *)passportNo andContanctName :(NSString *)contactName andMobileNumber :(NSString *)mobileNum andCountry:(NSString *)country andCity :(NSString *)city andStreet :(NSString *)street andPostalCode :(NSString *)postalCode andAmount :(NSString *)TotalAmount andIPAddress :(NSString *)ip andLatitude :(NSString *)lat andLongitude :(NSString *)log andExpectedDate :(NSString *)expectedDate andOrderId :(NSString *)orderID andNameOnCard :(NSString *)Name andInVOice :(NSString *)invoice andState :(NSString *)state andCardDetails :(NSString *)cardNumber andCvv :(NSString *)cvv andCardExpYYMM :(NSString *)expiryDate andEmailId :(NSString *)email andUserName :(NSString *)userID andapiKey :(NSString *)APIKEY andOrderDescription :(NSString *)Description andURL :(NSString *)Url and3dSecureView :(CGRect)framewithCompletionHandler:(completionHandler)responceData;

Note : For testing send URL parameter As SandBox_URL and For Live_URL

While calling sale_req function mobiApiKey, loginId, cardNumber, cvvNumber, expiryMonth, expirYear is mandatory.

You need to form a JSONObject request.

Refer sample APP(EZYWAYSAM) for sending request.

After forming the request, before calling sale_req add other Mandatory fields mobiApiKey, loginId, cardNumber, cvvNumber, expiryMonth, expirYear all the fields in “string” format.

Now, everything is done before calling sale_req check the following parameters are validated correctly to avoid payment errors.

Validation before sending to the sale_req function as follows:

The cardNumber as in the credit / debit card.

cvvNumber as in the card.

expiryMonth should be 2 digit, For

e.g.

“09” (Accepted) ✔

“Sep” (not Accepted) ✘

“September” (not Accepted) ✘

expirYear should be last 2 digit of the year. For e.g.

If the year is 2023:

“23”(Accepted) ✔

“2023” (Not Accepted) ✘

Here the “requestJON” is the string which is formed.

mobiApiKey and loginId will be provided by Mobiversa while providing the SDK. And card details as shown (check the sample app).

  1. Sale Response The final response of the Sale request will be given to your app using resposeDate

Responce from server if it is Success:- ------------------------------------------

{

responseCode = 0000;

responseData =

{

amount = "99.99";

approveCode = 000068;

batchNo = 2;

cardHolderName = BORRA;

cardNo = "XXXX 5005";

date = "16-Oct-2018";

invoiceId = SomeThing;

latitude = "4.2105";

longitude = "101.9758";

mid = 000006003000823;

orderDesc = "Im Here with EZYWAY";

orderId = 123456789;

rrn = 000000000068;

tc = 77000001001460;

tid = 77000001;

time = "11:39";

tips = "0.00";

trace = 001460;

trxId = 181016101125770000012000000001460;

txnType = "EZYWAY SALE";

};

responseDescription = "EZYWAY Sale Done";

responseMessage = SUCCESSFUL;

}

Responce from server if it is failed:- -------------------------------------

responseCode = 0001;

responseData = { };

responseDescription = "xxxxxx";

responseMessage = FAILURE;

}

Android - Integration

Download Android sdk
  1. Introduction

This document is intended to explain the Infrastructure Detailed Design for the features available in the EZYWAY SDK (Library) and the implementation / integration guide for Android application. It gives explanation of infrastructure and related components in the Functional to the extent that the infrastructure design is sufficiently complete to be implemented.

  1. Feature / API’s available

Following are the features available in EZYWAY SDK:

  • Sale Using 3d Secure pin from a web link.
  1. EZYWAY SDK

Please include the EZYWAY SDK as library in your android application, the library will be in (.aar) format.

  • ezyway_sdk_v1.0.aar
  1. Gradle Build Dependencies

Volley been used for all the internet usages / service calls. AppCompat been used for Alert dialog.

implementation 'com.android.support:appcompat-v7:27.1.1'

implementation 'com.android.support:design:27.1.1'

implementation 'me.neavo:volley:2014.12.09' implementation project(':ezyway_sdk_v1.0')

  1. Manifest Permissions

<uses-permission android:name="android.permission.INTERNET"/>

When the 3d secure function is completed in SDK side the result will be given to the main app (you can get result in any activity of your application).

For example:

If you want to get the transaction result you need to call the following intent-filter action in android manifest:

<intent-filter>

<action android:name="com.mobiversa.ezyway" />

<category android:name="android.intent.category.DEFAULT" />

</intent-filter>

In the given sample app it will be as follows:

 

<activity android:name=".MainActivity">

<intent-filter>

<action android:name="com.mobiversa.ezyway" />

<category android:name="android.intent.category.DEFAULT" />

<action android:name="android.intent.action.MAIN" />

 

<!—-the above line is not needed if it is not the MainActivity-->

<category android:name="android.intent.category.LAUNCHER" />

 

<!—the above line is not needed if it is not the MainActivity-->

</intent-filter>

</activity>

So, based on your requirement you can call the intent-filter for any activity just call the action and category as the above example.

  1. Sale Request

Pre-requisite

  • Strings mobileNo, email, amount, invoiceId, orderDesc, latitude, longitude are the mandatory fields in JSONRequest.
  • While calling sale_req function mobiApiKey, loginId, cardNumber, cvvNumber, expiryMonth, expirYear is mandatory.
  • You need to form a JSONObject request as follows:

Sample Request code snippet: (code as in Sample app)

 

JSONObject requestJSON = null;

try

{

requestJSON = new JSONObject();

requestJSON.put("passportNo", edit_passport.getText().toString());

requestJSON.put("country", edit_country.getText().toString());

String amount = edit_amount.getText().toString();

//AMOUNT SHOULD BE CONVERTED AS BELOW

String amount_to_send = String.format("%012d", Integer.parseInt(amount.replace(".", "")));

requestJSON.put("amount", amount_to_send);

requestJSON.put("city", edit_city.getText().toString());

requestJSON.put("contactName", edit_contactName.getText().toString());

requestJSON.put("postalCode", edit_postalCode.getText().toString());

requestJSON.put("ip", edit_ip.getText().toString());

requestJSON.put("latitude", edit_latitude.getText().toString());

requestJSON.put("longitude", edit_longitude.getText().toString());

requestJSON.put("mobileNo", edit_mobileNo.getText().toString());

requestJSON.put("expectedDate", edit_expectedDate.getText().toString());

requestJSON.put("orderId", edit_orderId.getText().toString());

requestJSON.put("nameOnCard", edit_nameOnCard.getText().toString());

requestJSON.put("street", edit_street.getText().toString());

requestJSON.put("invoiceId", edit_invoiceId.getText().toString());

requestJSON.put("email", edit_email.getText().toString());

requestJSON.put("state", edit_state.getText().toString());

requestJSON.put("orderDesc", edit_orderDesc.getText().toString());

}

catch (JSONException e) {

e.printStackTrace();

}

// Note: mobileNo, email, amount, invoiceId, orderDesc, latitude, longitude is MANDATORY.

// While forming the request the String should be as same as in the above code.

//For eg. The amount field should be “amount” not “AMOUNT” or “_Amount” or any other format.

After forming the request, before calling sale_req add other Mandatory fields mobiApiKey, loginId, cardNumber, cvvNumber, expiryMonth, expirYear all the fields in “string” format.

Now, everything is done before calling sale_req check the following parameters are validated correctly to avoid payment errors.

Validation before sending to the sale_req function as follows:

  • The cardNumber as in the credit / debit card.
  • cvvNumber as in the card.
  • expiryMonth should be 2 digit,

For e.g.

“09” (Accepted) ✔

“Sep” (not Accepted) ✘

“September” (not Accepted) ✘

  • expirYear should be last 2 digit of the year.

For e.g.

If the year is 2023:

“23”(Accepted) ✔

“2023” (Not Accepted)

The final Request code snippet as follows:

SaleRequestService loginService1 = new SaleRequestService(MainActivity.this); loginService1.sale_req(requestJSON, mobiApiKey, loginId, CardNumber, CVVNumber, ExpiryMonth, ExpiryYear);

  • Here the “requestJON” is the string which is formed.
  • mobiApiKey and loginId will be provided by Mobiversa while providing the SDK.
  • And card details as shown above (check the sample app).
  1. Sale Response

The final response of the Sale request will be given to your app using the intent-filter, please ensure that the intent-filter is placed in correct activity that you want to display the response.

The following codes are mandatory to receive the sale response back to the application:

In Android Manifest:

<intent-filter>

<action android:name="com.mobiversa.ezyway" />

<category android:name="android.intent.category.DEFAULT" />

</intent-filter>

Also ensure that the same activity has the below code to fetch the response String from the sdk, which will be used for future reference if you save it in your own Database.

In Activity:

String response_from_sdk; Intent intent = getIntent(); Bundle bundle = intent.getExtras();

if(bundle != null) { response_from_sdk = bundle.getString("response");

Log.e("--ResponseinMainApp--", response_from_sdk);

/*Save and Parse this response anywhere you want*/ Toast.makeText(getApplicationContext(), response_from_sdk, Toast.LENGTH_LONG).show(); }

 

Sample Response:

{

"responseCode": "0000",

"responseMessage": "SUCCESSFUL",

"responseDescription": "EZYWAY Sale Done",

"responseData": {

"trxId": "1809270915428770000012000000001105",

"amount": "1.00",

"tid": "77000001",

"mid": "000006003000823",

"tips": "0.00",

"rrn": "000000000093",

"trace": "001105",

"date": "27-Sep-2018",

"time": "15:16",

"approveCode": "000093",

"cardNo": "XXXX 0007",

"tc": "77000001001105",

"batchNo": "2",

"cardHolderName": "Mobiversa",

"latitude": "3.1414518",

"longitude": "101.6578041",

"txnType": "EZYWAY SALE",

"invoiceId": "0101010",

"orderId": "0192822828",

"orderDesc": "Android Description"

}

}

For More Information please refer the sample app.

 

Plugins ezypod

EZYPOD Download and Installation steps

EZYPOD Download

Params required for EZYPOD

Params Type Description
cardnum int 4918914107195005
ccv int 123
exp_mm int 09
exp_yy int 2022
cardWalletId: int xxxx
amount int xx

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

Plugins

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

Plugins

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

OpenCart 3.0 - Download and Installation steps

Installation Steps

1. Go to opencart admin panel

2. Extensions -> Installer -> Upload

3. After uploaded -> Extensions -> Extensions -> Filter 'Choose Payments' -> Install 'Ezyway Mobiversa'

Configuration

1. Click Edit

2. Choose Payment Mode eg: Sandbox/Live

3. Add Mobiversa API Key ( Get the ApiKey )

4. Add Merchant Login ID ( Get the Login Id )

5. Status Enable

Click on the Save Button to Save the configuration

If you face any issue on installation then you can install it manually

Products

EZYREC+

EZYREC+ API

Integrate with our EZYREC+

A recurring tool to manage your subscription-based business

Date: 20/1/2020

Version: 1.1

Mobi

 

VERSION HISTORY:

 

Ver

Name

Purpose

Released On

1.0

Draft

Draft

21-Jan-2020

1.1

Initial Release

 

24-Jan-2020

 

 

 

 

 

 

 

 

 

 

 

 

SERVICE DESCRIPTION:

 

Service Name

Operation

1.

CREATE_CUST

Create the customer

2.

READ_CUST

Read the customer information

3.

UPDATE_CUST

Update the customer information

4.

CREATE_PLAN

Create the payment plan

5.

READ_PLAN

Read the payment plan

6.

UPDATE_PLAN

Update the payment plan

7

ADD_CARD

Add a card

8.

READ_CARD

Read added card

9.

ADD_SUBSCRIPTION

Add a subscription for the customer

10.

READ_SUBSCRIPTION

Read all subscriptions under the customer

11.

HOLD_SUBSCRIPTION

Hold a subscription

12.

RESUME_SUBSCRIPTION

Resume/Unhold a subscription

13.

READ_INVOICE

Read all the invoices

14.

READ_TRANSACTIONS

Read all the transactions

15.

READ_FORECAST

Read all the upcoming transactions

16.

RETRY_TRANSACTION

Retry a failed transaction

17.

PRE_AUTH_SMS

Send a pre-auth SMS to add card.

 

URL:

 

Environment

URL

1.

Staging

https://ezyrecapi.mobiversa.com/api/recplus

2.

Live

----TO BE SHARED LATER-----

 

 

HEADERS:

 

Name

Description

Type

Mandatory

1.

mobiApiKey

API Key provided by Mobiversa upon successful approval of Merchant application

VARCHAR (100)

2.

username

username provided by Mobiversa upon successful approval of Merchant Application

VARCHAR (100)

  1. CREATE_CUST

REQUEST

{

                service:"CREATE_CUST",

                CustomerId:"K9961402",

                CustomerName:"MOHAMMED NOORUL ILAHI",

                PhoneNumber:"01133570750",

                Email:"mohammed@mobiversa.com",

                Address:"mobiversa sdn bhd, damansara heights, kuala lumpur, malaysia"

}

 

 

Name

Description

Type

Mandatory

1.

Address

Address of the customer.

VARCHAR (100)

X

2.

CustomerId

Customer ID should be the identifier for a customer. It can be anything like NRIC, Passport, Membership ID etc.

VARCHAR (50)

3.

CustomerName

Name of the customer

VARCHAR (50)

4.

Email

Email to which the customer wish to receive receipts from Mobiversa

VARCHAR (50)

5.

State

State which the customer address belongs to

(Refer to Appendix)

INT

X

6.

PostalCode

Postal Code of the customer address belongs to.

VARCHAR (10)

X

7.

Country

Country to which the customer belongs. (Refer to Appendix)

INT

X

8.

PhoneNumber

Phone number to which the customer wish to receive messages from Mobiversa

VARCHAR (50)

9.

Service

Name of the function/Web Service

VARCHAR (20)

 

RESPONSE

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "Customer data inserted successfully",

    "responseData": {

        "Id": 117,

        "CustomerId": "K9961402",

        "CustomerName": "MOHAMMED NOORUL ILAHI",

        "CreatedOn": "2020-01-17T17:25:02.1682018+08:00",

        "Active": "1",

        "PhoneNumber": "01133570750",

        "Email": "mohammed@mobiversa.com",

        "Address": "mobiversa sdn bhd, damansara heights, kuala lumpur, malaysia",

        "State": 0,

        "PostalCode": "",

        "Country": 0

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

Active

Status of the customer.

INT

√ Success

X Failure

4b.

Address

Address of the customer.

VARCHAR (100)

√ Success

X Failure

4c.

Country

Country to which the customer belongs. (Refer to Appendix)

INT

√ Success

X Failure

4d.

CreatedOn

Created time of the customer

DATETIME

√ Success

X Failure

4e.

CustomerId

Customer ID should be the identifier for a customer. It can be anything like NRIC, Passport, Membership ID etc.

VARCHAR (50)

√ Success

X Failure

4f.

CustomerName

Name of the customer

VARCHAR (50)

√ Success

X Failure

4g.

Email

Email to which the customer wish to receive receipts from Mobiversa

VARCHAR (50)

√ Success

X Failure

4h.

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4i.

PhoneNumber

Phone number to which the customer wish to receive messages from Mobiversa

VARCHAR (50)

√ Success

X Failure

4j.

PostalCode

Postal Code of the customer address belongs to.

VARCHAR (10)

√ Success

X Failure

4k.

State

State which the customer address belongs to

(Refer to Appendix)

INT

√ Success

X Failure

 

 

 

 

  1. READ_CUST

REQUEST

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

{

                service:"READ_CUST"

}

 

RESPONSE

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

customerList

List Of customers

ARRAY

√ Success

X Failure

4a.1

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4a.2

CustomerId

Customer ID should be the identifier for a customer. It can be anything like NRIC, Passport, Membership ID etc.

VARCHAR (50)

√ Success

X Failure

4a.3

CustomerName

Name of the customer

VARCHAR (50)

√ Success

X Failure

4a.4

CreatedOn

Created time of the customer

DATETIME

√ Success

X Failure

4a.5

Active

Status of the customer.

INT

√ Success

X Failure

4a.6

PhoneNumber

Phone number to which the customer wish to receive messages from Mobiversa

VARCHAR (50)

√ Success

X Failure

4a.7

Email

Email to which the customer wish to receive receipts from Mobiversa

VARCHAR (50)

√ Success

X Failure

4a.8

SMSSentDate

Pre-Auth SMS sent date.

DATETIME

√ Success

X Failure

4a.9

Address

Address of the customer.

VARCHAR (100)

√ Success

X Failure

4a.10

State

State which the customer address belongs to

(Refer to Appendix)

INT

√ Success

X Failure

4a.11

StateName

Name of state

VARCHAR (50)

√ Success

X Failure

4a.12

PostalCode

Postal Code of the customer address belongs to.

VARCHAR (10)

√ Success

X Failure

4a.13

Country

Country to which the customer belongs. (Refer to Appendix)

INT

√ Success

X Failure

4a.14

CountryName

Name of country

VARCHAR (50)

√ Success

X Failure

 

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "1 CUSTOMER FOUND",

    "responseData": {

        "customerList": [

            {

                "Id": 118,

                "CustomerId": "K9961403",

                "CustomerName": "MOHAMMED NOORUL ILAHI",

                "CreatedOn": "2020-01-17T00:00:00",

                "Active": "1",

                "PhoneNumber": "01133570750",

                "Email": "mohammed@mobiversa.com",

                "SMSSentDate": "0001-01-01T00:00:00",

                "Address": "",

                "State": 0,

                "StateName": "",

                "PostalCode": "",

                "Country": 0,

                "CountryName": ""

            }

        ]

    }

}

 

 

 

 

  1. UPDATE_CUST

REQUEST

{

                service:"UPDATE_CUST",

                Id: 118,

                CustomerId:"K9961403",

                CustomerName:"MOHAMMED NOORUL ILAHI",

                PhoneNumber:"01133570750",

                Email:"mohammed@mobiversa.com",

                Address:"Menara Shell, KL Sentral",

                Status:"1",

}

 

 

Name

Description

Type

Mandatory

1.

Address

Address of the customer.

VARCHAR (100)

X

2.

CustomerId

Customer ID should be the identifier for a customer. It can be anything like NRIC, Passport, Membership ID etc.

VARCHAR (50)

3.

CustomerName

Name of the customer

VARCHAR (50)

4.

Email

Email to which the customer wish to receive receipts from Mobiversa

VARCHAR (50)

5.

State

State which the customer address belongs to

(Refer to Appendix)

INT

X

6.

PostalCode

Postal Code of the customer address belongs to.

VARCHAR (10)

X

7.

Country

Country to which the customer belongs. (Refer to Appendix)

INT

X

8.

PhoneNumber

Phone number to which the customer wish to receive messages from Mobiversa

VARCHAR (50)

9.

Service

Name of the function/Web Service

VARCHAR (20)

10.

Status

1- Active, 0- Inactive

INT

11.

ID

Unique ID to perform CRUD operations in future (received for the CREATE_CUST service response)

INT

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "CUSTOMER DATA UPDATED SUCCESSFULLY",

    "responseData": {

        "Id": 118,

        "CustomerId": "K9961403",

        "CustomerName": "MOHAMMED NOORUL ILAHI",

        "CreatedOn": "2020-01-17T17:53:44.5932018+08:00",

        "Active": "1",

        "PhoneNumber": "01133570750",

        "Email": "mohammed@mobiversa.com",

        "Address": "Menara Shell, KL Sentral",

        "State": 0,

        "PostalCode": "",

        "Country": 0

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

Active

Status of the customer.

INT

√ Success

X Failure

4b.

Address

Address of the customer.

VARCHAR (100)

√ Success

X Failure

4c.

Country

Country to which the customer belongs. (Refer to Appendix)

INT

√ Success

X Failure

4d.

CreatedOn

Created time of the customer

DATETIME

√ Success

X Failure

4e.

CustomerId

Customer ID should be the identifier for a customer. It can be anything like NRIC, Passport, Membership ID etc.

VARCHAR (50)

√ Success

X Failure

4f.

CustomerName

Name of the customer

VARCHAR (50)

√ Success

X Failure

4g.

Email

Email to which the customer wish to receive receipts from Mobiversa

VARCHAR (50)

√ Success

X Failure

4h.

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4i.

PhoneNumber

Phone number to which the customer wish to receive messages from Mobiversa

VARCHAR (50)

√ Success

X Failure

4j.

PostalCode

Postal Code of the customer address belongs to.

VARCHAR (10)

√ Success

X Failure

4k.

State

State which the customer address belongs to

(Refer to Appendix)

INT

√ Success

X Failure

 

 

 

 

  1. CREATE_PLAN

REQUEST

{

                service:"CREATE_PLAN",

                Amount: 11.80,

                Frequency:1,

                NameOfThePlan:"APIREC",

                NoOfPayments:"6",

                Description:"This plan is to test EZYREC+ API",

}

 

 

Name

Description

Type

Mandatory

1.

Amount

Amount to be charged

DECIMAL

2.

NoOfPayments

Number of payments/Number of times the card should be charged under this plan

INT

3.

Frequency

Frequency in which the Payment plan should run.

(Refer to Appendix)

INT

4.

NameOfThePlan

Name of the plan

VARCHAR (50)

5.

Service

Name of the function/Web Service

VARCHAR (20)

6.

Description

A description/note about the payment plan

VARCHAR (200)

X

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "PAYMENT PLAN CREATED SUCCESSFULLY",

    "responseData": {

        "Id": 75,

        "NameOfThePlan": "APIREC",

        "CreatedOn": "2020-01-17T18:18:16.3732018+08:00",

        "Status": "1",

        "Amount": 11.8,

        "Frequency": 1,

        "Description": "This plan is to test EZYREC+ API",

        "NoOfPayments": 6

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

Status

Status of the plan.

INT

√ Success

X Failure

4b.

NameOfThePlan

Name of the plan.

VARCHAR (100)

√ Success

X Failure

4c.

CreatedOn

Created time of the plan

DATETIME

√ Success

X Failure

4d.

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4e.

Amount

Amount to be charged

DECIMAL

√ Success

X Failure

4f.

Frequency

Frequency in which the Payment plan should run.

(Refer to Appendix)

INT

√ Success

X Failure

4g.

Description

A description/note about the payment plan

VARCHAR (200)

√ Success

X Failure

4h.

NoOfPayment

Number of payments/Number of times the card should be charged under this plan

INT

√ Success

X Failure

 

 

 

  1. READ_PLAN

REQUEST

{

                service:"READ_PLAN"

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

 

RESPONSE

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "PAYMENT PLAN LIST RETRIEVED SUCCESSFULLY",

    "responseData": {

        "planList": [

            {

                "Id": 14,

                "NameOfThePlan": "abc",

                "CreatedOn": "2019-07-22T00:00:00",

                "UpdatedOn": "2019-08-27T00:00:00",

                "Status": "1",

                "Amount": 100.00,

                "Frequency": 1,

                "FrequencyName": "1/Daily",

                "Description": "",

                "NoOfPayments": 36,

                "DisplayFrequency": "Daily"

            }

        ]

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

planList

List Of customers

ARRAY

√ Success

X Failure

4a.1

NameOfThePlan

Name of the plan.

VARCHAR (100)

√ Success

X Failure

4a.2

CreatedOn

Created time of the plan

DATETIME

√ Success

X Failure

4a.3

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4a.4

Amount

Amount to be charged

DECIMAL

√ Success

X Failure

4a.5

Frequency

Frequency in which the Payment plan should run.

(Refer to Appendix)

INT

√ Success

X Failure

4a.6

Description

A description/note about the payment plan

VARCHAR (200)

√ Success

X Failure

4a.7

NoOfPayments

Number of payments/Number of times the card should be charged under this plan

INT

√ Success

X Failure

4a.8

displayFrequency

Frequency name

VARCHAR (50)

√ Success

X Failure

4a.9

UpdatedOn

Update time of the plan

DATETIME

√ Success

X Failure

4a.10

Status

Status of the plan.

INT

√ Success

X Failure

 

 

 

  1. UPDATE_PLAN

REQUEST

{

                service: "UPDATE_PLAN",

                NameOfThePlan: "APIREC+",

                Description: "This plan is to test EZYREC+ API",

                Status: "1",

                ID: 74

}

 

 

Name

Description

Type

Mandatory

1.

Status

Status of the plan

1-       Active

0-       Inactive

INT

2.

NameOfThePlan

Name of the plan

VARCHAR (50)

3.

Service

Name of the function/Web Service

VARCHAR (20)

4.

Description

A description/note about the payment plan

VARCHAR (200)

X

5.

ID

Unique ID to perform CRUD operations in future

(Received during payment plan creation)

INT

 

RESPONSE

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "PAYMENT PLAN DATA UPDATED SUCCESSFULLY",

    "responseData": {

        "Id": 74,

        "UpdatedOn": "2020-01-20T10:39:43.343601+08:00",

        "Status": "1",

        "Description": "This plan is to test EZYREC+ API",

        "NameOfThePlan": "APIREC+"

    }

}

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

Status

Status of the plan.

INT

√ Success

X Failure

4b.

NameOfThePlan

Name of the plan.

VARCHAR (100)

√ Success

X Failure

4c.

UpdatedOn

Created time of the plan

DATETIME

√ Success

X Failure

4d.

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4e.

Description

A description/note about the payment plan

VARCHAR (200)

√ Success

X Failure

 

 

 

 

  1. ADD_CARD

REQUEST

{

                service:"ADD_CARD",

                CustomerId:"118",

                CardNumber:"5541221145872998",

                CardHolderName: "Mobiversa",

                ExpiryDateYear: 2021,

                ExpiryDateMonth: 02

}

 

 

Name

Description

Type

Mandatory

1.

Status

Status of the plan

2-       Active

1-       Inactive

INT

2.

NameOfThePlan

Name of the plan

VARCHAR (50)

3.

Service

Name of the function/Web Service

VARCHAR (20)

4.

Description

A description/note about the payment plan

VARCHAR (200)

X

5.

ID

Unique ID to perform CRUD operations in future

(Received during payment plan creation)

INT

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "CARD ADDED SUCCESSFULLY",

    "responseData": {

        "customerId": "0",

        "maskedPan": "491891ffffff5005",

        "expDate": {

            "expDateMonth": "12",

            "expDateYear": "2020",

            "expDate": "2012"

        },

        "cardHolderName": "Mobiversa",

        "cardId": "0",

        "cardBrand": "",

        "bankName": "CITIC BANK INTERNATIONAL, LTD.",

        "cardType": "credit"

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

bankName

Name of the card issuing bank.

VARCHAR (100)

√ Success

X Failure

4b.

cardBrand

Name of the Card Brand.

VARCHAR (100)

√ Success

X Failure

4c.

cardHolderName

Card Holder Name

VARCHAR (100)

√ Success

X Failure

4d.

cardId

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4e.

cardType

Type of card (credit/debit)

VARCHAR (20)

√ Success

X Failure

4f.

customerId

Customer ID

INT

√ Success

X Failure

4g.

expDate

Expiry date of the card

VARCHAR (10)

√ Success

X Failure

4h.

maskedPan

Masked card number

VARCHAR (20)

√ Success

X Failure

 

 

 

 

  1. READ_CARD

REQUEST

{

                service:"READ_CARD",

                CustomerId:"31"

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

CustomerID

Unique ID to perform CRUD operations in future

(Received during customer creation)

INT

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "CARD LIST RETRIEVED SUCCESSFULLY",

    "responseData": {

        "cardList": [

            {

                "Id": 18,

                "SourceName": "EZYREC+ API",

                "CustomerId": 31,

                "PhoneNumber": "0199880838",

                "AddedOn": "2019-07-24T00:00:00",

                "MaskedCard": "5509 XXXX XXXX 0259",

                "CardHolderName": "Anson Leo...",

                "CardBrand": "mastercard",

                "ExpiryDate": "05/2020",

                "CardType": "debit",

                "noOfSubscriptionUnderThisCard": 1

            }

        ]

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

cardList

List Of cards

ARRAY

√ Success

X Failure

4a.1

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4a.2

sourceName

Source from which the card has been added (EZYREC+, EZYREC+ API, Pre-Auth Link)

VARCHAR (30)

√ Success

X Failure

4a.3

customerId

Unique ID to perform CRUD operations in future (Received during customer addition)

INT

√ Success

X Failure

4a.4

phoneNumber

Phone Number of the customer

VARCHAR (100)

√ Success

X Failure

4a.5

AddedOn

Card Added On

DATETIME

√ Success

X Failure

4a.6

maskedCard

Masked card number

VARCHAR (20)

√ Success

X Failure

4a.7

cardHolderName

Name Of the card holder

VARCHAR (20)

√ Success

X Failure

4a.8

cardBrand

Name of the Card Brand.

VARCHAR (100)

√ Success

X Failure

4a.9

expiryDate

Expiry date of the card

VARCHAR (20)

√ Success

X Failure

4a.10

cardType

Type of card (credit/debit)

VARCHAR (20)

√ Success

X Failure

4a.11

noOfSubscriptionUnderThisCard

Number of subscriptions mapped under this card

INT

√ Success

X Failure

 

 

 

  1. ADD_SUBSCRIPTION

REQUEST

 

{

                service:"ADD_SUBSCRIPTION",

                CustomerId:"31",

                PaymentPlan:"62",

                StartDate:"2020-01-20",

                CardId:"18",

                Reference:"RECPLUS API TEST SUBSCRIPTION"

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

CustomerID

Unique ID to perform CRUD operations in future

(Received during customer creation)

INT

3

PaymentPlan

Unique ID to perform CRUD operations in future

(Received during payment plan creation)

INT

4.

StartDate

Subscription Start Date

DATETIME

5.

CardID

Unique ID to perform CRUD operations in future

(Received during card addition)

INT

6.

Reference

Reference for the subscription

VARCHAR (100)

X

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "PAYMENT PLAN CREATED SUCCESSFULLY",

    "responseData": {

        "ID": 29,

        "CreatedOn": "2020-01-20T14:49:05.763601+08:00",

        "CustomerID": "31",

        "PaymentPlan": 62,

        "CardID": 18,

        "DynamicPlanStartDate": "20/1/2020 12:00:00 AM",

        "Reference": ""

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4b.

CreatedOn

Created Date of the subscription

DATETIME

√ Success

X Failure

4c.

CustomerID

Customer ID

INT

√ Success

X Failure

4d.

PaymentPlan

Payment Plan ID

INT

√ Success

X Failure

4e.

CardID

Card ID

INT

√ Success

X Failure

4f.

DynamicPlanStartDate

Start Date of the subscription

DATETIME

√ Success

X Failure

4h.

Reference

Reference for the subscription

VARCHAR (20)

√ Success

X Failure

 

 

 

 

 

  1. READ_SUBSCRIPTION

REQUEST

{

                service: "READ_SUBSCRIPTION",

                CustomerId:"31"

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

CustomerID

Unique ID to perform CRUD operations in future

(Received during customer creation)

INT

 

RESPONSE

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "SUBSCRIPTION LIST RETRIEVED SUCCESSFULLY",

    "responseData": {

        "subscriptionList": [

            {

                "ID": 21,

                "CreatedOn": "2019-10-07T18:04:56",

                "CustomerID": "31",

                "PaymentPlan": 62,

                "CardID": 18,

                "Active": "0",

                "DynamicPlanStartDate": "2019-12-10T00:00:00",

                "Reference": "",

                "LastHoldDate": "2020-01-08T15:48:44",

                "LastResumeDate": "0001-01-01T00:00:00",

                "HoldReason": "the end of subscription",

                "InvoiceCount": 0,

                "CustomerName": "Anson",

                "CardHolderName": "Anson Leong",

                "CardBrand": "mastercard",

                "MaskedCard": "5509 XXXX XXXX 0259",

                "NameOfThePlan": "002",

                "Amount": 150.00,

                "FrequencyName": "Half-Yearly"

            }

        ]

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

subscriptionList

List of Subscriptions

ARRAY

√ Success

X Failure

4a.1

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4a.2

CreatedOn

Created time of the subscription

DATETIME

√ Success

X Failure

4a.3

CustomerID

Customer ID

INT

√ Success

X Failure

4a.4

PaymentPlan

Payment Plan ID

INT

√ Success

X Failure

4a.5

CardID

Card ID

INT

√ Success

X Failure

4a.6

Active

Status of the plan

INT

√ Success

X Failure

4a.7

DynamicPlanStartDate

Start date of the subscription

VARCHAR (20)

√ Success

X Failure

4a.8

Reference

Reference of the subscription

VARCHAR (100)

√ Success

X Failure

4a.9

LastHoldDate

Last Hold Date of the subscription

VARCHAR (20)

√ Success

X Failure

4a.10

LastResumeDate

Last resume date of the subscription

VARCHAR (20)

√ Success

X Failure

4a.11

HoldReason

Hold Reason

INT

√ Success

X Failure

4a.12

InvoiceCount

Number of invoices

INT

√ Success

X Failure

4a.13

CustomerName

Name of the customer

VARCHAR (100)

√ Success

X Failure

4a.14

CardHolderName

Card Holder Name

VARCHAR (100)

√ Success

X Failure

4a.15

CardBrand

Card brand of the card mapped to this subscription

VARCHAR (40)

√ Success

X Failure

4a.16

MaskedCard

Masked Card

VARCHAR (20)

√ Success

X Failure

4a.17

NameOfThePlan

Name of the plan

VARCHAR (40)

√ Success

X Failure

4a.18

Amount

Amount of the plan

DECIMAL

√ Success

X Failure

4a.19

FrequencyName

Frequency of charging

VARCHAR (20)

√ Success

X Failure

 

 

 

  1. HOLD_SUBSCRIPTION

REQUEST

{

                service: "HOLD_SUBSCRIPTION",

                SubscriptionId:"21",

             HoldReason:”Customer Terminated”

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

SubscriptionID

Unique ID to perform CRUD operations in future

(Received during subscription creation)

INT

3.

HoldReason

Reason for Hold

VARCHAR (200)

X

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "HOLD SUBSCRIPTION SUCCESSFUL",

    "responseData": ""

}

 

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

 

 

 

  1. RESUME_SUBSCRIPTION

REQUEST

{

                service: "RESUME_SUBSCRIPTION",

                SubscriptionId:"21"

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

SubscriptionID

Unique ID to perform CRUD operations in future

(Received during subscription creation)

INT

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "RESUME SUBSCRIPTION SUCCESSFUL",

    "responseData": ""

}

 

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

 

 

 

  1. READ_INVOICE

REQUEST

{

                service: "READ_INVOICE"

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "INVOICE LIST RETRIEVED SUCCESSFULLY",

    "responseData": {

        "invoiceList": [

            {

                "Id": 4,

                "InvoiceName": "August/2019/1/4",

                "CustomerId": 1,

                "MerchantCustomerId": "MYMV0027",

                "CustomerName": "MOHAMMED",

                "Amount": 125.00,

                "Email": "asyraf@mobiversa.com",

                "PhoneNumber": "0122908627",

                "MaskedCard": "4862 XXXX XXXX 3952",

                "CardHolderName": "ASYRAF",

                "InvoiceDate": "2019-10-23T00:00:00",

                "InvoiceMonth": 6,

                "InvoiceYear": 2019,

                "Paid": "0",

                "PaidManually": "0",

                "SuccessfulPaymentDate": "2019-08-23T00:00:00",

                "TransactionID": "1907250714995320000012000000000790",

                "LastTryDate": "2019-11-22T00:00:00",

                "TodayRetries": 0,

                "AllRetries": 9

            }

        ]

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

invoiceList

List of Invoices

ARRAY

√ Success

X Failure

4a.1

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4a.2

InvoiceName

Name of the invoice

VARCHAR (100)

√ Success

X Failure

4a.3

CustomerID

Customer ID

INT

√ Success

X Failure

4a.4

MerchantCustomerID

Merchant’s customer ID

VARCHAR (100)

√ Success

X Failure

4a.5

CustomerName

Customer Name

VARCHAR (100)

√ Success

X Failure

4a.6

Amount

Amount to be paid

DECIMAL

√ Success

X Failure

4a.7

Email

Email of the customer

VARCHAR (100)

√ Success

X Failure

4a.8

PhoneNumber

Phone number of the customer

VARCHAR (100)

√ Success

X Failure

4a.9

MaskedCard

Masked Card

VARCHAR (20)

√ Success

X Failure

4a.10

CardHolderName

Card Holder Name

VARCHAR (100)

√ Success

X Failure

4a.11

InvoiceDate

Invoice Date

DATETIME

√ Success

X Failure

4a.12

InvoiceMonth

Invoice Month

INT

√ Success

X Failure

4a.13

InvoiceYear

Invoice Year

INT

√ Success

X Failure

4a.14

Paid

Paid Status

1- Paid, 0- Unpaid

INT

√ Success

X Failure

4a.15

SuccessfulPaymentDate

Masked Card

DATETIME

√ Success

X Failure

4a.16

TransactionID

Transaction ID

VARCHAR (40)

√ Success

X Failure

4a.17

LastTryDate

Last Tried date

DATETIME

√ Success

X Failure

4a.18

TodayRetries

Number of retries today

INT

√ Success

X Failure

4a.19

AllRetries

Number of retries overall

INT

√ Success

X Failure

 

 

 

 

  1. READ_TRANSACTIONS

REQUEST

{

                service: "READ_TRANSACTIONS",

             InvoiceId: "1"

}

 

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

InvoiceID

Invoice ID for which the transactions to be retrieved

INT

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "TRANSACTION LIST RETRIEVED SUCCESSFULLY",

    "responseData": {

        "transactionList": [

            {

                "Id": 1,

                "TransactionDate": "2019-07-04T00:00:00",

                "Amount": 50.00,

                "TransactionID": "1907040713109320000012000000000731",

                "RRN": "",

                "Trace": "000731",

                "Date": "04-Jul-2019",

                "Time": "13:47",

                "ApproveCode": "000016",

                "CardNo": "XXXX 7B43",

                "TC": "32000001000731",

                "BatchNo": "7",

                "CardHolderName": "mohammed",

                "TransactionType": "SALE",

                "InvoiceName": "Jun/2019/1/1",

                "CustomerID": "1",

                "MobileNo": "01133570750",

                "Email": "premkumar1@mobiversa.com",

                "InvoiceID": "1"

            }

        ]

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

transactionList

List of Transactions

ARRAY

√ Success

X Failure

4a.1

ID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4a.2

CustomerID

Name of the invoice

VARCHAR (100)

√ Success

X Failure

4a.3

TransactionDate

Customer ID

INT

√ Success

X Failure

4a.4

Amount

Merchant’s customer ID

VARCHAR (100)

√ Success

X Failure

4a.5

CustomerName

Customer Name

VARCHAR (100)

√ Success

X Failure

4a.6

Amount

Amount to be paid

DECIMAL

√ Success

X Failure

4a.7

TransactionID

Email of the customer

VARCHAR (100)

√ Success

X Failure

4a.8

RRN

RRN of transaction

VARCHAR (20)

√ Success

X Failure

4a.9

Trace

Trace of transaction

VARCHAR (100)

√ Success

X Failure

4a.10

Date

Date of transaction

DATETIME

√ Success

X Failure

4a.11

Time

Time of transaction

VARCHAR (20)

√ Success

X Failure

4a.12

ApproveCode

Approve Code

VARCHAR (20)

√ Success

X Failure

4a.13

CardNo

Card no used for transaction

VARCHAR (20)

√ Success

X Failure

4a.14

TC

TC of transaction

VARCHAR (20)

√ Success

X Failure

4a.15

BatchNo

Batch no of settlement

INT

√ Success

X Failure

4a.16

CardHolderName

Card Holder Name

VARCHAR (100)

√ Success

X Failure

4a.17

TransactionType

Number of retries today

VARCHAR (20)

√ Success

X Failure

4a.18

InvoiceName

Invoice Name

VARCHAR (50)

 

4a.19

MobileNo

Phone number of the customer

VARCHAR (100)

 

4a.20

Email

Email of the customer

VARCHAR (100)

 

4a.21

InvoiceID

Invoice ID for the transaction

INT

 

 

 

 

 

  1. READ_FORECAST

REQUEST

{

                service: "READ_ FORECAST"

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

Limit

Number of forecast transactions

(Default to 100)

INT

X

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "FORECAST LIST RETRIEVED SUCCESSFULLY",

    "responseData": {

        "forecastList": [

            {

                "UniqueID": 0,

                "next": "2020-01-20T00:00:00",

                "week": "WEEK3",

                "CustomerName": "Aminah",

                "CustomerId": "abc123",

                "Email": "1sukhbirsingh@gmail.com",

                "PhoneNumber": "0163902108",

                "NameOfThePlan": "monthly renewal ",

                "Amount": 90.00,

                "Frequency": "Daily"

            },

            {

                "UniqueID": 1,

                "next": "2020-01-21T00:00:00",

                "week": "WEEK3",

                "CustomerName": "Aminah",

                "CustomerId": "abc123",

                "Email": "1sukhbirsingh@gmail.com",

                "PhoneNumber": "0163902108",

                "NameOfThePlan": "monthly renewal ",

                "Amount": 90.00,

                "Frequency": "Daily"

            }

        ]

    }

}

 

 

Name

Description

Type

Mandatory

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

forecastList

List of Forecast

ARRAY

√ Success

X Failure

4a.1

UniqueID

Unique ID to perform CRUD operations in future

INT

√ Success

X Failure

4a.2

Next

Payment Date

DATETIME

√ Success

X Failure

4a.3

Week

Week number of upcoming payment

VARCHAR (10)

√ Success

X Failure

4a.4

CustomerName

Name of the customer

VARCHAR (100)

√ Success

X Failure

4a.5

CustomerID

Customer ID

VARCHAR (50)

√ Success

X Failure

4a.6

Email

Email of the customer

VARCHAR (100)

√ Success

X Failure

4a.7

PhoneNumber

Phone number of the customer

VARCHAR (100)

√ Success

X Failure

4a.8

NameOfThePlan

Name of the plan, customer subscribed with

VARCHAR (100)

√ Success

X Failure

4a.9

Amount

Amount to be paid

DECIMAL

√ Success

X Failure

4a.10

Frequency

Frequency of this subscription

VARCHAR (20)

√ Success

X Failure

 

 

 

  1. RETRY_TRANSACTION

REQUEST

{

                service: "RETRY_TRANSACTION",

                InvoiceID: 1

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

InvoiceID

Invoice ID to retry

INT

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "PAYMENT SUCCESSFUL",

    "responseData": {

        "customerId": 1,

        "cardNo": "XXXX 0007",

        "Amount": 50.0,

        "cardHolderName": "mohammed noorul ilahi",

        "Tips": "0.0",

        "Rrn": "000000000014",

        "Aid": "",

        "Trace": "000829",

        "Date": "24-Jan-2020",

        "Time": "15:38",

        "approveCode": "000014",

        "Tc": "32000001000829",

        "trxId": "2001240115285320000012000000000829",

        "invoiceId": "October/2019/1/1",

        "txnType": "EZYREC+ SALE",

        "batchNo": "7"

    }

}

 

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

 

 

 

  1. PRE_AUTH_SMS

REQUEST

{

                service: "PRE_AUTH_SMS",

                CustomerId: 1

}

 

 

Name

Description

Type

Mandatory

1.

Service

Name of the function/Web Service

VARCHAR (20)

2.

CustomerId

Customer ID to send Pre-Auth SMS

INT

 

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "PRE-AUTH SMS SENT SUCCESSFULLY”,

    "responseData": {

        "InvoiceId": “You will be charged at MOBIVERSA for RM1.00 on 18-Jun-2019 16:57. Click to Confirm payment”,

        "Opt": "http://demo.ezywire.com/mo/?sl=zR59E0F834Dgs",

        "CustomerID": "1”

    }

}

 

 

1.

responseCode

Response code for the API call

0000- Successful, 0001- Failure

VARCHAR (4)

2.

responseMessage

Response Message for the API call. SUCCESSFUL/FAILURE

VARCHAR (10)

3.

responseDescription

Full response message for the API call. It will carry the reason of failure, successful count etc.

VARCHAR (100)

4.

responseData

Data received

CLASS

√ Success

X Failure

responseData class have the following data

4a.

InvoiceID

Content of the SMS sent to the customer

VARCHAR (200)

√ Success

X Failure

4b.

Opt

Unique pre-auth link sent to the customer via SMS

VARCHAR (200)

√ Success

X Failure

4c.

CustomerID

Customer ID

INT

√ Success

X Failure

APPENDIX

 

EZYLINK-APi

EZYLINK-API

API Integration

Introduction. 4

API TYPE: 4

Staging URL: 4

Encryption method. 4

TXN_LINK_REQ request: 4

EZYLINK-API: 5

EZYLINK Request: 5

Header Field: 5

Request Body: 5

Response Data: 6

TXN_LINK_SALE Request: 6

Response Data: 8

Sub element(responseData) 8

Sample Request and Response: 9

Sample request TXN_LINK_REQ: 9

Sample response TXN_LINK_REQ: 9

Introduction

INTRODUCTION

This document provides developers with instructions for integrating Mobi EZYLINK-API services into various solutions using the HTTP / API.

API TYPE:

Name

Description

TXN_LINK_REQ

Merchant can send payment link for customer to pay via (EZYMOTO/ EZYAUTH) Use EZYMOTO

EZYAUTH – only for pre-auth enabled merchants

 

Mobi team will provide LoginId and MobiApiKey for each unique merchant onboarding.

Staging URL:

Demo URL

https://test.mobiversa.com/payment/mobihotelapi/jsonservice

Live/ Prod URL

https://pay.mobiversa.com/payment/mobihotelapi/jsonservice

 

Encryption method

We are using AES-128 CBC mode with key and IV Vector of 16-digit length.

TXN_LINK_REQ request:

For Amount field construct with 12-digit format of amount and should accept only 2-digit decimal precision.

For example

RM 0.50 = 000000000050

RM 1.00 = 000000000100

RM 10.23 = 000000001023

Key for Encryption:

mobiApiKey we will 32-digit format data which is divided into 2 equal parts.

For example: 232fe8ed2715bc0fb4fe16c55acbd6d4

Key: 232fe8ed2715bc0f (first part)

IVvector: b4fe16c55acbd6d4 (second part)

Amount: 000000000011

Method will output with base64 format (boq8R2QuM61Q0KhEDXj55g==)

Output base64 data to encode with hexa value (626F7138523251754D363151304B684544586A3535673D3D)

Pass the final output as encAmount for service (TXN_LINK_REQ)

 

EZYLINK-API:

The below URL is available to test the flow of Hotel-API.

https://test.mobiversa.com/payment/mobihotelapi/jsonservice

EZYLINK Request:

Request Type

Json Object

Request URL

https://test.mobiversa.com/payment/mobihotelapi/jsonservice

 

Header Field:

Seq.

Field Name

Description

Example

1.

loginId

Login ID of the merchant. (will be provided by Mobi)

Mobi013434

2.

mobiApiKey

API Key of the merchant. (will be provided by Mobi)

b07ad9f31df158edb188a41f725899bc

 

Request Body:

Seq.

Field Name

Description

Example

1.

service

TXN_LINK_REQ

TXN_LINK_REQ

2.

customerName

Name of the buyer.

Mobi

3.

email

Email Id of the buyer.

abc@mobiversa.com

4.

invoiceId

Order Id of the transaction.

9166

5.

encAmount

Amount of transaction(Encrypted)

65535844566D4B57337A374F6855445A6D436D4B36513D3D

6.

mobileNo

Mobile No of the buyer

+60 1112223333

7.

motoPreAuth

To specify transaction type

Yes/No If PreAuth transaction need to do mention as “Yes” or else “No”  - Set default “No”

8.

callback

Callback URL to send response

Please provide you callback URL

Ex : https://www.mobiversa.com/test

 

Response Data:

Seq.

Field Name

Description

Example

1.

responseCode

0000/0001

0000 – success and 0001 - failed

2.

responseMessage

SUCCESS/FAILURE.

Mobi

3.

responseDescription

Reason for failure

Moto Transaction Requested

 

TXN_LINK_SALE Request:

Click on email or SMS link which you received.

 

 

 

Fill the details:

 

On next page Bank OTP will prompt:

Key in OTP as “secone1”

 

Response of the transaction will send by post method to callback Url which is shared on EZYLINK request.

Response Data:

Seq.

Field Name

Description

Example

1.

responseCode

0000/0001

0000 – success and 0001 - failed

2.

responseMessage

SUCCESS/FAILURE.

Mobi

3.

responseDescription

Reason for success

EZYMOTO Sale Done

 

Sub element(responseData)

Seq.

Field Name

Description

Example

1.

amount

Amount of transaction

11.30

2.

approveCode

Approval code of transaction

000001

3.

cardHolderName

Card holder Name

Mohammed

4.

cardNo

Masked Card Number

XXXX 5323

5.

date

Date of transactions

03-Jan-2020

6.

mid

MID of the merchant

000000000009289

7.

invoiceId

Order Id of the transaction

9166

8.

rrn

RRN

000373379070

9.

tid

TID of the merchant

10003278

10.

time

Time of transaction

15:39

11.

trxId

Transaction ID

200316032194222280801000000000050

12.

txnType

EZYAUTH / EZYMOTO

EZYAUTH

 

Sample Request and Response:

Sample request TXN_LINK_REQ:

{"invoiceId":"testing","mobileNo":"+601100155058","email":"abc@mobiversa.com","customerName":"sangavi","service":"TXN_LINK_REQ","encAmount":"65535844566D4B57337A374F6855445A6D436D4B36513D3D","motoPreAuth":"Yes","callback":"http://test.mobiversa.com/test"}

{"invoiceId":"testing","mobileNo":"+601100155058","email":"abc@mobiversa.com","customerName":"sangavi","service":"TXN_LINK_REQ","amount":"000000000011","encAmount":"65535844566D4B57337A374F6855445A6D436D4B36513D3D","motoPreAuth":"Yes","callback":""}

Sample response TXN_LINK_REQ:

{"responseCode":"0000","responseMessage":"SUCCESS","responseDescription":"Moto Transaction Requested","responseData”:{}}

{"responseCode":"0001","responseMessage":"FAILURE","responseDescription":"Missing Callback URL","responseData":{}}

 

 

 

EZYWAY DOCUMENTS


EZYWAY
HTML Integration

Contents
UM Test Page: 3
Payment Request: 4
Sample Request: 5
Payment Response 6
Sample Response Parser: 7
Staging Credentials: 7
Staging Test cards 7


UM Test Page:
The below URL is available to test the flow of EZYWAY.
https://umtest.mobiversa.com/TestPage/TestUMRequest.aspx


Payment Request:
Request Type HTML form posting
Request URL https://umtest.mobiversa.com/PostToUM.aspx

Seq. Field Name Description Example Hidden
1. firstName First name of the buyer. Mohammed
2. lastName Last name of the buyer. Mobi
3. loginId Login ID of the merchant. (will be provided by Mobi) Test Yes
4. mobiApiKey API Key of the merchant. (will be provided by Mobi) b07ad9f31fd158edb188a41f7
25899bc Yes
5. email Email Id of the buyer. abc@mobiversa.com

6. orderId Order Id of the transaction. 9166
7. postalCode Postal Code of the buyer 48170
8. shippingState Shipping address of the buyer WP Kuala Lumpur
9. amount Amount of transaction 11.30 Yes
10. nameOnCard Card holder name Mohammed Yes
11. cardNumber Card Number (can be found in front the card) 2204029510231002 Yes
12. cvv CVV of the card (can be found behind the card) 123 Yes
13. expDate Expiry Date of the card (YYMM) format (can be found in front the card) 2302 (February 2023) Yes
14. umResponseUrl URL to call back once the transaction is done. https://umtest.mobiversa.com
/TestPage/
TestUMResponse.aspx Yes


Sample Request:

Payment Response
Response Type HTML form posting
Response URL To the page received on the field umResponseUrl in ‘Payment Request’. In our case https://umtest.mobiversa.com/TestPage/
TestUMResponse.aspx

Seq. Field Name Description Example
1. aid An application identifier (AID) is used to address an application in the card. HOSTOZ
2. amount Amount of transaction 11.30
3. approveCode Approval code of transaction HOSTOZ
4. cardHolderName Card holder Name Mohammed
5. cardNo Masked Card Number XXXX 5323
6. date Date of transactions 03-Jan-2020
7. mid MID of the merchant 000000000009289
8. orderId Order Id of the transaction 9166
9. responseCode Response code of the transaction 0000 – Success
0001 – Failure

10. responseDescription Response description of the transaction Payment Approved
11. responseMessage Response Message of the transaction Success
12. rrn RRN 000373379070
13. Tid TID of the merchant 10003278
14. Time Time of transaction 15:39
15. trxId Transaction ID
16 uid Unique ID (to be saved by merchant to avoid duplicate order id problems) 20200103153947


Sample Response Parser:

Staging Credentials:
mobiApiKey : 132fe8ed2715bc0fb4fe16c55acbd6d4
username : Mobiversa

Staging Test cards
CardNo: 5453010000095323
Expiry Date: 2303(YYMM)
CVV: 123

 

 

 

 

Virtual Terminal

Hotel-API

API Integration

 

Version: 1.0

Revision History

Date

Version

Create / Edited By

Approved By

Remarks

18-Mar-2020

1.0

Nandhakumar

Premkumar

Table of Contents

Introduction. 4

API TYPE: 4

URL: 4

Encryption method. 4

TXN_LINK_REQ request: 4

TXN_API_SALE request: 5

Hotel-API: 6

EZYLINK Request: 6

Header Field: 6

Request Body: 7

Response Data: 7

TXN_LINK_SALE Request: 7

Response Data: 9

Sub element(responseData) 9

TXN_API_SALE Request: 9

Header Field: 9

Request Body: 10

Response Data: 10

Sub element(responseData) 10

Sample Request and Response: 12

Sample request TXN_LINK_REQ: 12

Sample response TXN_LINK_REQ: 12

Sample request TXN_API_SALE: 12

Sample response TXN_API_SALE: 12

Staging testing card: 12

Introduction

INTRODUCTION

This document provides developers with instructions for integrating Mobi Hotel-API services into various solutions using the HTTP / API.

 

API TYPE:

Name

Description

TXN_LINK_REQ

Merchant can send payment link for customer to pay via (EZYMOTO/ EZYAUTH)

TXN_LINK_SALE

Customer can do pay via (EZYMOTO/ EZYAUTH)

TXN_API_SALE

Merchant can get card details and charge customer through (EZYMOTO/ EZYAUTH)

 

Mobi team will provide LoginId and MobiApiKey for each unique merchant onboarding.

URL:

Staging/Demo URL

https://test.mobiversa.com/payment/mobihotelapi/jsonservice

Live/ Prod URL

https://pay.mobiversa.com/payment/mobihotelapi/jsonservice

 

Encryption method

We are using AES-128 CBC mode with key and IV Vector of 16-digit length.

TXN_LINK_REQ request:

For Amount field construct with 12-digit format of amount and should accept only 2-digit decimal precision.

For example

RM 0.50 = 000000000050

RM 1.00 = 000000000100

RM 10.23 = 000000001023

Key for Encryption:

mobiApiKey we will 32-digit format data which is divided into 2 equal parts.

For example: 232fe8ed2715bc0fb4fe16c55acbd6d4

Key: 232fe8ed2715bc0f (first part)

IVvector: b4fe16c55acbd6d4 (second part)

Amount: 000000000011

Method will output with base64 format (boq8R2QuM61Q0KhEDXj55g==)

Output base64 data to encode with hexa value (626F7138523251754D363151304B684544586A3535673D3D)

Pass the final output as encAmount for service (TXN_LINK_REQ)

 

TXN_API_SALE request:

For Amount field construct with 12-digit format of amount and should accept only 2-digit decimal precision.

For example

RM 0.50 = 000000000050

RM 1.00 = 000000000100

Get carddetails from customer CardNo, CVV, ExpiryDate and amount padded with “#” separator.

Expiry date should send as YYMM (Year/Month format)

5453010000095323#123#2303#000000000011

Key for Encryption:

mobiApiKey we will 32-digit format data which is divided into 2 equal parts.

For example: 232fe8ed2715bc0fb4fe16c55acbd6d4

Key: 232fe8ed2715bc0f (first part)

IVvector: b4fe16c55acbd6d4 (second part)

Method will output with base64 format (PXw/H1mlGFy7kd5qcW5v9nXrzT1d+sUywTh+XNOjYiT0rePc6PdZKl2otS4tdVb+)

Output base64 data to encode with hexa value (5058772F48316D6C474679376B64357163573576396E58727A5431642B7355797754682B584E4F6A59695430726550633650645A4B6C326F745334746456622B)

Pass the final output as carddetails for service (TXN_API_SALE)

For encryption refer link : https://www.devglan.com/online-tools/aes-encryption-decryption

Hotel-API:

The below URL is available to test the flow of Hotel-API.

https://test.mobiversa.com/payment/mobihotelapi/jsonservice

EZYLINK Request:

Request Type

Json Object

Request URL

https://test.mobiversa.com/payment/mobihotelapi/jsonservice

 

Header Field:

Seq.

Field Name

Description

Example

1.

loginId

Login ID of the merchant. (will be provided by Mobi)

Mobi013434

2.

mobiApiKey

API Key of the merchant. (will be provided by Mobi)

b07ad9f31df158edb188a41f725899bc

 

 

Request Body:

Seq.

Field Name

Description

Example

1.

service

TXN_LINK_REQ

TXN_LINK_REQ

2.

customerName

Name of the buyer.

Mobi

3.

email

Email Id of the buyer.

abc@mobiversa.com

4.

invoiceId

Order Id of the transaction.

9166

5.

encAmount

Amount of transaction(Encrypted)

65535844566D4B57337A374F6855445A6D436D4B36513D3D

6.

mobileNo

Mobile No of the buyer

+60 1112223333

7.

motoPreAuth

To specify transaction type

Yes/No If PreAuth transaction need to do mention as “Yes” or else “No”  - Set default “No”

8.

callback

Callback URL to send response

Please provide you callback URL

Ex : https://www.mobiversa.com/test

 

Response Data:

Seq.

Field Name

Description

Example

1.

responseCode

0000/0001

0000 – success and 0001 - failed

2.

responseMessage

SUCCESS/FAILURE.

Mobi

3.

responseDescription

Reason for failure

Moto Transaction Requested

 

TXN_LINK_SALE Request:

Click on email or SMS link which you received.

Fill the details:

On next page Bank OTP will prompt:

Key in OTP as “secone1”

Response of the transaction will send by post method to callback Url which is shared on EZYLINK request.

Response Data:

Seq.

Field Name

Description

Example

1.

responseCode

0000/0001

0000 – success and 0001 - failed

2.

responseMessage

SUCCESS/FAILURE.

Mobi

3.

responseDescription

Reason for success

EZYMOTO Sale Done

 

Sub element(responseData)

Seq.

Field Name

Description

Example

1.

amount

Amount of transaction

11.30

2.

approveCode

Approval code of transaction

000001

3.

cardHolderName

Card holder Name

Mohammed

4.

cardNo

Masked Card Number

XXXX 5323

5.

date

Date of transactions

03-Jan-2020

6.

mid

MID of the merchant

000000000009289

7.

invoiceId

Order Id of the transaction

9166

8.

rrn

RRN

000373379070

9.

tid

TID of the merchant

10003278

10.

time

Time of transaction

15:39

11.

trxId

Transaction ID

200316032194222280801000000000050

12.

txnType

EZYAUTH / EZYMOTO

EZYAUTH

 

 

TXN_API_SALE Request:

Request Type

Json Object

Request URL

https://test.mobiversa.com/payment/mobihotelapi/jsonservice

 

Header Field:

Seq.

Field Name

Description

Example

1.

loginId

Login ID of the merchant. (will be provided by Mobi)

Mobi013434

2.

mobiApiKey

API Key of the merchant. (will be provided by Mobi)

b07ad9f31df158edb188a41f725899bc

 

Request Body:

Seq.

Field Name

Description

Example                                                                                                                                            

1.

service

TXN_API_SALE

TXN_API_SALE

2.

customerName

Name of the buyer.

Mobi

3.

email

Email Id of the buyer.

abc@mobiversa.com

4.

invoiceId

Order Id of the transaction.

9166

5.

carddetails

Card Details (Encrypted)

34434E6F383030344E7A4F54664B64424864463057447034726168415670712B6D5A42562F6E446C6734384D372F517278703035755955392F597469652F326A

6.

mobileNo

Mobile No of the buyer

+60 1112223333

7.

motoPreAuth

To specify transaction type

Yes/No If PreAuth transaction need to do mention as “Yes” or else “No” - Set default “No”

8.

ip

IP of the machine which request coming

192.168.11.106

 

Response Data:

Seq.

Field Name

Description

Example

1.

responseCode

0000/0001

0000 – success and 0001 - failed

2.

responseMessage

SUCCESS/FAILURE.

Mobi

3.

responseDescription

Reason for failure

Moto Transaction Requested

 

Sub element(responseData)

Seq.

Field Name

Description

Example

1.

amount

Amount of transaction

11.30

2.

approveCode

Approval code of transaction

000001

3.

cardHolderName

Card holder Name

Mohammed

4.

cardNo

Masked Card Number

XXXX 5323

5.

date

Date of transactions

03-Jan-2020

6.

mid

MID of the merchant

000000000009289

7.

invoiceId

Order Id of the transaction

9166

8.

rrn

RRN

000373379070

9.

tid

TID of the merchant

10003278

10.

time

Time of transaction

15:39

11.

trxId

Transaction ID

200316032194222280801000000000050

12.

txnType

EZYAUTH / EZYMOTO

EZYAUTH

 

 


 

Sample Request and Response:

Sample request TXN_LINK_REQ:

{"invoiceId":"testing","mobileNo":"+601100155058","email":"abc@mobiversa.com","customerName":"sangavi","service":"TXN_LINK_REQ","encAmount":"65535844566D4B57337A374F6855445A6D436D4B36513D3D","motoPreAuth":"Yes","callback":"http://test.mobiversa.com/test"}

{"invoiceId":"testing","mobileNo":"+601100155058","email":"abc@mobiversa.com","customerName":"sangavi","service":"TXN_LINK_REQ","amount":"000000000011","encAmount":"65535844566D4B57337A374F6855445A6D436D4B36513D3D","motoPreAuth":"Yes","callback":""}

Sample response TXN_LINK_REQ:

{"responseCode":"0000","responseMessage":"SUCCESS","responseDescription":"Moto Transaction Requested","responseData”:{}}

{"responseCode":"0001","responseMessage":"FAILURE","responseDescription":"Missing Callback URL","responseData":{}}

Sample request TXN_API_SALE:

{"invoiceId":"testing","mobileNo":"+601100155058","email":"abc@mobiversa.com","customerName":"sangavi","service":"TXN_API_SALE","carddetails":"5058772F48316D6C474679376B64357163573576396E58727A5431642B7355797754682B584E4F6A59695430726550633650645A4B6C326F745334746456622B","motoPreAuth":"Yes","ip":"192.168.11.106"}

{"invoiceId":"testing","mobileNo":"+601100155058","email":"abc@mobiversa.com","customerName":"sangavi","service":"TXN_API_SALE","carddetails":"5058772F48316D6C474679376B64357163573576396E58727A5431642B7355797754682B584E4F6A59695430726550633F650645A4B6C326F745334746456622B","motoPreAuth":"Yes","ip":""}

Sample response TXN_API_SALE:

{"responseCode":"0000","responseMessage":"SUCCESSFUL","responseDescription":"EzyAuth Sale Done","responseData":{"trxId":"200316032194222280801000000000050","amount":"0.11","tid":"22228080","mid":"000222200002222","tips":"0.0","rrn":"000000000001","trace":"000050","date":"16-Mar-2020","time":"21:00","approveCode":"000001","cardNo":"XXXX 5323","tc":"22228080000050","batchNo":"1","cardHolderName":" ","txnType":"EZYAUTH","invoiceId":"testing"}}

{"responseCode":"0001","responseMessage":"FAILURE","responseDescription":"Missing IP","responseData":{}}

 

Staging testing card:

CardNo: 5453010000095323

Expiry Date: 2303(YYMM)

CVV: 123

 

 

 

EZYAUTH DOCUMENTS123

EZYAUTH-API

API Integration

 

Version: 1.0

Revision History

 

Date

Version

Create / Edited By

Approved By

Remarks

18-May-2020

1.0

Mohammed

Premkumar

 

Introduction

EZYAUTH is a product of Mobi for the Pre-Auth payment needs. Pre-Auth payment systems are needed when the merchants use the Customer’s card to hold certain amount as preauthorization.

EZYAUTH consists of 2 levels of Payment process.

  1. Customer need to key in Card number, CVV, Expiry Date and Card Holder Name in the merchant’s system. There are 2 types of payment:
    1. With 3D-secure process. Once the customer key in above information, he must key in the OTP in the 3DS page and authorize the transaction.
    2. Without 3D-secure process. The transaction will go through without customer’s OTP.

Upon successful transaction response from the host, money will be hold from the customer’s card.

  1. Whenever, customer uses a merchant’s service, the merchant can convert the pre-auth transaction to a sale. This will be card-less transaction.

 

API Type

RESTful web services are built to work best on the Web. Representational State Transfer (REST) is an architectural style that specifies constraints, such as the uniform interface, that if applied to a web service induce desirable properties, such as performance, scalability, and modifiability, that enable services to work best on the Web. In the REST architectural style, data and functionality are considered resources and are accessed using Uniform Resource Identifiers (URIs), typically links on the Web. The resources are acted upon by using a set of simple, well-defined operations. The REST architectural style constrains an architecture to a client/server architecture and is designed to use a stateless communication protocol, typically HTTP. In the REST architecture style, clients and servers exchange representations of resources by using a standardized interface and protocol.

Staging URL:

 

Function

URL

1

Preauthorization

https://preauthdemo.mobiversa.com/PostTo3DS.aspx

2

Convert to Sale

https://demopod.mobiversa.com/api/ConvertToSale

EZYAUTH-API:

PREAUTHORIZATION:

TYPE: HTTP Form submit

URL: https:// preauthdemo.mobiversa.com/PostTo3DS.aspx

 

REQUEST:

 

Field

Post As

Description

Mandatory

1.

Amount

Amount

Amount to be charged

Yes

2.

Mobile Number

mobileNo

Mobile number of the customer

Yes

3.

E-mail

Email

Email of the customer

Yes

4.

MOBI API Key

mobiApiKey

To be given from Mobiversa on approval

 

Yes

5.

Username

username

To be given from Mobiversa on approval

Yes

6.

Name on Card

 

nameOnCard

Name on card

Yes

7.

Card Number

 

cardNumber

Card number

Yes

8.

CVV

ccv

CVV of the card

Yes

9.

Expiry Date (YYMM)

yymm

Expiry Date of the card

Yes

10.

Redirect URL

redirectUrl

URL to which the final transaction information to be posted

Yes

11.

Invoice ID

invoiceId

Invoice ID for the transaction

Yes

 

  1. With 3D-Secure

A with 3D-Secure transaction will go through 3D-Secure page in which the customer will be prompted with OTP/TAC.

 

  1. Without 3D-Secure

A Without 3D-Secure transaction will go without a 3D-Secure page and customer will not get any OTP/TAC.

For both, the response will be posted to the ‘redirectUrl’ provided in the http form post request.

RESPONSE:

 

Field Name

Post As

Description

1.

Response Code

responseCode

0000- Success

0001 – Failure

2.

Response Message

responseMessage

Success/Failure

3.

Response Description

responseDescription

This fields contains the detailed description of the transaction.

eg: Invalid Secure OTP by Customer, Card Details already registered

4.

Transaction Id

trxId

Transaction ID (Use this id for Convert to sale)

5.

Amount

amount

Amount  (Use this Amount for Convert to sale)

6.

TID

tid

Terminal ID provided from Mobiversa

7.

MID

mid

Merchant ID provided from Mobiversa.

8.

Tips

tips

Tips (if any)

9.

RRN

rrn

Receiver Registration Number is a 10 Character Unique alphanumeric bank account, mobile wallet, credit or debit card Number.

10.

Trace

trace

Trace No of transaction

11.

Date

date

Date of transaction

12.

Time

time

Time of transaction

13.

Approve Code

approveCode

Approve Code

14.

Card No

cardNo

Card Number (masked with ‘xxxx’ and last 4 digits)

15.

TC

tc

 

16.

Batch No

batchNo

Batch no of transaction

17.

Card Holder Name

cardHolderName

Card Holder Name

18.

Card Type

cardType

Card Type (Credit/debit)

19.

Transaction Type

txnType

Transaction Type

20.

Mobile No

mobileNo

Mobile Number

CONVERT TO SALE:

TYPE: RESTful Web Service (JSON)

URL: https://demopod.mobiversa.com/api/ConvertToSale

HEADERS:

 

Field

Description

Mandatory

1.

username

To be given from Mobiversa on approval

Yes

2.

mobiApiKey

To be given from Mobiversa on approval

Yes

 

BODY

 

Field

Description

Mandatory

1.

trxId

Transaction ID

Yes

2.

amount

Amount of transaction

Yes

 

RESPONSE

 

Field

Description

Mandatory

1.

Response Code

responseCode

0000- Success

0001 – Failure

2.

Response Message

responseMessage

Success/Failure

3.

Response Description

responseDescription

This fields contains the detailed description of the transaction.

eg: Invalid Secure OTP by Customer, Card Details already registered

4.

Transaction Id

trxId

Transaction ID

5.

Amount

amount

Amount

6.

TID

tid

Terminal ID provided from Mobiversa

7.

MID

mid

Merchant ID provided from Mobiversa.

8.

Tips

tips

Tips (if any)

9.

RRN

rrn

Receiver Registration Number is a 10 Character Unique alphanumeric bank account, mobile wallet, credit or debit card Number.

10.

Trace

trace

Trace number of transactions

11.

Date

date

Date of transaction

12.

Time

time

Time of transaction

13.

Approve Code

approveCode

Approve Code

14.

Card No

cardNo

Card Number (masked with ‘xxxx’ and last 4 digits)

15.

TC

tc

 

16.

Batch No

batchNo

Batch no of transaction

17.

Card Holder Name

cardHolderName

Card Holder Name

18.

Transaction Type

txnType

Transaction Type

19.

Invoice ID

invoiceId

Invoice ID

Sample Request & Response:

PREAUTHORIZATION:

REQUEST

RESPONSE

CONVERT TO SALE:

REQUEST:

{

    "trxId": "2005150515180320000011000000000855",

    "amount": "2"

}

RESPONSE:

{

    "responseCode": "0000",

    "responseMessage": "SUCCESSFUL",

    "responseDescription": "EZYAuth Sale Done",

    "trxId": "2005150515180320000011000000000855",

    "amount": "2.0",

    "tid": "32000001",

    "mid": "000003203000009",

    "tips": "0.0",

    "rrn": "000000000005",

    "trace": "000855",

    "date": "15-May-2020",

    "time": "15:25:57",

    "approveCode": "000005",

    "cardNo": "XXXX 5005",

    "tc": "32000001000855",

    "batchNo": "",

    "cardHolderName": "mohammed",

    "txnType": "",

    "invoiceId": "MOBI1512"

}

 

Testing Page:

https://preauthdemo.mobiversa.com/Test3ds.aspx

OpenCart 3.0 - Download and Installation steps

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd