IP Library Granted Patent US 11,099,835
Granted Patent B1
US 11,099,835 · App. 16/714,271 · Granted Aug 24, 2021

Continuous integration framework for development of software for EMV-based card present transaction processing

Inventors: Jonathan Wall (San Francisco, CA); Eric Glass (San Francisco, CA); Ross Favero (San Francisco, CA)
Assignee: STRIPE, INC.
G06F8/658G06F11/3652G06F11/3664G06F11/3688G06F11/3692G06K7/0008
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,099,835
App. No.
16/714,271
Granted
Aug 24, 2021
Kind
B1
Abstract

A continuous integration framework for developing software for transaction processing and method for using the same are described. In one embodiment, the method comprises generating a trusted artifact with a forward immutable continuous integration (CI) implemented as a build pipeline, wherein the artifact comprises updated software comprising payment processing code with an EMV vector kernel for processing of EMV-based card present transactions; and in response to the software update, performing end-to-end testing of EMV card present transactions using code commits from one or more code repositories, wherein the end-to-end testing comprises executing the code commits that includes executing payment processing code for processing EMV-based card present transactions with an EMV vector kernel and one or more emulated EMV cards, and running tests against the executing code commits to validate behavior the payment processing code including the EMV vector kernel, wherein the tests comprise running one or more emulated EMV cards against the vector kernel as part of one or more emulated EMV-based card present transactions and monitoring communications related to the one or more emulated EMV-based card present transaction communications.

Claims (24)

1. A method comprising:

generating a trusted artifact with a forward immutable continuous integration (CI) implemented as a build pipeline, wherein the artifact comprises updated software comprising payment processing code with an EMV (Europay, Mastercard, Visa) vector kernel for processing of EMV-based card present transactions; and

in response to the updated software, performing end-to-end testing of EMV card present transactions using code commits from one or more code repositories, wherein the end-to-end testing comprises

executing the code commits that includes executing payment processing code for processing EMV-based card present transactions with an EMV vector kernel and one or more emulated EMV cards, and

running tests against the executing code commits to validate behavior the payment processing code including the EMV vector kernel, wherein the tests comprise running one or more emulated EMV cards against the vector kernel as part of one or more emulated EMV-based card present transactions and monitoring communications related to the one or more emulated EMV-based card present transaction communications.

2. The method defined in claim 1 wherein the payment processing code is run on a first server with a Portable Operating System Interface (POSIX) version of the EMV vector kernel and a pin pad and monitoring communications related to the one or more emulated EMV-based card present transaction communications comprises monitoring traffic flow through the first server.

3. The method defined in claim 1 wherein the test comprises certification tests.

4. The method defined in claim 1 wherein running tests comprise validating communications related to the one or more emulated EMV-based card present transaction communications.

5. The method defined in claim 4 wherein communications are validated by verifying a result of the at least one transaction in response to the transaction being performed by software for an emulated EMV terminal device based on a comparison of communication messages exchanged between the EMV vector kernel and the payment processing software with expected communication messages of an emulated exchange between an emulated EMV card and the emulated EMV terminal device.

6. The method defined in claim 1 wherein the CI is a forward immutable CI and the build pipeline has a plurality of stages with forward immutability between consecutive pipeline stages, wherein each subsequent stage after a first stage of the build pipeline depends on an immutable output of a previous stage in the build pipeline.

7. The method defined in claim 1 further comprising storing signed, trusted software code in a repository for deployment, the repository only accepting signed software code for deployment.

8. The method defined in claim 7 further comprising deploying the signed software code.

