UPI INTENT
Request
| Parameter Name | Data Type | Mandatory | Description |
|---|---|---|---|
merchantOrderId | String | Yes | Unique order ID generated by merchant |
amount | long | Yes | Amount of order in Paisa |
contraints | List<InstrumentConstraint> | No | Different type of constraints that must be applied to the payment |
deviceOS | String | No | Operating system of the device. Allowed values are: 1. IOS 2. ANDROID |
merchantCallbackScheme | String | No | Required only in case targetApp = PHONEPE and deviceOS = IOS |
targetApp | String | No | The target app identifier for the UPI Intent flow. For IOS: PHONEPE, GPAY, PAYTM. For Android: com.phonepe.app, net.one97.paytm |
import pkg from '@phonepe-pg/pg-sdk-node';
const { CustomCheckoutClient, Env, MetaInfo, CustomCheckoutPayRequest } = pkg;
import { v4 as uuid } from 'uuid';
const clientId = "<clientId>";
const clientSecret = "<clientSecret>";
const clientVersion = 1; //insert your client version here
const env = Env.SANDBOX; //change to Env.PRODUCTION when you go live
const client = CustomCheckoutClient.getInstance(clientId, clientSecret, clientVersion, env);
const merchantOrderId = uuid();
const amount = 100;
const deviceOS = 'IOS';
const targetApp = 'PHONEPE';
const metaInfo = MetaInfo.builder()
.udf1("ext-value-1")
.udf2("free-text-value-2")
.udf3("free-text-value-3")
.udf4("free-text-value-4")
.udf5("free-text-value-5")
.udf6("free-text-value-6")
.udf7("free-text-value-7")
.udf8("free-text-value-8")
.udf9("free-text-value-9")
.udf10("free-text-value-10")
.udf11("ref_11")
.udf12("tag-12")
.udf13("user@13")
.udf14("code.14")
.udf15("val+15")
.build();
const request = CustomCheckoutPayRequest.UpiIntentPayRequestBuilder()
.merchantOrderId(merchantOrderId)
.amount(amount)
.targetApp(targetApp)
.deviceOS(deviceOS)
.metaInfo(metaInfo)
.build();
client.pay(request).then((response) => {
const intentUrl = response.intentUrl;
console.log("Intent URL:", intentUrl);
});Response
Extract the intentUrl from the response received.
| Property | Type | Description |
|---|---|---|
orderId | String | Order Id created by PhonePe |
state | String | State of the order. Initially it will be PENDING. |
expireAt | Long | Order expire date in epoch |
IntentUrl | String | Intent url according to the targetApp mentioned in the request |