+ All Categories
Home > Documents > Introduction -...

Introduction -...

Date post: 30-Aug-2019
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
69
CERTUS FINANCE Payment Gateway API Specification API version 1.0.1 Document revision 2.1.5 Last Updated: 02 July 2019
Transcript
Page 1: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

CERTUS FINANCE Payment Gateway API SpecificationAPI version 1.0.1

Document revision 2.1.5Last Updated: 02 July 2019

Page 2: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

This document has been created by the Certus Technologies Ltd. Its contents may be changed without prior notice. External web links are provided for information only. Certus Technologies Ltd does not claim liability for access to and correctness of the referenced content.

COPYRIGHT

The information contained in this document is intended only for the person or entity to which it is addressed and contains confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact Certus Finance and delete the material from any computer.

Copyright is to be registered.

CONTACT INFORMATION

For questions relating to this document please contact:

Certus Technologies Ltd.

Email: [email protected]

Page 3: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

Introduction

Audience

Revision History

Overview

Gateway Interface

Standard Payment Flow

Basic Transactions

Purchase

Payment Page Hosted At Gateway Server

Request Example

Response Example

Refund

Request Example

Response Example1 - Success

Response Example2 - Fail

Get Transaction Status

Request Example

Response Example1 - Success

Response Example2 - Fail

Test Access

Demo Test Cards

Simulation of Response Code

Appendix A : Transaction Result Code

Appendix B : Sample Code

Encryption - (AES-128-ECB-PKCS5Padding)

Page 4: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

Hash/Digest (SHA256)

Signature Calculation

Receive Notification

Appendix C : Error Code

Page 5: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

1. Introduction1.1. Audience

Being technical in nature, this document is targeted to● Developers● Technical Consultants● System Analysts.

1.2. Revision HistoryThis specification is periodically updated to reflect the modifications made to the card processing interface. With each revision a new entry is added to the table below, including the date of and the reason for the version change. Additionally, vertical revision bars are placed in the margins to indicate the changes in the text.

Date Version API version Description Author

2018-03-07 2.0.0 1.0.1 Initial Version YS

2018-07-31 2.1.0 1.0.1 Removed web pay table YS

2018-10-26 2.1.1 1.0.1 Proper examples AS

2019-01-22 2.1.2 1.0.1 Added Error Codes DK

2019-03-28 2.1.3 1.0.1 Added Error Codes AB

2019-04-16 2.1.4 1.0.1 Changed Certus finance to Technologies Ltd

EB

2019-06-02 2.1.5 1.0.1 PHP function added and updated error codes

RB

2. Overview2.1. Gateway Interface

2.1.1. Domain Address : {domain-address}

● https://api.certus.finance

2.1.2. Application Protocol● It is strictly recommended that transaction requests are send using HTTPS protocol. ● Currently we support https request in JSON format only except. So you need to set

HTTP header ‘Content-Type: application/json’ for almost every request.

Page 6: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

2.2. Standard Payment Flow We basically provider two ways for integration

● Payment Page Hosted At Gateway Server:Merchant redirect to gateway to provide payment card detail.And no need to be PCI-DSS Compliance since merchant not accepting payment card detail at his server.

● Payment Page Hosted At Merchant Server:Merchant provide payment card detail along with order detail. Here merchant must be PCI-DSS Compliance. Details of this integration are not provided in the scope of current document.

