IP Library Granted Patent US 12,499,439
Granted Patent B2
US 12,499,439 · App. 17/978,679 · Granted Dec 16, 2025

Managed EMV kernel for faster processing

Inventors: Jonathan Wall (South San Francisco, CA); Ross Favero (South San Francisco, CA); Eric Nelson Glass (South San Francisco, CA); Joseph R. Koenig (South San Francisco, CA)
Assignee: STRIPE, INC.
G06Q20/3829G06Q20/204G06Q20/341G06Q20/4016G06Q30/0637G06Q2220/00
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 12,499,439
App. No.
17/978,679
Granted
Dec 16, 2025
Kind
B2
Abstract

Method and system of performing transactions with a payment card in a managed integrated payment environment comprising an integrated circuit are disclosed comprising interacting with an integrated circuit on a received payment card to obtain card data by a payment terminal and determining whether full online transaction processing of the card data is required. If full online transaction processing of the card data is required, the card data is sent to a point-of-sale terminal, which sends the card data and a transaction total for the transaction to a merchant gateway, which obtains approval or denial of the transaction. The approval or denial is provided to the PIN pad by the merchant gateway via the point-of-service terminal. The PIN pad also receives transaction data and sends the transaction data and card data to a services processor to collect metadata, perform fraud and security checks, and/or encrypt the card data.

Claims (87)

1 . A method of processing a request with a card comprising an integrated circuit, the method comprising:

generating, by a processor of a terminal device, a priority inference table that associates each of a set of public key parameters with card identification parameters, the priority inference table generated based on historical card usage at the terminal device, wherein the priority inference table is dynamically generated by the processor of the terminal device based on historical card usage at the terminal device, and the card identification parameters comprising a card brand, a card type, a market share of the card brand and/or the card type, a market share of a user that initiated the request, a known relationship between the card brand and/or the card type and the user that initiated the request, or a combination thereof;

obtaining, by a reader of the terminal device, card data in response to the reader communicating with the integrated circuit on the card;

determining, by the processor of the terminal device, to process the request by using a first set of processing operations to process the card data, wherein the first set of processing operations includes performing card validation and waiting for authorization from an issuing entity; and

processing, by the processor of the terminal device, the request using the first set of processing operations by performing the card validation, comprising:

determining, by the processor of the terminal device, that the card data matches a card identification parameter and the matched card identification parameter was used in a prior threshold number of requests,

inferring, by the processor of the terminal device, public key parameters for the card based, at least in part, on the association between the matched card identification parameter and the public key parameters in the priority inference table,

retrieving the inferred public key parameters from a memory of the terminal device,

attempting to verify signed data using the retrieved public key parameters without sending a read request to the integrated circuit of the received card for the public key parameters, and

in response to the signed data being verified, continuing processing of the request based on the verified signed data.

2 . The method of claim 1 , wherein continuing processing of the request based on the verified signed data in response to the signed data being verified, further comprises:

issuing, by the processor of the terminal device, a command to the integrated circuit to generate an authorization cryptogram;

receiving, by the processor of the terminal device, the authorization cryptogram;

based on the processor of the terminal device reading a final options file that indicates at least one party to the request requires full online processing of the card data, initiating an online processing of the card data.

3 . The method of claim 1 , wherein the method further comprises:

failing, by the processor of the terminal device, to verify the signed data with using the retrieved public key parameters;

attempting, by the processor of the terminal device, to verify the signed data with all available secure key parameters; and

in response to the signed data being verified by at least one of the available secure key parameters, the method further comprises:

issuing, by the processor of the terminal device, a command to the integrated circuit to generate an authorization cryptogram,

receiving, by the processor of the terminal device, the authorization cryptogram,

based on the processor of the terminal device reading a final options file that indicates at least one party to the request requires full online processing of the card data, initiating an online processing of the card data.

4 . The method of claim 3 , comprising:

storing, in a memory of the terminal device, information related to two or more parties to the request; and

determining, by the processor of the terminal device, whether to perform card validation to validate the card based, at least in part, on stored information of the two or more parties.

