Amadis

Card validity check service

Card Validity Check Service processing used to check for validity of cards, is similar to Payment Service processing. It doesn’t require a different Transaction Type. But it doesn’t allow a supplementary amount or cashback.

When carrying out a card validity service transaction, it is important to note that there should not be any amount entered as the transaction amount is set to zero in the nexoFast pre-Processing function.

The Transaction Amount can also be set to Card Validity Check Default Amount if retrieved from the Application Profile after Application Selection. Card Validity Check shall be always authorized online.

Below is the Tag to modify if you wish to have a default amount instead of using the transaction Amount in Pre-Processing (0$).

 

Name

Tag

Table

Length

Format

presence

Name

Tag

Table

Length

Format

presence

Card Validity Check Default Amount

DF58

E6

6

n12

Optional

 

Initiate a Card validity check

// Minimal parameter set TlvTree paymentParams = TlvTree.Empty(); params.paramTree.AddEnum(ArkosTags.SelectedService, PaymentServiceID.CardValidityCheck); // The system needs to provide the Date and Time of this transaction, and the local TimeZone Calendar cal = Calendar.getInstance(); int utcOffsetMinutes = cal.getTimeZone().getOffset(cal.getTimeInMillis()) / 1000 / 60; byte[] utcOffset = new byte[2]; utcOffset[0] = (byte) (utcOffsetMinutes / 60); utcOffset[1] = (byte) (utcOffsetMinutes % 60); paymentParams.AddEMVDate(ArkosTags.TransactionDate, cal.get(Calendar.YEAR) % 100, cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH)); paymentParams.AddEMVTime(ArkosTags.TransactionTime, cal.get(Calendar.HOUR), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND)); paymentParams.AddBin(ArkosTags.LocalTimezone, utcOffset); paymentParams.AddAscii(ArkosTags.SelectedLanguage, "en"); // Call to the doPayment API, sending the Arkos configuration, and parameters as a byte Array PaymentResult result = arkos.doPayment(configuration, paymentParams.AsBytes());

 

Data Parameters

Required - Card validity check

Name

Tag

Format

Usage

Name

Tag

Format

Usage

Selected Service

CE

u8; 1

12: Card Validity Check

Identification of the payment service requested

Transaction Time

9F21

BCD; 6
HMS, two nibbles per element
Ex: [0x16, 0x17, 0x27] (16:17:27)

Time at which the current action is performed

Transaction Date

9A

BCD; 6
YMD, two nibbles per element
Ex: [0x20, 0x08, 0x16] (2020-aug-16)

Date at which the current action is performed

Local Time Zone

DF9F3F

i8; 2
Hour and minute offset, one byte each
Ex: [-5, 0]

Local Timezone in which the current action is performed

Selected Language

CD

ASCII; 2
Ex: "en"

 

Optional - General

Name

Tag

Format

Usage

Name

Tag

Format

Usage

Transaction Channel

0xDFBF60

u8; 1

 

 

 

 

 

 

This value will be present in nexo acquirer message if present.

 

Reference ISO20022_MDRPart2_CAPE_caaa_2016_2017_v1, section 2.4.2.2.1.5 TransactionChannel

 
Card Validity Check is always performed online. Below are the following exchanges:

 

