Amadis

Original Credit Service

Original Credit used to cash out money in casinos is a Service that allows the card acceptor to perform a credit to a cardholder’s account. An Original Credit is not preceded by card payment.

Original Credit is similar to Refund service. You can do online, offline transactions as well as transactions with reference data.

Below are the two Tags that can be set on Atheos using the needed values.

Name

Tag

Table

Length

Format

presence

Name

Tag

Table

Length

Format

presence

Original Credit Max Amount

DF5B

E6

6

n12

Optional

Original Credit Protection Amount

DF5C

E1

6

n12

optional

 

Tag Original Credit Max Amount if configured, will abort the transaction if the transaction amount is higher than the maximum amount set.

Tag Original Credit Protection Amount if configured, will call the nexofast entry, MSG_ENTRY_SERVICE_PERMITTED, to validate the Transaction Amount. This happens when the transaction amount is higher than the protection amount set.

Initiate an Original Credit

// Minimal parameter set TlvTree paymentParams = TlvTree.Empty(); paymentParams.AddEnum(ArkosTags.SelectedService, PaymentServiceID.OriginalCredit); // Amounts are in BCD. In most cases, all 3 amounts should be the same value. 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 }); // 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 - Original Credit

Name

Tag

Format

Usage

Name

Tag

Format

Usage

Selected Service

CE

u8; 1

14: Original Credit

Identification of the payment service requested

Transaction Amount

D5

BCD; 12
fixed exponent (2)

Amount of the transaction

Authorised Amount

9F02

BCD; 12
fixed exponent (2)

 

Transaction Amount Before Adjustment

DFFF47

BCD; 12
fixed exponent (2)

 

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

00: None
01: Mail
02: Telephone
03: eCommerce
04: Television Payment
05: Secured Electronic Commerce
06: Mobile Payment
07: Mobile POS

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

 

Original Credit can be performed Online and offline:

NOTE: To set to online mode, set byte 3 bit 7 of Application profile settings (TAG DF27)

 

<?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-18T03:08:22.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> </Crdhldr> </Envt> <Cntxt> <PmtCntxt> <CardPres>true</CardPres> <CrdhldrPres>true</CrdhldrPres> <AttndncCntxt>ATTD</AttndncCntxt> <CardDataNtryMd>MGST</CardDataNtryMd> </PmtCntxt> </Cntxt> <Tx> <TxCaptr>false</TxCaptr> <TxTp>ORCR</TxTp> <MrchntCtgyCd>5555</MrchntCtgyCd> <TxId> <TxDtTm>2022-01-18T03:08:22.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>



 

<?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-18T20:08:23.679+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-18T03:08:22.000+00:00</TxDtTm> <TxRef>00000001</TxRef> </TxId> <RcptTxId>000000000000</RcptTxId> <TxDtls> <Ccy>EUR</Ccy> <TtlAmt>10.00</TtlAmt> <ICCRltdData>ioECMDA=</ICCRltdData> </TxDtls> </Tx> <TxRspn> <AuthstnRslt> <RspnToAuthstn> <Rspn>APPR</Rspn> </RspnToAuthstn> <AuthstnCd>001737</AuthstnCd> </AuthstnRslt> </TxRspn> </AuthstnRspn> </AccptrAuthstnRspn> </Document>

 

 

 

To carry out an original credit transaction with an original transaction, below is an example:

 

 

Â