Authorization notification

A notification providing details of an authorization, whether approved or declined. Two key fields provide high level detail of the authorization:

  • ActionCode indicates whether the authorization succeeded or failed.
  • ActionDetail provides additional detail on the state of the authorization. For failed authorizations, this will provide the reason for failure.

Authorization notification parameters

Parameter Naming

This notification's parameter names contain inconsistent usage of "Authorization", "Authorised" etc.

Parameters Type Description
NotificationType string Three-digit identifier of the notification type. "052" denotes the Authorization notification.
CardID integer Unique Identifier of the card
AccountNumber string Eight-digit account number of the consumer.
SortCode string Six-digit number that identifies the branch of the bank where consumer holds account.
TransactionID integer Unique identifier of the transaction.
ProcessingCode integer Unique identifier of the type of transaction. The code identifies whether a transaction is a authorization, a balance inquiry, sale or cash, or any other transaction. Refer to the Processing Code Lookup table for possible values.
AuthorizationDate string The date and time of authorization. The format is yyyyMMddHHmmss.
LocalDate string The date and time of authorization in local time zone. The format is yyyyMMddHHmmss.
AuthorisedAmount integer The amount authorized for the card transaction, converted into the partner's program base currency and exclusive of any fees.
CardHolderCurrency integer The currency of the card transaction, in the partner's program base currency. Identified by the ISO currency code.
TransactionAmount integer The transaction amount, specified in units of the local currency where the transaction was performed.
TransactionCurrency integer The local transaction currency where the transaction was performed, in ISO numeric code format.
CashBackAmount integer Shows cashback on card transactions, if any.
MCC integer Four-digit numeric code that identifies the merchant"s type of business, product or service
IsCreditAuthorisation bool Indicates whether card transaction is credit type or not. If "True" then transaction is a credit transaction.
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.
TerminalCode string Unique identifier of the terminal where card is swiped. Provided by Visa.
TerminalLocation string The location of the terminal where card is swiped. Provided by Visa.
TerminalStreet string The street where card is swiped at a POS or an ATM terminal. Provided by Visa.
TerminalCity string The city where card is swiped at a POS or an ATM terminal.
TerminalCountry string The country where card is swiped at a POS or ATM terminal. Provided by Visa.
ApprovalCode string Approval Code provided by Visa. Provided by Visa.
IsCardPresent bool Indicates whether card was present or not present during the transaction. If "true" then card was present.
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.
CardAcceptorCountryCode integer Indicates country from which card transaction has been done. Denoted by three-digit ISO country code.
IsPinPresent bool Indicates whether PIN "was present" or "not present" during the the card transaction. If "True" then PIN "was present".
STAN integer SYSTEM TRACE AUDIT NUMBER provided by Visa.
RRN string RETRIEVAL REFERENCE NUMBER and is provided by Visa.
TransactionIndicator integer Represents the Transaction Indicator. Refer to the Transaction Indicator Lookup table for possible values.
AcquiringInstituteID string Unique identifier of the Acquirer"s Institution. Provided by Visa
ForwardingInstitutionID string Unique identifier of the forwarding or processing institution. Provided by Visa.
ClientReferenceNumber string Client provided reference number returned by Solaris for tracking or auditing.
Description string The description of transaction authorization.
FeeAmount integer The fee amount converted into the partner's program base currency.
ActionCode string Three digit code that identifies whether the authorization was successful or failed.
"000" - Authorization was successful.
"999" - Authorization failed.
ActionDetail string Represents the state of Authorization. For successful authorization, ActionDetail would be "Normal, approve" or "PartialAuth". For failed authorizations, it will provide the failure reason.
FeatureCode string Two-digit card feature code that identifies the feature relating to the authorization. Refer to the Feature Code Lookup table for possible values.

Please note: This is a conditional field and is not included by default in the notification payload. This field can be enabled by Solaris for inclusion in the notification if required.
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 to the POS Entry Mode Lookup table for possible values.
IsReversal bool Indicates whether a card transaction is a reversal or not. Possible values are:
"1" - denotes the transaction is a reversal.
"0" - denotes the transaction is not a reversal.
AuthorizationID string Unique Identifier of the authorization
TokenID integer Unique identifier of the token used for the Authorization, if applicable. For authorizations in which no token was used, this field will be blank. Please note: this field will only be present in the notification payload if it has been enabled by Solaris for the given program. If enabled, the value will be used to comprise the SecurityHash value.
SecurityHash string Contains the hash of the payload values and your webhook security key, to verify the origin and integrity of the notification.

Example of Authorization notification

Copy
Copied
{
  "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",
  "AuthorizationID": "2637762136219995595",
  "TokenID": "609",
  "SecurityHash": "c1ea0af294d93e7ca6522d06f757d2735d3cecd33f3159b90359b4a94892ca04"
}

Lookup values for Processing Codes

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 Feature Code

Feature Code Description
01 Payment by card terminal (without cashback)
02 E-Commerce Purchase
03 ATM Withdrawal
04 Payment by card terminal with cashback
05 Refund money
06 Balance Inquiry
07 Card PIN change
08 Payment at fuel pump
09 Bill Payment
10 Online payment without CVV2
11 Mail order transaction
12 Recurring Payment
13 Withdraw from terminal other than ATM
14 Visa Personal Payment
15 Financial Institution Payment
16 Account Verification
17 Estimated Transaction
18 Estimated transaction with partial support terminal
19 Credential on File
20 Post Office Cash Withdrawal
21 Post Office Balance Enquiry
22 Post Office Deposit
23 Cash withdrawal from customer financial institution, teller, or Bank Branch Terminal
24 Purchase Manual With NO CVM
25 Active Card Check for Account verification
26 Account Funding
97 In App Provisioning (XPay)
98 Payment by contactless card
99 International Transaction

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

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

Validating the notification security Hash

Security Hash validation

See the respective guide for more information on calculating and verifying the notification security hash.

To compute the hash of the notification payload, concatenate the payload values in the following sequence, with your webhook security key as the final item:

Copy
Copied
<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>&<AuthorizationID>&<TokenID>&<webhook-security-key>

The payload values above and example webhook security key of abcdefghijklmnop, will produce the following hash input:

Copy
Copied
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&2637762136219995595&abcdefghijklmnop
Solaris is the brand name for the regulated entities Contis Financial Services Ltd and UAB „Finansinės paslaugos „Contis“, which are part of the Solaris Group.