Hosted Payment Page (HPP)

Integration Guide

This page provides the information required to integrate CellPoint Velocity's Hosted Payment Page (HPP) with a merchant's ecommerce application. HPP makes it easy to use CellPoint's payment solutions on websites in non-PCI-compliant environments. With HPP, all sensitive payment data is entered directly in a CellPoint-hosted payment form, so your business never has to handle protected data.

For operation definitions, see HPP in the Reference section of this site.

How it works

When a customer chooses to make a payment, they are redirected to a CellPoint-hosted payment page in the same browser window. CellPoint Velocity collects and validates the payment data. The validation ensures the following:

  • The payment page is rendered correctly on a customer’s mobile device.
  • The transaction has the maximum chance of succeeding when sent to the PSP or acquirer for clearance.

After processing the transaction, the customer is redirected to an accept page or a cancel page, and control is passed back to you, the merchant.

The integration features the following:

PageFeatures
Order summary page• Shopping cart summary.
• Customers can check out using the payment button.
Hosted payment page (HPP)• Hosted by CellPoint Digital.
• Facilitates payment processing based on the merchant's account ID.
• Provides information about the success or failure of payment.
• Redirects customers back to the merchant's page.
Payment confirmation page• Displays information on transaction's success or failure.
• Displays confirmation of the purchase.

Onboarding Checklist

The following table shows the HPP onboarding responsibilities belonging to CellPoint Digital and to you, the merchant:

OwnerOwner ResponsibilitiesDetails
CellPoint DigitalClient onboarding and configuration• Client setup - account and clientid
• API authorization credentials
• Configure redirect URLs for successful and failed transactions
• API version
• Supported country-id list
• Gateway ID: cellpointmobile
MerchantAccept and Reject URLsMerchant to add accept and reject logic to their checkout flow that accepts the CellPoint response as query parameters.

Workflow

The steps below describe the workflow for accepting a payment using CellPoint Digital's Velocity HPP:

  1. The customer begins the checkout steps in the merchant application, and the merchant collects necessary payment information.
  2. When the customer clicks the payment button, the merchant sends a POST request (containing customer and shopping cart data) to CellPoint's HPP URL. The request redirects the customer's browser to the HPP URL.
  3. The HPP opens in the customer's browser. The customer enters and submits the payment information.
  4. CellPoint processes the payment request and returns the customer to the merchant's accept or cancel URL with the results of the transaction in the form data element.

Integration

Complete the following steps to integrate CellPoint's Velocity HPP.

1. Send a POST request to the HPP URL

Endpoint: The HPP URL provided by CellPoint Digital during onboarding
Method: POST

When your customer chooses to proceed to payment, send a POST request to the HPP URL provided by CellPoint during onboarding. (Note that the request body is similar to that of an Initialize API request.) For details about the request, see HPP in the Reference section of this site.

Below is sample code for the request to invoke Velocity HPP:

<!DOCTYPE HTML>
<html>
	<body>
		<form action="https://{HPP_HOST}/views/web.php" method="POST" id="order-form">
			<input type="hidden" name="country" value="200"/>
			<input type="hidden" name="clientid" value="10022"/>
			<input type="hidden" name="account" value="100220"/>
			<input type="hidden" name="accept-url" value="{accept-url}"/>
			<input type="hidden" name="cancel-url" value="{cancel-url}"/>
			<input type="hidden" name="callback-url" value="{callback-url}"/>
			<input type="hidden" name="orderid" value="1561120588855"/>
			<input type="hidden" name="operator" value="20000"/>
			<input type="hidden" name="language" value="us"/>
			<input type="hidden" name="customer-ref" value="test"/>
			<input type="hidden" name="email" value="[email protected]"/>
			<input type="hidden" name="mobile-country" value="200"/>
			<input type="hidden" name="mobile" value="9898989898"/>
			<input type="hidden" name="amount" value="1.232"/>
			<input type="hidden" name="auth-token" value="E814B1DE-2A6A-4A09-B522-13D5CD9829D1"/>
			<input type="hidden" name="init-token" value="f26ebd24d623f228cb8bc37f30939003ffd1c98b2d24ab8be35e9a881521fc1b4b3f82bf131471ff68a9c716c20af08141ff4a1337f0c31ee8ddc75bedb35fd8"/>
			<input type="hidden" name="nonce" value="12345"/>
			<input type="hidden" name="orderdata" value="{JSON order-data}"/>
			<input type="hidden" name="gtm-data" value="{gtmData}"/>
			<input type="hidden" name="profile-id" value="XC2G6BYDBqibRdO06G1OGZq6OBxM"/>
			<input type="hidden" name="response-content-type" value=" 2"/>
			<input type="hidden" name="txntype" value="1|3|5"/>
			<input type="hidden" name="additionaldata" value='{
  "additional_data": {
    "param": [
      {
        "name": "session_token",
        "text": "2A6A4A09B52213D5CD9829D1"
      },
      {
        "name": "hold_fee_amount",
        "text": "150"
      },
      {
        "name": "hold_fee_currency_code",
        "text": "608"
      },
      {
        "name": "hold_period",
        "text": "8"
      },
      {
        "name": "stepper",
        "text": "1"
      }   
    ]
  }
}'/>
			<input type="submit" value="Pay" class="btn-link"/>
		</form>
	</body>
</html>

The customer's browser redirects to the HPP URL, which displays the payment form. Your customer fills in the payment data and clicks the submit payment button.

CellPoint Velocity processes the payment and returns your customer to the accept or cancel URL that you provided in the request body. CellPoint includes the results of the transaction in the form data element when the customer is returned to your site.

2. Display the results of the transaction

