Skip to main content

Overview

The Hosted Model allows you to accept multiple payment methods with faster integration and gives you customizable payment pages.

By using the Hosted Model, BBMSL provides a payment page to collect and process sensitive card data, which allows you to get rid of the PCI DSS requirements.

Features#

Supported Payment Methods#

  • Payment Card: Visa, Mastercard
  • Digital Wallet: Apple Pay, Google Pay, Alipay, AlipayHK, WeChat Pay

Supported Currency#

Payment Method/CurrencyHKDUSD
Visa/Mastercardโœ“โœ“
Apple Payโœ“โœ“
Google Payโœ“โœ“
Alipayโœ“
AlipayHKโœ“
WeChat Payโœ“

Customization Options#

  • Page Presentation#

    You can redirect the customer to our hosted checkout page, or embed the payment page into an iframe Html element.

  • Page Design#

    You can upload your company logo and configure the checkout page theme color in BBMSL Merchant Portal. There are also UI options to be enabled through PayAPI request parameters. Two diagrams are shown below indicating the available customization options on desktop and mobile layout,

Docusaurus
Docusaurus

Security#

  • Payment Card: The Hosted Model supports 3-D Secure (3DS) security verification to protect your payment. The 3DS challenge page will be presented automatically if the issuing bank requires it.
  • Digital Wallet: The authentication process is conducted by the wallet's service provider through biometric authentication or username/password.

Payment Flow#

By integrating with the Hosted Model, the merchant only needs to pass the correct request parameters to the designated PayAPI and obtain a checkout page URL to present. All payment-related components are already implemented and well handled. Merchant can then design their application workflow before and after the payment process. A basic workflow of using PayAPI Create: /hosted-checkout/create is shown in the diagram below for reference,

Docusaurus

Error Handling

The merchant need to handle the failure result in different stages. In case of any network errors, you need to query the result of the order instead of assuming it succeeded.