---
schema_version: "1"
id: c04fd4cdeef2127544181a5c7236ae34eb616fc2db1497b763f01f313969d834
title: Set Up HiPay Hosted Page Payments
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/commerce/264-0-0/rt_adv_config_3p_int_finance_hipay.md
canonical_url: https://help.salesforce.com/s/articleView?id=commerce.rt_adv_config_3p_int_finance_hipay.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 488412766a124c4bf9fdf648f7e2455457757dff15de7ffc0e01e991b1c8736d
description: HiPay allows Point of Sale to generate a hosted page or payment link where customers can pay securely. Learn how to implement this in CMS implementation and get details of the user flow in the POS app. By enabling HiPay, you provide a secure and trusted payment experience for your customers.
products:
  - Commerce
release: "264"
---
# Set Up HiPay Hosted Page Payments

HiPay allows Point of Sale to generate a hosted page or payment link where customers can pay securely. Learn how to implement this in CMS implementation and get details of the user flow in the POS app. By enabling HiPay, you provide a secure and trusted payment experience for your customers.

- Modern POS App build: 8.0.1 or above
- Platform Support: iPhone & iPad with a terminal device
- Offline Support: No

1. In CMS, go to Integrations> Payment Gateways.
    1. Click CREATE to create a new configuration or click the Edit icon to edit an existing one.
    2. Select HIPAY from the dropdown.
    3. Complete all of the required fields and click SAVE.
2. Next, go to Store Managment > Store Settings > Payment.
    1. Under HiPay, complete the fields and click SAVE.
    2. Enable HiPay PBL For Store (enableHiPayPBLForStore) - A list of comma separated storeIDs where payment with HiPay payment link is enabled.
    3. Time to wait for payment response from Payment provider (payment.timeout.interval.minutes) - The time to wait for the payment response from the payment provider. ![A form displays HiPay settings for enabling payment links and setting a payment response timeout.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_hipay_settings.png)

## POS behavior

All requests to the HiPay Enterprise API require identification through HTTP Basic Authentication. Your API credentials can be found in the Integration section of your HiPay Enterprise back office.

- TerminalUserName: `"XXXX-.hipay-tpp.com"` //API Login
- TerminalPassword: `"Test_987456akqmbyf"` //API Password
- PayByLinkBaseUrl: `"https://stage-api.hipay.com/v1/hpayment"` //HiPay PBLUrl

![A configuration page for a payment gateway.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_hipay_pay_gate_config.png)

### POS App User Flow

1. On the POS, the store associate will add items to the cart and submit the cart.
2. The Point of Sale will call the HiPay API, generate a URL, and send it to the customer.
3. Customer Email: Point of Sale will use the customer email address present in the cart to send the payment link to the customer.![An email displays an order confirmation.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_hipay_pay_link.png)
4. The customer will complete the payment on their device.![A payment screen displays several payment options and a form to enter a full name, card number, expiration date, and CVC.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_hipay_pay_dialog.png)
5. HiPay will be able to notify Point of Sale's server through their notifications system.
6. Point of Sale will provide a URL endpoint to the HiPay back office so they can send the appropriate notifications regarding each transaction.
7. If the notification is unsuccessful, it will automatically retry in the next five seconds, and in the next 10 seconds, etc. It will reach up to a point in which it will do the last retry 24 hours after the first try.
8. The POS will continue polling to get the updated payment status.
9. Once the Point of Sale provides payment status as "APPROVED", the POS makes a request to complete the order.
10. The customer will receive an email notifying them of their purchase. To configure the email template, refer to rt\_cms\_layouts\_templates\_email.xml[Email & Print Templates](https://help.salesforce.com/s/articleView?id=commerce.rt_cms_layouts_templates_email.htm&release=264.0.0&type=5 "Explore the diverse range of Point of Sale email templates designed to enhance communication efficiency. Retail professionals can quickly generate consistent and effective messages, improving customer engagement and satisfaction."). ![An email says thank you for an order and includes payment information.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_hipay_pay_confirmation.png)

#### POS App User Flow Diagram

![A sequence diagram outlines HiPay Hosted Page Link processes.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-commerce-retail-264-0-0-production-enus/17d647fb-8988-49fb-9add-c4f4cc79c9e4/retail/images/rt_adv_config_3p_int_finance_hipay_pay_flow.png)

Image reference: [https://swimlanes.io/d/LY0qqAorE](https://swimlanes.io/d/LY0qqAorE)

### Request Payload Mappings

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col>
              <col>
              <col>
            </colgroup>
            <tbody>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">HiPay Field Name</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">HiPay Field Type</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">PS Order Field</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">orderid(R)</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">OrderId</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">description(R)</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">OrderId</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">currency(R)</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">Merchant’s Currency code</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">amount(R)</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">Number</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">GrandTotal</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">http_accept(R)</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">text/html</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">time_limit_to_pay(R)</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String Default 7 days</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">
                  <p>"Payment.timeout.interval.minutes"</p>
                  <p style="margin-bottom:0;">Property Value -1 min</p>
                </td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">notify_url(R)</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">CallBackUrl</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">operation/Transaction type</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String(Sale/Authorization)</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">Sale</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">tax</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">Number</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">TotalTax</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">shipping</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">Number</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">ShippingTotal</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">cid/Merchant's customer id</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">CustomerId</td>

              </tr>
              <tr class="">
                <td class="slds-cell-wrap" style="vertical-align:top;">email</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">String</td>

                <td class="slds-cell-wrap" style="vertical-align:top;">CustomerEmail</td>

              </tr>
            </tbody>
          </table>

To learn more about HiPay's API and field mappings, refer to [https://developer.hipay.com/api-explorer/hpayment-api](https://developer.hipay.com/api-explorer/hpayment-api).

## Known Issues and Restrictions

- To support the HiPay PBL, the only change is in the flow of making payments. Instead of making the payment on the terminal, the customer is allowed to make the payment on their device. This flow will be handled by the Point of Sale internally.
- Point of Sale has added handling to toggle between the two without any code change so the merchant can revert to hardware mode if needed for backward compatibility. A new store-level property was added:
- A payment link will be shared with the customer by the Point of Sale and the customer has to submit the payment before submitting the order. After successful payment, the store associate will submit the order.
- No tenderType needs to be specified in the request. The POS will send the same SubmitCart request it sends today. There will be no change on the cart page.
- The design is proposed by keeping in mind the current merchant who is using HiPay to complete the transaction and does not allow guest checkout. E.g., SMCP FR.
- The design needs to be reviewed for any merchant who is not using HiPay today and has guest checkout support.
- To avoid payments after the Phase 2 request, the validity of the payment link needs to be less than the payment timeout interval. For example, if the timeout interval is set to 10 mins for a merchant, the HiPay payment link must have a validity of 9 mins (<10 mins).
- The store associate should not cancel the transaction before the timeout.