Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

THIS PAGE ACCESS IS CURRENTLY RESTRICTED TO AUTHORIZED USERS ONLY.

PLEASE DO NOT PUBLISH THE PAGE WITHOUT THE PRODUCT OWNER PERMISSION

The cancellation service has been modified to support an online cancellation without searching from the log. From now on, a merchant is able to do :

  • Online Cancellation using the transaction log ( As in previous versions).

  • Offline Cancellation ( As in previous versions).

  • Online Cancellation without searching from the log.

Online Cancellation using the transaction log

Performing an online cancellation through a search of the transaction log involves the following steps explained below.

Steps Taken for a successful online cancellation:

  • Terminal Settings ( Tag DF34 byte 3, bit 6 set to 0 , bit 7 set to 1).

...

  • Ensure that Application Profile Settings for Cancellation (Tag DF28) is configured for the service you want to cancel(byte 1) and is configured to be performed online(byte 2). NOTE: In our case, it is configured online for captured transaction.

    Image Added

Below is an example derived from a cancellation of an original transaction(payment).

Code Block
PaymentResult result;
result = arkos.doPayment(arkosConfig.AsBytes(), paymentParams.AsBytes()); //In your payment function
paymentParams.AddAscii(ArkosTags.ReferenceData,result.trxReference); //In your cancellation function

Examples of the use cases with their corresponding XML can be found below.

AcceptorCancellationRequest:

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.005.001.06">
  <AccptrCxlReq>
    <Hdr>
      <MsgFctn>CCAQ</MsgFctn>
      <PrtcolVrsn>6.0</PrtcolVrsn>
      <XchgId>0</XchgId>
      <CreDtTm>2021-06-21T01:36:05.000+00:00</CreDtTm>
      <InitgPty>
        <Id>UBUNTU</Id>
      </InitgPty>
      <RcptPty>
        <Id>NATIXIS</Id>
      </RcptPty>
    </Hdr>
    <CxlReq>
      <Envt>
        <Acqrr>
          <Id>
            <Id>010009287351</Id>
          </Id>
          <ParamsVrsn>1.0</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>ECTL</CardRdngCpblties>
            <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>MANUFACTURER</PrvdrId>
              <Id>MODEL</Id>
              <SrlNb>DEVICESN</SrlNb>
            </Id>
            <Sts />
          </Cmpnt>
          <Cmpnt>
            <Tp>APLI</Tp>
            <Id>
              <PrvdrId>AMADIS</PrvdrId>
              <Id>ARKOS</Id>
            </Id>
            <Sts>
              <VrsnNb>2.0</VrsnNb>
            </Sts>
          </Cmpnt>
        </POI>
        <Card>
          <PlainCardData>
            <PAN>5219610200140517</PAN>
            <XpryDt>2021-08</XpryDt>
          </PlainCardData>
          <CardPdctPrfl>04</CardPdctPrfl>
          <CardBrnd>Carte a Piste</CardBrnd>
        </Card>
      </Envt>
      <Cntxt>
        <PmtCntxt>
          <CardPres>false</CardPres>
          <CrdhldrPres>false</CrdhldrPres>
          <AttndncCntxt>ATTD</AttndncCntxt>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
        </PmtCntxt>
      </Cntxt>
      <Tx>
        <TxCaptr>false</TxCaptr>
        <MrchntCtgyCd>5555</MrchntCtgyCd>
        <TxId>
          <TxDtTm>2021-06-21T01:36:05.000+00:00</TxDtTm>
          <TxRef>00000029</TxRef>
        </TxId>
        <OrgnlTx>
          <TxId>
            <TxDtTm>2021-06-21T01:36:00.000+00:00</TxDtTm>
            <TxRef>00000028</TxRef>
          </TxId>
          <POIId>
            <Id>ASA00001</Id>
          </POIId>
          <TxTp>CRDP</TxTp>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
          <TxRslt>
            <RspnToAuthstn>
              <Rspn>APPR</Rspn>
            </RspnToAuthstn>
            <AuthstnCd>000534</AuthstnCd>
          </TxRslt>
        </OrgnlTx>
        <RcncltnId>1</RcncltnId>
        <TxDtls>
          <Ccy>EUR</Ccy>
          <TtlAmt>89.12</TtlAmt>
        </TxDtls>
      </Tx>
    </CxlReq>
  </AccptrCxlReq>
</Document>

