Contis API service notifies the client about approved and declined authorisations. Two parameters – Action code and Action Detail – indicate whether a authorisation was a success or failure and the reason for failure.
Note: In payment authorisation, the parameter Authorised Amount denotes the transaction amount as “Primary Hold Amount” which is held by Contis during transaction.
The parameter Fee Amount denotes the fee charged on the transaction as “Secondary Hold Amount”.
Authorisation notification parameters
Parameters | Type | Description | Default value |
NotificationType | string | Three-digit unique identifier of notification. Numeric value “052” denotes the Authorisation notification. | Blank |
CardID | integer | Unique Identifier of the card | Blank |
AccountNumber | string | Eight-digit account number of the consumer. | 00000000 |
SortCode | string | Six-digit number that identifies the branch of the bank where consumer holds account. | Blank |
TransactionID | integer | Unique identifier of the transaction. | Blank |
ProcessingCode | integer | Unique identifier of the type of transaction. The code identifies whether a transaction is a authorisation, a balance inquiry; sale or cash, or any other transaction. Refer Processing look up values in the table. | |
AuthorizationDate | string | The date and time of authorisation. The format is yyyyMMddHHmmss. | Blank |
LocalDate | string | The date and time of authorisation in local time zone. The format is yyyyMMddHHmmss. | Blank |
AuthorisedAmount | integer | The amount authorised for card transaction. | Blank |
CardHolderCurrency | integer | The currency of the card transaction. Identified by the ISO currency code. | Blank |
TransactionAmount | integer | The transaction amount. | Blank |
TransactionCurrency | integer | The currency of the transaction amount. | Blank |
CashBackAmount | integer | Shows cashback on card transactions, if any. | Blank |
MCC | integer | Four-digit numeric code that identifies the merchant’s type of business, product or service | Blank |
IsCreditAuthorisation | bool | Indicates whether card transaction is credit type or not. If “true” then transaction is a credit transaction. | Blank |
CardAcceptorID | string | Unique identifier of facility, merchant or POS that accepts the consumer’s card for payment. It is a number that can be 1 to 15 digits long and in some cases contains a dash, “-“. Provided by VISA. | Blank |
TerminalCode | string | Unique identifier of the terminal where card is swiped. Provided by Visa. | Blank |
TerminalLocation | string | The location of the terminal where card is swiped. Provided by Visa. | Blank |
TerminalStreet | string | The street where card is swiped at a POS or an ATM terminal. Provided by Visa. | Blank |
TerminalCity | string | The city where card is swiped at a POS or an ATM terminal. | Blank |
TerminalCountry | string | The country where card is swiped at a POS or ATM terminal. Provided by Visa. | Blank |
ApprovalCode | string | Approval Code provided by Visa. Provided by Visa. | Blank |
IsCardPresent | bool | Indicates whether card was present or not present during the transaction. If “true” then card was present. | Blank |
IsCardHolderPresent | bool | Indicates whether consumer “swiped” or “did not swipe” the card at terminal during card transaction. If “true” then card was swiped by the consumer. | Blank |
CardAcceptorCountryCode | integer | Indicates country from which card transaction has been done. Denoted by three -digit ISO country code. | Blank |
IsPinPresent | bool | Indicates whether PIN “was present” or “not present” during the the card transaction. If “true” then PIN “was present”. | Blank |
STAN | integer | SYSTEM TRACE AUDIT NUMBER provided by Visa. | Blank |
RRN | string | RETRIEVAL REFERENCE NUMBER and is provided by Visa. | Blank |
TransactionIndicator | integer | Represents Transaction Indicator. Refer Transaction Indicator look up values in the table. | Blank |
AcquiringInstituteID | string | Unique identifier of the Acquirer’s Institution. Provided by Visa | Blank |
ForwardingInstitutionID | string | Unique identifier of the forwarding or processing institution. Provided by Visa. | Blank |
ClientReferenceNumber | string | Client provided reference number returned by Contis for tracking or auditing. | Blank |
Description | string | The description of transaction authorisation. | Blank |
FeeAmount | integer | Fee charged for the transaction. | Blank |
ActionCode | string | Three digit code that identifies a successful authorisation or failed authorisation. | 000-Success 999-Failed |
ActionDetail | string | Represents the state of Authorisation. For successful authorisation, ActionDetail would be ‘Normal, approve’ or ‘PartialAuth’. And for failed auth, it will show the failure reason. | Blank |
FeatureCode | string | Two-digit card feature code that identifies the feature relating to the authorisation. Look-up values are given as below. | Blank |
POSEntryMode | string | Code that identifies the method used to enter the cardholder account number and card expiration date. This code specifies whether the entire magnetic stripe is included in an authorization request. Refer POS Entry Mode look up values in the table. |
Blank |
IsReversal | bool | value 1 or 0. Indicates whether card transaction is reversal or not. If “1” then transaction is a reversal transaction. | 0 |
SecurityHash | string | String value generated through hash logic with all of the above parameters (To verify the values posted on URL) | Blank |
Example of authorisation notification
Parameter name | Value |
NotificationType | 052 |
CardID | 123 |
AccountNumber | 00123456 |
SortCode | 623053 |
TransactionID | 318015050782975 |
ProcessingCode | 1 |
AuthorizationDate | 13/03/2018 10:40:35 |
LocalDate | 13/03/2018 10:40:32 |
AuthorisedAmount | 123 |
CardHolderCurrency | 826 |
TransactionAmount | 123 |
TransactionCurrency | 826 |
CashBackAmount | |
MCC | 6011 |
IsCreditAuthorisation | False |
CardAcceptorID | Acceptor123 |
TerminalCode | ATM01 |
TerminalLocation | ACQUIRER NAME |
TerminalStreet | |
TerminalCity | Skipton |
TerminalCountry | GB |
ApprovalCode | 002974 |
IsCardPresent | True |
IsCardHolderPresent | True |
CardAcceptorCountryCode | 826 |
IsPinPresent | True |
STAN | 2974 |
RRN | 801511002974 |
TransactionIndicator | 1 |
AcquiringInstituteID | 012345678901 |
ForwardingInstitutionID | |
ClientReferenceNumber | Ref123 |
Description | Test transaction |
FeeAmount | 20 |
ActionCode | 000 |
ActionDetail | Normal, Approve |
FeatureCode | 01 |
POSEntryMode | 5 |
IsReversal | 0 |
Security Hash | 79c7053f1d7845fb96fd00237b3e5e0c8a9c8c9b0f2a55eff1a53df9c848d928 |
Lookup values for Processing Codes
Table showing the lookup values for Processing Code transactions.
Processing Code | Description |
0 | Goods and services. Debit the customer account. |
1 | Cash Withdrawal/Cash Advance. Debit the customer account |
9 | Purchase with cashback |
11 | Quasi Cash |
20 | Purchase refund |
26 | Cardholder funds transfer |
30 | Balance Inquiry |
40 | Cardholder Account Transfer |
70 | PIN Change |
Lookup values for FeatureCode
Table showing the lookup values for FeatureCode.
Feature Code | Feature Name | Feature Description |
01 | Purchase | Payment by card terminal (without cashback) |
02 | E-commerce | Purchase Online |
03 | ATM Withdrawal | Withdrawal at ATM |
04 | Purchase Cashback | Payment by card terminal with cashback |
05 | Refund or Correction | Refund money |
06 | Balance Inquiry | Balance Inquiry |
07 | PIN change | Card PIN change |
08 | Auto fuel dispense | Payment at fuel pump |
09 | Bill Payment | Bill Payment |
10 | E-comm without CVV2 | Online payment without CVV2 |
11 | Mail phone order | Mail order transactions |
12 | Recurring | Recurring Payments |
13 | Quasi Cash Tran | Withdraw from terminals other than ATM |
14 | VPP | Visa Personal Payment |
15 | FIP | Financial Institution Payment |
16 | Verification | Account Verification |
17 | Estimated | Estimated Transaction |
18 | EstimatedPartial | Estimated Transaction with partial support terminal |
19 | COF | Credential On File |
97 | In App Provisioning | In App Provisioning (X Pay) |
98 | NFC | Payment by contactless card |
99 | International Trans | International Transaction |
Lookup values for Transaction Indicator
Table showing the lookup values for Transaction Indicator.
CODE | DESCRIPTION |
---|---|
1 | Manual-one-time, single payment initiated by the cardholder |
2 | Recurring-multiple, ongoing payments for an indefinite term, until the cardholder or biller cancels the recurring payment arrangement |
3 | Installment-multiple payments for a specified term, usually until payment has been satisfied |
5 | Secure electronic commerce transaction |
6 | Non-authenticated security transaction at a 3-D secure-capable merchant, and merchant attempted to authenticate the cardholder using 3-D secure |
7 | Non-authenticated security transaction |
8 | Non-secure transaction |
Lookup values for POS Entry Mode
Table showing the lookup values for POS Entry Mode.
CODE | DESCRIPTION |
---|---|
0 | Unknown or terminal not used |
1 | Manual (key entry). |
2 | Visa: Magnetic stripe read; CVV checking may not be possible. PLUS: Track 2 contents read, but transaction not eligible for CVV checking. |
3 | Optical code |
4 | Reserved for future use. |
5 | Contact integrated circuit card read using VSDC chip data rules; Online CAM authentication method; iCVV checking possible. |
6 | Reserved for future use. |
7 | Contactless device-read-originated using qVSDC chip data rules; Online CAM authentication method; iCVV checking possible. |
10 | Credential on file: Merchant initiates transaction for cardholder using credentials stored on file. |
90 | Magnetic stripe read and exact content of Track 1 or Track 2 included (CVV check possible). |
91 | Contactless device-read-originated using magnetic stripe data rules; dCVV checking is possible; Online CAM checking possible for MSD CVN 17 only. |
95 | Integrated circuit card read; CVV or iCVV checking may not be possible. |
To generate the Security Hash
Hash sequence:
NotificationType&CardID&AccountNumber&SortCode&TransactionID&ProcessingCode&AuthorizationDate&LocalDate&AuthorisedAmount&CardHolderCurrency&TransactionAmount&TransactionCurrency&CashBackAmount&MCC&IsCreditAuthorisation&CardAcceptorID&TerminalCode&TerminalLocation&TerminalStreet&TerminalCity&TerminalCountry&ApprovalCode&IsCardPresent&IsCardHolderPresent&CardAcceptorCountryCode&IsPinPresent&STAN&RRN&TransactionIndicator&AcquiringInstituteID&ForwardingInstitutionID&ClientReferenceNumber&Description&FeeAmount&ActionCode&ActionDetail&FeatureCode&POSEntryMode&IsReversal&
HashDataString : 052&102331&00156880&608370&7837206057187383&0&20220324121006&20220324121005&4700&826&4700&826&&5999&False&VIP4003IP &TERMID01&ACQUIRER NAME &&CITY NAME &US&187383&True&True&840&True&187383&032412187383&&012345678901&&&ACQUIRER NAME CITY NAME&450&000&Normal, approve&01&5 &0& SecurityKey : abcdefghijklmnop HashGenerationData : HashDataString + SecurityKey Hash : 79c7053f1d7845fb96fd00237b3e5e0c8a9c8c9b0f2a55eff1a53df9c848d928
JSON Example
{ "NotificationType": "052", "CardID": "102331", "AccountNumber": "00156880", "SortCode": "608370", "TransactionID": "7837206057187383", "ProcessingCode": "0", "AuthorizationDate": "20220324121006", "LocalDate": "20220324121005", "AuthorisedAmount": "4700", "CardHolderCurrency": "826", "TransactionAmount": "4700", "TransactionCurrency": "826", "CashBackAmount": "", "MCC": "5999", "IsCreditAuthorisation": "False", "CardAcceptorID": "VIP4003IP ", "TerminalCode": "TERMID01", "TerminalLocation": "ACQUIRER NAME ", "TerminalStreet": "", "TerminalCity": "CITY NAME ", "TerminalCountry": "US", "ApprovalCode": "187383", "IsCardPresent": "True", "IsCardHolderPresent": "True", "CardAcceptorCountryCode": "840", "IsPinPresent": "True", "STAN": "187383", "RRN": "032412187383", "TransactionIndicator": "", "AcquiringInstituteID": "012345678901", "ForwardingInstitutionID": "", "ClientReferenceNumber": "", "Description": "ACQUIRER NAME CITY NAME", "FeeAmount": "450", "ActionCode": "000", "ActionDetail": "Normal, approve", "FeatureCode": "01", "POSEntryMode": "5 ", "IsReversal": "0", "SecurityHash": "79c7053f1d7845fb96fd00237b3e5e0c8a9c8c9b0f2a55eff1a53df9c848d928" }