Description

The DebiCheck TT3 authentication call allows 3rd party applications to request an authentication for a recurring debit order as per the PASA DebiCheck regulations, into their applications.

Debi-Check Request

Parameters

ParameterMeaning
launchType Must be “AUTHENTICATEDCOLLECTION”.

__Used for launching the Ecentric Payment App to process a DebiCheck TT3 Authentication request.
_
isApproved Represents the processing result from a card perspective of the transaction. This will indicate whether or not the payment will occur or not. Valid values are:
● true – card payment will be made by the issuer
● false – card payment failed due to for example invalid PIN
● error – card payment failed due to an unknown error
resultCode Represents the result of the transaction from the Ecentric Payment app. Valid values are:
● 01 – transaction successful
● 02 – transaction declined
● 03 – transaction aborted
● 04 – error
resultDescription A user readable representation of the above resultCode i.e. Approved for 01 resultCode
collectionAmount The amount that will be debited from the cardholder account
collectionAmountMax The maximum amount that can be debited from a cardholder in the cases of a variable debit order.
debtorIDType Can be one of:
● RSA_ID
● PASSPORT
debtorID The RSA ID number or passport number depending on the debtorIDType used
alwaysShowTransaction
StatusScreen
Once the Ecentric Payment App has processed a transaction there is a status screen that shows the success/failure of processing.
Set this flag to true if you would like this displayed otherwise false to hide it. Default is false.
transactionUuid Unique ID provided from 3rd party integrators.
Format: UUID version 4

Note: If the field was not populated by the 3rd party integrator a system generated transaction UUID will be assign for every new transaction.

Sample code

private String appURL = "payment.thumbzup.com";
private String appClass = "payment.thumbzup.com.IntentActivity";

Intent intent = new Intent(); intent.setClassName(appURL, appClass);
Bundle dataBundle = new Bundle();
dataBundle.putString("launchType", "AUTHENTICATED_COLLECTION");
dataBundle.putString("applicationKey", "2fdca02f-3cbe-4e8c-82ad-86a1a16b72e7");
dataBundle.putString("merchantID", "910100000000001");
dataBundle.putString("merchantUsername", "default");
dataBundle.putString("authenticationKey", "c282cdd3-59d2-42ff-8c96-826725a27e6e");
dataBundle.putLong("accountNumber", 10000); // not mandatory
dataBundle.putLong("collectionAmount", 2500);
dataBundle.putLong("collectionAmountMax", 3500);
dataBundle.putString("debtorIDType", "RSA_ID");
dataBundle.putString("debtorID", "1234567891234");
dataBundle.putString("contractNumber", "000000"); 
dataBundle.putString("transactionUuid", " 491321f4-c900-40a0-b5fa-4d8c0d7a91b7");

intent.putExtra("thumbzupBundle", dataBundle);
startActivityForResult(intent, 0);


Debi-Check Response

Parameters

ParameterDescription
launchType Echo of the launchType used to launch the Ecentric Payment app.
isApproved Represents the processing result from a card perspective of the transaction. This will indicate whether or not the payment will occur or not. Valid values are:
● true – card payment will be made by the issuer
● false – card payment failed due to for example invalid PIN
● error – card payment failed due to an unknown error
resultCode Represents the result of the transaction from the Ecentric Payment app. Valid values are:
● 01 – transaction successful
● 02 – transaction declined
● 03 – transaction aborted
● 04 – error
resultDescription A user readable representation of the above resultCode i.e. Approved for 01 resultCode
contractNumber Echo of the contractNumber used to launch the Ecentric Payment app.
accountNumber Echo of the accountNumber used to launch the Ecentric Payment app.
debtorIDType Echo of the debtorIDType used to launch the Ecentric Payment app.
debtorID Echo of the debtorID used to launch the Ecentric Payment app.
collectionAmount Echo of the collectionAmount used to launch the Ecentric Payment app.
collectionAmountMax Echo of the value used to launch the Ecentric Payment app.
isReceiptDataAvailable A boolean indicating whether or not a receiptBundle parameter is available. Will always be there for accepted or declined transactions.
receiptBundle Consists of a sub-bundle of server parameters that can be used by the partner application. For a full list of these parameters see the Additional Server Fields section.
pebbleFirmwareVersion The software version currently running on the Payment Pebble®
transactionUuid Unique ID provided from 3rd party integrators.
Format: UUID version 4

Note: If the field was not populated by the 3rd party integrator a system generated transaction UUID will be assign for every new transaction.

Sample code