AcceptorCancellationAdvice:

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.007.001.06">
  <AccptrCxlAdvc>
    <Hdr>
      <MsgFctn>CCAQ</MsgFctn>
      <PrtcolVrsn>6.0</PrtcolVrsn>
      <XchgId>0</XchgId>
      <ReTrnsmssnCntr>1</ReTrnsmssnCntr>
      <CreDtTm>2021-06-21T01:36:05.000+00:00</CreDtTm>
      <InitgPty>
        <Id>UBUNTU</Id>
      </InitgPty>
      <RcptPty>
        <Id>NATIXIS</Id>
      </RcptPty>
    </Hdr>
    <CxlAdvc>
      <Envt>
        <Acqrr>
          <Id>
            <Id>010009287351</Id>
          </Id>
          <ParamsVrsn>1.0</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>ECTL</CardRdngCpblties>
            <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>MANUFACTURER</PrvdrId>
              <Id>MODEL</Id>
              <SrlNb>DEVICESN</SrlNb>
            </Id>
            <Sts />
          </Cmpnt>
          <Cmpnt>
            <Tp>APLI</Tp>
            <Id>
              <PrvdrId>AMADIS</PrvdrId>
              <Id>ARKOS</Id>
            </Id>
            <Sts>
              <VrsnNb>2.0</VrsnNb>
            </Sts>
          </Cmpnt>
        </POI>
        <Card>
          <PlainCardData>
            <PAN>5219610200140517</PAN>
            <XpryDt>2021-08</XpryDt>
          </PlainCardData>
          <IssrBIN>52196102</IssrBIN>
          <CardPdctPrfl>04</CardPdctPrfl>
          <CardBrnd>Carte a Piste</CardBrnd>
        </Card>
      </Envt>
      <Cntxt>
        <PmtCntxt>
          <CardPres>false</CardPres>
          <CrdhldrPres>false</CrdhldrPres>
          <OnLineCntxt>true</OnLineCntxt>
          <AttndncCntxt>ATTD</AttndncCntxt>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
        </PmtCntxt>
      </Cntxt>
      <Tx>
        <MrchntCtgyCd>5555</MrchntCtgyCd>
        <TxId>
          <TxDtTm>2021-06-21T01:36:05.000+00:00</TxDtTm>
          <TxRef>00000029</TxRef>
        </TxId>
        <OrgnlTx>
          <TxId>
            <TxDtTm>2021-06-21T01:36:00.000+00:00</TxDtTm>
            <TxRef>00000028</TxRef>
          </TxId>
          <POIId>
            <Id>ASA00001</Id>
          </POIId>
          <TxTp>CRDP</TxTp>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
          <TxRslt>
            <RspnToAuthstn>
              <Rspn>APPR</Rspn>
            </RspnToAuthstn>
            <AuthstnCd>000534</AuthstnCd>
          </TxRslt>
        </OrgnlTx>
        <TxSucss>true</TxSucss>
        <Rvsl>false</Rvsl>
        <RcncltnId>1</RcncltnId>
        <TxDtls>
          <Ccy>EUR</Ccy>
          <TtlAmt>89.12</TtlAmt>
        </TxDtls>
      </Tx>
    </CxlAdvc>
  </AccptrCxlAdvc>
</Document>

Online Cancellation without searching from the log.

It is to be noted that a slight modification was made to the flow of the latter (Online Cancellation without searching from the log) to help retrieve some Infos; such as AcquirerID, TerminalID, and etc. As it stands, this seems to be lackluster from Nexofast as they haven't thought out this solution properly. Upon implementing the flow they provided to us (nexoFAST 3.2), we ended up having some issues.

...

Steps Taken for a successful online cancellation without searching from the log:

  • Terminal Settings ( Tag DF34 byte 3, bit 8 and bit 6 set to 1 , bit 7 set to 0).

...

Reference data has been included in the Original Transaction section of CancellationAuth CancellationRequest and CancellationAdvice.

Below is an example derived from a cancellation of an original transaction(payment).

Code Block
 paymentParams.AddBin(ArkosTags.TransactionAmount, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x20, 0x00 });
 paymentParams.AddBin(ArkosTags.AmountAuthorised, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x20, 0x00 });
 paymentParams.AddBin(ArkosTags.TransactionAmountBeforeAdjustment, new byte[] { 0x00, 0x00, 0x00, 0x00, 0x20, 0x00 });

TlvTree originalTransaction = paymentParams.AddChild(ArkosTags.OriginalTransaction);
originalTransaction.AddEMVDate(ArkosTags.TransactionDate, cal.get(Calendar.YEAR) % 100, cal.get(Calendar.MONTH) + 1, cal.get(Calendar.DAY_OF_MONTH));
originalTransaction.AddEMVTime(ArkosTags.TransactionTime, cal.get(Calendar.HOUR), cal.get(Calendar.MINUTE), cal.get(Calendar.SECOND));
originalTransaction.AddBin(ArkosTags.LocalTimezone, utcOffset);
originalTransaction.AddAscii(ArkosTags.ReferenceData,"1234567890");
originalTransaction.AddEnum(ArkosTags.SelectedService, PaymentServiceID.Payment);

paymentParams.AddAscii(ArkosTags.ReferenceData,"1234567890");


Examples of the use cases with their corresponding XML can be found below.

