Python SDK – Create SDK Order

SDK order creation

Used to fetch the token required for UI to init pay requests.

Parameters

Parameter NameData TypeMandatoryDescription
createSdkOrderRequestCreateSdkOrderRequestyesThe request is built using CreateSdkOrderRequest.CustomCheckoutBuilder()

SDK Order Request Builder

Builds SDK order request.

Parameters

Parameter nameData TypeMandatoryDescription
merchant_order_idstryesUnique merchant order id generated by merchant
amountlongyesAmount of order in Paisa
constraintslistyesDifferent type of constraints that must be applied to the payment.
from uuid import uuid4
from phonepe.sdk.pg.payments.v2.custom_checkout_client import CustomCheckoutClient
from phonepe.sdk.pg.payments.v2.models.request.create_sdk_order_request import CreateSdkOrderRequest
from phonepe.sdk.pg.env import Env
from phonepe.sdk.pg.common.models.meta_info import MetaInfo

client_id = "<YOUR_CLIENT_ID>"
client_secret = "<YOUR_CLIENT_SECRET>"
client_version = 1  # Insert your client version here
env = Env.SANDBOX   # Change to Env.PRODUCTION when you go live

custom_checkout_client = CustomCheckoutClient.get_instance(client_id=client_id,
                                                           client_secret=client_secret,
                                                           client_version=client_version,
                                                           env=env)

unique_merchant_order_id = str(uuid4())
amount = 100

meta_info = MetaInfo.Builder() \
    .udf1("free-text-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()

sdk_order_request = CreateSdkOrderRequest.build_custom_checkout_request(
    merchant_order_id=unique_merchant_order_id,
    amount=amount,
    meta_info=meta_info)

create_order_response = custom_checkout_client.create_sdk_order(sdk_order_request=sdk_order_request)
ui_accepted_token = create_order_response.token

The function returns a CreateOrderResponse object with the following properties:

PropertyData TypeDescription
order_idStringOrder ID generated by PhonePe
stateStringState of the Order. Initially it will be PENDING
expire_atLongExpiry time in epoch
tokenStringToken used to access the PG Page.
Is this article helpful?