Payment Extension

Payment extensions are objects that can be added to the Order object to change the default behavior of a transaction. These objects need to be added to the order object before the payment brand is triggered. How a payment brand is triggered depends on the payment brand. You can find additional information on payment brand triggering in the 'Payment Brand Triggering' section found below.

An extension should be placed as a root level object in the order object. You may include more than 1 extension per order object, but each included extension can only occur once within the order object. Cardinal Cruise only processes a single transaction type at a time, so any extension found within the order object that is not for the payment brand being processed is simply ignored. This allows you to attach all your extensions up front without needing complex logic to determine which should be added to the object when.

Multiple Extensions Example
{
     "CCAExtension" : {
        "AcquirerId" : "",
        "AcquirerMerchantId" : "",
        "AcquirerPassword" : "",
        "CountryCodeOverride" : "",
        "FormId" : "",
        "MerchantName" : "",
        "MerchantUrl" : "",
        "PAResPayload" : "",
        "ProductCode" : "",
        "ShippingMethod" : "",
        "ShippingDetails":{
          "ShippingMethodIndicator":"",
          "ShippingAddressUsageIndicator":"",
          "ShippingAddressUsageDate":"",
          "ShippingNameIndicator":"",
          "DeliveryTimeframe":"",
          "DeliveryEmail":""         
        },
        "TransactionDetails":{
          "TransactionMode":"",
          "ReorderIndicator":"",
          "PreOrderIndicator":"",
          "PreOrderDate":"",
          "GiftCardAmount":"",
          "GiftCardCurrencyCode":"",
          "GiftCardCount":"",
          "FraudActivity":"",
        },
        "AccountDetails":{
          "TransactionCountDay":"",
          "TransactionCountYear":"",
          "AddCardAttempts":"",
          "AccountAgeIndicator":"",
          "AccountChangeIndicator":"",
          "AccountChangeDate":"",
          "AccountPwdChangeIndicator":"",
          "AccountPwdChangeDate":"",         
          "AccountPurchases":"",
          "PaymentAccountIndicator":"",
          "PaymentAccountAge":"",
          "AuthenticationIndicator":"",
          "AlternateAuthenticationMethod":"",
          "AlternateAuthenticationDate":"",
          "AlternateAuthenticationData":"",
          "PriorAuthenticationData":"",
          "PriorAuthenticationMethod":"",
          "PriorAuthenticationTime":"",
          "PriorAuthenticationRef":""
        }
    },
    "PaypalExtension" : {
        "TransactionAction" : "",
        "PayerId" : "",
        "PreventAddressOverride" : false
    },
    "VisaCheckoutExtension" : {
        "EncryptedKey" : "",
        "EncryptedPaymentData" : ""
    },
    "WalletExtension" : {
        "AcquirerId" : "",
        "AcquirerMerchantId" : "",
        "AcquirerPassword" : "",
        "CountryCodeOverride" : "",
        "FormId" : "",
        "MerchantName" : "",
        "MerchantUrl" : "",
        "PAResPayload" : "",
        "ProductCode" : "",
        "ShippingMethod" : ""
    }
}

Table of Content

Payment Brand Triggering

Payment Buttons

Payment brands that use payment buttons will start the transaction automatically when the button has been clicked. Due to this, the order object needs to either be updated before the payment button has been clicked or you need to use an event that will be called to update the order object before a request is sent to Cardinal systems. The simplest way to update the order automatically when the button is clicked is to leverage the order.update event.

Manually Started

Payment brands that are manually started require the merchant to call a function to start a transaction. An example of this is CCA which will not start until Cardina.start('cca') is called. These payment brands allow you to pass an updated order object when calling the start function. Refer to the start call documentation for more information.


Extensions

Looking implementation details on an extension?

Refer to the specific payment brand documentation for more details.

CCAExtension

FieldTypeDescription
MerchantNameAN(25)

Override the Merchant name configured in the Centinel Merchant profile.

MerchantUrlAN(100)Override the Merchant URL configured in the Centinel Merchant profile.
AcquirerMerchantIdAN(25)Override the Acquirer Merchant identifier configured in the Centinel Merchant profile.
AcquirerIdN(6)Override the acquiring institution identification code (the Acquirer BIN) that is currently configured in the Centinel profile.
AcquirerPasswordAN(50)

The value in this field is used to facilitate Merchant Authentication File (MAF) authentication processing.
NOTE: This is required only when processing within certain VISA regions. If this value is passed it will override the password value configured on the Merchants configuration profile.

CountryCodeOverrideAN(3)Override the country code configured in the Centinel Merchant profile.
FormIdString
PAResPayloadString
ProductCodeString

Should be set as:

  • 01 - Goods/Service Purchase
  • 03 - Check Acceptance
  • 10 - Funding account
  • 11 - Quasi-Cash Transaction
  • 28 - Prepaid Activation
ShippingMethodString
ShippingDetailsObjectAn object describing shipping details used in a 2.0 transaction
TransactionDetailsObjectAn object describing transaction details used in a 2.0 transaction
AccountDetailsObjectAn object describing account details used in a 2.0 transaction

ShippingDetails

An object describing shipping details for CCA 2.0. These fields should match the Centinel / 2.0 spec field names. Refer to Centinel Documentation for more information on these fields type and description

FieldDescription
ShippingNameIndicator

Indicates if the cardholder name on the account is identical to the shipping name used for the transaction.

  • 0 - Account and shipping name identical,
  • 1 - Account and shipping name differ
ShippingMethodIndicator

Indicates shipping method chosen for the transaction.

  • 01 - Ship to cardholder billing address
  • 02 - Ship to another verified address on file with the merchant
  • 03 - Ship to address that is different than billing address
  • 04 - Ship to store (store address should be populated on request)
  • 05 - Digital goods
  • 06 - Travel and event tickets, not shipped
  • 07 - Other
