Custom – UPI QR

This method is used to initiate a UPI QR via the PhonePe PG Custom Checkout

Parameters

ParameterTypeMandatoryDescription
merchant_transaction_idstrYesThe unique transaction ID assigned by the merchant.
Note:
– merchantTransactionId length should be less than 35 characters
– No Special characters allowed except underscore “_” and hyphen “-“
amountintYesThe amount of the payment. In paise. Minimum 100 i.e. 1 rupee
merchant_user_idstrNoThe ID assigned to the user by the merchant.
Note:
– merchantUserId length should be less than 36 characters
– No Special characters allowed except underscore “_” and hyphen “-“
redirect_urlstrNoThe UI URL to redirect the user after a successful payment.
redirect_modestrNoThe mode of redirection after payment completion.
callback_urlstrNoThe S2S callback URL to which status notifications will be sent.
callback_modestrNoThe mode of callback handling.
merchant_order_idstrNoThe ID of the order assigned by the merchant.
device_osstrNoThe operating system of the device used for the payment. Possible values: ANDROID or IOS.

For Python SDK Version <= 0.0.3, the imports should be:
from phonepe.sdk.pg.payments

For Python SDK Version > 0.0.3, the imports should be:
from phonepe.sdk.pg.payments.v1

Example (Custom – UPI QR)

Python
import uuid from phonepe.sdk.pg.payments.v1.models.request.pg_pay_request import PgPayRequest from phonepe.sdk.pg.payments.v1.payment_client import PhonePePaymentClient from phonepe.sdk.pg.env import Env merchant_id = "<YOUR_MERCHANT_ID>" salt_key = "<YOUR_SALT_KEY>" salt_index = 1 # insert your salt index env = Env.UAT should_publish_events = True phonepe_client = PhonePePaymentClient(merchant_id, salt_key, salt_index, env, should_publish_events) unique_transcation_id = str(uuid.uuid4())[:-2] amount = 100 merchant_user_id = "<YOUR_USER_ID>" callback_url = "https://www.merchant.com/callback" merchant_order_id = "<YOUR_ORDER_ID>" device_os = "ANDROID" redirect_url = "https://www.merchant.com/success" cancel_redirect_url = "https://www.merchant.com/cancel" callback_mode = "POST" upi_qr_request = PgPayRequest.upi_qr_pay_request_builder(merchant_transaction_id=unique_transcation_id, amount=amount, merchant_user_id=merchant_user_id, callback_url=callback_url, merchant_order_id=merchant_order_id, device_os=device_os, redirect_url=redirect_url, cancel_redirect_url=cancel_redirect_url, callback_mode=callback_mode) upi_qr_response = phonepe_client.pay(upi_qr_request) upi_intent_url = upi_qr_response.data.instrument_response.intent_url upi_qr = upi_qr_response.data.instrument_response.qr_data

Returns

The pay function returns a PgPayResponse object. With UpiQrInstrumentResponse object in data.