A method of securely communicating between a card, a card reader, and a mobile device, comprising: receiving, by the card reader, an event including a card insertion into the card reader; sending, by the card reader, a notification of the card insertion to the mobile device in communication with the card reader; receiving, by the card reader, a passcode from the mobile device, where the mobile device receives the passcode based on user input on a display of the mobile device, and where the passcode is associated with the card; sending the passcode to the card by the card reader, where the card determines the passcode matches an embedded passcode in the card; sending, by the card reader and upon a result of the determining, an approval for a transaction to the mobile device; receiving, by the card reader, batched information from the mobile device in communication with the card reader, where the batched information includes information required for a transaction conducted using the mobile device, the card reader and the card, where the transaction requires a plurality of authentication codes before the transaction is approved or denied; storing the batched information on the card reader; receiving, by the card reader and from the card, distinct requests for information from the batched information; providing, by the card reader to the card, in response to each distinct request of the distinct requests, from the stored batched information and without having to query the mobile device, the information requested for the respective distinct request, where the card generates the plurality of authentication codes based on the information; and providing, by the card reader and to the mobile device, the authentication codes generated by the card for transmittal to an issuing bank associated with the card. receiving, by the card reader, an event including a card insertion into the card reader; sending, by the card reader, a notification of the card insertion to the mobile device in communication with the card reader; receiving, by the card reader, a passcode from the mobile device, where the mobile device receives the passcode based on user input on a display of the mobile device, and where the passcode is associated with the card; sending the passcode to the card by the card reader, where the card determines the passcode matches an embedded passcode in the card; sending, by the card reader and upon a result of the determining, an approval for a transaction to the mobile device; receiving, by the card reader, batched information from the mobile device in communication with the card reader, where the batched information includes information required for a transaction conducted using the mobile device, the card reader and the card, where the transaction requires a plurality of authentication codes before the transaction is approved or denied; storing the batched information on the card reader; receiving, by the card reader and from the card, distinct requests for information from the batched information; providing, by the card reader to the card, in response to each distinct request of the distinct requests, from the stored batched information and without having to query the mobile device, the information requested for the respective distinct request, where the card generates the plurality of authentication codes based on the information; and providing, by the card reader and to the mobile device, the authentication codes generated by the card for transmittal to an issuing bank associated with the card.