5 . The method of claim 1 , wherein the first set of processing operations are different from a second set of processing operations that does not perform card validation and defers obtaining authorization from the issuing entity, and the first set of processing operations are associated with first processing configuration options of a first party to the request, and the second set of processing operations are associated with second processing configuration options of a second party to the request, and wherein the determination is based on relative priority levels of the first party and the second party.

6 . The method of claim 5 , wherein the determination to process the request by using the first set of processing operations is based on a priority level of the first party being greater than a priority level of a second party to the request.

7 . The method of claim 6 , wherein the card comprises a first card, and the method further comprising:

interacting, with the reader of the terminal device during a second request, with a second integrated circuit on a received second card;

determining, by the processor of the terminal device, to process the second request by using the second set of processing operations for processing the second card based on a priority level of the second party being greater than the priority level of the first party to the second request; and

in response to determining to process the second request by using the second set of processing operations, completing processing of the second request without performing card validation and with a random transaction amount.

8 . A terminal device for processing a request with a card comprising an integrated circuit, comprising:

a processing device; and

a memory;

wherein the processing device is configured to:

generate a priority inference table that associates each of a set of public key parameters with card identification parameters, the priority inference table generated based on historical card usage at the terminal device, wherein the priority inference table is dynamically generated by the terminal device based on historical card usage at the terminal device, and the card identification parameters comprising a card brand, a card type, a market share of the card brand and/or the card type, a market share of a user that initiates the request, a known relationship between the card brand and/or the card type and the user that initiated the request, or a combination thereof

obtaining, by a reader of the terminal device, card data in response to the reader communicating with the integrated circuit on the card,

determine to process the request by using a first set of processing operations to process the card data, wherein the first set of processing operations includes performing card validation and waiting for authorization from an issuing entity, and

process the request using the first set of processing operations to perform the card validation, comprising the processing device configured to:

determine that the card data matches a card identification parameter and the matched card identification parameter was used in a prior threshold number of requests,

infer public key parameters for the card based, at least in part, on the association between the matched card identification parameter and the public key parameters in the priority inference table,

retrieve the inferred public key parameters from a memory of the terminal device,

attempt to verify signed data using the retrieved public key parameters without sending a read request to the integrated circuit of the received card for the public key parameters, and

in response to the signed data being verified, continue processing of the request based on the verified signed data.

9 . The payment terminal of claim 8 , wherein the processing device to continue processing of the request based on the verified signed data in response to the signed data being verified, the processing device is further configured to:

issue a command to the integrated circuit to generate an authorization cryptogram;

receive the authorization cryptogram;

read a final options file by the processor of the terminal device that indicates at least one party to the request requires full online processing of the card data; and

initiate by the processor of the terminal device an online processing of the card data.

10 . The payment terminal of claim 8 , wherein the processing device is further configured to:

fail to verify the signed data with using the retrieved public key parameters;

attempt to verify the signed data with all available secure key parameters; and

in response to the signed data being verified by at least one of the available secure key parameters, the processing device is further configured to:

issue a command to the integrated circuit to generate an authorization cryptogram,

receive the authorization cryptogram,

read a final options file by the processor of the terminal device that indicates at least one party to the request requires full online processing of the card data, and

initiate by the processor of the terminal device an online processing of the card data.

11 . The payment terminal of claim 10 , the processing device is further configured to:

storing, in a memory, information related to two or more parties to the request; and

determining whether to perform card validation to validate the card based, at least in part, on stored information of the two or more parties.

12 . The payment terminal of claim 8 , wherein the first set of processing operations are different from a second set of processing operations that does not perform card validation and defers obtaining authorization from the issuing entity, and the first set of processing operations are associated with first processing configuration options of a first party to the request, and the second set of processing operations are associated with second processing configuration options of a second party to the request, and wherein the determination is based on relative priority levels of the first party and the second party.

13 . The payment terminal of claim 12 , wherein the determination to process the request by using the first set of processing operations is based on a priority level of the first party being greater than a priority level of a second party to the request.