AcceptorCancellationRequest:

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.005.001.06">
  <AccptrCxlReq>
    <Hdr>
      <MsgFctn>CCAQ</MsgFctn>
      <PrtcolVrsn>6.0</PrtcolVrsn>
      <XchgId>0</XchgId>
      <CreDtTm>2021-06-21T00:30:03.000+00:00</CreDtTm>
      <InitgPty>
        <Id>UBUNTU</Id>
      </InitgPty>
      <RcptPty>
        <Id>NATIXIS</Id>
      </RcptPty>
    </Hdr>
    <CxlReq>
      <Envt>
        <Acqrr>
          <Id>
            <Id>010009287351</Id>
          </Id>
          <ParamsVrsn>1.0</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>ECTL</CardRdngCpblties>
            <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>MANUFACTURER</PrvdrId>
              <Id>MODEL</Id>
              <SrlNb>ASADEVSN</SrlNb>
            </Id>
            <Sts />
          </Cmpnt>
          <Cmpnt>
            <Tp>APLI</Tp>
            <Id>
              <PrvdrId>AMADIS</PrvdrId>
              <Id>ARKOS</Id>
            </Id>
            <Sts>
              <VrsnNb>2.0</VrsnNb>
            </Sts>
          </Cmpnt>
        </POI>
        <Card>
          <CardPdctPrfl>04</CardPdctPrfl>
          <CardBrnd>Carte a Piste</CardBrnd>
        </Card>
      </Envt>
      <Cntxt>
        <PmtCntxt>
          <CardPres>false</CardPres>
          <CrdhldrPres>false</CrdhldrPres>
          <AttndncCntxt>ATTD</AttndncCntxt>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
        </PmtCntxt>
      </Cntxt>
      <Tx>
        <TxCaptr>false</TxCaptr>
        <MrchntCtgyCd>5555</MrchntCtgyCd>
        <TxId>
          <TxDtTm>2021-06-21T00:30:03.000+00:00</TxDtTm>
          <TxRef>00000026</TxRef>
        </TxId>
        <OrgnlTx>
          <TxId>
            <TxDtTm>2021-06-21T00:30:03.000+00:00</TxDtTm>
            <TxRef>1234567890</TxRef>
          </TxId>
          <TxTp>CRDP</TxTp>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
        </OrgnlTx>
        <RcncltnId>1</RcncltnId>
        <TxDtls>
          <Ccy>EUR</Ccy>
          <TtlAmt>20.00</TtlAmt>
        </TxDtls>
      </Tx>
    </CxlReq>
  </AccptrCxlReq>
</Document>

AcceptorCancellationAdvice:

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:caaa.007.001.06">
  <AccptrCxlAdvc>
    <Hdr>
      <MsgFctn>CCAQ</MsgFctn>
      <PrtcolVrsn>6.0</PrtcolVrsn>
      <XchgId>0</XchgId>
      <ReTrnsmssnCntr>1</ReTrnsmssnCntr>
      <CreDtTm>2021-06-21T00:30:03.000+00:00</CreDtTm>
      <InitgPty>
        <Id>UBUNTU</Id>
      </InitgPty>
      <RcptPty>
        <Id>NATIXIS</Id>
      </RcptPty>
    </Hdr>
    <CxlAdvc>
      <Envt>
        <Acqrr>
          <Id>
            <Id>010009287351</Id>
          </Id>
          <ParamsVrsn>1.0</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>ECTL</CardRdngCpblties>
            <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>MANUFACTURER</PrvdrId>
              <Id>MODEL</Id>
              <SrlNb>ASADEVSN</SrlNb>
            </Id>
            <Sts />
          </Cmpnt>
          <Cmpnt>
            <Tp>APLI</Tp>
            <Id>
              <PrvdrId>AMADIS</PrvdrId>
              <Id>ARKOS</Id>
            </Id>
            <Sts>
              <VrsnNb>2.0</VrsnNb>
            </Sts>
          </Cmpnt>
        </POI>
        <Card>
          <CardPdctPrfl>04</CardPdctPrfl>
          <CardBrnd>Carte a Piste</CardBrnd>
        </Card>
      </Envt>
      <Cntxt>
        <PmtCntxt>
          <CardPres>false</CardPres>
          <CrdhldrPres>false</CrdhldrPres>
          <OnLineCntxt>true</OnLineCntxt>
          <AttndncCntxt>ATTD</AttndncCntxt>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
        </PmtCntxt>
      </Cntxt>
      <Tx>
        <MrchntCtgyCd>5555</MrchntCtgyCd>
        <TxId>
          <TxDtTm>2021-06-21T00:30:03.000+00:00</TxDtTm>
          <TxRef>00000026</TxRef>
        </TxId>
        <OrgnlTx>
          <TxId>
            <TxDtTm>2021-06-21T00:30:03.000+00:00</TxDtTm>
            <TxRef>1234567890</TxRef>
          </TxId>
          <TxTp>CRDP</TxTp>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
        </OrgnlTx>
        <TxSucss>true</TxSucss>
        <Rvsl>false</Rvsl>
        <RcncltnId>1</RcncltnId>
        <TxDtls>
          <Ccy>EUR</Ccy>
          <TtlAmt>20.00</TtlAmt>
        </TxDtls>
      </Tx>
    </CxlAdvc>
  </AccptrCxlAdvc>
</Document>