Abstract: Method and system for generation and reconciliation of security codes is provided. A first security confirmation code for a particular timestamp is generated for each transaction between user device 104 and merchant terminal 106 based on predefined number of digits of character checksum value and salt value. A first reference key is generated including a combination of the timestamp, first security confirmation code and merchant terminal identification. Second security confirmation code for the timestamp is generated based on predefined number of digits of character checksum value and salt value on the basis of data extracted from first security code. A matching operation of first and second security code is performed to ascertain a match there between. Second reference key is generated which is a combination of the timestamp, the second security code and the merchant terminal 106 identification. Transaction is reconciled using the second and first reference key.
Field of the invention
[0001] The present invention relates generally to the field of security systems for digital transactions made via smartphones, and more particularly to optimized systems and methods for generation and reconciliation of security codes for transactions made through electronic devices in an offline environment.
Background of the invention
[0002] In this age of digital transactions, Internet connectivity is critical for effecting such transactions. The in-store payment ecosystem broadly consists of a payer, merchant and a payment provider. Payer is the customer of the payment provider and the merchant is acquired by the payment provider for accepting payments. Conventionally, in order to process digital transactions, broadly two types of processes exist for in-store payments. One, in which, the merchant initiates payment with customer authentication for a transaction, and upon successful processing, the amount is debited from customer and the transaction details are pushed to the customer. In this method where the merchant initiates the payment process, Internet connectivity is essential to the merchant.
[0003] In another conventional method, in which the customer initiates the payment with merchant details, the amount is debited from customer after authentication, and further, the transaction details are pushed to merchant. In this method, some communication channel such as Short Messaging Service (SMS) is needed for validating the transaction. In the current market scenario, most organised merchants who are able to accept payment digitally are
connected to Internet via Electronic Data Capture (EDC), however, merchants with small shops or establishments are not able to accept payment digitally due to unavailability of network connection. Typically, these merchants accept payments when customer initiates the request.
[0004] Further, in certain remote areas, conventional electronic ticketing and vending machines of transport corporations do not have Internet connectivity or the machines face fluctuations in the connectivity. For instance, state road transport corporations in India, is one of the largest payment spaces which uses electronic ticketing and vending machines. In the absence of Internet connectivity or intermittent connectivity, merchants are not able to accept digital payments. Further, as mentioned above, Internet connectivity is typically required for performing authentication and reconciliation operations.
[0005] Further, for reconciliation or verification of transactions, as well, network connectivity is necessary between the merchant terminal and the payment provider terminal. Merchants otherwise need to conform to manual means for performing reconciliation of transactions. Further, in some existing systems it has been observed that merchants would require to synchronize with payment provider systems at pre-defined frequencies to fetch data related to transactions and store the list at the merchant's terminal. During the reconciliation process, customer's inputs related to the transactions would be confirmed from the data stored at the merchant's terminal. This solution is not scalable and operationally intensive as merchants need to sync up with payment provider server periodically.
[0006] Furthermore, conventional methods of verification of transactions entail a lot of delay on account of network availability requirement, network traffic and other factors.
Yet further, certain conventional methods employ two-dimensional codes for encrypting security features related to each transaction. Such methods also involve complexities in the context of display, printing and other hardware related complexities as for same machine terminal a different two-dimensional code is generated for each transaction.
[0007] In light of the above drawbacks, there is a need for a system and method that optimizes generation and reconciliation of security codes for efficient digital transactions using electronic transaction devices. Also, there is a need for a system and method that provides for performing offline authentication and reconciliation operations for digital transactions.
Summary of the invention
[0008] A computer-implemented method for generation and reconciliation of security codes is provided. The method is executed by a first processor 122 and a memory 124 at the payment provider server 108, and a second processor 126 and a memory 128 at the merchant terminal 106. The first processor 122 and the second processor 126 execute program instructions stored in the respective memories 124,128. The method comprises the step of generating, by the first processor 122, a first security confirmation code associated with a particular timestamp for each transaction between a user device 104 and the merchant terminal 106. The first security confirmation code is generated based at least in part on a predefined number of digits of a character checksum value and a predefined number of digits of a salt value. The method further comprises generating, by the first processor 122), a first reference key for each transaction. The first reference key includes a combination of the particular timestamp the security confirmation code and an identification of the merchant terminal. Further, the method comprises the step of
generating, by a second processor (126), a second security confirmation code associated with the particular timestamp. The security confirmation code is generated based at least in part on a predefined number of digits of a character checksum value and a predefined number of digits of a salt value, wherein the second security confirmation code is generated based on data extracted from the first security confirmation code. Furthermore, the method comprises the step of performing, by the second processor 126, a matching operation of the first security confirmation code and the second security confirmation code to ascertain whether the second security confirmation code is the same as the first security confirmation code. The method further comprises the step of generating, by the second processor 126 a second unique reference key, the unique reference key is a combination of the particular timestamp, the second security confirmation code and the merchant terminall06 identification. Finally, the method comprises the step of reconciling, by the second processor 126 the transaction using the second reference key and the first unique reference key.
[0009] A system 102 for generation and reconciliation of security codes is provided. The system 102 is executed by a first processor 122 and a memory 124 at the payment provider server 108, and a second processor 126 and a memory 128 at the merchant terminal 106. The first processor 122 and the second processor 126 executes program instructions stored in the respective memories 124,128. The system 102 comprises a security code generator 118 in communication with the first processor 122 and configured to generate a first security confirmation code associated with a particular timestamp for each transaction between a user device 104 and the merchant terminal 106. The first security confirmation code is generated based at least in part on a predefined number of digits of a character checksum value and a predefined number of digits of a salt value. The system 102 further comprises a
reference key generator 120 in communication with the first processor 122 and configured to generate a first reference key for each transaction. The first reference key includes a combination of the particular timestamp the security confirmation code and an identification of the merchant terminal. Further, the system 102 comprises a data analytics engine 114 in communication with the second processor 126 and configured to generate a second security confirmation code associated with the particular timestamp. The second security confirmation code is generated based at least in part on a predefined number of digits of a character checksum value and a predefined number of digits of a salt value. The second security confirmation code is generated based on data extracted from the first security confirmation code. The system 102 further comprises a data validation engine 116 in communication with the second processor 126 and configured to perform a matching operation of the first security confirmation code and the second security confirmation code to ascertain whether the second security confirmation code is the same as the first security confirmation code. The data validation engine 116 further generates a second unique reference key, the second unique reference key is a combination of the particular timestamp, the second security confirmation code and the merchant terminal(106) identification. Furthermore, the data validation engine 116 is configured to reconcile the transaction using the second reference key and the first unique reference key.
Brief description of the accompanying drawings
[0010] The present invention is described by way of embodiments illustrated in the accompanying drawings wherein:
[0011] FIG.l illustrates a block diagram of a system for optimizing generation and reconciliation of security codes for
transactions in an offline environment, in accordance with various embodiments of the present invention;
[0012] FIG.2 is a flowchart illustrating a method of optimizing generation and reconciliation of security codes for transactions in an offline environment, in accordance with various embodiments of the present invention; and
[0013] FIG.3 illustrates an exemplary computer system in which various embodiments of the present invention may be implemented.
Detailed description of the invention
[0014] A system and method for generation and reconciliation of security codes for transactions in an offline environment is provided. The invention provides for generation of security confirmation codes using merchant terminal (106) information. The invention provides for optimization in the process of generation of security codes using a combination of two-tier random number and secret key sharing process. Further, the invention provides for validation and reconciliation of the security codes locally in a merchant terminal (106) in an offline environment.
[0015] The disclosure is provided in order to enable a person having ordinary skill in the art to practice the invention. Exemplary embodiments herein are provided only for illustrative purposes and various modifications will be readily apparent to persons skilled in the art. The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. The terminology and phraseology used herein is for the purpose of describing exemplary embodiments and should not be considered limiting. Thus, the present invention
is to be accorded the widest scope encompassing numerous alternatives, modifications and equivalents consistent with the principles and features disclosed herein. For purposes of clarity, details relating to technical material that is known in the technical fields related to the invention have been briefly described or omitted so as not to unnecessarily obscure the present invention.
[0016] The present invention would now be discussed in context of embodiments as illustrated in the accompanying drawings.
[0017] FIG. 1 illustrates a block diagram of a system 102 for optimizing generation and reconciliation of security codes for transactions in an offline environment, in accordance with various embodiments of the present invention. The system 102 comprises a user device 104, a merchant terminal 106, and a payment provider server 108, which communicate over a network 110. Examples of user device 104 may include a smartphone, a laptop, a tablet or any other wired or wireless device. Examples of merchant terminal 106 include, but is not limited to, a Point of Sale Terminal (POS), a Kiosk, and an Electronic Ticketing and Vending Machine (ETVM). The payment provider server 108 may be maintained by any of the payment service providers. A user may be a customer which uses the user device 104 to carry out any transaction involving the merchant terminal 106 and the payment provider server 108. The network 110 may include a wireless communications network or a wired communications network.
[0018] In various embodiments of the present invention, the network 110 is only needed for payment to be made by the customer and to receive payment confirmation from the payment provider server 108. The user device 104 and the merchant terminal 106 need not be connected to the network 110 at the same time. The payment provider server 108 is configured to
generate the security code and the merchant terminal 106 is configured to perform verification and reconciliation of the security code for transactions in an offline environment, with no internet connectivity. The details would be explained in the following paragraphs of the specification.
[0019] In an embodiment of the present invention, the system 102 comprises a security code reconciliation application 102a which is integrable with a merchant terminal 106. In another embodiment of the present invention, the security code reconciliation application 102a may be embedded in the merchant terminal 106. The system 102 further includes a security code generation application 102b, which is integrable with the payment provider server 108. The security code generation application 102b is executed via a security code generator 118 and a reference key generator 120 which operates in conjunction with a first processor 122 that executes program instructions stored in a memory 124.
[0020] In an embodiment of the present invention, the user initiates a transaction via the user device 104 by fetching details related to the merchant through a contactless mode. Examples of contactless mode may include, but is not limited to, scanning two-dimensional codes and using Near Field Communication. In an exemplary embodiment of the present invention, the user device 104 fetches the merchant details by scanning a two-dimensional code from the merchant terminal 106. The two-dimensional code is generated by the merchant terminal 106 by a two-dimensional code generator 106a. An example of a two-dimensional code may be a QR code which includes encrypted details of the merchant such as a merchant id, and a terminal id. In various embodiments of the present invention, the terminal id and merchant id is issued by the payment provider server 108 for each merchant terminal 106. The two-dimensional code including encrypted merchant details
is unique for each merchant terminal 106. A random number with a secret key of the merchant may be used to encrypt the merchant details and generate the two-dimensional code. In various embodiments of the present invention, the random number and the secret key is issued by the payment provider server 108 and is unique to each merchant terminal 106.
[0021] In operation, in an embodiment of the present invention, the user device 104 receives the two-dimensional code via a two-dimensional code receiver 104a within the user device 104. The two-dimensional code receiver 104a then decrypts the two-dimensional code to retrieve the merchant details. The user, thereafter, inputs the amount to be paid to the merchant via the user device 104 and initiates the payment with the payment provider server 108 using the merchant details retrieved from the two-dimensional code. Upon successful payment, the amount is debited from the customer's account. Further, the user device 104 sends the two-dimensional code to the payment provider server 108.
[0022] Consequently, the security code generation application 102b, within the payment provider server 108, is invoked and the security code generator 118 retrieves the merchant details, the random number as well as the secret key of the merchant terminal 106 from the two-dimensional code. The security code generator 118 compares the details retrieved from the two-dimensional code with merchant id, terminal id, random number and secret key corresponding to the merchant terminal 106 which is pre-stored in a repository (not shown). In various embodiments of the present invention, merchant id, terminal id, random and secret key corresponding to various merchant terminals are stored in the repository (not shown) within the payment provider server 108. Based on the comparison, the security code generator 118 identifies the merchant terminal 106 as the terminal for which transaction is made. The security code generator 118 then creates a log file
for the merchant terminal 106 including log variables such as merchant id, the terminal id, random number, secret key, transaction amount, currency type, and a timestamp (date & hour) . In various embodiments of the present invention, the payment provider server 108 creates a log file for each merchant terminal 106.
[0023] The security code generator 118 thereafter generates a first security confirmation code for the identified merchant terminal 106. In an exemplary embodiment of the present invention, the first security confirmation code may include a numeric code of n digits. The n digits may be selected from 0-99 numeric digits. In particular, the security code generator 118 selects a predefined number of digits in relation to a particular timestamp for each transaction. The security code generator 118 thereafter generates a hash value using a one¬way function and a salt value, which is an additional random number. The hash value is generated by performing hashing of the log variables and the selected number of digits, which is unique to the particular time stamp for each transaction. The security code generator 118 then uses the secret key of the merchant terminal 106 and the hash value to encrypt the log file variables of the merchant terminal 106. In an exemplary embodiment of the present invention, the hashing and encryption results in a 108 character checksum value. Using the 108 character checksum a security confirmation code is generated. In this exemplary embodiment, 3 digits of the 108 character checksum and 3 digits of the salt value is used to generate the security confirmation code for the merchant terminal 106.
[0024] In another exemplary embodiment of the present invention, the first security confirmation code may include an alphanumeric digits which is unique to each timestamp for each transaction. The security code generator 118 generates a hash value by performing hashing of the log variables and the
selected alphanumeric digits corresponding to a particular time stamp for a particular transaction. The security code generator 118 then uses the secret key of the merchant terminal 106 and the hash value to encrypt the log file variables of the merchant terminal 106. In an exemplary embodiment of the present invention, the hashing and encryption results in a 108 character checksum value. Using the 108 character checksum value a security confirmation code is generated. In this exemplary embodiment, 3 digits of the 108 character checksum value and 3 digits of the salt value is used to generate the security confirmation code for the merchant terminal 106. In yet another embodiment of the present invention, the predefined number of digits may be a combination of numeric digits and alphanumeric digits.
[0025] Therefore, for each transaction, the security code generator 118 generates a unique security confirmation code (first security confirmation code) where the predefined number of numeric digits or a predefined number of alphanumeric digits that are selected are different for each time stamp corresponding to each transaction. Further, each of the first security confirmation code has a unique salt value as well as the random number and secret key derived from the two-dimensional code of the machine terminal 106. In various embodiments of the present invention, different modes of generating the security confirmation code may be adopted for different merchant terminals. For example, numeric digits may be used for some merchant terminals 106 and alphanumeric digits may be used for the other merchant terminals 106 by the payment provider server 108.
[0026] Consequently, the security code generator 118 invokes the reference key generator 120. The reference key generator 120 thereafter generates a first reference key for each transaction. The first reference key is a combination of merchant terminal (id), timestamp (date & hour) and the first
security confirmation code generated for the particular merchant terminal 106.
[0027] In an embodiment of the present invention, the security confirmation code is received by the merchant terminal 106 which invokes the security code reconciliation application 102a. The security code reconciliation application 102a is executed via a data acquisition engine 112, a data analytics engine 114, and a data validation engine 116. The data acquisition engine 112, the data analytics engine 114, and a data validation engine 116 operates in conjunction with a second processor 126 that executes program instructions stored in a memory 128 within the merchant terminal 106.
[0028] Once the security code reconciliation application 102a is invoked, the data acquisition engine 112 receives the first security confirmation code for a particular transaction. The data analytics engine 114 fetches the first security confirmation code from the data acquisition engine 114 and parses the received code to extract data i.e. the salt value, the predefined numeric or alphanumeric digits and the log variables used in the generation of the first security confirmation code. The data analytics engine 114 thereafter generates a second security confirmation code in the like manner as described in respect of the security code generator 118 using the checksum logic and the secret key. In particular, the data analytics engine 114 generates a hash value using a one-way function and the salt value. Specifically, the data analytics engine 114 generates a hash value by performing hashing of the log variables and the numeric or alphanumeric digits corresponding to the particular time stamp for the particular transaction. The data analytics engine 114 then uses the secret key of the merchant terminal 106 and the hash value to encrypt the log file variables of the merchant terminal 106. In an exemplary embodiment of the present invention, the hashing and encryption results in a 108
character checksum value. Using the 108 character checksum the second security confirmation code is generated. In this exemplary embodiment, 3 digits of the 108 character checksum and 3 digits of the salt value is used to generate the second security confirmation code for the merchant terminal 106.
[0029] Subsequently, the data validation engine 116 is invoked. Further, the data validation engine 116 receives the second security confirmation code and the first security confirmation code as received from the data acquisition engine 112. The data validation engine 116 performs a matching operation on the received codes to ascertain if the second security confirmation code is same as the first security confirmation code.
[0030] After the local validation, the second security confirmation code is displayed on a screen (not shown) of the merchant terminal 106. The data validation engine 116 then generates a second unique reference key for each transaction. In an exemplary embodiment of the present invention, the second unique reference key is a combination of merchant terminal identification (id), timestamp (date & hour) and the second security confirmation code. Further, in an embodiment of the present invention, the data acquisition engine 112 at the merchant terminal 106 receives the first reference key corresponding to this transaction in a payout or settlement file from the payment provider server 108. The first reference key as received and the second unique reference key as generated by the data validation engine 116 is used for reconciliation of the transactions by the data validation engine 116.
[0031] FIG.2 is a flowchart illustrating a method of optimizing generation and reconciliation of security codes for transactions in an offline environment, in accordance with various embodiments of the present invention.
[0032] At step 202, a unique two-dimensional code of a merchant terminal is received at the user device. In an embodiment of the present invention, the user initiates a transaction via the user device by fetching details related to the merchant through a contactless mode. Examples of contactless mode may include, but is not limited to, scanning of two-dimensional codes and using Near Field Communication. In an exemplary embodiment of the present invention, the user device 104 fetches the merchant details by scanning a two-dimensional code from the merchant terminal. An example of a two-dimensional code may be a QR code which includes encrypted details of the merchant such as a merchant id, and a terminal id. In various embodiments of the present invention, the terminal id and merchant id is issued by the payment provider server for each merchant terminal. The two-dimensional code is unique for each merchant terminal. A random number with a secret key of the merchant terminal may be used to encrypt the merchant details and generate the two-dimensional code. In various embodiments of the present invention, the random number and the secret key is issued by the payment provider server and is unique to each merchant terminal.
[0033] At step 204, the unique two-dimensional code is sent to the payment provider server. In an embodiment of the present invention, the user inputs the amount to be paid to the merchant via the user device and initiates the payment with the payment provider server using the merchant details retrieved from the two-dimensional code. Upon successful payment, the amount is debited from the customer's account. The user device then sends the random number and the secret key of the merchant terminal to the payment provider server.
[0034] At step 206, a first security confirmation code is generated at the payment provider server. In an embodiment of
the present invention, the merchant details, the random number as well as the secret code of the merchant terminal is retrieved from the two-dimensional code at the payment provider server. The details retrieved from the two-dimensional code are compared with merchant id, terminal id, random number and secret key corresponding to the merchant terminal which is pre-stored in a repository (not shown). In various embodiments of the present invention, merchant id, terminal id, random and secret key corresponding to various merchant terminals are stored in the repository (not shown) within the payment provider server. Based on the comparison, the merchant terminal 106 is identified as the terminal for which transaction is made. A log file is created for the merchant terminal including log variables such as merchant id, the terminal id, random number, secret key, transaction amount, currency type, and a timestamp (date & hour). In various embodiments of the present invention, the payment provider server creates a log file for each merchant terminal.
[0035] Thereafter, a security confirmation code is generated for the identified merchant terminal. In an exemplary embodiment of the present invention, the security confirmation code may include a numeric code of n digits. The n digits may be selected from 0-99 numeric digits. In particular, the predefined number of digits is selected in relation to a particular timestamp for each transaction. Thereafter, a hash value is generated using a one-way function and a salt value, which is an additional random number. The hash value is generated by performing hashing of the log variables and the selected number of digits, which is unique to the particular time stamp for each transaction. Using the secret key of the merchant terminal and the hash value the log file variables of the merchant terminal is encrypted. In an exemplary embodiment of the present invention, the hashing and encryption results in a 108 character checksum value. Using the 108 character checksum a security confirmation code is generated. In this
exemplary embodiment, 3 digits of the 108 character checksum and 3 digits of the salt value is used to generate the security confirmation code for the merchant terminal.
[0036] At step 208, a first unique reference key is generated for each transaction including the security confirmation code at the payment provider server. In an embodiment of the present invention, the first unique reference key is a combination of merchant terminal identification (id), timestamp (date & hour) and the unique security confirmation code. In an embodiment of the present invention, the merchant terminal identification (id) and timestamp is derived from the two-dimensional code.
[0037] At step 210, a second security confirmation code is generated at the merchant terminal. In an embodiment of the present invention, the merchant terminal fetches the first security confirmation code and parses the received code to extract the salt value, the predefined numeric or alphanumeric digits and the log variable used in the generation of the security confirmation code. Thereafter, the merchant terminal generates a second security confirmation code in the like manner as described in respect of the payment provider server using the checksum logic and the secret key. In particular, the hash value is generated using a one-way function and the salt value. Specifically, the hash value is generated by performing hashing of the log variables and the numeric or alphanumeric digits corresponding to the particular time stamp for the particular transaction. Using the secret key of the merchant terminal and the hash value the log file variables of the merchant terminal is encrypted. In an exemplary embodiment of the present invention, the hashing and encryption results in a 108 character checksum value. Using the 108 character checksum the second security confirmation code is generated. In this exemplary embodiment, 3 digits of the 108 character checksum and 3 digits of the salt value is used to generate
the second security confirmation code for the merchant terminal.
[0038] At step 212, the second security confirmation code is validated based on the first security confirmation code. In an embodiment of the present invention, a matching operation is performed on the second and the first security confirmation codes for validation.
[0039] At step 214, a second unique reference key is generated at the merchant terminal including the second payment confirmation code. In an embodiment of the present invention, the second unique reference key is a combination of merchant terminal identification (id), timestamp (date & hour) and the second security confirmation code.
[0040] At step 216, based on the first and the second unique reference keys, reconciliation of the security codes is performed for each transaction. In an embodiment of the present invention, the first reference key corresponding to this transaction is received in a payout or settlement file from the payment provider server. The first reference key as received and the second unique reference key is used for reconciliation of the transactions.
[0041] Advantageously, the security confirmation code generation and validation process enables merchants with limited connectivity or no-connectivity to be able to accept and validate payments of customers using their smartphones. A secret key corresponding to each merchant terminal is used in the process, which is only shared with the merchant who is authorized to accept payment through the payment service provider. For every transaction a random number is generated and is passed in the security confirmation code. As such, the system is fraudulent proof as once a security confirmation
code is generated and accepted at a store for that hour, it will not be accepted again.
[0042] FIG. 3 illustrates an exemplary computer system in which various embodiments of the present invention may be implemented.
[0043] The computer system 302 comprises a processor 304 and a memory 306. The processor 304 executes program instructions and is a real processor. The computer system 302 is not intended to suggest any limitation as to scope of use or functionality of described embodiments. For example, the computer system 302 may include, but not limited to, a programmed microprocessor, a micro-controller, a peripheral integrated circuit element, and other devices or arrangements of devices that are capable of implementing the steps that constitute the method of the present invention. In an embodiment of the present invention, the memory 306 may store software for implementing various embodiments of the present invention. The computer system 302 may have additional components. For example, the computer system 302 includes one or more communication channels 308, one or more input devices 310, one or more output devices 312, and storage 314. An interconnection mechanism (not shown) such as a bus, controller, or network, interconnects the components of the computer system 302. In various embodiments of the present invention, operating system software (not shown) provides an operating environment for various softwares executing in the computer system 302, and manages different functionalities of the components of the computer system 302.
[0044] The communication channel(s) 308 allow communication over a communication medium to various other computing entities. The communication medium provides information such as program instructions, or other data in a communication
media. The communication media includes, but not limited to, wired or wireless methodologies implemented with an electrical, optical, RF, infrared, acoustic, microwave, bluetooth or other transmission media.
[0045] The input device (s) 310 may include, but not limited to, a keyboard, mouse, pen, joystick, trackball, a voice device, a scanning device, or any another device that is capable of providing input to the computer system 302. In an embodiment of the present invention, the input device(s) 310 may be a sound card or similar device that accepts audio input in analog or digital form. The output device(s) 312 may include, but not limited to, a user interface on CRT or LCD, printer, speaker, CD/DVD writer, or any other device that provides output from the computer system 302.
[0046] The storage 314 may include, but not limited to, magnetic disks, magnetic tapes, CD-ROMs, CD-RWs, DVDs, flash drives or any other medium which can be used to store information and can be accessed by the computer system 302. In various embodiments of the present invention, the storage 314 contains program instructions for implementing the described embodiments.
[0047] The present invention may suitably be embodied as a computer program product for use with the computer system 302. The method described herein is typically implemented as a computer program product, comprising a set of program instructions which is executed by the computer system 302 or any other similar device. The set of program instructions may be a series of computer readable codes stored on a tangible medium, such as a computer readable storage medium (storage 314), for example, diskette, CD-ROM, ROM, flash drives or hard disk, or transmittable to the computer system 302, via a modem or other interface device, over either a tangible medium,
including but not limited to optical or analogue communications channel(s) 308. The implementation of the invention as a computer program product may be in an intangible form using wireless techniques, including but not limited to microwave, infrared, bluetooth or other transmission techniques. These instructions can be preloaded into a system or recorded on a storage medium such as a CD-ROM, or made available for downloading over a network such as the internet or a mobile telephone network. The series of computer readable instructions may embody all or part of the functionality previously described herein.
[0048] The present invention may be implemented in numerous ways including as a system, a method, or a computer program product such as a computer readable storage medium or a computer network wherein programming instructions are communicated from a remote location.
[0049] While the exemplary embodiments of the present invention are described and illustrated herein, it will be appreciated that they are merely illustrative. It will be understood by those skilled in the art that various modifications in form and detail may be made therein without departing from or offending the spirit and scope of the invention as defined by the appended claims.
Claim:
1. A computer-implemented method for generation and reconciliation of security codes, the method executed by a first processor (122) and a memory (124) at the payment provider server (108), and a second processor (126) and a memory (128) at the merchant terminal (106), the first processor (122) and the second processor (126) executing program instructions stored in the respective memories (124,128), the method comprising:
generating, by the first processor (122), a first security confirmation code associated with a particular timestamp for each transaction between a user device (104) and the merchant terminal (106), wherein the first security confirmation code is generated based at least in part on a predefined number of digits of a character checksum value and a predefined number of digits of a salt value; generating, by the first processor (122), a first reference key for each transaction, wherein the first reference key includes a combination of the particular timestamp the security confirmation code and a merchant terminal id; generating, by a second processor (126), a second security confirmation code associated with the particular timestamp, wherein the security confirmation code is generated based at least in part on a predefined number of digits of a character checksum value and a predefined number of digits of a salt value, wherein the second security confirmation code is generated based on data extracted from the first security confirmation code;
performing, by the second processor (126), a matching operation of the first security confirmation code and the second security confirmation code to ascertain a match therebetween;
generating, by the second processor (126) a second unique reference key, the unique reference key is a combination of
the particular timestamp, the second security confirmation code and the merchant terminal(106) identification; and reconciling, by the second processor (126) the transaction using the second reference key and the first unique reference key.
2. The computer-implemented method as claimed in claim 1, wherein the method further comprises the step of: obtaining, by the user device (104), a unique two-dimensional code from the merchant terminal (106)including a merchant id and a terminal id, the two-dimensional code is encrypted with a random number and a secret key; decrypting, by the user device (104), the unique two-dimensional code to retrieve the merchant id, the terminal id, the random number and the secret key to carry out the transaction; and
sending, by the user device (104) the unique two-dimensional code to the payment provider server (108) .
3. The computer-implemented method as claimed in claim 2, wherein the method further comprises the steps of: comparing, by the first processor (122), the information retrieved from the unique two-dimensional code with the details of multiple merchant terminals stored in a repository; and
identifying, by the first processor (122), the merchant terminal (106) as the terminal carrying out the transaction.
4. The computer-implemented method as claimed in claim 3, wherein the method further comprises creating, by the first processor (122), a log file associated with the identified merchant terminal (106), the log file including log variables comprising the merchant id, the terminal id, the
random number, the secret key, a transaction amount, a currency type and the timestamp.
5. The computer-implemented method as claimed in claim 4, wherein the step of generating, by the first processor (122), a security confirmation code comprises: selecting a predefined number of digits corresponding to the particular timestamp;
generating a hash value using a one-way function and a salt value, wherein the hash value is generated by hashing of the log variables and the predefined number of digits; encrypting the log variables using the secret key and the hash value; and generating a character checksum value based on the hashing and the encrypting.
6. The computer-implemented method as claimed in claim 1, wherein the step of generating, by the second processor (126), the second security confirmation code comprises: receiving the first security confirmation code and extracting the salt value, predefined number of digits and the log variables.
7. The computer-implemented method as claimed in claim 6, wherein the step of generating, by the second processor (126), a second security confirmation code comprises: generating a hash value using a one-way function and the salt value, wherein the hash value is generated by hashing of the log variables and the predefined number of digits; encrypting the log variables using the secret key and the hash value;
generating a character checksum value based on the hashing and the encryption ; and
displaying the second security confirmation code on a screen of the merchant terminal 106.
8. The computer-implemented method as claimed in claim 1, wherein the predefined number of digits includes at least one of a numeric digit, alphanumeric digit and a combination of numeric digit and alphanumeric digit.
9. A system 102 for generation and reconciliation of security codes, the system executed by a first processor (122) and a memory (124) at the payment provider server (108), and a second processor (126) and a memory (128) at the merchant terminal (106), the first processor (122) and the second processor (126) executing program instructions stored in the respective memories (124,128), the system comprising: a security code generator (118) in communication with the first processor (122) and configured to:
generate a first security confirmation code associated with a particular timestamp for each transaction between a user device (104) and the merchant terminal (106), wherein the first security confirmation code is generated based at least in part on a predefined number of digits of a character checksum value and a predefined number of digits of a salt value; a reference key generator (120) in communication with the first processor (122) and configured to:
generate a first reference key for each transaction, wherein the first reference key includes a combination of the particular timestamp the security confirmation code and a merchant terminal id; a data analytics engine (114) in communication with the second processor(126) and configured to:
generate a second security confirmation code associated with the particular timestamp, wherein the security confirmation code is generated based at least in part on a predefined number of digits of a character checksum value and a predefined number of digits of a salt value, wherein the second security confirmation code is
generated based on data extracted from the first security confirmation code;
a data validation engine (116) in communication with the
second processor (126) and configured to:
perform a matching operation of the first security
confirmation code and the second security confirmation
code to ascertain a match therebetween;
generate a second unique reference key, the second unique
reference key is a combination of the particular
timestamp, the second security confirmation code and the
merchant terminal identification; and
reconcile the transaction using the second unique
reference key and the first unique reference key.
10.The system (102) as claimed in claim 9, wherein the system further comprises a two-dimensional code receiver (104a) in a user device (104) configured to:
obtain a unique two-dimensional code from the merchant terminal (106)including a merchant id and a terminal id, the two-dimensional code is encrypted with a random number and a secret key;
decrypt the unique two-dimensional code to retrieve the merchant id, the terminal id, the random number and the secret key to carry out the transaction ; and send the unique two-dimensional code to the payment provider server (108) .
11. The system (102) as claimed in claim 10, wherein the security code generator (118) is configured to: compare the information retrieved from the unique two-dimensional code with the details of multiple merchant terminals stored in a repository; and
identify the merchant terminal (106) as the terminal carrying out the transaction.
12. The system (102) as claimed in claim 11, wherein the
security code generator (118) is configured to create a log
file associated with the identified merchant terminal (106), the log file including log variables comprising the
merchant id, the terminal id, the random number, the secret
key, a transaction amount, a currency type and the
timestamp. 13.The system(102) as claimed in claim 12, wherein the
security code generator (118) is configured to generate the
first security confirmation code by:
selecting a predefined number of digits corresponding to
the particular timestamp;
generating a hash value using a one-way function and a salt
value, wherein the hash value is generated by hashing of
the log variables and the predefined number of digits;
encrypting the log variables using the secret key and the
hash value; and
generating a character checksum value based on the hashing
and the encrypting.
14. The system (102)as claimed in claim 12, wherein the data analytics engine (114) generates the second security confirmation code by receiving the first security confirmation code and extracting the salt value, predefined number of digits and the log variables.
15. The system (102) as claimed in claim 14, wherein the data analytics engine (114) generates the second security confirmation code by:
generating a hash value using a one-way function and the salt value, wherein the hash value is generated by hashing of the log variables and the predefined number of digits; encrypting the log variables using the secret key and the hash value;
generating a character checksum value based on the hashing and the encryption ; and
displaying the second security confirmation code on a screen of the merchant terminal 106.
16. The system (102) as claimed in claim 9, wherein the predefined number of digits includes at least one of a numeric digit, alphanumeric digit and a combination of numeric digit and alphanumeric digit.
| # | Name | Date |
|---|---|---|
| 1 | Form 3 [21-06-2017(online)].pdf | 2017-06-21 |
| 2 | Drawing [21-06-2017(online)].pdf | 2017-06-21 |
| 3 | Description(Provisional) [21-06-2017(online)].pdf | 2017-06-21 |
| 4 | abstract.jpg | 2017-07-19 |
| 5 | 201711021731-Proof of Right (MANDATORY) [28-07-2017(online)].pdf | 2017-07-28 |
| 6 | 201711021731-FORM-26 [28-07-2017(online)].pdf | 2017-07-28 |
| 7 | 201711021731-Power of Attorney-010817.pdf | 2017-08-10 |
| 8 | 201711021731-OTHERS-010817.pdf | 2017-08-10 |
| 9 | 201711021731-Correspondence-010817.pdf | 2017-08-10 |
| 10 | 201711021731-Correspondence-010817-.pdf | 2017-08-10 |
| 11 | 201711021731-DRAWING [21-06-2018(online)].pdf | 2018-06-21 |
| 12 | 201711021731-CORRESPONDENCE-OTHERS [21-06-2018(online)].pdf | 2018-06-21 |
| 13 | 201711021731-COMPLETE SPECIFICATION [21-06-2018(online)].pdf | 2018-06-21 |
| 14 | 201711021731-FORM 18 [10-07-2018(online)].pdf | 2018-07-10 |
| 15 | 201711021731-FORM 4(ii) [22-04-2021(online)].pdf | 2021-04-22 |
| 16 | 201711021731-FER.pdf | 2021-10-17 |
| 1 | SearchStrategyMatrixE_23-10-2020.pdf |