User ( Brows

Issuer Bank

Redirect to Card

Issuer Bank

Post notification with result data in JSON format if notification URL provided (Don’t

Show Result page & Redirected to Merchant Return Url with appended

User provide

Show Gateway

Post Transaction Request via HTML

Merchant Gatewa

Page 7: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

3. Basic TransactionsFollowing transaction types are described in this chapterPurchase – Authorization and Capture in one single step.Refund – Credit an amount back to the cardholder (restrictions and limits apply)Status - Get transaction status

3.1. PurchaseA purchase deduct amount immediately. This transaction type is intended when the goods or services can be immediately provided to the customer.

3.1.1. Payment Page Hosted At Gateway ServerMerchant redirect to gateway to provide payment card detail.And no need to be PCI-DSS Compliance since merchant not accepting payment card detail at his server.Merchant need to POST HTML form with hidden “request” field & Gateway Server URL in HTML form “action” where “request” fields value contain JSON request in form Base64 encoding.

Availability and Restrictions:This transaction type is generally available.

Request

Data Description

URL https://{domain-address}/FE/rest/tx/purchase/w/execute

Method POST

Issuer Bank redirect

Redirect to Card

Issuer Bank

Post notification with result data in JSON format if notification URL provided (Don’t rely

Show Result page & Redirected to

If Result is THREE_D_ENROLLED then

Transaction Response( Result

Transaction Request

Merchant Gateway

Page 8: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

Input Type application/x-www-form-urlencoded

Request Example <html><head><body OnLoad="AutoSubmitForm();"><form name="payForm" action="https://{domain-address}/FE/rest/tx/purchase/w/execute" method="POST"><input type="hidden" name="request" value="ICAgew0KICAicmVxdWVzdFRpbWUiIDogIjIwMTYtMDYtMjMgMTY6MDM6MDMiLA0KICAibWVyY2hhbnRJZEhhc2giIDogIjRselVUWUh3MDFkVzVFbVBhbjAxTTA3aEVpV1VhRW1kS2wza3pwVVVxYWs9IiwNCiAgIm1lcmNoYW50QWNjb3VudElkSGFzaCIgOiAiSGEyd1p3ejQ2bDd2U2JveFZOeDMvREFVWXNJbmpqS3RBYkRTblBzZERuQT0iLA0KICAiZW5jcnlwdGVkQWNjb3VudFVzZXJuYW1lIiA6ICJpZ0s3WHphVEJydXNQYzNxNU9FT1FnPT0iLA0KICAiZW5jcnlwdGVkQWNjb3VudFBhc3N3b3JkIiA6ICJpZ0s3WHphVEJydXNQYzNxNU9FT1FnPT0iLA0KICAic2lnbmF0dXJlIiA6ICJCK2FCQ0FtVk5tN0RwK0xZMXNPdXgxMVZVNmlLbG8wYmdVb3AvMisvdUpzPSIsDQogICJsYW5nIiA6ICJlbiIsDQogICJ0cmFuc2FjdGlvbkluZm8iIDogew0KICAgICJhcGlWZXJzaW9uIiA6ICIxLjAuMCIsDQogICAgInJlcXVlc3RJZCIgOiAiREVNT19SRVFVRVNUMTQ2NjY3Nzk3MDA2NSIsDQogICAgInJlY3VycmVudFR5cGUiIDogIjEiLA0KICAgICJwZXJmb3JtM0RTIiA6ICIwIiwNCiAgICAib3JkZXJEYXRhIiA6IHsNCiAgICAgICJvcmRlcklkIiA6ICJERU1PX09SREVSMTQ2NjY3Nzk3MDA2NSIsDQogICAgICAib3JkZXJEZXNjcmlwdGlvbiIgOiAidGVzdCBvcmRlciIsDQogICAgICAiYW1vdW50IiA6ICIxMCIsDQogICAgICAiY3VycmVuY3lDb2RlIiA6ICJFVVIiLA0KICAgICAgImJpbGxpbmdBZGRyZXNzIiA6IHsNCiAgICAgICAgImZpcnN0TmFtZSIgOiAidGVzdCIsDQogICAgICAgICJsYXN0TmFtZSIgOiAidGVzdCIsDQogICAgICAgICJhZGRyZXNzMSIgOiAiYWRkcmVzczEiLA0KICAgICAgICAiYWRkcmVzczIiIDogImFkZHJlc3MyIiwNCiAgICAgICAgImNpdHkiIDogIkNvcmsiLA0KICAgICAgICAiemlwY29kZSIgOiAiMTIzNDUiLA0KICAgICAgICAic3RhdGVDb2RlIiA6ICJOMyIsDQogICAgICAgICJjb3VudHJ5Q29kZSIgOiAiSUUiLA0KICAgICAgICAibW9iaWxlIiA6ICIxMjM0NTY3ODkwIiwNCiAgICAgICAgInBob25lIiA6ICIxMjM0NTY3OCIsDQogICAgICAgICJlbWFpbCIgOiAidGVzdF9rQGdtYWlsLmNvbSIsDQogICAgICAgICJmYXgiIDogIisxMiAzNDU2IDc4IDEyMzQiDQogICAgICB9LA0KICAgICAgInNoaXBwaW5nQWRkcmVzcyIgOiBudWxsLA0KICAgICAgInBlcnNvbmFsQWRkcmVzcyIgOiBudWxsLA0KICAgICAgIm9yZGVyRGV0YWlsIiA6IHsNCiAgICAgICAgImludm9pY2VObyIgOiAiREVNT19JTlZfMTQ3Njg4MzM0ODY5NyIsDQogICAgICAgICJpbnZvaWNlRGF0ZSIgOiAiMjAxNi0xMC0xOCIsDQogICAgICAgICJtZXJjaGFudEFkZENpdHkiIDogIkNvcmsiLA0KICAgICAgICAibWVyY2hhbnRBZGRDb3VudHJ5IiA6ICJJRSIsDQogICAgICAgICJtZXJjaGFudEFkZExpbmUxIiA6ICJhZGRyZXNzIGxpbmUxIiwNCiAgICAgICAgIm1lcmNoYW50QWRkTGluZTIiIDogImFkZHJlc3MgbGluZTIiLA0KICAgICAgICAibWVyY2hhbnRBZGRTdGF0ZSIgOiAiTjMiLA0KICAgICAgICAibWVyY2hhbnRBZGRaaXBjb2RlIiA6ICIxMjM0NSIsDQogICAgICAgICJtZXJjaGFudEJ1c2luZXNzTmFtZSIgOiAidGVzdCBNZXJjaGFudCIsDQogICAgICAgICJtZXJjaGFudEVtYWlsIiA6ICJ0ZXN0X2tAZ21haWwuY29tIiwNCiAgICAgICAgIm1lcmNoYW50Rmlyc3ROYW1lIiA6ICJmaXJzdCIsDQogICAgICAgICJtZXJjaGFudExhc3ROYW1lIiA6ICJsYXN0IiwNCiAgICAgICAgIm1lcmNoYW50TWVtbyIgOiAibWVtby1hYmMiLA0KICAgICAgICAibWVyY2hhbnRQaG9uZSIgOiAiMTIzNDU2Nzg5MCIsDQogICAgICAgICJub3RlIiA6ICJvbmxpbmUgcGF5bWVudCIsDQogICAgICAgICJzdGF0dXMiIDogIlNFTlQiLA0KICAgICAgICAidG90YWxEaXNjb3VudEFtdCIgOiAyLA0KICAgICAgICAidG90YWxHcm9zc0FtdCIgOiAxMCwNCiAgICAgICAgInRvdGFsTmV0QW10VGF4SW5jIiA6ID

Page 9: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

EwLA0KICAgICAgICAidG90YWxTaGlwcGluZ0FtdCIgOiAyLA0KICAgICAgICAiYW10Q3VycmVuY3lDb2RlIiA6ICJFVVIiLA0KICAgICAgICAib3JkZXJJdGVtcyIgOiBbIHsNCiAgICAgICAgICAiYnJhbmQiIDogImJyYW5kIGEiLA0KICAgICAgICAgICJjYXRlZ29yeSIgOiAibW9iaWxlIiwNCiAgICAgICAgICAiaW1nVXJsIiA6IG51bGwsDQogICAgICAgICAgIml0ZW1OYW1lIiA6ICJtb2JpbGUxIiwNCiAgICAgICAgICAicXR5IiA6IDEsDQogICAgICAgICAgInVuaXREaXNjb3VudEFtdCIgOiAxLA0KICAgICAgICAgICJ1bml0R3Jvc3NBbXQiIDogNSwNCiAgICAgICAgICAidW5pdE5ldEFtdFRheEluYyIgOiA1DQogICAgICAgIH0sIHsNCiAgICAgICAgICAiYnJhbmQiIDogImJyYW5kIGIiLA0KICAgICAgICAgICJjYXRlZ29yeSIgOiAiZWxlY3Ryb25pYyIsDQogICAgICAgICAgImltZ1VybCIgOiBudWxsLA0KICAgICAgICAgICJpdGVtTmFtZSIgOiAidHYiLA0KICAgICAgICAgICJxdHkiIDogMSwNCiAgICAgICAgICAidW5pdERpc2NvdW50QW10IiA6IDEsDQogICAgICAgICAgInVuaXRHcm9zc0FtdCIgOiA1LA0KICAgICAgICAgICJ1bml0TmV0QW10VGF4SW5jIiA6IDUNCiAgICAgICAgfSBdDQogICAgICB9DQogICAgfSwNCiAgICAic3RhdGVtZW50VGV4dCIgOiAiIiwNCiAgICAiY2FuY2VsVXJsIiA6ICJodHRwOi8vbG9jYWxob3N0OjgwODAvRkUtV2ViL2Vycm9yLmpzcCIsDQogICAgInJldHVyblVybCIgOiAiaHR0cDovL2xvY2FsaG9zdDo4MDgwL0ZFLVdlYi9yZXR1cm4uanNwIiwNCiAgICAibm90aWZpY2F0aW9uVXJsIiA6ICJodHRwOi8vbG9jYWxob3N0OjgwODAvRkUtV2ViL25vdGlmaWNhdGlvbi5qc3AiDQogIH0NCn0="><SCRIPT >function AutoSubmitForm() { document.downloadForm.submit();}</SCRIPT><h3>Transaction is in progress. Please wait...</h3></body></html>

Where ‘request’ field's value is JSON in form of Base64 encoding. Please check below JSON Example.

JSON Example {

"requestTime" : "2018-03-12 13:17:26", "mId" : "4lzUTYHw01dW5EmPan01M07hEiWUaEmdKl3kzpUUqak=", "maId" : "Ha2wZwz46l7vSboxVNx3/DAUYsInjjKtAbDSnPsdDnA=", "userName" : "igK7XzaTBrusPc3q5OEOQg==", "password" : "igK7XzaTBrusPc3q5OEOQg==", "signature" : "RHlXg/uzcHzcVVBze6/QkfCNcOP0NwVLC+LGWXSEKmc=", "lang" : "en", "metaData" : { "merchantUserId" : "c8955bd1-357c-410f-bbd3-9ffd7e2a235a" }, "txDetails" : { "apiVersion" : "1.0.1", "requestId" : "DEMO_REQUEST1466677970065", "recurrentType" : "1", "perform3DS" : "0", "orderData" : { "orderId" : "DEMO_ORDER1466677970065",

Page 10: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

"orderDescription" : "test order", "amount" : "10", "currencyCode" : "EUR", "billingAddress" : { "firstName" : "test", "lastName" : "test", "address1" : "address1", "address2" : "address2", "city" : "Cork", "zipcode" : "12345", "stateCode" : "N3", "countryCode" : "IE", "mobile" : "+16362323828", "phone" : "+16362323828", "email" : "[email protected]", "fax" : "+16362323828" }, "shippingAddress" : { "firstName" : "test", "lastName" : "test", "address1" : "address1", "address2" : "address2", "city" : "Cork", "zipcode" : "12345", "stateCode" : "N3", "countryCode" : "IE", "mobile" : "+16362323828", "phone" : "+16362323828", "email" : "[email protected]", "fax" : "+12 3456 78 1234" }, "personalAddress" : { "firstName" : "test", "lastName" : "test", "address1" : "address1", "address2" : "address2", "city" : "Cork", "zipcode" : "12345", "stateCode" : "N3", "countryCode" : "IE", "mobile" : "+16362323828", "phone" : "+16362323828", "email" : "[email protected]", "fax" : "+12 3456 78 1234" }, "orderDetail" : { "invoiceNo" : "DEMO_INV_1476883348697", "invoiceDate" : "2017-10-18",

Page 11: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

"mctAddressCity" : "Cork", "mctAddressCountry" : "IE", "mctAddressLine1" : "address line1", "mctAddressLine2" : "address line2", "mctAddressState" : "N3", "mctAddressZipcode" : "12345", "mctBusinessName" : "test Merchant", "mctEmail" : "[email protected]", "mctFirstName" : "first", "mctLastName" : "last", "mctMemo" : "memo-abc", "mctPhone": "+1234567890", "note" : "online payment", "status" : "SENT", "totalDiscountAmt" : 2, "totalGrossAmt" : 10, "totalNetAmtTaxInc" : 10, "totalShippingAmt" : 2, "amtCurrencyCode" : "EUR", "ItemList" : [ { "brand" : "brand a", "category" : "mobile", "imgUrl" : null, "itemName" : "mobile1", "qty" : 1, "unitDiscountAmt" : 1, "unitGrossAmt" : 5, "unitNetAmtTaxInc" : 5 }, { "brand" : "brand b", "category" : "electronic", "imgUrl" : null, "itemName" : "tv", "qty" : 1, "unitDiscountAmt" : 1, "unitGrossAmt" : 5, "unitNetAmtTaxInc" : 5 } ] } }, "statement" : "", "cancelUrl" : "http://localhost:8080/FE-Web/error.jsp", "returnUrl" : "http://localhost:8080/FE-Web/return.jsp", "notificationUrl" : "http://localhost:8080/FE-Web/notification.jsp" }}

Page 12: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

Request Fields ( JSON ) Name Type Size Description RequiredmId String 44 Hash of MerchantId using SHA-

256 into Base64 encoded format. Provided by Gateway - differ in test & live. Please check Appendix: Sample Code - Hash for help.

Yes

maId String 44 Hash of MerchantAccountId usingSHA-256 into Base64 encoded format. Provided by Gateway - differ in test & live. Please check Appendix: Sample Code - Hash for help.

Yes

userName String - Encryption of account username using algorithm AES-ECB-PKCS5Padding (128) into Base64 encoded format. Provided by Gateway - differ in test & live.Please check Appendix: Sample Code - Encryption for help.

Yes

password String - Encryption of account password using algorithm AES-ECB-PKCS5Padding (128) into Base64 encoded format.Provided by Gateway - differ in test & live.Please check Appendix: Sample Code - Encryption for help.

Yes

lang String 2-5 ISO 639-2 Ex. “en”-english,”ru”-russian etc. Default “en”

No

requestTime String 19 YYYY-MM-DD hh:mm:ss Ex. “2014-03-16 14:32:56”

No

paymentMode String - Optional. Value can be “CC”,”BTC”.If not provided then gateway payment page will show all possible payment methods of account.If provided specific crypto payment method like BTC then gateway payment page will show BTC payment option only.

No

metaData Object Collection of transaction related merchant specific fields

merchantUserId String 1-100 Value can be any UUID coming from merchant side .For example

Yes

Page 13: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

c8955bd1-357c-410f-bbd3-9ffd7e2a235a

txDetails Object Collection of transaction related fields

apiVersion String 5 Current Version “1.0.1” YesrequestId String 1-36 Unique id per request per

merchant account. requestId - unique for each request.Ex. req_purchase_pizza111, req_refund_of_pizza111

Yes

recurrentType String 1 “1” – Single (Cannot perform recurrent). “2” – Initial (Can perform recurrent on original transaction).“3” – Repeated.Default Value is “1”Value type should be String.

No

perform3DS String 1 “0” - Disable 3DS for requested transaction“1” - Enable 3DS for requested transactionValue type should be String.

No

orderData Object Collection of order related fields YesorderId String 1-36 Unique id per payment(i.e.

authorization or purchase)per merchant account. orderID - remains same throughout a tx life cycle and all its children.Ex. ord_pizza_111 remains same for purchase, same for its refund, same for its chargeback(if any)

Yes

orderDescription String 0-100 Order description Yesamount String 1-16 Ex. “10”, “10.50”. Value type

should be String.Yes

currencyCode String 3 ISO 4217 currency code. Ex. “USD”,”RUB”.

Yes

billingAddress Object Collection of billing address related fields

No**

firstName String 2-64 First name. clastName String 2-64 Last name. Noaddress1 String 0-256 Street name. Noaddress2 String 0-256 Street number. Nocity String 1-32 City name. Nozipcode String 4-12 Postal/Zip Code. Ex. “123456”

Value type should be String.No

stateCode String 2 it must be valid and for Europe need to mention 2 chars ISO country code

No

Page 14: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

countryCode String 2 ISO 3166-1. 2-digit country code. Nomobile String 9-32 Contact mobile number. Ex.

“+911234567890” with +, country code, number without spaces and dashes

No

phone String 5-32 Land-Line number. Ex. “+020123456”,

No

email String 7-50 Email address. Ex. “[email protected]

No**

fax String 5-32 Fax number. Ex. “ +49 9131 23 28732”

No

shippingAddress Object Collection of shipping address related fields(fields are same as billingAddress )

No

personalAddress Object Collection of persoanl address related fields(fields are same as billingAddress)

No

orderDetail Object Collection of order related details Cond**invoiceNo String 1-36 Ex. “20161107-1201-12” YesinvoiceDate String 12 yyyy-MM-dd z NomctAddressCity String 1-32 Merchant city name NomctAddressCountry String 2 ISO 3166-1. 2-digit country code. NomctAddressLine1 String 0-256 Street name. NomctAddressLine2 String 0-256 Street number. NomctAddressState String 2 it must be valid and for Europe

need to mention 2 chars ISO country code

No

mctAddressZipcode String 4-12 Postal/Zip Code. Ex. “123456”Value type should be String.

No

mctBusinessName String 1-50 NomctEmail String 7-50 Email address.

Ex.“[email protected]”No

mctFirstName String 2-64 Last name. NomctLastName String 2-64 Last name. NomctMemo String 1-36 YesmctPhone String 5-32 Ex. “+020123456” Nonote String 1-100 Nostatus String DRAFT, SENT, PAID, CANCELLED NototalDiscountAmt Number Discount amount NototalGrossAmt Number Gross amount NototalShippingAmt Number Extra shipping amount NototalNetAmtTaxInc Number Net amount including tax amount No ItemList Object Collection item related details Yes brand String No category String No

Page 15: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

imgUrl String No itemName String Yes qty Number No unitDiscountAmt Number Discount amount No unitGrossAmt Number Gross amount No unitNetAmtTaxInc Number Net amount including tax amount Nostatement String 0-45 This is the field, which is shown on

the customer’s card statement and can be used by the merchant for reference purposes. This feature is not supported by all the acquirers.

No

cancelUrl String 10-2000 Merchant’s cancel URL. YesreturnUrl String 10-2000 Merchant’s return URL. YesnotificationUrl String 10-2000 Merchant’s notification URL. Nosignature String 44 Request signature.

Please check below “Request Signature Calculation” for more detail about signature creation using field's value.

Yes

Note: ** - From our end it's optional but some Acquirer may require it.

Request Signature Calculation:

Required Fields with sequence for payment signature creation

requestTime, mId, maId, userName, password,(txDetails->)apiVersion, requestId, recurrentType,perform3DS,orderId, orderDescription, amount, currencyCode,(txDetails->billingAddress->)firstName, lastName, address1, address2, city, zipcode, stateCode, countryCode, mobile, phone, email, fax (txDetails->shippingAddress->)firstName, lastName, address1, address2, city, zipcode, stateCode, countryCode, mobile, phone, email, fax(txDetails->personalAddress->)firstName, lastName, address1, address2, city, zipcode, stateCode, countryCode, mobile, phone, email, fax (txDetails->)statement,cancelUrl,returnUrl,notificationUrl

1. Ignore fields whose value is null.2. Trim(remove left & right space) fields value.3. Now concatenate all above fields values in mentioned sequence.

Concatenated values for Request Example - 2018-03-12 13:17:264lzUTYHw01dW5EmPan01M07hEiWUaEmdKl3kzpUUqak=Ha2wZwz46l7vSboxVNx3/

Page 16: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

DAUYsInjjKtAbDSnPsdDnA=igK7XzaTBrusPc3q5OEOQg==igK7XzaTBrusPc3q5OEOQg==1.0.1DEMO_REQUEST146667797006510DEMO_ORDER1466677970065test order10EURtesttestaddress1address2Cork12345N3IE+16362323828+16362323828test_k@gmail.com+16362323828testtestaddress1address2Cork12345N3IE+16362323828+16362323828test_k@gmail.com+12 3456 78 1234testtestaddress1address2Cork12345N3IE+16362323828+16362323828test_k@gmail.com+12 3456 78 1234http://localhost:8080/FE-Web/error.jsphttp://localhost:8080/FE-Web/return.jsphttp://localhost:8080/FE-Web/notification.jsp

4. Calculate signature by passing concatenated values & merchant’s Key to function in “Appendix B: Sample Code - Signature Calculation” & you will get request signature.

Response After submitting Gateway payment page, gateway server will process transaction, then redirect to merchant site with transaction final result(if merchant provided notification URL then Gateway server post notification contain transaction final result.)If user tick “save card” checkbox on payment page then Gateway return saved “cardId” which can be used for future payment.

In case of result Completed(resultCode = 1) or Failed(resultCode = 0) - Gateway redirect to merchant ‘returnUrl’ with added key-value fields contain payment result detail. In case of result Cancelled(resultCode = 4) - Gateway redirect to merchant ‘cancelUrl’ with added key-value fields contain payment result detail. Check “Appendix A: Transaction Result Code” for all result code.

Response Example Success Result in URL Examplehttp://localhost:8080/FE-Web/return.jsp?responseTime=2017-06-23+16%3A03%3A16&txId=26ffa8ff-3988-4ecb-9565-531b31de4246&txTypeId=3&recurrentTypeId=1&requestId=DEMO_REQUEST1466677970065&orderId=DEMO_ORDER1466677970065&sourceAmount=10.000&sourceCurrencyCode=EUR&amount=10.960&currencyCode=USD&resultCode=1&message=Transaction+completed+successfully.&resultReasonCode=1&ccNumber=401200xxxxxx1003&cardId=8e890c96-548a-4c82-99af-b6bea23a4138&signature=kNE%2Btcj%2BGngX%2BcQ7WInJopg5sVYaCMvJqSFGAsLeGBo%3D

Failed Result in URL Examplehttp://localhost:8080/FE-Web/return.jsp?responseTime=2017-06-24+12%3A46%3A37&txId=9b786f81-c6c7-47e9-889e-7bd50fc15cff&txTypeId=3&recurrentTypeId=1&requestId=DEMO_REQUEST1466752290695&orderId=DEMO_ORDER1466752290695&sourceAmount=10.000&sourceCurrencyCode=EUR&amount=10.960&currencyCode=USD&resultCode=0&message=Transaction+failed.&resultReasonCode=651&ccNumber=401200xxxxxx1003&cardId=8e890c96-548a-4c82-99af-b6bea23a4138&signature=WU9IrJYUI5iw1Q%2FnMZR0wbr0pfI1h4sV3TP78V8NG6Q

Page 17: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

%3D&errorCode=651&errorMessage0=ACQUIRER_ERROR%3A+PIN+retry+exceeded.&errorAdvice0=

URL Response Signature Calculation:

Required Fields with sequence for signature calculation

responseTime,txId,txTypeId,recurrentTypeId,requestId,orderId,sourceAmount, sourceCurrencyCode, amount, currencyCode, resultCode, resultReasonCode, ccNumber, cardId.

1. Ignore fields whose value is null.2. Trim(remove left & right space) fields value.3. Now concatenate all above fields values in mentioned sequence.

Concatenated values for Success Result Example - 2017-06-23 16:03:1626ffa8ff-3988-4ecb-9565-531b31de424631DEMO_REQUEST1466677970065DEMO_ORDER146667797006510.000EUR10.960USD11401200xxxxxx10038e890c96-548a-4c82-99af-b6bea23a4138

4. Calculate signature by passing concatenated values & merchant’s Key to function in “Appendix B: Sample Code - Signature Calculation” & you will get request signature.

Success Result in Notification Example { "responseTime" : "2017-06-23 16:03:15", "result" : { "resultCode" : "1", "resultMessage" : "Transaction completed successfully.", "errorId" : null, "error" : null, "reasonCode" : null }, "signature" : "0VH2ah63DdFDh%2F0m7AWFZYVWTDknU1BQ%2FxIyUkwQU8M%3D", "txId" : "26ffa8ff-3988-4ecb-9565-531b31de4246", "txType" : "PURCHASE", "txTypeId" : "3", "recurrentTypeId" : "1", "requestId" : "DEMO_REQUEST1466677970065", "orderId" : "DEMO_ORDER1466677970065", "sourceAmount" : { "amount" : "10.000", "currencyCode" : "EUR" }, "amount" : { "amount" : "10.96", "currencyCode" : "USD"

Page 18: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

}, "ccNumber" : "401200xxxxxx1003", "cardId" : "8e890c96-548a-4c82-99af-b6bea23a4138"}

Failed Result in Notification Example{ "responseTime" : "2017-06-24 17:29:01", "result" : { "resultCode" : "0", "resultMessage" : "Transaction failed.", "errorId" : null, "error" : [ { "errorCode" : "651", "errorMessage" : "ACQUIRER_ERROR: PIN retry exceeded.", "advice" : null } ], "reasonCode" : "651" }, "signature" : "JdCSjPyflZigKuFGQCJFtgCh1kYPjfb%2FRI0YVJCT4XA%3D", "txId" : "5cf64799-29f9-405b-9630-6e5f066677fe", "txType" : "PURCHASE", "txTypeId" : "3", "recurrentTypeId" : "1", "requestId" : "DEMO_REQUEST1466769463278", "orderId" : "DEMO_ORDER1466769463278", "sourceAmount" : { "amount" : "10.000", "currencyCode" : "EUR" }, "amount" : { "amount" : "10.96", "currencyCode" : "USD" }, "ccNumber" : "401200xxxxxx1003", "cardId" : "8e890c96-548a-4c82-99af-b6bea23a4138"}

Notification Response Signature Calculation

Required Fields with sequence for signature calculation

responseTime, txId,txTypeId,recurrentTypeId,requestId,orderId,amount(from sourceAmount), currencyCode(from sourceAmount),amount(from amount),currencyCode(from amount),resultCode( from result),reasonCode( from result),ccNumber,cardId

Page 19: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

1. Ignore fields whose value is null.2. Trim(remove left & right space) fields value.3. Now concatenate all above fields values in mentioned sequence.

Concatenated fields value for above Success Notification Result Example -2018-03-12 13:17:2626ffa8ff-3988-4ecb-9565-531b31de424631DEMO_REQUEST1466677970065DEMO_ORDER146667797006510.000EUR10.96USD1401200xxxxxx10038e890c96-548a-4c82-99af-b6bea23a4138

4. Calculate signature by passing concatenated values & merchant’s Key to function in “Appendix B: Sample Code - Signature Calculation” & you will get request signature.

3.2. RefundRefund allows to credit the customer, e.g. in case of returned goods or cancellation. To post a Refund request, a valid “txId” from a former Capture or Purchase transaction is required. It is only possible to credit an amount less than or equal to the initial transaction as with the original transaction.

Request

Data Description

URL https://{domain-address}/FE/rest/tx/sync/refund

Method POST

Input Type application/json

Request Example{ "requestTime": "2018-03-09 12:30:13", "mId": "4lzUTYHw01dW5EmPan01M07hEiWUaEmdKl3kzpUUqak=", "maId": "Ha2wZwz46l7vSboxVNx3/DAUYsInjjKtAbDSnPsdDnA=", "userName": "igK7XzaTBrusPc3q5OEOQg==", "password": "igK7XzaTBrusPc3q5OEOQg==", "signature": "yArsNa8DQefiS7nUIk7w1caoriCnIcTycxTywgI/S0c=", "apiVersion": "1.0.1",

Page 20: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

"requestId": "DEMOMR1467092114323", "previousTxId": "c9bf806d-9424-481f-b438-ad15ba462005", "amount": "10", "statement": ""}

Request FieldsName Type Size Description RequiredmId String 44 Hash of MerchantId using SHA-

256 into Base64 encoded format. Provided by Gateway - differ in test & live. Please check Appendix: Sample Code - Hash for help.

Yes

maId String 44 Hash of MerchantAccountId usingSHA-256 into Base64 encoded format. Provided by Gateway - differ in test & live. Please check Appendix: Sample Code - Hash for help.

Yes

userName String - Encryption of account username using algorithm AES-ECB-PKCS5Padding (128) into Base64 encoded format. Provided by Gateway - differ in test & live.Please check Appendix: Sample Code - Encryption for help.

Yes

password String - Encryption of account password using algorithm AES-ECB-PKCS5Padding (128) into Base64 encoded format.Provided by Gateway - differ in test & live.Please check Appendix: Sample Code - Encryption for help.

Yes

requestTime String 19 YYYY-MM-DD hh:mm:ss Ex. “2014-03-16 14:32:56”

No

apiVersion String 5 Current Version “1.0.1” YesrequestId String 1-36 Unique id per request per

merchant account. requestId - unique for each request.Ex. req_purchase_pizza111, req_refund_of_pizza111

Yes

previousTxId String 36 Previous transaction unique id of EPG system which need to be

Yes

Page 21: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

used in referral transaction like capture, reversal, refund etc.

amount String 1-16 Ex. “10”, “10.50”. Value type should be String.

Yes

statement String 0-45 This is the field, which is shown on the customer’s card statement and can be used by the merchant for reference purposes. This feature is not supported by all the acquirers.

No

signature String 44 Request signature. Please check below “Request Signature Calculation” for more detail about signature creation using field's value.

Yes

Request Signature Calculation:

Required Fields with sequence for payment signature creation

requestTime, mId, maId, userName, password,apiVersion, requestId, previousTxId,amount,statement.

1. Ignore fields whose value is null.2. Trim(remove left & right space) fields value.3. Now concatenate all above fields values in mentioned sequence.2018-03-09 12:30:134lzUTYHw01dW5EmPan01M07hEiWUaEmdKl3kzpUUqak=Ha2wZwz46l7vSboxVNx3/DAUYsInjjKtAbDSnPsdDnA=igK7XzaTBrusPc3q5OEOQg==igK7XzaTBrusPc3q5OEOQg==

4. Calculate signature by passing concatenated values & merchant’s Key to function in “Appendix B: Sample Code - Signature Calculation” & you will get request signature.

ResponseIf merchant receive resultCode=1 that means transaction completed successfully.Check “Appendix A: Transaction Result Code” for all result code.

Response Example1 - Success{ "responseTime": "2018-03-09 12:30:10", "result": { "resultCode": "1", "resultMessage": "Transaction completed successfully.", "errorId": null, "error": null,

Page 22: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

"reasonCode": "1" }, "signature": "9h7IxwjFhw4Cl0cW7VCxwG0uijN9JpJHTxBPeQ/zYQk=", "txId": "8364bea5-387d-4c02-8a4c-f7c3a960bc86", "txTypeId": "5", "txType": "REFUND", "recurrentTypeId": "1", "requestId": "DEMOMR1467092114323", "orderId": "DEMO_ORDER1520598071885", "sourceAmount": { "amount": "10.00", "currencyCode": "USD" }, "amount": { "amount": "10.00", "currencyCode": "USD" }, "ccNumber": "422345xxxxxx0018", "previousTxId": "c9bf806d-9424-481f-b438-ad15ba462005"}

Response Example2 - Fail{ "responseTime" : "2017-06-28 13:15:00", "result" : { "resultCode" : "0", "resultMessage" : "Transaction failed.", "errorId" : null, "error" : [ { "errorCode" : "600", "errorMessage" : "ACQUIRER_ERROR: Acquirer internal system error.", "advice" : null } ], "reasonCode" : "600" }, "signature" : "v1CnjjsJKt8nAyJi27SC3N8aLHu8F57ppEFKdh5uN5s=", "txId" : "ad23b14b-bffe-42fb-9730-c21dcb09ac56", "txTypeId" : "5", "txType" : "REFUND", "recurrentTypeId" : "1",

Page 23: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

"requestId" : "DEMOMR1467098914323", "orderId" : "DEMO_ORDER1467098889099", "sourceAmount" : { "amount" : "10.000", "currencyCode" : "EUR" }, "amount" : { "amount" : "10.960", "currencyCode" : "USD" }, "ccNumber" : "412570xxxxxx0007", "previousTxId" : "bc72106c-b519-4337-b2bf-81f915c36839"}

Response Signature Calculation

Required Fields with sequence for signature calculation

responseTime, txId, txTypeId, recurrentTypeId, requestId, orderId, (sourceAmount->)amount, currencyCode, (amount->)amount, currencyCode, (result->)resultCode, reasonCode, ccNumber,previousTxId

1. Ignore fields whose value is null.2. Trim(remove left & right space) fields value.3. Now concatenate all above fields values in mentioned sequence.

Concatenated Values For above success example -2017-06-28 12:16:3128fb419f-ee19-485d-ba18-0a4439fa906f51DEMOMR1467095988221DEMO_ORDER146709587489910.000EUR10.960USD11412570xxxxxx0007844a0038-3bf2-4bb5-bad5-059be5f66dad

4. Calculate signature by passing concatenated values & merchant’s Key to function in “Appendix B: Sample Code - Signature Calculation” & you will get request signature.

3.3. Get Transaction StatusIt allows to get previous transaction basic information.

Request

Data Description

Page 24: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

URL https://{domain-address}/FE/rest/tx/getStatus

Method POST

Input Type application/json

Request Example{ "requestTime" : "2018-03-09 07:25:03", "apiVersion" : "1.0.1", "mId" : "4lzUTYHw01dW5EmPan01M07hEiWUaEmdKl3kzpUUqak=", "maId" : "Ha2wZwz46l7vSboxVNx3/DAUYsInjjKtAbDSnPsdDnA=", "userName" : "igK7XzaTBrusPc3q5OEOQg==", "password" : "igK7XzaTBrusPc3q5OEOQg==", "txId" : "1b70a91f-7699-4471-bdd8-4c19cfb98922"}

Request FieldsName Type Size Description RequiredmId String 44 Hash of MerchantId using SHA-

256 into Base64 encoded format. Provided by Gateway - differ in test & live. Please check Appendix: Sample Code - Hash for help.

Yes

maId String 44 Hash of MerchantAccountId usingSHA-256 into Base64 encoded format. Provided by Gateway - differ in test & live. Please check Appendix: Sample Code - Hash for help.

Yes

userName String - Encryption of account username using algorithm AES-ECB-PKCS5Padding (128) into Base64 encoded format. Provided by Gateway - differ in test & live.Please check Appendix: Sample Code - Encryption for help.

Yes

password String - Encryption of account password using algorithm AES-ECB-PKCS5Padding (128) into Base64 encoded format.

Yes

Page 25: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

Provided by Gateway - differ in test & live.Please check Appendix: Sample Code - Encryption for help.

apiVersion String 5 Current Version “1.0.1” YestxId String 1-36 Previous system transaction id. Yes

Response Example1 - Success{ "responseTime": "2018-03-09 07:25:11", "result": { "resultCode": "1", "resultMessage": "Transaction completed successfully.", "errorId": null, "error": null, "reasonCode": "1" }, "signature": "cH50VzaslHq7urGCnC2dx3nrHcbrYHXYAzdL5DY0z14=", "txId": "1b70a91f-7699-4471-bdd8-4c19cfb98922", "txTypeId": "3", "txType": "PURCHASE", "recurrentTypeId": "1", "requestId": "DEMO_REQUEST1520423551668", "orderId": "DEMO_ORDER1520423551668", "sourceAmount": { "amount": "10.00000000", "currencyCode": "USD" }, "amount": { "amount": "10.00000000", "currencyCode": "USD" }, "ccNumber": "412570xxxxxx0007", "cardId": null}

Response Example2 - Fail{ "responseTime" : "2018-03-09 17:39:23", "result" : { "resultCode" : "0", "resultMessage" : "Transaction failed.", "errorId" : null, "error" : [ { "errorCode" : "650",

Page 26: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

"errorMessage" : "ACQUIRER_ERROR: Transaction has been denied by acquirer.", "advice" : null } ], "reasonCode" : "650" }, "signature" : "ZaccVVJEp35/qvWrr0EVSQ6KWZlqJRO0tnx0+9r+8yg=", "txId" : "14f7ce38-832b-4f4a-8c89-590388645bc0", "txType" : "PURCHASE", "txTypeId" : "3", "recurrentTypeId" : "1", "requestId" : "DEMO_REQUEST1472463013908", "orderId" : "DEMO_ORDER1472463013908", "sourceAmount" : { "amount" : "10.000", "currencyCode" : "RUB" }, "amount" : { "amount" : "0.160", "currencyCode" : "USD" }, "ccNumber" : "541333xxxxxx1006", "cardId" : null}

Response Signature Calculation

Required Fields with sequence for signature calculation

responseTime, txId, txTypeId, recurrentTypeId, requestId, orderId, (sourceAmount->)amount, currencyCode, (amount->)amount, currencyCode, (result->)resultCode, reasonCode, ccNumber,cardId.

1. Ignore fields whose value is null.2. Trim(remove left & right space) fields value.3. Now concatenate all above fields values in mentioned sequence.

Concatenated Values For above success example -2018-03-09 07:25:111b70a91f-7699-4471-bdd8-4c19cfb9892231DEMO_REQUEST1520423551668DEMO_ORDER152042355166810.000USD10.000USD11412570xxxxxx0007

4. Calculate signature by passing concatenated values & merchant’s Key to function in “Appendix B: Sample Code - Signature Calculation” & you will get request signature.

4. Test Access URL: https://sandbox.certus.finance/FE/rest/tx/<Transaction-Service> Merchant ID : 459159e8-1ff3-4f79-b0c1-19f8302a0424

Page 27: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

Merchant Account ID: 5914d99e-e72c-43d0-a788-7efdc3a53f96 Key : 1234567890098765 User Name: account1 Password: account1

5. Demo Test Cards

Brand Card NumberVISA 4390544362820125MASTER 5555555555554444AMEX 372000541900700JCB 3530111333300000DISCOVER 6011111111111117

Note:1. For above test cards, you can use any valid expiry date & cvv.2. Above card can be used for test 3DS also by setting field ‘perform3DS’ value 1. 3DS password is 123456.

6. Simulation of Response CodeWhen sending test transactions to our system you can create specific error messages. To do so, please set error code value in request field ‘statement’.For example,If ‘statement’ = 652 : You will directly get Error: ‘Sufficient funds not available.’If ‘statement’ = 652 & perform3DS=1 : You redirect to 3DS authentication Page & then give Error:‘Sufficient funds not available.’Please check “Appendix C: Error Code".

Example Request JSON:{ "remoteIP": "127.0.0.1", "requestTime": "2018-03-07 12:00:30", "mId": "4lzUTYHw01dW5EmPan01M07hEiWUaEmdKl3kzpUUqak=", "maId": "Ha2wZwz46l7vSboxVNx3/DAUYsInjjKtAbDSnPsdDnA=", "userName": "igK7XzaTBrusPc3q5OEOQg==", "password": "igK7XzaTBrusPc3q5OEOQg==", "signature": "gzFcWb2RiG5r5LNowEss9tQj0swmQaAYv0z0iAjmadE=", "lang": "en", "metaData": { "merchantUserId": "85f5f5f3-6662-4804-bbc2-ad50d984dd7e" }, "txDetails": {

Page 28: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

"apiVersion": "1.0.1",… Removed block ... "orderDetail": { "invoiceNo": "DEMO_INV_1476883348697", "invoiceDate": "2018-03-07", "mctFirstName": "first", "mctLastName": "last", … Removed block …

}, "statement": "652", "cancelUrl": "http://localhost:8080/FE-Web/error.jsp", "returnUrl": "http://localhost:8080/FE-Web/return.jsp", "notificationUrl": "http://localhost:8080/FE-Web/notiifcation.jsp" }}

Example Response JSON:{ "responseTime": "2018-10-26 06:29:43", "result": { "resultCode": "0", "resultMessage": "Transaction failed.", "errorId": null, "error": [ { "errorCode": "652", "errorMessage": "ACQUIRER_ERROR: Sufficient funds not available.", "advice": null } ], "reasonCode": "652" }, "signature": "CTyZRaWxTKdCrEjavEo5t/RbprOBi9kg9bc39CLVGmM=",

… Removed block …

}

Appendix A : Transaction Result CodeCode Description-2 Transaction is 3DS enrolled OR checking for 3DS enrollment.

Redirect to card issuer for 3DS authentication.

Page 29: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

-1 Transaction is in process.0 Transaction has failed.1 Transaction has completed successfully.2 Transaction is pending i.e was successfully received and is queued

for transmitting to provider.3 Transaction created, not yet completed.4 Transaction was cancelled.5 Transaction is expired. So its failed.

Appendix B : Sample Code

Encryption - (AES-128-ECB-PKCS5Padding)Below code return encrypted result in Base64 encoding.Below code used to calculate value for fields : userName, password.

Java:public String encryptDataInBase64(String input,String key)

{ try {

byte []keyBytes = key.getBytes("UTF-8");javax.crypto.spec.SecretKeySpec skeySpec = new

javax.crypto.spec.SecretKeySpec(keyBytes, "AES");//key is 128 bit.javax.crypto.Cipher cipher =

javax.crypto.Cipher.getInstance("AES");//Java Uses ECB as the default mode, and PKCS5Padding as the default padding

cipher.init(Cipher.ENCRYPT_MODE, skeySpec);byte []inputBytes = input.getBytes("UTF-8");//encryptbyte[] encrypted = cipher.doFinal(inputBytes);

String encryptDataInBase64 = org.apache.commons.codec.binary.Base64.encodeBase64String(encrypted)

return encryptDataInBase64; }catch(Exception e) {       

//rethrow your App Exception here }

}

PHP:[PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0]function encryptDataInBase64($input, $key)

       {$alg = MCRYPT_RIJNDAEL_128; // AES$mode = MCRYPT_MODE_ECB; // ECB

//padding$block_size = mcrypt_get_block_size($alg, $mode);

Page 30: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

$pad = $block_size - (strlen($input) % $block_size);$input .= str_repeat(chr($pad), $pad);

$crypttext = mcrypt_encrypt($alg, $key, $input , $mode);$encryptDataInBase64 = base64_encode($crypttext);return $encryptDataInBase64;

       }

[PHP 5 >= 5.3.0, PHP 7]function encryptDataInBase64($input, $key){ $alg = 'AES-128-ECB'; // AES-128 and ECB mode $ivsize = openssl_cipher_iv_length($alg); $iv = openssl_random_pseudo_bytes($ivsize); //perform encryption. $crypttext = openssl_encrypt($input,$alg,$key,OPENSSL_RAW_DATA,$iv); $encryptDataInBase64 = base64_encode($crypttext); return $encryptDataInBase64;}

.NETpublic string encryptDataInBase64(string data, string key){

byte[] keyArray = Encoding.UTF8.GetBytes(key);byte[] toEncryptArray = Encoding.UTF8.GetBytes(data);RijndaelManaged rDel = new RijndaelManaged();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateEncryptor();byte[] resultArray =

cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

string encryptDataInBase64 = Convert.ToBase64String(resultArray);

return encryptDataInBase64;}

JavaScript:Download package : https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/crypto-js/CryptoJS%20v3.1.2.zip

<script src="./rollups/aes.js"></script><script src="./components/mode-ecb-min.js"></script><!--script src="base64.js" ></script--><script>

// Create Base64 Object who can perform encode & decode. OR attach base64.js

Page 31: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}

function encryptDataInBase64(data,raw_key)//var raw_key = "1234567890098765";{

// We can this(but not supported in all browser)->encode:btoa(raw_key); decode:atob('data');var raw_keybase64 = Base64.encode(raw_key); var key = CryptoJS.enc.Base64.parse(raw_keybase64);

var encrypted = CryptoJS.AES.encrypt(data, key, { mode: CryptoJS.mode.ECB, padding:CryptoJS.pad.Pkcs7}); var encryptDataInBase64 = encrypted.ciphertext.toString(CryptoJS.enc.Base64); return encryptDataInBase64;

}

Hash/Digest (SHA256)Below code return hash/digest result in Base64 encoding.Below code used to calculate value for fields : mId, maId.

Java:public String hashDataInBase64(String input){

try{java.security.MessageDigest md =

java.security.MessageDigest.getInstance("SHA-256");byte[] digestBytes = md.digest(input.getBytes());String hashDataInBase64 =

org.apache.commons.codec.binary.Base64.encodeBase64String(digestBytes);

return hashDataInBase64;

}catch(Exception e){//rethrow your App Exception here}

}

Page 32: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

PHP:function hashDataInBase64($input)

   {$output = hash('sha256',$input,true);$hashDataInBase64 = base64_encode($output);return $hashDataInBase64;

     }

.NET:public string hashDataInBase64(byte[] data){

SHA256Managed hashstring = new SHA256Managed();byte[] hash = hashstring.ComputeHash(data);

string hashDataInBase64 = Convert.ToBase64String(hash);

return hashDataInBase64;}

JavaScript:Download package : https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/crypto-js/CryptoJS%20v3.1.2.zip

<script src="./rollups/sha256.js"></script><script>

function hashDataInBase64(data){ var hash = CryptoJS.SHA256(data); var hashDataInBase64 = hash.toString(CryptoJS.enc.Base64); return hashDataInBase64;}

Signature Calculation1. Ignore fields whose value is null.2. Trim(remove left & right space) specified fields value.3. Now concatenate all values in mentioned sequence.4. Calculate signature by passing concatenated values & merchant’s Key to below function.

Java:/*** Desc : *       "inputData" : Contains concatenation of all REQUIRED the input parameters in correct order as specified in the document. Each input

Page 33: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

parameter value should be trimmed off spaces (remove white spaces before and after the value).DO NOT include any null parameters.*                    Ex.1*                    String field1Value = "  firstname lastname"; //wrong - since string contain spaces at start.*                    String field1Value = "firstname lastname ";//wrong - since string contain spaces at end.*                    String field1Value = "firstname lastname"; //RIGHT - since no spaces at start & end. *                    *                    Ex.2  String field1Value = null; //Should NOT include in concatenation of value. *       Ex.*       String field1Value = "  firstname lastname"; *       String field2Value = "address1 ";      *       String field3Value = null;*              *       String inputData =  (field1Value==null)?"":field1Value.trim();*             inputData +=  (field2Value==null)?"":field2Value.trim(); *             inputData +=  (field3Value==null)?"":field3Value.trim();   *       Value of 'inputData' is=>firstname lastnameaddress1*       *       Lets say, key=>1234567890123456*       Result signature=>6J/5e9w+JLwCeu483PmmQRSJw/LPodbQEOd7NDr9jEY= * Return : String*/public String createSignature(String inputData,String key)throws Exception{

try{

byte []keyBytes = key.getBytes("UTF-8");

//key is 128 bit.javax.crypto.spec.SecretKeySpec skeySpec = new

javax.crypto.spec.SecretKeySpec(keyBytes, "AES");

//Java Uses ECB as the default mode, and PKCS5Padding as the default padding

javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance("AES");

cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, skeySpec);

byte []inputBytes = inputData.getBytes("UTF-8");//Perform encryption concatenation of all request parameter value

whose first & last spaces should be removed //and it should not be NULL byte[] encrypted = cipher.doFinal(inputBytes);

//Create SHA-256 digest objectjava.security.MessageDigest digestObj =

java.security.MessageDigest.getInstance("SHA-256");

//Perform digest on output of encryptionbyte[] digestBytes = digestObj.digest(encrypted);

Page 34: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

//Perform Base64 on output of digest. NOTE : Used apache common codec library.

String signature = org.apache.commons.codec.binary.Base64.encodeBase64String(digestBytes);

return signature;}catch(Exception e){

//rethrow your App Exception herethrow e;

}}

PHP:[PHP 4 >= 4.0.2, PHP 5, PHP 7 < 7.2.0, PECL mcrypt >= 1.0.0]function createSignature($input,$key){

$alg = MCRYPT_RIJNDAEL_128; // AES$mode = MCRYPT_MODE_ECB; // ECB//PKCS5Padding$block_size = mcrypt_get_block_size($alg, $mode);$pad = $block_size - (strlen($input) % $block_size);$input .= str_repeat(chr($pad), $pad);//perform encryption.$crypttext = mcrypt_encrypt($alg,$key, $input , $mode); //perform digest or hash on output of encryption.$output = hash('sha256',$crypttext,true);//perform base64 on output of digest/hash.$signature = base64_encode($output);return $signature ;

}

[PHP 5 >= 5.3.0, PHP 7]function createSignature($input,$key){ $alg = 'AES-128-ECB'; // AES-128 and ECB mode $ivsize = openssl_cipher_iv_length($alg); $iv = openssl_random_pseudo_bytes($ivsize); //perform encryption. $crypttext = openssl_encrypt($input,$alg,$key,OPENSSL_RAW_DATA,

$iv); //perform digest or hash on output of encryption. $output = hash('sha256',$crypttext,true); //perform base64 on output of digest/hash. $signature = base64_encode($output); return $signature ;}

.NET:public string createSignature(string data, string key){

byte[] keyArray = Encoding.UTF8.GetBytes(key);

Page 35: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

byte[] toEncryptArray = Encoding.UTF8.GetBytes(data);RijndaelManaged rDel = new RijndaelManaged();rDel.Key = keyArray;rDel.Mode = CipherMode.ECB;rDel.Padding = PaddingMode.PKCS7;ICryptoTransform cTransform = rDel.CreateEncryptor();byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);

//Sha256 digestSHA256Managed hashstring = new SHA256Managed();byte[] hash = hashstring.ComputeHash(resultArray);

//base64string signature = Convert.ToBase64String(hash);return signature;

}

JavaScript:Download package : https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/crypto-js/CryptoJS%20v3.1.2.zip<script src="./rollups/aes.js"></script><script src="./components/mode-ecb-min.js"></script><script src="./rollups/sha256.js"></script><!--script src="base64.js" ></script--><script>

// Create Base64 Object who can perform encode & decode. OR attach base64.jsvar

Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){var t="";var n,r,i,s,o,u,a;var f=0;e=Base64._utf8_encode(e);while(f<e.length){n=e.charCodeAt(f++);r=e.charCodeAt(f++);i=e.charCodeAt(f++);s=n>>2;o=(n&3)<<4|r>>4;u=(r&15)<<2|i>>6;a=i&63;if(isNaN(r)){u=a=64}else if(isNaN(i)){a=64}t=t+this._keyStr.charAt(s)+this._keyStr.charAt(o)+this._keyStr.charAt(u)+this._keyStr.charAt(a)}return t},decode:function(e){var t="";var n,r,i;var s,o,u,a;var f=0;e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(f<e.length){s=this._keyStr.indexOf(e.charAt(f++));o=this._keyStr.indexOf(e.charAt(f++));u=this._keyStr.indexOf(e.charAt(f++));a=this._keyStr.indexOf(e.charAt(f++));n=s<<2|o>>4;r=(o&15)<<4|u>>2;i=(u&3)<<6|a;t=t+String.fromCharCode(n);if(u!=64){t=t+String.fromCharCode(r)}if(a!=64){t=t+String.fromCharCode(i)}}t=Base64._utf8_decode(t);return t},_utf8_encode:function(e){e=e.replace(/\r\n/g,"\n");var t="";for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r)}else if(r>127&&r<2048){t+=String.fromCharCode(r>>6|192);t+=String.fromCharCode(r&63|128)}else{t+=String.fromCharCode(r>>12|224);t+=String.fromCharCode(r>>6&63|128);t+=String.fromCharCode(r&63|128)}}return t},_utf8_decode:function(e){var t="";var n=0;var r=c1=c2=0;while(n<e.length){r=e.charCodeAt(n);if(r<128){t+=String.fromCharCode(r);n++}else if(r>191&&r<224){c2=e.charCodeAt(n+1);t+=String.fromCharCode((r&31)<<6|c2&63);n+=2}else{c2=e.charCodeAt(n+1);c3=e.charCodeAt(n+2);t+=String.fromCharCode((r&15)<<12|(c2&63)<<6|c3&63);n+=3}}return t}}