<?xml version="1.0" encoding="UTF-8"?> <Document xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.001.001.06"> <AccptrAuthstnReq> <Hdr> <MsgFctn>AUTQ</MsgFctn> <PrtcolVrsn>6.0</PrtcolVrsn> <XchgId>1</XchgId> <CreDtTm>2022-01-18T10:41:21.000+00:00</CreDtTm> <InitgPty> <Id>Amadis</Id> </InitgPty> <RcptPty> <Id>Amadis</Id> </RcptPty> </Hdr> <AuthstnReq> <Envt> <Acqrr> <Id> <Id>10009287351</Id> </Id> <ParamsVrsn>2022-01-13 16:59:42</ParamsVrsn> </Acqrr> <Mrchnt> <Id> <Id>00000NEXOMER001</Id> </Id> <CmonNm>AMADIS 1111 Saint-Urbain Montréal</CmonNm> </Mrchnt> <POI> <Id> <Id>ASA00001</Id> </Id> <Cpblties> <CardRdngCpblties>PHYS</CardRdngCpblties> <CardRdngCpblties>MGST</CardRdngCpblties> <CardRdngCpblties>CICC</CardRdngCpblties> <CardRdngCpblties>ECTL</CardRdngCpblties> <CrdhldrVrfctnCpblties>FCPN</CrdhldrVrfctnCpblties> <CrdhldrVrfctnCpblties>MNSG</CrdhldrVrfctnCpblties> <ApprvlCdLngth>6</ApprvlCdLngth> <OnLineCpblties>SMON</OnLineCpblties> <MsgCpblties> <Dstn>CRCP</Dstn> <Dstn>MDSP</Dstn> <Dstn>MRCP</Dstn> <AvlblLang>en</AvlblLang> <AvlblLang>fr</AvlblLang> <AvlblLang>it</AvlblLang> </MsgCpblties> </Cpblties> <Cmpnt> <Tp>TERM</Tp> <Id> <PrvdrId>Google</PrvdrId> <Id>sdk_gphone_x86_arm</Id> <SrlNb>ArkosPay DEMOSN00</SrlNb> </Id> <Sts /> </Cmpnt> <Cmpnt> <Tp>APLI</Tp> <Id> <PrvdrId>AMADIS</PrvdrId> <Id>ARKOS</Id> </Id> <Sts> <VrsnNb>3.0.6-dev-stub</VrsnNb> </Sts> </Cmpnt> </POI> <Card> <PlainCardData> <PAN>5219610200140517</PAN> <XpryDt>2021-08</XpryDt> <SvcCd>121</SvcCd> <Trck2>5219610200140517=210812110000946</Trck2> </PlainCardData> <IssrBIN>52196102</IssrBIN> <CardPdctPrfl>04</CardPdctPrfl> <CardBrnd>Carte a Piste</CardBrnd> <IntrnlCard>false</IntrnlCard> </Card> <Crdhldr> <Lang>en</Lang> <TxVrfctnRslt> <Mtd>PPSG</Mtd> </TxVrfctnRslt> </Crdhldr> </Envt> <Cntxt> <PmtCntxt> <CardPres>true</CardPres> <CrdhldrPres>true</CrdhldrPres> <AttndncCntxt>ATTD</AttndncCntxt> <CardDataNtryMd>MGST</CardDataNtryMd> </PmtCntxt> </Cntxt> <Tx> <TxCaptr>false</TxCaptr> <TxTp>VALC</TxTp> <MrchntCtgyCd>5555</MrchntCtgyCd> <TxId> <TxDtTm>2022-01-18T10:41:21.000+00:00</TxDtTm> <TxRef>00000001</TxRef> </TxId> <RcncltnId>1</RcncltnId> <TxDtls> <Ccy>EUR</Ccy> <TtlAmt>0.00</TtlAmt> <AmtQlfr>ACTL</AmtQlfr> <OnLineRsn>TRMF</OnLineRsn> </TxDtls> </Tx> </AuthstnReq> </AccptrAuthstnReq> </Document>

 

<?xml version="1.0" encoding="UTF-8"?> <Document xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.002.001.06"> <AccptrAuthstnRspn> <Hdr> <MsgFctn>AUTP</MsgFctn> <PrtcolVrsn>6.0</PrtcolVrsn> <XchgId>1</XchgId> <CreDtTm>2022-01-18T15:41:22.845+00:00</CreDtTm> <InitgPty> <Id>Amadis</Id> </InitgPty> <RcptPty> <Id>Amadis</Id> </RcptPty> </Hdr> <AuthstnRspn> <Envt> <POIId> <Id>ASA00001</Id> </POIId> </Envt> <Tx> <TxId> <TxDtTm>2022-01-18T10:41:21.000+00:00</TxDtTm> <TxRef>00000001</TxRef> </TxId> <RcptTxId>000000000000</RcptTxId> <TxDtls> <Ccy>EUR</Ccy> <TtlAmt>0.00</TtlAmt> <ICCRltdData>ioECMDA=</ICCRltdData> </TxDtls> </Tx> <TxRspn> <AuthstnRslt> <RspnToAuthstn> <Rspn>APPR</Rspn> </RspnToAuthstn> <AuthstnCd>001735</AuthstnCd> </AuthstnRslt> </TxRspn> </AuthstnRspn> </AccptrAuthstnRspn> </Document>