9. A non-transitory computer readable storage media having instructions stored thereupon which, when executed by a system having at least a processor and a memory therein, cause the system to perform a method comprising: generating a trusted artifact with a forward immutable continuous integration (CI) implemented as a build pipeline, wherein the artifact comprises updated software comprising payment processing code with an EMV (Europay, Mastercard, Visa) vector kernel for processing of EMV-based card present transactions; and in response to the updated software, performing end-to-end testing of card present transactions using code commits from one or more code repositories, wherein the end to end testing comprises executing the code commits that includes executing payment processing code for processing EMV-based card present transactions with an EMV vector kernel and one or more emulated EMV cards, and running tests against the executing code commits to validate behavior the payment processing code including the EMV vector kernel, wherein the tests comprise running one or more emulated EMV cards against the vector kernel as part of one or more emulated EMV-based card present transactions and monitoring communications related to the one or more emulated EMV-based card present transaction communications.

10. The computer readable storage defined in claim 9 wherein the payment processing code is run on a first server with a POSIX version of the EMV vector kernel and a pin pad and monitoring communications related to the one or more emulated EMV-based card present transaction communications comprises monitoring traffic flow through the first server.

11. The computer readable storage defined in claim 9 wherein the test comprises certification tests.

12. The computer readable storage defined in claim 9 wherein running tests comprise validating communications related to the one or more emulated EMV-based card present transaction communications.

13. The computer readable storage defined in claim 12 wherein communications are validated by verifying a result of the at least one transaction in response to the transaction being performed by software for an emulated EMV terminal device based on a comparison of communication messages exchanged between the EMV vector kernel and the payment processing software with expected communication messages of an emulated exchange between an emulated EMV card and the emulated EMV terminal device.

14. The computer readable storage defined in claim 9 wherein the CI is a forward immutable CI and the build pipeline has a plurality of stages with forward immutability between consecutive pipeline stages, wherein each subsequent stage after a first stage of the build pipeline depends on an immutable output of a previous stage in the build pipeline.

15. A system comprising: one or more hardware processors; a memory comprising instructions which, when executed by the one or more hardware processors, cause the system to: generate a trusted artifact with a forward immutable continuous integration (CI) implemented as a build pipeline, wherein the artifact comprises updated software comprising payment processing code with an EMV (Europay, Mastercard, Visa) vector kernel for processing of EMV-based card present transactions; and in response to the updated software, perform end-to-end testing of card present transactions using code commits from one or more code repositories, wherein the end to end testing comprises executing the code commits that includes executing payment processing code for processing EMV-based card present transactions with an EMV vector kernel and one or more emulated EMV cards, and running tests against the executing code commits to validate behavior the payment processing code including the EMV vector kernel, wherein the tests comprise running one or more emulated EMV cards against the vector kernel as part of one or more emulated EMV-based card present transactions and monitoring communications related to the one or more emulated EMV-based card present transaction communications.

16. The system defined in claim 15 wherein the payment processing code is run on a first server with a POSIX version of the EMV vector kernel and a pin pad and monitoring communications related to the one or more emulated EMV-based card present transaction communications comprises monitoring traffic flow through the first server.

17. The system defined in claim 15 wherein the test comprises certification tests.

18. The system defined in claim 15 wherein running tests comprise validating communications related to the one or more emulated EMV-based card present transaction communications.

19. The system defined in claim 18 wherein communications are validated by verifying a result of the at least one transaction in response to the transaction being performed by software for an emulated EMV terminal device based on a comparison of communication messages exchanged between the EMV vector kernel and the payment processing software with expected communication messages of an emulated exchange between an emulated EMV card and the emulated EMV terminal device.

20. The system defined in claim 15 wherein the CI is a forward immutable CI and the build pipeline has a plurality of stages with forward immutability between consecutive pipeline stages, wherein each subsequent stage after a first stage of the build pipeline depends on an immutable output of a previous stage in the build pipeline.

Assignments (2)
CHANGE OF NAME Recorded Jan 30, 2026
From: STRIPE, INC.
To: STRIPE, LLC
Reel/Frame 074572/0338 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2021
From: WALL, JONATHAN; GLASS, ERIC; FAVERO, ROSS
To: STRIPE, INC.
Reel/Frame 056857/0628 →