function createSignature(data, raw_key){

// We can this(but not supported in all browser)->encode:btoa(raw_key); decode:atob('data');

var raw_keybase64 = Base64.encode(raw_key);

Page 36: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

var key = CryptoJS.enc.Base64.parse(raw_keybase64); var encrypted = CryptoJS.AES.encrypt(data, key, { mode: CryptoJS.mode.ECB, padding:CryptoJS.pad.Pkcs7});

//Sha256 digestvar hash = CryptoJS.SHA256(encrypted.ciphertext);

//base64var signature = hash.toString(CryptoJS.enc.Base64);return signature;

}

Receive NotificationPHP:

For example, notification url: http://domain/notification.php

File notification.php <?php

$data = file_get_contents("php://input");echo $data;//plain json which is received$obj = json_decode($data);var_dump($obj);

?>

Appendix C : Error CodeThere are three different error types:● DATA ERROR (4XXX)● SYSTEM ERROR (5XX)● GATEWAY(ACQUIRER) ERROR (6XX)

Code Description Advice4000 Request data is not valid.4001 Request data format is not valid.4002 Request json data format is not valid. Field name should not

contain left/right spaces.4003 Element is missing or Request not contains

required element.4004 Token is expired4005 Token is not valid4006 Provided token does not have capability to

