UPI Collect

Use the pay() method to initiate a UPI Collect payment by raising a collect request to the customer’s UPI ID (VPA).

Request Parameters
Parameter NameData TypeMandatoryDescription
merchantOrderIdStringYesUnique merchant order id generated by merchant.
amountLongYesOrder amount in paisa.
contraintsListYesDifferent type of constraints that must be applied to the payment.
vpaStringYesVPA against which collect request need to be raised.
Sample Request
import com.phonepe.sdk.pg.common.models.request.PgPaymentRequest;
import com.phonepe.sdk.pg.common.models.response.PgPaymentResponse;
import java.util.UUID;
import com.phonepe.sdk.pg.Env;
import com.phonepe.sdk.pg.payments.v2.CustomCheckoutClient;
 
String clientId = "<clientId>";
String clientSecret = "<clientSecret>";
Integer clientVersion = <clientVersion>;  //insert your client version here
Env env = Env.SANDBOX;      //change to Env.PRODUCTION when you go live
 
CustomCheckoutClient customCheckoutClient = CustomCheckoutClient.getInstance(clientId, clientSecret,
        clientVersion, env);
 
String merchantOrderId = UUID.randomUUID().toString();
long amount = 100;
String vpa = "<VALID_VPA>";
PgPaymentRequest pgPaymentRequest = PgPaymentRequest.UpiCollectPayViaVpaRequestBuilder()
        .vpa(vpa)
        .amount(amount)
        .merchantOrderId(merchantOrderId)
        .message("Collect Message")
        .build();
 
PgPaymentResponse pgPaymentResponse = customCheckoutClient.pay(pgPaymentRequest);

The function will raise the collect request to the above mentioned vpa.

Field NameData TypeDescription
orderIdStringPG generated internal order id.
stateStringState of the order created, initially it will be PENDING.
expiryAtLongOrder expiry date in epoch (in milliseconds).
Is this article helpful?