session_id and order_id for redirecting customers to the checkout pageorder_id and intent_uriorder_id and a confirmation messageorder_id and an acs_template (Base64) for 3D Securereference_id: Unique identifier for the orderamount: Payment amount in decimal formatcurrency: 3-letter ISO currency code (e.g., INR)return_url: URL to redirect after payment completionbuyer: Buyer details objectproduct: Product details objectcollection_mode: Payment collection mode (hosted_payment or s2s)mop_type: Method of payment (upi, credit_card, debit_card, net_banking, qr)upi_flow_type: UPI flow type (intent or collection) - required when using S2S with UPIvpa: Virtual Payment Address - required when upi_flow_type is collectionupi_app_name: Preferred UPI app - optional, defaults to othersinvoice: Invoice details objectcard_details: Card information object - required when mop_type is credit_card or debit_cardmop_type is credit_card or debit_card), additional buyer information is required:
buyer.ip_address: Customer’s IP address (used for fraud prevention)buyer.user_agent: Customer’s browser user agent (used for fraud prevention)number, cardholder_name, expiry_month, expiry_year, cvv, networktoken: Previously saved card token from the Create Token APIidentifier: Customer identifier used when saving the cardnetwork: Card network (visa, mastercard, etc.)| Name | Type | Required | Description | Constraints |
|---|---|---|---|---|
| amount | string | Yes | Amount to charge, decimal string. | Format: ^[0-9]+(\.[0-9]{1,2})?$; amount must be > 0 and ≤ 10,000,000.00 |
| currency | string | Yes | 3-letter ISO currency code. | Supported: INR |
| reference_id | string | Yes | Merchant-side unique reference for the order. | 1–50 chars; use letters, numbers, and dashes; unique per merchant while order is active |
| collection_mode | string | No | Mode of payment collection. | Enum: hosted_payment, s2s; default hosted_payment |
| mop_type | string | No | Method of payment. | Enum: upi, credit_card, debit_card, net_banking, wallet, qr |
| upi_flow_type | string | Conditionally | UPI flow when mop_type is UPI and collection_mode is s2s. | Required if mop_type=UPI and collection_mode=s2s; Enum: intent, collection |
| vpa | string | Conditionally | Customer VPA for UPI collection. | Required if upi_flow_type=collection; Format: username@bank |
| upi_app_name | string | No | Preferred UPI app for intent optimization. | Enum (examples): google_pay, phonepe, paytm, bhim, amazon_pay, others; default others |
| return_url | string | Yes | URL to redirect after payment/auth completion. | HTTPS URL recommended |
| buyer | object | Yes | Buyer/customer details. | See Buyer object |
| product | object | Yes | Product or service being purchased. | See Product object |
| invoice | object | No | Invoice metadata. | See Invoice object |
| card_details | object | Conditionally | Card details or token for card payments. | Required if mop_type is credit_card or debit_card; See Card Details |
| Name | Type | Required | Description | Constraints |
|---|---|---|---|---|
| name | string | Yes | Full name of the buyer. | Max 255 chars; letters, spaces, and common name punctuation (.,-’ ) |
| string | Yes | Email of the buyer. | RFC 5322 email format | |
| phone | string | Yes | Phone number with country code. | Valid phone number; E.164 preferred (e.g., +9198xxxxxxxx) |
| address | object | Yes | Buyer address. | See Address object |
| ip_address | string | Optional | Customer IP address for card fraud checks. | IPv4/IPv6 |
| user_agent | string | Optional | Browser/device user agent for card fraud checks. | typical browser user agent string |
| Name | Type | Required | Description | Constraints |
|---|---|---|---|---|
| line_1 | string | Yes | Address line 1. | Text up to ~255 chars; use standard address characters (letters, numbers, spaces, , . - / #) |
| line_2 | string | No | Address line 2. | Text up to ~255 chars; use standard address characters (letters, numbers, spaces, , . - / #) |
| city | string | Yes | City. | Alphabetic only; Max 255 chars |
| state | string | Yes | State/Province. | Alphabetic only; Max 255 chars |
| postal_code | string | Yes | Postal/ZIP code. | 6 chars |
| Name | Type | Required | Description | Constraints |
|---|---|---|---|---|
| name | string | Yes | Product or service name. | Max 255 chars; letters, numbers, spaces, and common punctuation |
| description | string | No | Description of the product/service. | Max 1024 chars; letters, numbers, spaces, and common punctuation |
| type_of_goods | string | Yes | Nature of goods/services. | Enum: goods, service |
| Name | Type | Required | Description | Constraints |
|---|---|---|---|---|
| number | string | No | Invoice number. | Max 255 chars; letters, numbers, dashes/slashes |
| date | string | No | Invoice date (ISO 8601). | Format: YYYY-MM-DD |
mop_type is credit_card or debit_card:
number (string, required): PAN; numeric 12-19 digitscardholder_name (string, required): Name on card; max 128 charsexpiry_month (string, required): MM format; 01-12expiry_year (string, required): YYYY; current year or latercvv (string, required): 3-4 digitsnetwork (string, required): Enum: visa, mastercard, rupay, amex, diners, discovernickname (string, required): Friendly label; max 64 charsidentifier (string, required): Customer identifier used for future referencetoken (string, required): Token from Create Token APIidentifier (string, required): Customer identifier used when saving the cardnetwork (string, required): Card network; same enum as abovesession_id: Use this to redirect customers to the payment pageorder_id: Unique order identifierorder_id: Unique order identifierintent_uri: UPI intent link that can be used to open UPI apps directlyorder_id: Unique order identifiermessage: Confirmation message about the collection request sent to the VPAorder_id: Unique order identifieracs_template: Base64-encoded HTML template for 3D Secure authenticationacs_template must be decoded from Base64 and rendered in the customer’s browser to complete the 3D Secure authentication process.
upi_app_name parameter helps optimize the intent link for specific UPI applicationsusername@bank (e.g., user@paytm, 9876543210@ybl)acs_template from the responsereturn_url after authenticationip_address and user_agent are required for fraud detection and preventionClient app ID. You can find your app id in the merchant dashboard's developer settings.
Client secret key. You can find your secret in the merchant dashboard's developer settings.
Merchant ID. You can find your merchant ID in the merchant section of the merchant dashboard. Only applicable for PSP merchants.
Order creation request
Amount in decimal format (e.g., "100.00")
3-letter ISO currency code (e.g., INR, USD)
Unique identifier for the order
URL to redirect after payment
Payment collection mode
hosted_payment, s2s Method of payment type (e.g., UPI)
upi, credit_card, net_banking, debit_card, qr UPI flow type (required when collection_mode is s2s and mop_type is UPI)
intent, collection Virtual Payment Address (required when upi_flow_type is collection)
UPI app name (optional, defaults to 'others')
bhim, paytm, google_pay, phonepe, cred, amazon_pay, whatsapp, others