You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
Version 1
Current »
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 |
---|
Card Validity Check Default Amount | DF58 | E6 | 6 | n12 | Optional |
Initiate a Card validity check
Below is an example of how to initiate a card validity check of 10.00.
// 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 |
---|
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 |
---|
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:
AccptrAuthstnReq
<?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>
AccptrAuthstnRspn
<?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>
AccptrCmpltnAdvc
<?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>
AccptrCmpltnAdvcRspn
<?xml version="1.0" encoding="UTF-8"?> <Document xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.004.001.06"> <AccptrCmpltnAdvcRspn> <Hdr> <MsgFctn>CMPK</MsgFctn> <PrtcolVrsn>6.0</PrtcolVrsn> <XchgId>2</XchgId> <CreDtTm>2022-01-18T15:42:39.873+00:00</CreDtTm> <InitgPty> <Id>Amadis</Id> </InitgPty> <RcptPty> <Id>Amadis</Id> </RcptPty> </Hdr> <CmpltnAdvcRspn> <Envt> <AcqrrId> <Id>10009287351</Id> </AcqrrId> <MrchntId> <Id>00000NEXOMER001</Id> </MrchntId> <POIId> <Id>ASA00001</Id> </POIId> </Envt> <Tx> <TxId> <TxDtTm>2022-01-18T10:41:21.000-05:00</TxDtTm> <TxRef>00000001</TxRef> </TxId> <Rspn>APPR</Rspn> </Tx> </CmpltnAdvcRspn> </AccptrCmpltnAdvcRspn> </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$.
AccptrAuthstnReq
<?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:55:20.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>EPASMER001</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:55:20.000+00:00</TxDtTm> <TxRef>00000001</TxRef> </TxId> <RcncltnId>1</RcncltnId> <TxDtls> <Ccy>EUR</Ccy> <TtlAmt>10.00</TtlAmt> <AmtQlfr>ACTL</AmtQlfr> <OnLineRsn>TRMF</OnLineRsn> </TxDtls> </Tx> </AuthstnReq> </AccptrAuthstnReq> </Document>