Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Credit Card Pre-Authorization

Description / Background

We are adding pre-authorisation for on-hold prepayment on Singapore restaurant. A temporary hold of {price} will be placed on the user's card. This is not a charge, user will settle the bill at the restaurant. If user shows up, the hold will be removed. If user doesn't show up, this amount will be applied as a no-show fee.

Glossary

Private (https://app.clickup.com/9003122396/docs/8ca1fpw-35796/8ca1fpw-41516)

Objective

  • Singaporean user can book restaurant using on-hold prepayment
  • Singaporean user can see the "Pre-Authorization" tag under the package name
  • Singaporean user can see the "Pre-Authorization" information on package detail page, checkout page, booking confirmation page and booking confirmation email
  • System will hold user money until user settle the bill at the restaurant
  • User get free cancelation for certain amount of time
  • If user no show, the on hold money will be charged for no-show fee
  • Admin can set the free cancelation time on Time in advance to cancel/modify booking in edit restaurant
  • Admin should set the package payment method to be pre-payment ➝ on hold and using debit / credit card
  • When Admin set the pricing using, Fixed per person:
    1. System logic will ignore package qty
    2. when user book with 1 adult and 1 kids it will count as 2 person (Applied to all of package types AYCE, PP and xperience)

Scope

Admin Dashboard:

  • edit package
  • edit restaurant

User:

  • Store page
  • Package detail page
  • Checkout page
  • Booking confirmation page
  • Booking confirmation email

How to set payment on-hold

  1. Open Admin Dashboard
  2. Open Packages ➝ Pick package type ➝ Pick AYCE package ➝ Edit

* Only works on singapore restaurants

  1. Set the Package Payment to Require pre-payment and On Hold

* please choose debit/credit card payment

  1. Insert the Charge amount (either use relative or fixed per booking)
  2. Open Edit Restaurant (that you want to set the payment to on hold)
  3. Add the Time in advance to cancel/modify booking (in minutes)

* Please make it a round unit of 1 hour (60 minutes) because we haven't handled the feature in minutes (like 40, 20, 30), we can still do it in hours.

How to use Credit Card payment with on-hold

Private (https://app.clickup.com/9003122396/docs/8ca1fpw-37636/8ca1fpw-43836)

Sequence Diagram / Flow

-

ERD

-

Backend Implementation

  • Add omise payment for singapore restaurant
  • Add Time in advance to cancel/modify booking (in minutes) on edit restaurant
  • Add credit card pre authorization detail on booking confirmation email
  • Add require pre authorization on package label

[

github.com

https://github.com/hungryhub-team/hh-server/pull/6148

](https://github.com/hungryhub-team/hh-server/pull/6148)

[

github.com

https://github.com/hungryhub-team/hh-server/commit/dec1fb88c8e75ffd2f1146c83b4e7e476e65f66f

](https://github.com/hungryhub-team/hh-server/commit/dec1fb88c8e75ffd2f1146c83b4e7e476e65f66f)

Frontend Implementation

  • Add free canselation and pre authorization label under package name and on pacakge detail
  • add require pre authorization description under package date available
  • Add pre authorization information on checkout page and booking confirmation page
  • add AVAILABLE_CURRENCY constant
  • Add on hold charge cancel label

[

github.com

https://github.com/hungryhub-team/hh-pegasus/pull/1184

](https://github.com/hungryhub-team/hh-pegasus/pull/1184)

[

github.com

https://github.com/hungryhub-team/hh-pegasus/pull/1187

](https://github.com/hungryhub-team/hh-pegasus/pull/1187)

PRD & Task

Private (https://app.clickup.com/9003122396/docs/8ca1fpw-7922/8ca1fpw-43736)

Private (https://app.clickup.com/t/86cx24ydf)

Design

https://www.figma.com/design/suDZ8JohloPf0kpLZ9AuL7/Checkout-Page?node-id=5218-1926&t=Qc4gdFg3OIlFCw1X-1

API Blueprint

MethodPathURLDescriptionPayload

New Query

DB Schema / Database Migration


Improvement:

Feature NameDateWhat ChangedDescription

How to use Credit Card payment with on-hold

  1. Open Admin Dashboard
  2. Open Packages ➝ Pick package type ➝ Pick AYCE package ➝ Edit

* Only works on singapore restaurants

  1. Set the Package Payment to Require pre-payment and On Hold

* please choose debit/credit card payment

  1. Insert the Charge amount (either use relative or fixed per booking)
  2. Open Edit Restaurant (that you want to set the payment to on hold)
  3. Add the Time in advance to cancel/modify booking (in minutes)

* Please make it a round unit of 1 hour (60 minutes) because we haven't handled the feature in minutes (like 40, 20, 30), we can still do it in hours.

  1. User can book the package using cc payment with on hold.
  2. User can find the tag on the restaurant page, under the package name.
  3. On checkout page, user will find the explanation about the pre-authentication(on-hold) payment

  1. User need to fill their card information before confirm booking
  2. User money will be on hold until they arrive to restaurant
  3. User can still cancel their booking within the given date on the temporary hold information on booking confirmation page