process request4007 Merchant does not exist4008 Merchant account does not exist

Page 37: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

4009 Credentials are not valid4010 Encrypted data format is invalid Please check specified

algorithm used for encryption

4011 IP address is missing4012 IP address is invalid.4013 Request time is invalid Time format should be

YYYY-MM-DD hh:mm:ss. Ex. 2013-09-30 18:30:00

4014 Missing merchant id hash4015 Missing merchant account id hash4016 Merchant id hash is invalid Hash in Base64 encode

length is more as compared to expected

4017 Merchant account id hash is invalid Hash in Base64 encode length is more as compared to expected

4018 Merchant id and merchant account id pair of merchant doesnot exist

4019 Missing merchant account username4020 Missing merchant account password4021 Merchant account username is invalid Encrypted base64 length is

more as compared to expected

4022 Merchant account password is invalid Encrypted base64 length is more as compared to expected

4023 Merchant credentials are not valid4024 Merchant account credentials are not valid4025 Signature is missing4026 Signature is not valid or Signature may be

tampered or you created in wrong wayPlease check right method of creating signature in document

4027 API Version is missing4028 API version is invalid Format is X.X.X. Ex. 1.0.14029 Request ID is missing4030 Request Id is invalid4031 Parameters value already used in previous

transaction4032 Previous request id is missing4033 Previous request id is invalid4034 Transaction id missing4035 Transaction id is invalid4036 Transaction not found Transaction does not exist4037 Previous transaction id missing4038 Previous transaction id is invalid