<?xml version="1.0" encoding="UTF-8"?> <Document xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.003.001.06"> <AccptrCmpltnAdvc> <Hdr> <MsgFctn>FCMV</MsgFctn> <PrtcolVrsn>6.0</PrtcolVrsn> <XchgId>2</XchgId> <CreDtTm>2022-01-18T10:42:40.000-05:00</CreDtTm> <InitgPty> <Id>Amadis</Id> </InitgPty> <RcptPty> <Id>Amadis</Id> </RcptPty> </Hdr> <CmpltnAdvc> <Envt> <Acqrr> <Id> <Id>10009287351</Id> </Id> <ParamsVrsn>2022-01-13 16:59:42</ParamsVrsn> </Acqrr> <Mrchnt> <Id> <Id>00000NEXOMER001</Id> </Id> <CmonNm>AMADIS 1111 Saint-Urbain Montréal</CmonNm> </Mrchnt> <POI> <Id> <Id>ASA00001</Id> </Id> <Cpblties> <CardRdngCpblties>PHYS</CardRdngCpblties> <CardRdngCpblties>MGST</CardRdngCpblties> <CardRdngCpblties>CICC</CardRdngCpblties> <CardRdngCpblties>ECTL</CardRdngCpblties> <CrdhldrVrfctnCpblties>FCPN</CrdhldrVrfctnCpblties> <CrdhldrVrfctnCpblties>MNSG</CrdhldrVrfctnCpblties> <ApprvlCdLngth>6</ApprvlCdLngth> <OnLineCpblties>SMON</OnLineCpblties> <MsgCpblties> <Dstn>CRCP</Dstn> <Dstn>MDSP</Dstn> <Dstn>MRCP</Dstn> <AvlblLang>en</AvlblLang> <AvlblLang>fr</AvlblLang> <AvlblLang>it</AvlblLang> </MsgCpblties> </Cpblties> <Cmpnt> <Tp>TERM</Tp> <Id> <PrvdrId>Google</PrvdrId> <Id>sdk_gphone_x86_arm</Id> <SrlNb>ArkosPay DEMOSN00</SrlNb> </Id> <Sts /> </Cmpnt> <Cmpnt> <Tp>APLI</Tp> <Id> <PrvdrId>AMADIS</PrvdrId> <Id>ARKOS</Id> </Id> <Sts> <VrsnNb>3.0.6-dev-stub</VrsnNb> </Sts> </Cmpnt> </POI> <Card> <PlainCardData> <PAN>5219610200140517</PAN> <XpryDt>2021-08</XpryDt> <SvcCd>121</SvcCd> </PlainCardData> <IssrBIN>52196102</IssrBIN> <CardPdctPrfl>04</CardPdctPrfl> <CardBrnd>Carte a Piste</CardBrnd> </Card> </Envt> <Cntxt> <PmtCntxt> <CardPres>true</CardPres> <CrdhldrPres>true</CrdhldrPres> <OnLineCntxt>true</OnLineCntxt> <AttndncCntxt>ATTD</AttndncCntxt> <CardDataNtryMd>MGST</CardDataNtryMd> </PmtCntxt> </Cntxt> <Tx> <TxCaptr>true</TxCaptr> <TxTp>VALC</TxTp> <MrchntCtgyCd>5555</MrchntCtgyCd> <TxId> <TxDtTm>2022-01-18T10:41:21.000-05:00</TxDtTm> <TxRef>00000001</TxRef> </TxId> <TxSucss>true</TxSucss> <Rvsl>false</Rvsl> <MrchntOvrrd>false</MrchntOvrrd> <RcptTxId>000000000000</RcptTxId> <RcncltnId>1</RcncltnId> <TxDtls> <Ccy>EUR</Ccy> <TtlAmt>0.00</TtlAmt> <AmtQlfr>ACTL</AmtQlfr> <AuthrsdAmt>0.00</AuthrsdAmt> </TxDtls> <AuthstnRslt> <RspnToAuthstn> <Rspn>APPR</Rspn> </RspnToAuthstn> <AuthstnCd>001735</AuthstnCd> </AuthstnRslt> <TxVrfctnRslt> <Mtd>PPSG</Mtd> </TxVrfctnRslt> </Tx> </CmpltnAdvc> </AccptrCmpltnAdvc> </Document>

 

 

As mentioned above, the Total Amount will be different if the Tag Card Validity Check Default Amount is present.

An example of the Acceptor Authorisation Request can be found below with the Tag Card Validity Check Default Amount set to 10$.

Â