iOS Client

Step 1: Create New Order (REST API) 🔗

Please refer Order API Documentation for more details.

Use the below url to create an order in your (backend) server.

UAT URL:
https://uatapiv2.payg.in/payment/api/order

Production URL:
https://apiv2.payg.in/payment/api/order

/create
 


Authorization: basic authentication with base64encoded

PayGAuthentication –
<MerchantAuthenticationKey>:<MerchantAuthenticationToken>:M:<MID>
  
						
 
                     
                        {
                           "MID": "3EMF9915EF35567",
                           "UniqueRequestId": "TEST512scx3",
                           "UserDefinedData": {
                               "UserDefined1": ""
                           },
                           "ProductData": "{'PaymentReason':'OnlineOrder for OrderNo- 1234'}",
                           "RequestDateTime": "06232023",
                           "RedirectUrl": "https://payg.in",
                           "TransactionData": {
                               "AcceptedPaymentTypes": "",
                               "PaymentType": "",
                               "SurchargeType": "",
                               "SurchargeValue": "",
                               "RefTransactionId": "",
                               "IndustrySpecificationCode": "",
                               "PartialPaymentOption": ""
                           },
                           "OrderAmount": "3",
                           "OrderType": "",
                           "OrderAmountData": {
                               "AmountTypeDesc": "3",
                               "Amount": "2"
                           },
                           "CustomerData": {
                               "CustomerId": "123456",
                               "CustomerNotes": "Mens clothing",
                               "FirstName": "Ayush",
                               "LastName": "Rane",
                               "MobileNo": "7887673322",
                               "Email": "ayushtesting12@gmail.com",
                               "EmailReceipt": "true",
                               "BillingAddress": "76, Sch. 115",
                               "BillingCity": "Indore",
                               "BillingState": "MP",
                               "BillingCountry": "India",
                               "BillingZipCode": "452011",
                               "ShippingFirstName": "Ayush",
                               "ShippingLastName": "Rane",
                               "ShippingAddress": "76, Sch. 115",
                               "ShippingCity": "Indore",
                               "ShippingState": "MP",
                               "ShippingCountry": "India",
                               "ShippingZipCode": "452011",
                               "ShippingMobileNo": "9987887733"
                           },
                           "IntegrationData": {
                               "UserName": "Ayush",
                               "Source": "3213",
                               "IntegrationType": "11",
                               "HashData": "",
                               "PlatformId": "1"
                           }
                       }
  
 
 

 let parameters = [
 "OrderStatus":"Initiating",
 "Merchantkeyid": Merchantkeyid,
 "UniqueRequestId": uniqueId,
 "UserDefinedData": ["UserDefined1": ""],
 "RequestDateTime": todaydt,
 "RedirectUrl": RedirectUrl,
 "TransactionData": [
   "AcceptedPaymentTypes": "",
   "PaymentType": "",
   "SurchargeType": "",
   "SurchargeValue": "",
   "RefTransactionId": "",
   "IndustrySpecificationCode": "",
   "PartialPaymentOption": ""
 ],
 "OrderAmount": ModelPayment.tOrderAmt,
 "OrderType": "MOBILE",
 "OrderAmountData": [
   AmountTypeDesc": ModelPayment.tAmtTypeDec,
   "Amount": ModelPayment.tAmount
 ],
 "CustomerData": [
    "CustomerId": CustomerId,
    "CustomerNotes": ModelPayment.tCustomerNotes,
    "FirstName": ModelPayment.tFirstName,
    "LastName": ModelPayment.tLastname,
    "MobileNo": ModelPayment.tMobileNo,
    "Email": ModelPayment.tEmail,
    "EmailReceipt": ModelPayment.tEmailReceipt,
    "BillingAddress": ModelPayment.tBillingAddress,
    "BillingCity": ModelPayment.tBillingCity,
    "BillingState": ModelPayment.tBillingState,
    "BillingCountry": ModelPayment.tBillingCountry,
    "BillingZipCode": ModelPayment.tBillingZipCode,
    "ShippingFirstName" ModelPayment.tBillingShippingFirstName,
    "ShippingLastName": ModelPayment.tBillingShippingLastName,
    "ShippingAddress": ModelPayment.tShippingAddress,
    "ShippingCity": ModelPayment.tShippingCity,
    "ShippingState" ModelPayment.tShippingState,
    "ShippingCountry": ModelPayment.tShippingCountry,
    "ShippingZipCode": ModelPayment.tShippingZipCode,
    "ShippingMobileNo": ModelPayment.tShippingMobileNo
 ],
 "IntegrationData": [
    "UserName": ModelPayment.tUserName,
    "Source":  "MobileSDK",
   "IntegrationType":  "11",
    "HashData": ModelPayment.tHashData,
    "PlatformId": ModelPayment.tPlatformId
 ],
  "submit":  "Submit"
]  as [String : Any]

 let postData = try! JSONSerialization.data(withJSONObject: parameters, options: [])



 
      
         {
            "OrderKeyId": "93281250227M10404UTEST512scx3",
            "MerchantKeyId": 10121,
            "UniqueRequestId": "TEST512scx3",
            "OrderType": "PAYMENT",
            "OrderAmount": 3,
            "OrderId": null,
            "OrderStatus": null,
            "OrderPaymentStatus": 0,
            "OrderPaymentStatusText": null,
            "PaymentStatus": 0,
            "PaymentTransactionId": null,
            "PaymentResponseCode": 0,
            "PaymentApprovalCode": null,
            "PaymentReasonCode": null,
            "PaymentTransactionRefNo": null,
            "PaymentResponseText": null,
            "PaymentMethod": null,
            "PaymentAccount": null,
            "OrderRefundTransactionId": 0,
            "RefundPaymentResponseCode": 0,
            "RefundPaymentResponseText": null,
            "RefundDateTime": null,
            "CardType": null,
            "CardLevel": null,
            "OrderNotes": null,
            "PaymentDateTime": null,
            "UpdatedDateTime": null,
            "PaymentProcessUrl": "https://uat.payg.in/paymentv6/payment-form?OrderKeyId=93281250227M10404UTEST512scx3",
            "CustomerData": {
                "CustomerId": "123456",
                "CustomerNotes": "Mens clothing",
                "FirstName": "Ayush",
                "LastName": "Rane",
                "MobileNo": "7887673322",
                "Email": "ayushtesting12@gmail.com",
                "EmailReceipt": true,
                "BillingAddress": "76, Sch. 115",
                "BillingCity": "Indore",
                "BillingState": "MP",
                "BillingCountry": "India",
                "BillingZipCode": "452011",
                "ShippingFirstName": "Ayush",
                "ShippingLastName": "Rane",
                "ShippingAddress": "76, Sch. 115",
                "ShippingCity": "Indore",
                "ShippingState": "MP",
                "ShippingCountry": "India",
                "ShippingZipCode": "452011",
                "ShippingMobileNo": "9987887733"
            },
            "ProductData": "{'PaymentReason':'OnlineOrder for OrderNo- 1234'}",
            "OrderPaymentCustomerData": {
                "FirstName": "Ayush",
                "LastName": null,
                "Address": null,
                "City": null,
                "State": null,
                "ZipCode": null,
                "Country": null,
                "MobileNo": "7887673322",
                "Email": "ayushtesting12@gmail.com",
                "UserId": null,
                "IpAddress": null
            },
            "UpiLink": null,
            "OrderPaymentTransactionDetail": null,
            "UserDefinedData": {
                "UserDefined1": "",
                "UserDefined2": null,
                "UserDefined3": null,
                "UserDefined4": null,
                "UserDefined5": null,
                "UserDefined6": null,
                "UserDefined7": null,
                "UserDefined8": null,
                "UserDefined9": null,
                "UserDefined10": null,
                "UserDefined11": null,
                "UserDefined12": null,
                "UserDefined13": null,
                "UserDefined14": null,
                "UserDefined15": null,
                "UserDefined16": null,
                "UserDefined17": null,
                "UserDefined18": null,
                "UserDefined19": null,
                "UserDefined20": null
            },
            "SplitPaymentResponse": null,
            "Id": 93281
        }
  
 