Page 38: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

4039 Transaction source type is missing Use 1: when using KPG Payment Page, 2: Server to server call

4040 Transaction source type is invalid Use 1: when using KPG Payment Page, 2: Server to server call

4041 Cancel url is missing If your transaction source is 1(Web call means using our Page to fill payment card information.) then you need to provide cancel Url

4042 Cancel url is invalid If your transaction source is 1(Web call means using our Page to fill payment card information.) then you need to provide valid cancel Url

4043 Return url missing If your transaction source is 1(Web call means using our Page to fill payment card information.) then you need to provide return Url

4044 Return url is invalid If your transaction source is 1(Web call means using our Page to fill payment card information.) then you need to provide valid return Url

4045 Notification url is invalid Please use proper URL format

4046 Notification url is missing Please use proper URL format

4047 Order id missing4048 Order id invalid4049 Order id in already used in previous

transaction for this accountPlease use unique order id for per new order per merchant account

4050 Order description is invalid Length should not be more than specified in document

4051 Request missing required currency code4052 Currency code is invalid Please use Alpha-3

currency code per ISO 40217

4053 Amount is missing4054 Amount is invalid4055 Cardholder name is missing4056 Cardholder name is invalid Content of

Page 39: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

CardHolderName must be ASCII with a size of 5 to 64 characters