ShippingAddressUsageIndicator

Indicates when the shipping address used for the transaction was first used.

  • 01 - This transaction
  • 02 - Less than 30 days
  • 03 - 30-60 days
  • 04 - More than 60 days
ShippingAddressUsageDate

Date when the shipping address used for this transaction was first used.

Format: YYYYMMDD

DeliveryTimeframe

Indicates the delivery timeframe.

  • 0 - Electronic Delivery
  • 01 - Same day shipping
  • 02 - Overnight shipping
  • 03 - Two or more day shipping
DeliveryEmailFor electronic delivery, email address to which the merchandise was delivered.

TransactionDetails

An object describing transaction details for CCA 2.0. These fields should match the Centinel / 2.0 spec field names. Refer to Centinel Documentation for more information on these fields type and description

FieldDescription
TransactionMode
ReorderIndicatorIndicates whether the cardholder is reordering previously purchased merchandise. 0 - First time ordered, 1 - Reordered
PreOrderIndicator

Indicates whether the cardholder is placing an order with a future availability or release date.

  • 0 - Merchandise available
  • 1 - Future availability
PreOrderDate

Expected date that a pre-ordered purchase will be available.

  • Format: YYYMMDD
GiftCardAmount

The purchase amount total for prepaid gift cards in major units.

  • For example, 123.45 USD = 123
GiftCardCurrencyCodeISO 4217 currency code for the gift card purchased.
GiftCardCountTotal count of individual prepaid gift cards purchased.
FraudActivity

Indicates whether the merchant experienced suspicious activity (including previous fraud) on the account.

  • 0 - No suspicious activity
  • 1 - Suspicious activity observed

AccountDetails

An object describing account details for CCA 2.0. These fields should match the Centinel / 2.0 spec field names. Refer to Centinel Documentation for more information on these fields type and description

FieldDescription
TransactionCountDayThe number of transactions (successful and abandoned) for this cardholder account within the last 24 hours.
TransactionCountYearThe number of transactions (successful and abandoned) for this cardholder account within the last year.
AddCardAttemptsThe number of add card attempts in the last 24 hours.
AccountAgeIndicator

The length of time cardholder has had an account.

  • 0 - No account (guest checkout)
  • 1 - Created during the transaction
  • 2 - Less than 30 days
  • 3 - 30-60 days
  • 4 - More than 60 days
AccountChangeIndicator

Length of time since the last change on the cardholder account. This includes shipping address, new payment account, or new user added.

  • 1 - Changed during the transaction
  • 2 - Less than 30 days
  • 3 - 30-60 days
  • 4- More than 60 days
AccountChangeDate

Date the cardholder opened the account.

  • Format: YYYMMDD
AccountPwdChangeIndicator

Length of time since the cardholder changed or reset the password on the account.

  • 0 - No change
  • 1 - Changed during the transaction
  • 2 - Less than 30 days
  • 3 - 30-60 days
  • 4 - More than 60 days
AccountPwdChangeDate

Date the cardholder last changed or reset the password on the account.

  • Format: YYYYMMDD
AccountPurchasesThe number of purchases with this cardholder account during the previous six months.
PaymentAccountIndicator

Indicates the length of time that the payment account was enrolled in the merchant's account.

  • 0 - No account (guest checkout)
  • 1 - During this transaction
  • 2 - Less than 30 days
  • 3 - 30-60 days
  • 4 - More than 60 days
PaymentAccountAge

Date the payment account was added to the cardholder account.

  • Format: YYYYMMDD
AuthenticationIndicator

Indicates the type of Authentication request.

  • 01 = Payment transaction
  • 02 = Recurring transaction
  • 03 = Instalment transaction
  • 04 = Add card
  • 05 = Maintain card
  • 06 = Cardholder verification as part of EMV token ID
  • 07–79 = Reserved for EMVCo future use (values invalid until defined by EMVCo)
  • 80-99 = Reserved for DS use
AlternateAuthenticationMethod

The mechanism used by the Cardholder to authenticate to the 3DS requestor.

  • 01 - No authentication occurred
  • 02 - Login using Merchant system credentials
  • 03 - Login using Federated ID
  • 04 - Login using FIDO Authenticator
AlternateAuthenticationDate

Date and time in UTC of the cardholder authentication.

  • Format: YYYYMMDDHHMM
AlternateAuthenticationDataData that documents and supports a specific authentication process.
PriorAuthenticationDataData that documents and supports a specific authentication process. In the current version of the specification this data element is not defined in detail,
however, the intention is that for each 3DS Requestor Authentication Method, this field carries data that the ACS can use to verify the authentication process.
In future versions of the specification, these details are expected to be included
PriorAuthenticationMethod

The mechanism used by the Cardholder to previously authenticate to the 3DS Requestor.

  • 01 = Frictionless authentication occurred by ACS
  • 02 = Cardholder challenge occurred by ACS
PriorAuthenticationTime

Date and time in UTC of the prior cardholder authentication.

  • Date format = YYYYMMDDHHMM
PriorAuthenticationRef

Date and time in UTC of the prior cardholder authentication.

  • Date format = YYYYMMDDHHMM

PaypalExtension

FieldTypeDescription
PreventAddressOverrideBoolean

Prevent PayPal from displaying shipping information and allowing the consumer to change the shipping address.

Possible Values:

  • true – The address on file with PayPal will NOT be displayed, and the shipping address passed in on the Order object will be used.
  • false – Allow PayPal to display the address on file and allow the consumer to change it.

PayerIdString

PreventAddressOverrideboolean