Response Parameters

HPP Reference

This page defines the parameters received from Velocity HPP. For sample code, see HPP.


Form data

The form data element that CellPoint Velocity HPP returns includes the following:

NameRequirementFormatDescription
client_idRequiredIntegerA merchant’s unique ID for Velocity, which CellPoint Digital creates.
account_idRequiredIntegerThe ID of a sub-account with which a payment transaction is associated. The account ID is an integer greater than 100000, and the account number is an integer smaller than 1000. CellPoint Digital provides the account number.
session_idOptionalIntegerThe internal ID of a session used for multiple payment transactions during one payment flow. For example, a split payment or a retry of a failed payment transaction.
sale_amountRequiredJSON stringSee the sale_amount section below.
statusRequiredJSON stringSee the status section below.
transactionsRequiredJSON stringSee the transactions section below.
callback_urlRequiredStringThe absolute URL of the server-to-server callback.

Note: If you do not provide this parameter, Velocity uses your default callback URL.
session_typeOptionalIntegerThe numeric code for the type of payment session. Possible values:
1 - Full payment session
2 - Split payment session
order_statusRequiredJSON stringSee the order_status section below.

sale_amount

The sale_amount object is required, and it contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
valueRequiredIntegerThe amount of the transaction, expressed as an integer including the precision in this object's decimals field. For example, if decimals is 2 and value is 12030, the transaction amount is 120.30.
currency_idRequiredIntegerThe currency code for the transaction currency.
decimalsRequiredIntegerThe currency precision; for example, 2 for USD (which is written with two units after the decimal, as in $1.00.)
alpha3codeRequiredStringThe three-letter currency code for the transaction currency.

status

The status object is required, and it contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
codeRequiredIntegerThe status code for the payment session. See Reference for possible values.
messageRequiredStringThe status message for the payment session. See Reference for possible values.

transactions

Please note:

  • The transactions object is required, and it contains the transaction array.
  • Each object in the transaction array describes one transaction in a payment session.

Each object in the transaction array contains the following:

NameRequirementFormatDescription
idRequiredIntegerThe unique ID of the transaction.
order_idRequiredStringThe order ID number the merchant provides when a transaction is initiated.
feeRequiredIntegerThe amount of any fees or taxes added to the price of the item, , expressed as an integer including the precision of decimals in amount. For example, if decimals is 2 and fee is 12030, the fee is 120.30.
hmacRequiredStringThe Message Authentication Code (MAC). It is calculated by creating a SHA-512 hash comprising the input fields in the order listed in the Message Authentication Code table.

MAC calculation secures the information sent by the merchant to Velocity by applying the SHA-512 encryption algorithm on key parts of the information sent to protect against tampering. The "salt" is the merchant's shared secret string used to ensure that MAC is unique.

Note: CPD provides the salt value to merchants.
Conditional parameters in the Message Authentication Code table are optional if not provided in request; if the conditional parameters are present in request, they are mandatory here.
product_typeOptionalIntegerThe code to identify the product type.
approval_codeOptionalIntegerThe unique ID that a PSP provides for a transaction.
payment_methodOptionalStringA name for the method of payment used in the transaction.
payment_typeRequiredIntegerThe numeric code for this payment method's type of payment (like card, wallet, or APM). Possible values:
  • 1 - Card
  • 2 - Voucher and Credit
  • 3 - Wallet
  • 4 - APM
  • 5 - Card Token
  • 6 - Virtual
  • 7 - Online Banking
  • 8 - Offline Payment
  • 9 - Mobile Money
  • 10 - Pay Later
  • 11 - Point of Sale
  • 12 - UPI
  • 13 - EMI
Applicable to subsequent responses during split payments.
date_timeRequiredStringThe date and time the transaction was initiated, expressed in GMT.
amountRequiredJSON stringSee the amount section below.
sale_amountRequiredJSON stringSee the sale_amount section below.
statusRequiredJSON stringSee the status section below.
pspOptionalJSON stringSee the psp section below.
cardRequiredJSON stringSee the card section below.
customer_infoConditional Requirement: Can be mandatory or optional, based on the requirement of a merchant or PSP.JSON stringSee the customer_info section below.
billing_addressRequiredJSON stringSee the billing_address section below.
posRequiredIntegerPOS identification.
ip_addressRequiredStringThe IP address used in this transaction.
fraud_status_codeConditional Requirement: Required if using fraud detection feature.IntegerThe fraud status code for this transaction.
fraud_status_descConditional Requirement: Required if using fraud detection feature.StringThe fraud status description for this transaction.
route_config_idRequiredIntegerThe route configuration ID.
fraudConditional Requirement: Required if using fraud detection feature.JSON stringSee the fraud section below.
installmentOptionalIntegerThis is no longer used in a transaction.
accept_urlRequiredStringThe absolute URL to which Velocity directs the customer after successfully completing a payment transaction.

Note: If you do not provide this parameter, Velocity uses your default accept URL.
cancel_urlRequiredStringThe absolute URL to which Velocity directs the customer if they cancel a payment transaction midway.

Note: If you do not provide this parameter, Velocity uses your default cancel URL.
txn_type_idRequiredIntegerThe numeric code describing the transaction type. See Reference for possible values.
performed_operationsRequiredJSON stringSee the performed_operations section below.
performed_operation_timeRequiredStringThe completion date and time of all the transaction's operations, expressed in GMT.