4057 Card number is missing4058 Card number is invalid4059 Card expiry month is missing4060 Card expiry month is invalid The expiry month of the

card will be MM- 01 to 124061 Card expiry year is missing4062 Card expiry year is invalid The expiry year of the card

will be YYYY like 20134063 CVV is missing4064 CVV is invalid The 3 or 4 digit security

code4065 Address first name is missing4066 Address first name is invalid4067 Address last name is missing4068 Address last name is invalid4069 Address address1 is missing4070 Address address1 is invalid4071 Address address2 is missing4072 Address address2 is invalid4073 Address city is missing4074 Address city is invalid4075 address zipcode(postal code) is missing4076 address zipcode(postal code) is invalid4077 address state code is missing4078 address state code is invalid Please use 2 character

state code4079 Address country code is missing4080 Address country code is invalid Please use 2 character

Country Code (ISO 3166)4081 Address mobile is missing4082 Address mobile is invalid4083 Address phone is missing4084 Address phone is invalid4085 Address email is missing4086 Address email is invalid4087 Address fax is missing4088 Address fax is invalid4089 Statement Text is invalid Length should not be more

than specified in document// Error codes related to Search transaction request

4090 Transaction type Id is missing4091 Transaction type Id is invalid

Page 40: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

4092 Transaction result Id is missing4093 Transaction result Id is invalid4094 Payment card type id is missing4095 Payment card type id is invalid4096 Start time is missing4097 Start time is invalid Time format should be

