OmniChannel API flow


Note:  See the API Reference section for the API description: OmniChannel API

Merchants can use the Omnichannel API to request and accept payments from customers through Google Pay by requesting a single identifier (like a phone number) in their purchase flow. This API provides a server-side interface for merchants to initiate a payment call to Google and complete the transaction. This flow is preferred in iOS.

Merchants can pre-populate the user's phone numbers (or ask for input) on their app or website.
Once the user confirms the populated information, the merchant makes a server call to request payment
The Google Pay app directs the user to complete the payment.
The merchant verifies the payment status with their PSP before proceeding to confirm the purchase.

The User Experience is handled by the merchant when using mobile number based push payments on GooglePay. Please refer to GooglePay brand guidelines before implementing it.

Step 1: User selects GooglePay as the preferred Payment Option

Step 2: User is asked to enter the Mobile Number linked to GooglePay in the payment page. Merchants can choose to autofill this field.

Step 3: User clicks on “PAY”. The "walletTxn" API (/txns) is called on click. This triggers a request to the GooglePay account linked to the mobile Number passed. The sample code for transaction initiation via SDK is given below.

Step 4a: The response contains the field “url”. The URL needs to be loaded on a browser. The URL checks Juspay order status. As soon as the user confirms the payment on GooglePay, the browser will redirect to the merchant redirection page.

Step 4b: Instead of loading the URL passed in the response, merchants can handle UI natively and check Juspay order status API for the order confirmation. Once the user pays on GooglePay, the status API will return “CHARGED”. Until then, the status will be “PENDING_VBV”.

JSONObject juspayPayload = new JSONObject();
juspayPayload.put("opName","walletTxn");
juspayPayload.put("paymentMethod","walletObject.walletName");
juspayPayload.put("sdkPresent",""walletObject.walletSdkName"");
juspayPayload.put("walletMobileNumber","walletObject.mobileNumber");

Step5. Merchant can consume the SDK response or call the get order status API and confirm the order.

Platform

sdkPresent value

Android

ANDROID_GOOGLEPAY

iOS

IOS_GOOGLEPAY


Did this page help you?