amount

Parent: transaction

The amount object is required; it has the following name-value pairs:

NameRequirementFormat of valueDescription of value
valueRequiredIntegerThe amount of the transaction, expressed as an integer including the precision in this object's decimals field. For example, if decimals is 2 and value is 12030, the product price is 120.30.
currency_idRequiredIntegerThe currency code.
decimalsRequiredIntegerThe currency precision; for example, 2 for USD (which is written with two units after the decimal, as in $1.00.)
alpha3codeRequiredStringThe three-letter currency code.
conversion_rateRequiredIntegerThe currency exchange rate given by FX. If you do not subscribe to FX, the value of this field is 1.

sale_amount

Parent: transaction

The amount object is required; it has the following name-value pairs:

NameRequirementFormat of valueDescription of value
valueRequiredIntegerThe amount of the transaction, expressed as an integer that includes the precision in this object's decimals field. For example, if decimals is 2 and value is 12030, the transaction amount is 120.30.
currency_idRequiredIntegerThe currency code.
decimalsRequiredIntegerThe currency precision; for example, 2 for USD (which is written with two units after the decimal, as in $1.00.)
alpha3codeRequiredStringThe three-letter currency code.

status

Parent: transaction

The status object in transaction is required; it contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
codeRequiredIntegerThe status code for this transaction. See Reference for possible values.
messageRequiredStringThe status message for this transaction. See Reference for possible values.

psp

Parent: transaction

The psp object is optional; it describes the payment service provider (PSP) associated with this transaction. It contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
idRequiredIntegerThe numeric code for the PSP or ACQ. See Reference for possible values.
nameRequiredStringThe name of the PSP or ACQ used for completing the transaction. For example, 2C2P, 2C2P-ALC, GlobalPayment, Worldpay, or ChasePayment.
external_idRequiredIntegerID of the transaction at the PSP or ACQ.

card

Parent: transaction

The card object is required; it describes the payment method used in this transaction. It has the following name-value pairs:

NameRequirementFormat of valueDescription of value
idRequiredIntegerA numeric code for the method of payment used in this transaction. See Reference for possible values.
card_nameOptionalStringA name assigned to this method of payment.
masked_card_numberRequiredStringThe masked card number for this method of payment.
expiryRequiredStringThe expiration date of this method of payment.

customer_info

Parent: transaction

The customer_info object can be mandatory or optional, based on the requirement of a merchant or a PSP. It has the following name-value pairs:

NameRequirementFormat of valueDescription of value
languageRequiredStringThe default language that Velocity uses when translating the payment pages. Velocity language codes are based on the ISO-639-1 standard.

Refer to http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes for details.
emailOptionalStringThe customer's email address.
mobileOptionalIntegerThe customer's mobile phone number, including the International Dialing Code.
device_idOptionalStringThe device ID of the device used for this transaction.

billing_address

Parent: transaction

The billing_address object is required; it describes the billing address associated with the payment method used in this transaction. It has the following name-value pairs:

NameRequirementFormat of valueDescription of value
first_nameRequiredStringThe customer's first name.
last_nameRequiredStringThe customer's last name.
streetRequiredStringThe first line of the customer's street address.
street2OptionalStringThe second line of the customer's street address.
cityRequiredStringThe city in the customer's mailing address.
stateRequiredStringThe state in the customer's mailing address.
postal_codeRequiredIntegerThe zip code or postal code for the customer's mailing address.
countryRequiredStringThe country in the customer's mailing address.
mobileOptionalIntegerThe customer's mobile phone number, including the International Dialing Code.
emailOptionalStringThe customer's email address.
billing_idcOptionalStringBilling IDC identification.
alpha2codeOptionalIntegerThe two-letter numeric code for the country in the customer's mailing address.

fraud

Parent: transaction

The fraud object is required if the merchant uses a fraud detection feature. It contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
status_codeConditional Requirement: Required if using fraud detection feature.IntegerThe fraud status code for this transaction.
status_descConditional Requirement: Required if using fraud detection feature.StringThe fraud status description for this transaction.
pre_auth_ext_idConditional Requirement: Required if using fraud detection feature.IntegerThe pre-authorization ID.
pre_auth_ext_status_codeConditional Requirement: Required if using fraud detection feature.IntegerThe pre-authorization status code.
pre_auth_provider_idConditional Requirement: Required if using fraud detection feature.IntegerThe ID of the pre-authorization provider.
pre_auth_fraud_statusConditional Requirement: Required if using fraud detection feature.IntegerThe pre-authorization fraud status code.

performed_operations

Parent: transaction

Please note:

  • The performed_operations object is required; it describes the operations performed for this transaction.
  • The performed_operations object contains the performed_operations array.
  • Each object in the performed_operations array describes one operation.

Each object in the performed_operations array contains the following name-value pairs:

NameRequirementFormat of valueDescription of value
amountRequiredIntegerThe transaction amount handled by this operation.
createdRequiredStringThe date and time that this operation commenced, expressed in GMT.
performedOperationsRequiredIntegerA numeric code for the operation performed.
modifiedRequiredStringThe date and time that this operation was completed, expressed in GMT.
statusRequiredStringThe status of the operation.

order_status

The order_status object is required, and it contains the following name-value pair:

NameRequirementFormat of valueDescription of value
codeRequiredIntegerThe order status code.