YYYY-MM-DD hh:mm:ss. Ex. 2013-09-30 18:30:00

4098 End time is missing4099 End time is invalid Time format should be

YYYY-MM-DD hh:mm:ss. Ex. 2013-09-30 18:30:00

4100 Start time & End time are invalid Start time should not be greater than End time

4101 Minimum Amount is missing4102 Minimum Amount is invalid4103 Maximum Amount is missing4104 Maximum Amount is invalid4105 Minimum amount & Maximum amount are

invalidMinimum amount should not be greater than Maximum amount

4106 Card id invalid4107 Invalid account access Credentials and source

type combination are not matching

4108 Encrypted credentials data is invalid Please check specified algorithm and correct key used for encryption

4109 User account is disabled Please contact customer service

4110 User account is locked Please contact customer service

4111 User account does not exist4112 Transaction recurrent type is missing Use 1: Single(not

recurrent),2:Initial ,3.Repeated

4113 Transaction recurrent type is invalid Use 1: Single(not recurrent),2:Initial , 3.Repeated

4114 User language is invalid Up to 5-symbol language code, according to RFC 5646

4115 Payment method is missing or invalid4116 Transaction description is missing or invalid.4117 Billing country code is missing or invalid.4118 Referral amount is invalid.

Page 41: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

4119 Request data is not valid. Please use valid data for requested fields.

4120 Request is not valid.4121 Value for field perform3DS is missing. Use 1: yes, 0:No .4122 Value for field perform3DS is invalid.4123 Element[orderDetail] missing or not contain