Capture the transaction results from the form data when the customer is returned to your accept or reject URL. For accepted transactions, display a success message with the transaction summary. Allow your customer to proceed as normal. For rejected transactions, display the transaction summary and allow the customer to try another payment method or cancel the order.

Here is an example of the form data:

{
    "client_id": "12752",
    "account_id": "127520",
    "session_id": "1999302",
    "sale_amount": {
        "value": "60000",
        "currency_id": "840",
        "decimals": "2",
        "alpha3code": "USD"
    },
    "status": {
        "code": "4030",
        "message": "Session Complete"
    },
    "transactions": {
        "transaction": [
            {
                "id": "80806384",
                "order_id": "GFHJB352",
                "fee": "0",
                "hmac": "5afaa6a66f24f5059b4d22a2617d0237f97fe06e00e9e9b4d9b43c4e7b77bb7ccacb682105d5468c57e62f8191f88815e8d9dd234d1b346741ffc63961bdac3e",
                "product_type": "100",
                "approval_code": "111835",
                "payment_method": "CD",
                "payment_type": "1",
                "date_time": "2025-05-22T16:04:01 00:00",
                "amount": {
                    "value": "60000",
                    "currency_id": "840",
                    "decimals": "2",
                    "alpha3code": "USD",
                    "conversion_rate": "1"
                },
                "sale_amount": {
                    "value": "60000",
                    "currency_id": "840",
                    "decimals": "2",
                    "alpha3code": "USD"
                },
                "status": {
                    "code": "2001",
                    "message": "Payment captured by PSP"
                },
                "psp": {
                    "id": "82",
                    "name": "Nuvei",
                    "external_id": "8110000000008541824"
                },
                "card": {
                    "id": "8",
                    "card_name": "VISA",
                    "masked_card_number": "*************",
                    "expiry": "**/**"
                },
                "customer_info": {
                    "language": "en",
                    "email": "*******",
                    "mobile": "*******",
                    "device_id": "*******"
                },
                "billing_address": {
                    "first_name": "*****",
                    "last_name": "*****",
                    "street": "*****",
                    "street2": "*****",
                    "city": "*****",
                    "state": "*****",
                    "postal_code": "*****",
                    "country": "*****",
                    "mobile": "*****",
                    "email": "*****",
                    "billing_idc": "*****",
                    "alpha2code": "*****"
                },
                "pos": "200",
                "ip_address": "84.79.201.0",
                "fraud_status_code": "3011",
                "fraud_status_desc": "Pre Auth Success",
                "route_config_id": "2266",
                "fraud": {
                    "status_code": "3011",
                    "status_desc": "Pre Auth Success",
                    "pre_auth_ext_id": "7479299554316097104605",
                    "pre_auth_ext_status_code": "100",
                    "pre_auth_provider_id": "64",
                    "pre_auth_fraud_status": "3011"
                },
                "installment": "0",
                "accept_url": "https://cpd-demo.cellpoint.app/confirmation?s=1",
                "cancel_url": "https://cpd-demo.cellpoint.app/confirmation?s=0",
                "txn_type_id": "1",
                "performed_operations": {
                    "performed_operations": [
                        {
                            "amount": "60000",
                            "created": "2025-05-22T16:04:01 00:00",
                            "performedOperations": "1001",
                            "modified": "2025-05-22T16:04:01 00:00",
                            "status": "done"
                        },
                        {
                            "amount": "60000",
                            "created": "2025-05-22T16:05:56 00:00",
                            "performedOperations": "2000",
                            "modified": "2025-05-22T16:05:58 00:00",
                            "status": "done"
                        },
                        {
                            "amount": "60000",
                            "created": "2025-05-22T16:05:58 00:00",
                            "performedOperations": "2001",
                            "modified": "2025-05-22T16:05:58 00:00",
                            "status": "done"
                        }
                    ]
                },
                "performed_operation_time": "2025-05-22T16:05:58 00:00"
            }
        ]
    },
    "callback_url": "https://ehpp2.cellpoint.app/views/redirect_response.php",
    "session_type": "1",
    "order_status": {
        "code": "1"
    }
}

Additional Features

3D-Secure (3DS)

The 3-D Secure 2.0 (3DS) protocol can be used with Velocity HPP for extra fraud protection. The protocol requires certain information about the customer’s device to recognize the overall risk for a given transaction. This process of collecting device information for risk-based analysis is called device fingerprinting.

Due to merchant requirements across multiple regions, the system must identify what Device Data Collection (DDC) needs on a platform level. To fulfill this requirement, the POP system should be able to support this feature for 3DS2-opted payments.

Work with your CellPoint Digital sales representative or account manager to set up the 3DS feature for your HPP integration.

Display Order Data

Velocity HPP supports the ability for merchants from specific domains, such as airlines or hotels, to display booking information to customers after they make payment.

The order object is included in the Initialize operation when Velocity HPP initiates a new payment transaction. Once the payment is initialized, Velocity provides order data in addition to the required transaction information and merchant configuration for the payment to be successfully processed. For details on the order object, see our HPP Reference section.

To set up your HPP integration to display order data, contact your CellPoint Digital sales representative or account manager.

Airline Information Data (AID)

Airline Itinerary Data (AID) can be used in HPP integrations if the merchant qualifies for airline interchange rates and uses an airline MCC (Merchant Category Code). AID can be used to qualify a card purchase for an advantageous interchange rate. It is also used heavily in embedded fraud flows and for displaying booking information (like ticket details or address) to customers after they make payment.

The airline_data object is inside the order object (described in Display Order Data, above) when Velocity HPP sends an Initialize request. Velocity then provides airline data once the payment is initialized. For details on the airline_data (AID) object, see our HPP Reference section.

To set up your HPP integration for AID, contact your CellPoint Digital sales representative or account manager.