Step 2: Payment process url for checkout 🔗

Once your order is created successfully, Then, you will get payment process url and UPI link in response. This payment url is used to redirect to actual payment screen.

Developer can redirect to payment process url using webview. Based on finish method inside webview can compare with the redirect url to navigate back.

UPI Link is for UPI payment. You can use either payment process URL or UPI based on your requirement.

Step 3: Order Details (API Request Parameters) 🔗

You can get order details by passing the below request parameters.

 
      
Authorization: basic authentication with base64encoded
PayGAuthentication –
<MerchantAuthenticationKey>: <MerchantAuthenticationToken>:M: <MID>
      
      

 
          
            {
               "OrderKeyId": "93281250227M10404UTEST512scx3",
               "MID":"3EMF9915EF35567",
               "PaymentType": ""
           }
      
      

 
      
 let parameters = [
          "Merchantkeyid": Merchantkeyid,
          "OrderKeyId": orderKeyId,
          "PaymentTransactionId": null,
          "PaymentType": null,
] as [String : Any]
      
      

 
      
         {
            "OrderKeyId": "93281250227M10404UTEST512scx3",
            "MerchantKeyId": 10121,
            "UniqueRequestId": "TEST512scx3",
            "OrderType": "PAYMENT",
            "OrderAmount": 3.00,
            "OrderId": null,
            "OrderStatus": "1",
            "OrderPaymentStatus": 0,
            "OrderPaymentStatusText": "Paid",
            "PaymentStatus": 0,
            "PaymentTransactionId": "767926",
            "PaymentResponseCode": 1,
            "PaymentApprovalCode": null,
            "PaymentReasonCode": null,
            "PaymentTransactionRefNo": null,
            "PaymentResponseText": "Approved",
            "PaymentMethod": "CreditCard",
            "PaymentAccount": "41111 - XXXX - 1111",
            "OrderRefundTransactionId": 0,
            "RefundPaymentResponseCode": 0,
            "RefundPaymentResponseText": null,
            "RefundDateTime": null,
            "CardType": null,
            "CardLevel": null,
            "OrderNotes": "Internal",
            "PaymentDateTime": "2/27/2025 1:57:09 PM",
            "UpdatedDateTime": "2/27/2025 1:52:35 PM",
            "PaymentProcessUrl": null,
            "CustomerData": {
                "CustomerId": "123456",
                "CustomerNotes": "Mens clothing",
                "FirstName": "Ayush",
                "LastName": "Rane",
                "MobileNo": "7887673322",
                "Email": "ayushtesting12@gmail.com",
                "EmailReceipt": false,
                "BillingAddress": "76, Sch. 115",
                "BillingCity": "Indore",
                "BillingState": "MP",
                "BillingCountry": "India",
                "BillingZipCode": "452011",
                "ShippingFirstName": "Ayush",
                "ShippingLastName": "Rane",
                "ShippingAddress": "76, Sch. 115",
                "ShippingCity": "Indore",
                "ShippingState": null,
                "ShippingCountry": "India",
                "ShippingZipCode": "452011",
                "ShippingMobileNo": "9987887733"
            },
            "ProductData": "{'PaymentReason':'OnlineOrder for OrderNo- 1234'}",
            "OrderPaymentCustomerData": null,
            "UpiLink": null,
            "OrderPaymentTransactionDetail": [
                {
                    "OrderKeyId": "93281250227M10404UTEST512scx3",
                    "MerchantKeyId": 10404,
                    "TransactionId": 767926,
                    "ResponseCode": 1,
                    "ResponseText": "Approved",
                    "TransactionAmount": 3.00
                }
            ],
            "UserDefinedData": {
                "UserDefined1": "",
                "UserDefined2": null,
                "UserDefined3": null,
                "UserDefined4": null,
                "UserDefined5": null,
                "UserDefined6": null,
                "UserDefined7": null,
                "UserDefined8": null,
                "UserDefined9": null,
                "UserDefined10": null,
                "UserDefined11": null,
                "UserDefined12": null,
                "UserDefined13": null,
                "UserDefined14": null,
                "UserDefined15": null,
                "UserDefined16": null,
                "UserDefined17": null,
                "UserDefined18": null,
                "UserDefined19": null,
                "UserDefined20": null
            },
            "SplitPaymentResponse": null,
            "Id": 93281
        }
      
      

Note: Please check the payment status codes from this URL Payment Response codes Note: Please check the error codes from this URL Error codes