required fields4124 Crypto address is invalid.4125 Pay method is missing or invalid.4126 Element value [#ELEMENT] <element name>

is invalid.","Request not contain valid value for element

4127 Secret word is missing4128 Secret word is invalid.","Length should not be

more than specified in document

//Error code related to portal requests4501 Username is missing4502 Username is invalid4503 Password is missing4504 Password is invalid4505 Merchant id missing4506 Merchant id invalid4507 Merchant account id missing4508 Merchant account id invalid4509 Country code is missing4510 Country code is invalid Please use 2 character

Country Code (ISO 3166)4511-4521 Internal usage.4522 Related transaction id is invalid.4523 Auth code is invalid.","Length should not be

more than specified in document.4524 Modification reason is invalid.","Length

should not be more than specified in document

4525 Issuer Country code is invalid.","Please use 2 character Country Code (ISO 3166)

4526 Issuer bank name is invalid.","Length should not be more than specified in document

4527 BIN is invalid4528 AVS code is invalid4529 3D Enrollment status code is invalid4530 3D authentication status code is invalid4531 User id invalid4532 ARN missing or invalid4533 Reason missing or invalid

Page 42: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

4534 Chargeback reason code missing or invalid4535 Chargeback category id missing or invalid4536 Client is missing4537 Client is invalid4538 Client phone number is missing4539 Client phone number is invalid4540 Destination is missing4541 Destination is invalid4542 Acquirer/GatewayId id is missing4543 AcquirerFields is missing

//Error code related to MPI module4601 Directory server is missing Please use proper URL

format4602 Directory server is invalid Please use proper URL

format4603 Merchant BIN is missing4604 Merchant BIN is invalid BIN should be 6 digit4605 Merchant name is missing4606 Merchant name is invalid Length should not be more

than specified in document4607 Merchant no. is missing4608 Merchant no. is invalid Length should not be more

than specified in document4609 Merchant password is invalid Length should not be more

than specified in document4610 Merchant url is missing4611 Merchant url is invalid Please use proper URL

format4612 Merchant country code is missing4613 Merchant country code is invalid Please use 3 digit numeric

Country Code (ISO 3166)4614 Root certificate missing4615 Root certificate is invalid4616 Client certificate missing4617 Client certificate is invalid4618 System failed to insert new record for card

type property since it already exist4619 System failed to insert new record for

merchant mpi property since it already exist4620 Google pay card tokenization response invalid

SYSTEM ERROR - 500-549500 System error.System failed to process

request.Please contact customer service.

501 System process timeout error You can call status service to get result

503 System error. System internal service Please contact customer

Page 43: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

connection failed service504 System error. System failed to validate

signaturePlease contact customer service

505 tem error. System failed to authenticate credentials

Please contact customer service

506 System error. System failed to validate token Please contact customer service

507 System error. Fraud detection service failed508 System error. Routing service failed509 System error. System could not send CSRF

token.510 System error. Merchant account not

configured correctly.511 System error.System failed to perform

transaction since private key is encrypted512 System error.System failed to perform

transaction since private key is missing513 System error. Acquirer account not

configured correctlySYSTEM REJECTED - 550-599

550 Transaction has been denied due to its fraud high risk

551 Transaction frequency limit exceeded552 Transaction chargebacks limits exceeded553 Transactions number limit exceeded554 Transaction amount limit exceeded555 Transaction amount for given card is not in

rangePlease check minimum & maximum transaction amount limit for card in document

556 Transaction amount of the referencing transaction is higher than the transaction amount of the original transaction

557 Transaction is not supported Gateway doesnot support requested type of transaction. Please contact customer service for more detail.

558 Currency is not supported559 Payment card & currency combination not

supported560 Payment card is expired561 Transaction is already completed successfully562 Referred transaction request already

performed successfully for given related transaction

563 CVV check failed

Page 44: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

564 System failed to figure out request machine IP565 System cannot proceed transaction request

since it is for incomplete transaction566 System cannot proceed transaction request

since it is for failed transaction567 Referred transaction request is invalid for

given related transactionTransaction request cannot be possible or already performed

568 System cannot proceed transaction request since it is for expired transaction

569 System rejected transaction since there is no suitable gateway available to perform it

570 System rejected transaction since 3D authentication failed

571 System rejected transaction since there is no credit payment exist

Before referral credit fund transfer, perform credit payment transaction

572 Card brand not supported573 System rejected transaction since original

transaction is not recurrent payment transaction

574 System cannot proceed transaction since requested server id is not supported

575 System error. Duplicate request.576 System rejected transaction since CSRF token

is invalid for given transaction577 System marked tx as failed since acquirer

response may be tampared since signature doesnot verify.

578 Transaction expired.579 System rejected request since MOTO request

source is not valid.580 Cardholder stopped or rejected transaction.581 Server is currently undergoing maintenance.

Please try again later.582 System rejected request since requested

payment method not supported.583 Transaction not allowed. Please contact customer

service.584 System rejected since such transaction

request already processing.Please try later.

585 System rejected request since card data source is not valid for account.

586 System rejected request since payment request endtime is less than last payment endtime

587 No sufficient funds

Page 45: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

588 Destination Does not support with Given Refferal transaction

589 Merchant account Disabled//GATEWAY ERROR - 600-649

600 Acquirer internal system error601 Acquirer timeout error602 Acquirer is not reachable603 Acquirer is not available604 Processing timeout. Sending is failed605 Acquirer reponse is invalid or NULL

//GATEWAY REJECTED650 Transaction has been denied by acquirer651 PIN retry exceeded.652 Sufficient funds not available653 Card is restricted654 Issuer not available655 Payment card is expired656 PIN is invalid657 Amount limit exceeded658 Do not honor Please contact your bank.659 Transaction not permitted on card. Please contact your bank.660 Transaction not permitted on terminal.661 Transaction not allowed. Please contact your bank.662 Invalid card/issuer.663 Invalid card number.664 Card reported lost or stolen. Please contact your bank.665 Retained card. Please contact your bank.666 PIN validation failed. PIN may be incorrect.667 Invalid CVV2.668 Issuer system error.669 Issuer indicated problem with card. Please contact your bank.670 Suspected fraud.671 Invalid account.672 Transaction denied by acquirer due to invalid

input data.673 Card not supported. Please contact customer

service for more detail.674 Card holder stopped or rejected transaction.675 Transaction has been denied by acquirer.676 Issuer response did not reach destination or

received too late.677 Transaction was not found.678 Transaction not valid or expired.679 Recurring subscription limit exceeded.680 Frequency limit exceeded.681 Acquirer limit exceeded.

Page 46: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

682 Cash Back Request Exceeds Issuer Limit.683 The card/use of card does not comply with

security regulations.684 Duplicate transaction.685 Stop Payment Purchase Order Subscription was stopped

by the cardholder.686 Transaction has been denied since issuer not

participated.687 Function not available.688 Too frequent recurring.689 Invalid terminal.690 Currency not supported.691 Cardholder or gateway stopped or rejected

transaction.692 Card type or payment method not supported.693 Gateway rejected since authentication failed.694 The period allotted for card details or

password entering has expired.695 Invalid message format.696 Issuer is not available.697 Amount is too small to process.698 Transaction size limit exceeded.699 Transaction country blocked

700 Transaction request IP range blocked701 Transaction email/email domains blocked702 Transaction card, email, phone blocked703 Transaction country, ip range blocked704 Transaction email, phone blocked705 No sufficient funds706 Destination Does not support with Given

Refferal transaction707 The request is not possible due to the

improper status of the invoice or payment708 System rejected request since it is not valid

gateway.","Please contact gateway customer service

709 Payment account blocked or stolen","Please contact your Bank

710 Invalid CardHolder","Enter valid cardholder711 Merchant account blocked","Please contact

your bank

6504 Card limits exceeded. Please contact your

Page 47: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

bank6505 Card is 3d enrolled so 3d authentication

required6506 Additional identification required6507 Acquirer Error, Please contact acquirer6508 Function / Action not supported6509 payment for the specified invoice has not yet

reached the final status6510 Invalid payment session. Please contact

gateway customer service6511 System rejected request since it is not valid

gateway. Please contact gateway customer service

6512 Invalid changes to the participant. Please contact gateway customer service

6513 Payment account blocked or stolen, Please Invalid application status. Please contact gateway customer service your Bank

6514 Invalid revision of the application.","Please contact gateway customer service

6515 Router unavailable6516 The order has already been paid6517 Access denied6518 Invalid transaction status, attempt to capture

on finish_3ds or reversal6519 Payment currency and the original transaction

currency mismatch6520 Transaction rejected by security.

7000 Services/Merchandise Not Received.","Cardholder did not receive, due to merchant’s unwillingness or inability

7001 Cancelled Recurring Transaction7002 Goods or services are not as described or

defective7003 Fraudulent Multiple Drafts7004 Requested Copy Illegible or Invalid7005 Counterfeit Transaction7006 No Verification/Exception File7007 Declined Authorization7008 No Authorization7009 Expired Card7010 Late Presentment7011 Cardholder Does Not Recognize7012 Incorrect Transaction Code or Incorrect

Page 48: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

Currency Code or Domestic7013 Non Matching Account Number7014 Service Code Violation7015 Processing Error: Incorrect Amount or

Account7016 Fraudulent Transaction7017 Duplicate Processing7018 Credit Not Processed7019 Altered Amount/Paid by Other Means7020 Non-Receipt of Cash or Merchandise7021 Merchant Fraud Performance Program7022 Credit Posted as a Purchase

0 Transaction failed1 Transaction completed successfully2 Transaction is in process3 Transaction is pending4 Transaction is incomplete5 Transaction is partially completed

30 Services/Merchandise Not Received.","Cardholder did not receive, due to merchant’s unwillingness or inability

41 Cancelled Recurring Transaction53 Goods or services are not as described or

defective57 Fraudulent Multiple Drafts60 Requested Copy Illegible or Invalid62 Counterfeit Transaction70 No Verification/Exception File71 Declined Authorization72 No Authorization73 Expired Card74 Late Presentment75 Cardholder Does Not Recognize76 Incorrect Transaction Code or Incorrect

Currency Code or Domestic77 Non Matching Account Number78 Service Code Violation80 Processing Error: Incorrect Amount or

Account81 Fraudulent Transaction – Card Present

Environment82 Duplicate Processing

Page 49: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

83 Fraudulent Transaction – Card Absent Environment

85 Credit Not Processed86 Altered Amount/Paid by Other Means90 Non-Receipt of Cash or Merchandise93 Merchant Fraud Performance Program

4801 Requested Data Transaction Not Received4802 Requested/Required Information Illegible or

Missing4807 Warning Bulletin File4808 Requested/Required Authorization Not

Obtained4812 Account Number Not on File4831 Transaction Amount Differs4834 Duplicate Processing4835 Card Not Valid or Expired4837 No Cardholder Authorization4840 Fraudulent Processing of Transactions4841 Cancelled Recurring Transaction4842 Late Presentment4846 Correct Transaction Currency Code Not

Provided4847 Requested/Required Authorization Not

Obtained and Fraudulent Transaction4849 Questionable Merchant Activity4850 Credit Posted as a Purchase4853 Cardholder Dispute-Defective/Not as

Described4854 Cardholder Dispute-Not Elsewhere

Classified(U.S. Region Only)4855 Non-receipt of Merchandise4857 Card-Activated Telephone Transaction4859 Services Not Rendered4860 Credit Not Processed4862 Counterfeit Transaction Magnetic Stripe POS

Fraud4863 Cardholder Does Not Recognize-Potential

Fraud

8001 System rejected transaction since per transaction amount is not within the allowed limits

8002System rejected transaction since transaction different card used count by same IP in 1 day(s) is not within the allowed limits.

Page 50: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

System rejected transaction since transaction different card used count by same IP in 7 day(s) is not within the allowed limits.System rejected transaction since transaction different card used count by same merchant user id in 180 day(s) is not within the allowed limits.System rejected transaction since transaction different card used count by same merchant user id in 1 day(s) is not within the allowed limits.System rejected transaction since transaction different card used count by same merchant user id in 30 day(s) is not within the allowed limits.System rejected transaction since transaction different IP used count by same merchant user id in 1 day(s) is not within the allowed limits.System rejected transaction since transaction failure count with same error by same email in 30 day(s) is not within the allowed limits.System rejected transaction since transaction total amount by same card in 1 day(s) is not within the allowed limits.System rejected transaction since transaction total amount by same card in 30 day(s) is not within the allowed limits.System rejected transaction since transaction total count by same card in 1 day(s) is not within the allowed limits.System rejected transaction since transaction total count by same card in 7 day(s) is not within the allowed limits.System rejected transaction since transaction total count by same merchant user id in 1 day(s) is not within the allowed limits.

8003 System rejected transaction since merchant turnover for <no.of day’s> day(s) is not within the allowed limits

8004 System rejected transaction since issuer country does not match user country

8005 System rejected transaction since transaction card is blocked

8006 System rejected transaction since transaction email is blocked

8007 System rejected transaction since transaction

Page 51: Introduction - certus.financecertus.finance/.../07/WEB-PURCHASE-API-v1.0.1-Doc-revision-2.1.5-1…  · Web viewMerchant redirect to gateway to provide payment card detail.And no

BIN country is blocked8008 System rejected transaction since transaction

request IP is blocked8009 System rejected transaction since transaction

total count by same card in 1 hour(s) is not within the allowed limits.

8010 System rejected transaction since transaction mandatory fields [MERCHANT_USER_ID] are not provided in request.

8011 System rejected transaction since transaction exceeds refund budget.

5606 System rejected transaction since transaction's BIN is blocked


Recommended