14 . A non-transitory computer readable storage medium having instructions stored thereon, which when executed by a processor of a terminal device, configures the terminal device to perform operations for processing a request with a card comprising an integrated circuit, the operations comprising:

generating, by the terminal device, a priority inference table that associates each of a set of public key parameters with card identification parameters, the priority inference table generated based on historical card usage at the terminal device, wherein the priority inference table is dynamically generated by the processor of the terminal device based on historical card usage at the terminal device, and the card identification parameters comprising a card brand, a card type, a market share of the card brand and/or the card type, a market share of a user that initiated the request, a known relationship between the card brand and/or the card type and the user that initiated the request, or a combination thereof;

obtaining, by a reader of the terminal device, card data in response to the reader communicating with an integrated circuit on the card;

determining, by the terminal device, to process the request by using a first set of processing operations to process the card data, wherein the first set of processing operations includes performing card validation and waiting for authorization from an issuing entity; and

processing, by the terminal device, the request using the first set of processing operations by performing the card validation, comprising:

determining that the card data matches a card identification parameter and the matched card identification parameter was used in a prior threshold number of requests,

inferring public key parameters for the card based, at least in part, on the association between the matched card identification parameter and the public key parameters in the priority inference table,

retrieving the inferred public key parameters from a memory of the terminal device,

attempting to verify signed data using the retrieved public key parameters without sending a read request to the integrated circuit of the received card for the public key parameters, and

in response to the signed data being verified, continuing processing of the request based on the verified signed data.

15 . The non-transitory computer readable storage medium of claim 14 , wherein continuing processing of the request based on the verified signed data in response to the signed data being verified, the operations further comprise:

issuing a command to the integrated circuit to generate an authorization cryptogram;

receiving the authorization cryptogram;

based on the terminal device reading a final options file that indicates at least one party to the request requires full online processing of the card data, initiating an online processing of the card data.

16 . The non-transitory computer readable storage medium of claim 14 , wherein the operations further comprise:

failing to verify the signed data with using the retrieved public key parameters;

attempting to verify the signed data with all available secure key parameters; and

in response to the signed data being verified by at least one of the available secure key parameters, the operations further comprise:

issuing a command to the integrated circuit to generate an authorization cryptogram,

receiving the authorization cryptogram,

based on the processor of the terminal device reading a final options file that indicates at least one party to the request requires full online processing of the card data, initiating an online processing of the card data.

17 . The non-transitory computer readable storage medium of claim 16 , the operations further comprise:

storing, in a memory of the terminal device, information related to two or more parties to the request; and

determining whether to perform card validation to validate the card based, at least in part, on stored information of the two or more parties.

18 . The non-transitory computer readable storage medium of claim 14 , wherein the first set of processing operations are different from a second set of processing operations that does not perform card validation and defers obtaining authorization from the issuing entity, and the first set of processing operations are associated with first processing configuration options of a first party to the request, and the second set of processing operations are associated with second processing configuration options of a second party to the request, and wherein the determination is based on relative priority levels of the first party and the second party.

19 . The non-transitory computer readable storage medium of claim 18 , wherein the determination to process the request by using the first set of processing operations is based on a priority level of the first party being greater than a priority level of a second party to the request.

