10 BONUS INFORMATION HANDLING
10.2 T RANSACTION STARTED WITH P REPARE T RANSACTION CALL WITH R EAD B ONUS I NFORMATION
10.2.1 Example: bonus information is read from chipcard and payment is given with another
VELOITUS: 1.00 EUR
---
ASIAKKAAN TOSITE: 26.04.2011 12:19:02
</ReceiptData></PrintTransactionReceipt></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID>110426004002</ArchiveID><Result
>0</Result><InputType>2</InputType><TVR>0000000000</TVR><TSI>E800</TSI><Sta te>129</State><TransactionReceiverAN>L1</TransactionReceiverAN><CheckIdentity>False
</CheckIdentity></TransactionStateChanged></EMVLumo> (Note CompletedCardRemoved –event)
10.2 Transaction started with PrepareTransaction call with ReadBonusInformation parameter set to true
Benefit of calling PrepareTransaction is that EMV handling can be started before transaction’s final amount is known. This will save few seconds in transaction process.
There are few things to be concern:
It is assumed that first card inserted will be bonus card/paycard. If bonus information is not read from first card and card is removed, transaction will be cancelled.
If bonus information is read from first card and card have been removed API is waiting for card insert or call to cancel transaction.
API will be waiting for StartTransaction call after TransactionStateChanged event where state is ReadyToReceiveSum.
Final sum should be set after ReadyToReceiveSum state change and transaction should be started with StartTransaction call.
10.2.1 Example: bonus information is read from chipcard and payment is given with another chipcard
1. (PrepareTransaction is called with ReadBonusInformation set) POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><SetTransactionType><Value>0</Value></S etTransactionType></EMVLumo>
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo xmlns="http://www.luottokunta.fi/EMVLumo"><SetArchiveID><Value /></SetArchiveID></EMVLumo>
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><SetCardEntryMode><Value>0</Value></Set CardEntryMode></EMVLumo>
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><PrepareTransaction><ReadBonusInformation
>True</ReadBonusInformation></PrepareTransaction></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><PrepareTransaction><Result>True</Result>
</PrepareTransaction></EMVLumo>
2. (API is waiting for inserting card)
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>0</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
2.1. (API returns bonus information)
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><BonusInformationReaden><PAN>600407……
5678</PAN><BonusType>2</BonusType><SettlementInfo>B3</SettlementInfo><Custome rSegment /><Validity /></BonusInformationReaden></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>3300</StatusC ode><StatusInfo>CMD READ_BONUS_INFORMATION PAN (600407...5678) BonusType (2) SettlementInfo (B3) Cancel (-1) CustomerSegment () Validity () ManualInput
(48)</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>48</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
2.2. (API is waiting to receive final amount)
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>245</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
2.3. (Card is removed from terminal)
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>0</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>0</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
2.4. (Card is inserted)
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>0</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>32</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>0</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>48</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
2.5. (API is waiting to receive final amount)
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>0</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>245</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
3. (POS will give final amount and starts transaction)
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><SetTransactionType><Value>0</Value></S etTransactionType></EMVLumo>
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo xmlns="http://www.luottokunta.fi/EMVLumo"><SetArchiveID><Value /></SetArchiveID></EMVLumo>
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><SetCardEntryMode><Value>0</Value></Set CardEntryMode></EMVLumo>
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><SetAmount><Value>100</Value></SetAmo unt></EMVLumo>
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><SetAmountOther><Value>0</Value></SetA mountOther></EMVLumo>
POS -> Lumo: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StartTransaction /></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StartTransaction><Result>True</Result></
StartTransaction></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>64</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID
/><Result>0</Result><InputType>0</InputType><TVR /><TSI /><State>69</State><TransactionReceiverAN
/><CheckIdentity>False</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID>110426004003</ArchiveID><Result
>0</Result><InputType>2</InputType><TVR>0000000000</TVR><TSI>E800</TSI><Sta te>128</State><TransactionReceiverAN>L1</TransactionReceiverAN><CheckIdentity>False
</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionFinished><StatusCode>128</Sta tusCode><Result>0</Result><TransactionReceiverAN>L1</TransactionReceiverAN></Trans actionFinished></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID>110426004003</ArchiveID><Result
>0</Result><InputType>2</InputType><TVR>0000000000</TVR><TSI>E800</TSI><Sta te>112</State><TransactionReceiverAN>L1</TransactionReceiverAN><CheckIdentity>False
</CheckIdentity></TransactionStateChanged></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>300</StatusCo de><StatusInfo>CMD
PRINT_TRANSACTION_RECEIPT</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><PrintTransactionReceipt><ReceiptType>0</R eceiptType><ReceiptData> Test
Testikatu 1 00100 Testilä 1234567890 SELITE: OSTO
KORTTI: Visa
KÄYTTÖTAPA:LUOTTOKORTTI AID ID: A0000000031010 NUMERO: 492019…...9876 AVIITE: 110426004003
TVR: 0000000000 TSI: E800
YRITYS: XXXXXXXXXXXX KP: 4 TA: 5399 ---
VELOITUS: 1.00 EUR
---
KAUPPIAAN TOSITE: 26.04.2011 13:08:35
</ReceiptData></PrintTransactionReceipt></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>300</StatusCo de><StatusInfo>CMD
PRINT_TRANSACTION_RECEIPT</StatusInfo></StatusUpdate></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><PrintTransactionReceipt><ReceiptType>1</R eceiptType><ReceiptData>SELITE: OSTO
KORTTI: Visa
KÄYTTÖTAPA:LUOTTOKORTTI AID ID: A0000000031010 NUMERO: ...9876 AVIITE: 110426004003
TVR: 0000000000 TSI: E800
YRITYS: XXXXXXXXXXXX KP: 4 TA: 5399 ---
VELOITUS: 1.00 EUR
---
ASIAKKAAN TOSITE: 26.04.2011 13:08:35
</ReceiptData></PrintTransactionReceipt></EMVLumo>
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><StatusUpdate><StatusCode>500</StatusCo de><StatusInfo>CMD MAKE_TRANSACTION:
00-05</StatusInfo></StatusUpdate></EMVLumo>
4. Card is removed from terminal
Lumo -> POS: <?xml version="1.0" encoding="utf-8"?><EMVLumo
xmlns="http://www.luottokunta.fi/EMVLumo"><TransactionStateChanged><TransactionType
>0</TransactionType><Sum>100</Sum><ArchiveID>110426004003</ArchiveID><Result
>0</Result><InputType>2</InputType><TVR>0000000000</TVR><TSI>E800</TSI><Sta te>129</State><TransactionReceiverAN>L1</TransactionReceiverAN><CheckIdentity>False
</CheckIdentity></TransactionStateChanged></EMVLumo>