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
Parameter | Meaning |
---|---|
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
Parameter | Description |
---|---|
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]");