Continuity (6)
Division 16848271 · Apr 14, 2020
Continuation In Part 15997416 · Jun 4, 2018
Continuation In Part 15699090 · Sep 8, 2017
Provisional Application 62514519 · Jun 2, 2017
Provisional Application 62385165 · Sep 8, 2016
Related Publication 20230053007A1 · Feb 16, 2023
References Cited (137)
US 4403220A · Donovan · 1983 [cited by applicant]
US 5396558A · Ishiguro · 1995 [cited by examiner]
US 5529138A · Shaw et al. · 1996 [cited by applicant]
US 5629524A · Stettner et al. · 1997 [cited by applicant]
US 5649118A · Carlisle et al. · 1997 [cited by applicant]
US 5696577A · Stettner et al. · 1997 [cited by applicant]
US 6133989A · Stettner et al. · 2000 [cited by applicant]
US 6362482B1 · Stettner et al. · 2002 [cited by applicant]
US 6414746B1 · Stettner et al. · 2002 [cited by applicant]
US 6993503B1 · Heissenbuttel et al. · 2006 [cited by applicant]
US 7061372B2 · Gunderson et al. · 2006 [cited by applicant]
US 8418689B1 · Davenport · 2013 [cited by applicant]
US 8478689B1 · Veselka · 2013 [cited by applicant]
US 8762268B2 · Wall et al. · 2014 [cited by applicant]
US 8910868B1 · Wade et al. · 2014 [cited by applicant]
US 9679290B2 · Hazel et al. · 2017 [cited by applicant]
US 9753462B2 · Gilliland et al. · 2017 [cited by applicant]
US 10366378B1 · Han et al. · 2019 [cited by applicant]
US 10372138B2 · Gilliland et al. · 2019 [cited by applicant]
US 20010004375A1 · Partyka · 2001 [cited by examiner]
US 20010024171A1 · Nishimura · 2001 [cited by applicant]
US 20020003473A1 · Makita et al. · 2002 [cited by applicant]
US 20020036907A1 · Kobayashi et al. · 2002 [cited by applicant]
US 20020086907A1 · Standke et al. · 2002 [cited by applicant]
US 20020111919A1 · Weller et al. · 2002 [cited by applicant]
US 20020117340A1 · Stettner · 2002 [cited by applicant]
US 20020140923A1 · Schellmann · 2002 [cited by applicant]
US 20040004707A1 · Deflumere · 2004 [cited by applicant]
US 20040181453A1 · Ray et al. · 2004 [cited by applicant]
US 20050033688A1 · Peart · 2005 [cited by examiner]
US 20050068517A1 · Evans et al. · 2005 [cited by applicant]
US 20050159974A1 · Moss et al. · 2005 [cited by applicant]
US 20050188360A1 · De Jong · 2005 [cited by applicant]
US 20050222958A1 · Hasegawa et al. · 2005 [cited by applicant]
US 20060049255A1 · Von et al. · 2006 [cited by applicant]
US 20060179232A1 · Bell et al. · 2006 [cited by applicant]
US 20060179323A1 · Nei · 2006 [cited by applicant]
US 20080091944A1 · Von et al. · 2008 [cited by applicant]
US 20080109372A1 · Bykov et al. · 2008 [cited by applicant]
US 20080133136A1 · Breed et al. · 2008 [cited by applicant]
US 20080165006A1 · Phillips · 2008 [cited by applicant]
US 20090006262A1 · Brown et al. · 2009 [cited by applicant]
US 20090228159A1 · Flowers et al. · 2009 [cited by applicant]
US 20100051685A1 · Royyuru · 2010 [cited by examiner]
US 20100108758A1 · Smets et al. · 2010 [cited by applicant]
US 20100131413A1 · Kranzley et al. · 2010 [cited by applicant]
US 20100191418A1 · Mimeault et al. · 2010 [cited by applicant]
US 20100208244A1 · Earhart et al. · 2010 [cited by applicant]
US 20100332727A1 · Kapil et al. · 2010 [cited by applicant]
US 20110188113A1 · Dede et al. · 2011 [cited by applicant]
US 20110264499A1 · Abendroth et al. · 2011 [cited by applicant]
US 20120011070A1 · Ward et al. · 2012 [cited by applicant]
US 20120072347A1 · Conway · 2012 [cited by applicant]
US 20120249999A1 · Stettner et al. · 2012 [cited by applicant]
US 20120290420A1 · Close · 2012 [cited by applicant]
US 20130185167A1 · Mestréet al. · 2013 [cited by applicant]
US 20130304642A1 · Campos · 2013 [cited by applicant]
US 20140012701A1 · Wall et al. · 2014 [cited by applicant]
US 20140156535A1 · Jabbour et al. · 2014 [cited by applicant]
US 20140188646A1 · Itwaru et al. · 2014 [cited by applicant]
US 20140207575A1 · Freed-Finnegan et al. · 2014 [cited by applicant]
US 20140222668A1 · Wall et al. · 2014 [cited by applicant]
US 20140297434A1 · Singhal · 2014 [cited by applicant]
US 20150006407A1 · Lunn et al. · 2015 [cited by applicant]
US 20150058145A1 · Luciani · 2015 [cited by applicant]
US 20150073926A1 · Royyuru · 2015 [cited by examiner]
US 20150154634A1 · Chiu et al. · 2015 [cited by applicant]
US 20150161608A1 · Gilbert · 2015 [cited by examiner]
US 20150178708A1 · Reutov · 2015 [cited by applicant]
US 20150186864A1 · Jones et al. · 2015 [cited by applicant]
US 20150324792A1 · Guise et al. · 2015 [cited by applicant]
US 20160117659A1 · Bedier et al. · 2016 [cited by applicant]
US 20170076288A1 · Awasthi · 2017 [cited by applicant]
US 20170083917A1 · Sjoholm · 2017 [cited by examiner]
US 20170091797A1 · Nodera · 2017 [cited by applicant]
US 20170186007A1 · Jer-Wei · 2017 [cited by applicant]
US 20170278085A1 · Anderson · 2017 [cited by examiner]
US 20170286663A1 · Hurry et al. · 2017 [cited by applicant]
US 20180005226A1 · Terra · 2018 [cited by examiner]
US 20180068138A1 · Palermo · 2018 [cited by applicant]
US 20180068303A1 · Wall et al. · 2018 [cited by applicant]
US 20180109508A1 · Wall et al. · 2018 [cited by applicant]
US 20180167204A1 · Wall et al. · 2018 [cited by applicant]
US 20180357634A1 · Shin · 2018 [cited by applicant]
US 20190066105A1 · Banks Larsen et al. · 2019 [cited by applicant]
US 20190156337A1 · Alandt et al. · 2019 [cited by applicant]
US 20190156338A1 · Salama et al. · 2019 [cited by applicant]
CN 104054098A · 2014 [cited by applicant]
DE 10037217A1 · 2002 [cited by applicant]
JP 2010529932A · 2010 [cited by applicant]
KR 1020040000143A · 2004 [cited by applicant]
KR 1020040001438A · 2004 [cited by applicant]
KR 1020080094663A · 2008 [cited by applicant]
KR 1020120035315A · 2012 [cited by applicant]
WO 2008154736A1 · 2008 [cited by applicant]
Examination Report received for Australian Patent Application No. 2022203463, mailed on May 8, 2024, 4 pages. [cited by applicant]
Request for the Submission of an Opinion received for Korean Patent Application No. 10-2013-7014299, mailed on Feb. 22, 2017, 16 pages (9 pages of English Translation and 7 pages of Original Document). [cited by applicant]
Supplementary European Search Report and Search Opinion received for European Application No. 21825084.3, mailed on May 28, 2024, 9 pages. [cited by applicant]
Answer to reset, Wikipedia, retrieved from https://en.wikipedia.org/wiki/Answer_to_reset, Apr. 30, 2023, 7 pages. [cited by applicant]
AU Examination Report in App. No. 2022203463 mailed on May 26, 2023, 3 pages. [cited by applicant]
Australian Office Action and Search Report on the Patentability of Application No. 2020257022 dated Oct. 13, 2021, 6 pages. [cited by applicant]
Canadian Office Action for Application No. 3035666 dated Apr. 28, 2020, 4 pages. [cited by applicant]
Decision to grant received for European Application No. 11838671.3, mailed on Feb. 11, 2021, 2 pages. [cited by applicant]
EMV Integrated Circuit Card Specifications for Payment Systems, Book 2 Security and Key Management, Version 4.3, Nov. 2011, https://www.emvco.com/wp-content/uploads/2017/05/EMV_v4.3_Book_2_Security_and_Key_Management_20… [cited by applicant]
EMVCo, “A Guide to EMV Chip Technology”, Version 2.0, Nov. 2014, 36 pages. [cited by applicant]
European Search Report and Search Opinion received for European Application No. 11838671.3, mailed on Mar. 11, 2015, 7 pages. [cited by applicant]
Fabian Meier, “Whitepaper ax eft Kernel EMV Level 2 Kernel—a Software Module for EFTPOS Terminals,” Abrantix AG, 2009, Mar. 20, 2009 Version v1.0. [cited by applicant]
Intention to grant received for European Application No. 11838671.3, mailed on Oct. 1, 2020, 6 pages. [cited by applicant]
Intention to grant received for European Patent Application No. 17849587.5, mailed on Jan. 25, 2023, 6 pages. [cited by applicant]
Intention to grant received for European Patent Application No. 17849587.5, mailed on Jun. 5, 2023, 6 pages. [cited by applicant]
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US17/50633, mailed on Mar. 21, 2019, 13 pages. [cited by applicant]
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US2011/058773, mailed on May 16, 2013, 6 pages. [cited by applicant]
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US21/26133, mailed on Dec. 29, 2022, 7 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US17/50633, mailed on Nov. 29, 2017, 14 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US2011/058773, mailed on Jun. 29, 2012, 8 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US21/26133, mailed on Jul. 30, 2021, 8 pages. [cited by applicant]
Mastercard, “Secure Payment Technologies Demystified”, Sep. 2015 (Year: 2015). [cited by applicant]
Office Action received for European Application No. 11838671.3, mailed on Apr. 17, 2018, 4 pages. [cited by applicant]
Office Action received for European Application No. 11838671.3, mailed on Feb. 27, 2020, 4 pages. [cited by applicant]
Office Action received for European Application No. 11838671.3, mailed on Mar. 9, 2017, 4 pages. [cited by applicant]
Office Action received for Korean Patent Application No. 10-2013-7014299, mailed on Aug. 30, 2017, 2 pages of English Translation only. [cited by applicant]
Office Action received for Korean Patent Application No. 10-2013-7014299, mailed on Jul. 22, 2017, 16 pages (9 pages of English Translation and 7 pages of Original Document). [cited by applicant]
Rankl et al: “Smart card handbook, fourth edition” Jul. 19, 2010, pages. ch1-ch2 XP055411264. [cited by applicant]
Rankl, W., et al., “Smart Card Handbook,” Third Edition, Wiley, Apr. 2, 2004, XP055302027. [cited by applicant]
Srini V P., “A vision for supporting autonomous navigation in urban environments,” Computer, IEEE, US, vol. 39, No. 12, Dec. 1, 2006, pp. 68-77. [cited by applicant]
Supplementary European Search Report and Search Opinion received for European Application No. 17849587.5, mailed on Feb. 25, 2020, 7 pages. [cited by applicant]
Decision to grant a European patent received for European Application No. 17849587.5, mailed on Oct. 12, 2023, 2 pages. [cited by applicant]
European Search Report and Search Opinion received for EP Patent Application No. 23207568.9, mailed on Jan. 16, 2024, 12 pages. [cited by applicant]
Office Action received for Australian Patent Application No. 2022203463, mailed on Jan. 8, 2024, 4 pages. [cited by applicant]
Office Action received for Canadian Patent Application No. 3173110, mailed on Nov. 22, 2023, 5 pages. [cited by applicant]
Examination report received for Australian Patent Application No. 2021293514, mailed on Jul. 2, 2024, 7 pages. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 17/891,707, mailed on Jul. 8, 2024, 2 pages. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 17/891,707, mailed on Jun. 26, 2024, 15 pages. [cited by applicant]
EMV, Integrated Circuit Card—Specifications for Payment Systems, Book 1, Application Independent ICC to Terminal Interface Requirements, Version 4.3, Nov. 2011, 189 pages. [cited by applicant]
Notice of Acceptance for Australian Patent Application No. 2020257022, dated Feb. 15, 2022, 3 pages. [cited by applicant]
Office Action received for EP Patent Application No. 23207568.9, mailed on Dec. 12, 2024, 6 pages. [cited by applicant]
Office Action and Search Report received for Chinese Patent Application No. 202180028885.4, mailed on Jul. 28, 2025, 20 pages (10 pages of English Translation and 10 pages of Original Document). [cited by applicant]