Bundle[{

    debtorIDType=RSA_ID,
    thirdPartyMerchantNumber=null,
    authenticationKey=7fe86983-ecbe-4b1b-b5f0-69a5d5125f05, 
    resultDescription=Chip Decline,
    isReceiptRequired=true,
    latitude=0.0,
    fwUpdateDate=null,
    buildInfo=ABSA,
    externalSTAN=0,
    terminalId=98000081,
    applicationKey=6397dead-7d4b-47f7-a0a5-71e5d1705fc4,
    externalInvoiceGUID=null,
    fwUpdateVersion=null,
    externalRRN=null,
    accountNumber=555555,
    isReceiptDataAvailable=true,
    pebbleFirmwareVersion=v3.1.6,
    resultCode=,
    transactionDescription=null,
    fwUpdateAvailable=false,
    receiptBundle=Bundle[{
                MERCHANT_REGION_CODE=05,
                RC_ALT=00,
                STATUS=DECLINED,
                BUDGET_PERIOD=,
                CARD_TYPE=Chip,
                PAN_WITH_BIN=528497** **** 1869,
                MERCHANT_ID=000001695253,
                TIMESTAMP=1601969064036,
                EXTERNAL_TRANSACTION_DATETIME=,
                PROCESSING_CODE=,
                RC_DESCRIPTION=Chip Decline,
                EXTERNAL_INVOICE_GUID=,
                REPLACEMENT_MERCHANT_ID=,
                TXN_CNTR=N/A,
                AUTH_PROFILE=,
                INTERCHANGE=Hybrid,
                ESC_BY_AUTH_CODE=226 30 IT ,
                TX_TYPE=INQUIRY,
                ACC_TYPE_DESC=Savings,
                CURRENCY_CODE=ZAR,
                AUTH_CODE=,
                RC=00,
                AID=A0000000041010,
                CVM=PIN Verified,
                CVR=410302,
                PAN=**** **** **** 1869 ,
                RRN=000084280001,
                TSI=E800,
                TVR=0400008000,
                APSN=,
                DATE=2020-10-06T07:24:24.036+0000,
                STAN=,
                NAME_ON_CARD=ABDULLAH/MM.MR,
                AMOUNT_CENTS=0,
                ABS_AMOUNT=0.00,
                RECEIPT_NUMBER=,
                TERMINAL_ID=98000081,
                TX_TYPE_DESCRIPTION=INQUIRY,
                EXTERNAL_TERMINAL_ID=,
                FORMATTED_OTHER_AMOUNT=R 0.00,
                FORMATTED_AMOUNT=R 0.00,
                DESCRIPTION=,
                SETTLEMENT_DATE=2020-10-06T07:24:21.158+0000,
                EXTERNAL_TRANSACTION_GUID=,
                CARD_BIN=528497,
                REPLACEMENT_TERMINAL_ID=,
                POS_ENTRY=,
                RC_ISO_DESCRIPTION=Chip Decline,
                MERCHANT_CITY=RICHARDS BAY,
                MERCHANT_NAME=PLANET AWESOME,
                CUSTOMER_NAME=,
                OTHER_AMOUNT=0.00,
                APP_VERSION=4.0.427,
                CARD_SEQ_NO=,
                APP_LABEL=Savings,
                INVOICE_NUM=,
                MESSAGE_1=,
                MESSAGE_2=,
                CARD_TRANSACTION_TYPE=ICC,
                MERCHANT_COUNTRY_CODE=ZA,
                REPRINT=,
                PAN_HASH=77780211E9708C3DA87B2ABD899281237BF9DDD98F61751C8D742E786B5A0DB5,
                AMOUNT=0.00,
                DIGITS=1869,
                CVM_ABSA=PIN Verified 
 }], 
 
             overrideMerchantNumber=null,
             [email protected], 
             merchantID=000001695253,
             merchantUsername=default,
             externalTerminalId=null,
             pebbleSerialNumber=B26703220006FD7FFD060AE89D,
             longitude=0.0,
             thirdPartyUsername=null,
             invoiceNumber=null,
             isApproved=false,
             keepAliveMinutes=0,
             launchType=AUTHENTICATED_COLLECTION,
             debtorID=1111111111111,
             keepAliveAfterExit=false,
             collectionAmountMax=3500,
             merchantName=PLANET AWESOME,
             deviceIMEI=353266080163066,
             contractNumber=000000,
             macData=,
             cellNumberToSMSReceipt=0087546253,
             customerName=null,
             alwaysShowTransactionStatusScreen=false,
             externalTransactionGUID=null,
             transactionReferenceNo=null,
             transactionUuid=c9e32709-458f-4573-afdc-a4f2a90a942f,
             appVersion=4.0.427,
             externalTransactionDateTime=null,
             collectionAmount=2500
 }]

Debi-Check Receipt

The below code is used for the receipting function which in turn would allow the customer to receive a reciept of their transaction via cell or email

Sample code

dataBundle.putBoolean("isReceiptRequired", true);
dataBundle.putString("cellNumberToSMSReceipt", "0123456789");
dataBundle.putString("emailAddressToSendReceipt", "[email protected]");