Amadis

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

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.

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

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:

<?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:

<?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>

Offline Cancellation

Offline cancellations are done through a search in the transaction log as well. Performing an offline cancellation involves the following steps explained below.

Steps Taken for a successful offline 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 offline(byte 2). NOTE: In our case, it is configured offline for captured transaction.

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

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.

AcceptorCancellationAdvice:

<?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-21T02:03:26.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>false</OnLineCntxt>
          <AttndncCntxt>ATTD</AttndncCntxt>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
        </PmtCntxt>
      </Cntxt>
      <Tx>
        <MrchntCtgyCd>5555</MrchntCtgyCd>
        <TxId>
          <TxDtTm>2021-06-21T02:03:26.000+00:00</TxDtTm>
          <TxRef>00000032</TxRef>
        </TxId>
        <OrgnlTx>
          <TxId>
            <TxDtTm>2021-06-21T02:03:23.000+00:00</TxDtTm>
            <TxRef>00000031</TxRef>
          </TxId>
          <POIId>
            <Id>ASA00001</Id>
          </POIId>
          <TxTp>CRDP</TxTp>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
          <TxRslt>
            <RspnToAuthstn>
              <Rspn>APPR</Rspn>
            </RspnToAuthstn>
            <AuthstnCd>000535</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.

A new function was introduced as a solution to the problem.

The function setSelectedApplicationProfileNumberToDefaultFromServiceEntry allows us to set a profile, initialized the application, and finally, construct valid messages.

Below is the modified diagram.

Steps Taken for a successful online cancellation:

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

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

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

 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:

<?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:

<?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>

Transaction Reversal

Online Cancellation now includes transaction reversal in the parsed messages. An approved cancellation that does not get a positive response from the server(Declined/No response) will now be notified to reverse the transaction.

To carry out a test for this specific condition on Hamacq, use $99.12 as the transaction amount.

Below is the obtained cancellation advice XML.

<?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-21T10:40:24.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-21T10:40:24.000+00:00</TxDtTm>
          <TxRef>00000022</TxRef>
        </TxId>
        <OrgnlTx>
          <TxId>
            <TxDtTm>2021-06-21T10:40:20.000+00:00</TxDtTm>
            <TxRef>00000021</TxRef>
          </TxId>
          <POIId>
            <Id>ASA00001</Id>
          </POIId>
          <TxTp>CRDP</TxTp>
          <CardDataNtryMd>DFLE</CardDataNtryMd>
          <TxRslt>
            <RspnToAuthstn>
              <Rspn>APPR</Rspn>
            </RspnToAuthstn>
            <AuthstnCd>000532</AuthstnCd>
          </TxRslt>
        </OrgnlTx>
        <TxSucss>false</TxSucss>
        <Rvsl>true</Rvsl>
        <RcncltnId>1</RcncltnId>
        <TxDtls>
          <Ccy>EUR</Ccy>
          <TtlAmt>99.12</TtlAmt>
        </TxDtls>
      </Tx>
    </CxlAdvc>
  </AccptrCxlAdvc>
</Document>

NOTE: It is to be noted that if there is a declined on a CancellationRequest, no CancellationAdvice will be sent to the server. See the attached picture below for more information.

  • No labels