UPI COLLECT
Request Details
| 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> | yes | Different type of constraints that must be applied to the payment |
VPA | String | Yes | VPA against which collect request need to be raised |
Sample Request for Upi Collect Pay Via Phone Number
public async Task<IActionResult> CustomPay()
{
var merchantOrderID = $"Order_{DateTime.UtcNow:yyyyMMddHHmmssfff}";
var metaInfo = MetaInfo.Builder()
.SetUdf1("free-text-value-1")
.SetUdf2("free-text-value-2")
.SetUdf3("free-text-value-3")
.SetUdf4("free-text-value-4")
.SetUdf5("free-text-value-5")
.SetUdf6("free-text-value-6")
.SetUdf7("free-text-value-7")
.SetUdf8("free-text-value-8")
.SetUdf9("free-text-value-9")
.SetUdf10("free-text-value-10")
.SetUdf11("ref_11")
.SetUdf12("tag-12")
.SetUdf13("user@13")
.SetUdf14("code.14")
.SetUdf15("val+15")
.Build();
var payRequest = PgPaymentRequest.UpiIntentPayRequestBuilder()
.SetMerchantOrderId(merchantOrderID)
.SetAmount(100)
.SetDeviceOS("IOS")
.SetTargetApp("PHONEPE")
.SetMerchantCallBackScheme("")
.SetMetaInfo(metaInfo)
.SetExpireAfter(300)
.Build();
try
{
var response = await _customCheckoutClient.Pay(payRequest);
return Ok(response); // Extract response.IntentUrl
}
catch (Exception ex)
{
_logger.LogError(ex, "Custom Pay API Failed");
return StatusCode(500, new { message = ex.Message });
}
}Upi Collect Pay Via VPA
public async Task<IActionResult> CustomPay()
{
var merchantOrderID = $"Order_{DateTime.UtcNow:yyyyMMddHHmmssfff}";
var metaInfo = MetaInfo.Builder()
.SetUdf1("free-text-value-1")
.SetUdf2("free-text-value-2")
.SetUdf3("free-text-value-3")
.SetUdf4("free-text-value-4")
.SetUdf5("free-text-value-5")
.SetUdf6("free-text-value-6")
.SetUdf7("free-text-value-7")
.SetUdf8("free-text-value-8")
.SetUdf9("free-text-value-9")
.SetUdf10("free-text-value-10")
.SetUdf11("ref_11")
.SetUdf12("tag-12")
.SetUdf13("user@13")
.SetUdf14("code.14")
.SetUdf15("val+15")
.Build();
var payRequest = PgPaymentRequest.UpiCollectPayViaVpaRequestBuilder()
.SetMerchantOrderId(merchantOrderID)
.SetAmount(100)
.SetVpa("test@upi")
.SetDeviceOS("IOS")
.SetMetaInfo(metaInfo)
.SetExpireAfter(300)
.SetMessage("Test UPI Collect")
.Build();
try
{
var response = await _customCheckoutClient.Pay(payRequest);
return Ok(response);
}
catch (Exception ex)
{
_logger.LogError(ex, "Custom Pay API Failed");
return StatusCode(500, new { message = ex.Message });
}
}Response
The function will raise the collect request to the above mentioned vpa.
| 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 |