Create Payment
/api/pay/v1/orders/{order_id}/paymentsCreate a payment against an existing order. This unified endpoint supports
multiple payment methods differentiated by the payment_method field:
- CARD — Pay with card number or card token (see Card Payments documentation)
- UPI — Pay via UPI Collect or UPI Intent/QR (see UPI Payments documentation)
- NETBANKING — Pay via net banking redirect (see Net Banking documentation)
- WALLET — Pay via digital wallet (see Wallet documentation)
- EMI — Pay via Credit/Debit EMI or Cardless EMI (see Affordability Suite documentation)
- BNPL — Pay via Buy Now Pay Later (see BNPL documentation)
The response returns the full order object with the payment linked.
For redirect-based flows (NetBanking, Wallet, UPI Intent), use the
challenge_url in the response to redirect the customer.
Bearer token. Get token →Path Parameters
| Name | Type | Description |
|---|---|---|
order_id | stringrequired | Unique identifier of the order in the Pine Labs Online database. |
Request Body
| Name | Type | Description |
|---|---|---|
payments | PaymentRequestItem[]required | Array of payment items. Typically contains a single item. |
merchant_payment_reference | stringrequired | Idempotency Key. Unique payment reference assigned by the merchant. Duplicate requests with the same |
payment_amount | objectrequired | Monetary amount with currency. |
payment_method | CARD | UPI | NETBANKING | WALLET | CREDIT_EMI | DEBIT_EMI | CARDLESS_EMI | POINTS | BNPLrequired | Type of payment method for this payment. CARDUPINETBANKINGWALLETCREDIT_EMIDEBIT_EMICARDLESS_EMIPOINTSBNPL |
payment_option | object | Mandatory object An object that contains the details of the payment options. Use |
device_info | object | Device information details. Mandatory for SIMPL and SIMPL3 BNPL providers. |
payer_data | object | Payer details for cross-border transactions. Contains customer identity and address information needed for cross-border compliance. |
tcs_data | object | TCS computation data from the TCS Compute API. Required only when tcs_applicable is true. If TCS is not applicable, do not send this field. |
offer_data | object | An object that contains details related to the offer. Required for CREDIT_EMI, DEBIT_EMI, CARDLESS_EMI, and UPI payment methods. |
Response
| Name | Type | Description |
|---|---|---|
data | object | |
order_id | string | Unique identifier of the order in the Pine Labs Online database. |
merchant_order_reference | string | Unique identifier entered while creating the order. |
type | CHARGE | REFUND | Payment type. CHARGEREFUND |
status | CREATED | PENDING | PROCESSED | AUTHORIZED | CANCELLED | ATTEMPTED | FAILED | FULLY_REFUNDED | PARTIALLY_REFUNDED | Order status. CREATEDPENDINGPROCESSEDAUTHORIZEDCANCELLEDATTEMPTEDFAILEDFULLY_REFUNDEDPARTIALLY_REFUNDED |
challenge_url | string | URL to accept payment. Returned only after payment is linked against the order_id. |
merchant_id | string | Unique identifier of the merchant in the Pine Labs Online database. |
order_amount | object | Monetary amount with currency. |
pre_auth | boolean | Whether pre-authorization is needed. |
part_payment | boolean | Whether part payment is enabled. |
allowed_payment_methods | string[] | |
notes | string | Note shown against the order. |
callback_url | string | URL to redirect customers after successful payment. |
failure_callback_url | string | URL to redirect customers after failed payment. |
purchase_details | object | |
payments | PaymentItem[] | Array of payment details. Returned only for orders linked with a payment. |
created_at | string | ISO 8601 UTC timestamp when the order was created. |
updated_at | string | ISO 8601 UTC timestamp when the order was last updated. |
integration_mode | SEAMLESS | REDIRECT | Type of integration. SEAMLESSREDIRECT |
image_url | string | QR code image URL. Returned for UPI Intent with QR flow. |
payment_retries_remaining | integer | Number of retry attempts remaining before payment is marked as failed. |
is_mcc_transaction | boolean | Whether the order is a MCC transaction. |
is_domestic_txn_for_risk_enabled | boolean | Whether risk evaluation is enabled for domestic transactions. |
order_token | string | Unique identifier of the order token. |
cross_border_details | object | System-enriched cross-border details from merchant onboarding configuration. Includes payer_data and tcs_data after payment creation. |
Status Codes
200 | Payment created successfully. Returns the full order with payment details. |
400 | |
401 | |
404 | Order not found. |
422 | Unprocessable entity — validation failed or payment cannot be processed. |
500 |
curl -X POST "https://api.pluralpay.in/api/pay/v1/orders/{order_id}/payments" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"payments": [
{
"merchant_payment_reference": "pay-ref-001",
"payment_amount": {
"value": 1000,
"currency": "INR"
},
"payment_method": "CARD",
"payment_option": {
"card_details": {
"card_number": "4000000000001091",
"expiry_month": "01",
"expiry_year": "2026",
"cvv": "123",
"name": "Kevin Bob",
"save": true
}
}
}
]
}'Run this request
order_id{
"data": {
"order_id": "v1-5757575757-aa-hU1rUd",
"merchant_order_reference": "112345",
"type": "CHARGE",
"status": "CREATED",
"challenge_url": "https://api.pluralpay.in/web/auth/landing/?token=S50xnInJvpcftOzmuGWUqnLpIe694YPGJiKL%2FdBh5Yl%2Bwb8giJrl6HoTvcKljRVZa3H",
"merchant_id": "123456",
"order_amount": {
"value": 50000,
"currency": "INR"
},
"pre_auth": true,
"part_payment": false,
"allowed_payment_methods": [
"CARD",
"UPI",
"NETBANKING",
"POINTS",
"WALLET"
],
"notes": "order1",
"callback_url": "https://sample-callback-url",
"failure_callback_url": "https://sample-failure-callback-url",
"purchase_details": {
"customer": {
"email_id": "john@example.com",
"first_name": "Kevin",
"last_name": "Bob",
"customer_id": "123456",
"mobile_number": "9876543210",
"country_code": "91",
"billing_address": {
"address1": "10 Downing Street Westminster London",
"address2": "Oxford Street Westminster London",
"address3": "Baker Street Westminster London",
"pincode": "51524036",
"city": "Westminster",
"state": "Westminster",
"country": "London",
"full_name": "Kevin Bob",
"adddress_type": "Home",
"address_category": "billing"
},
"shipping_address": {
"address1": "10 Downing Street Westminster London",
"address2": "Oxford Street Westminster London",
"address3": "Baker Street Westminster London",
"pincode": "51524036",
"city": "Westminster",
"state": "Westminster",
"country": "London",
"full_name": "Kevin Bob",
"adddress_type": "Home",
"address_category": "billing"
},
"is_edit_customer_details_allowed": false
},
"merchant_metadata": {
"clientId": "DD",
"transactionReferenceNo": "pine-1223",
"merchantId": "1234",
"tid": "9000990",
"acquirerName": "HDFC_FSS",
"isOfferDisplayRequired": "true",
"OfferData": "UHJvZHVjdF9Db2RlPSIgIiZQcm9kdWN0X05hbWU9IiImUGF5bWVudF9Nb2RlPUJhbmsgRU1JJkNhcmRfVHlwZT1EZWJpdCBDYXJkJkJhbmtfTmFtZT1IREZDIERlYml0JkVNSV9UZW51cmU9NiZJbnRlcmVzdF9SYXRlPTkuMCZJbnRlcmVzdF9BbW91bnQ9MTM4MTQwJk1vbnRobHlfSW5zdGFsbG1lbnQ9ODk0NjkwJkF1dGhvcml6YXRpb25fQW1vdW50PTEwMCZMb2FuX2Jvb2tpbmdfQW1vdW50PTUyMzAwMDAmSW50ZXJlc3RfQ2FzaGJhY2tfQW1vdW50PTAmSW50ZXJlc3RfQ2FzaGJhY2tfVHlwZT1EZWZlcnJlZCZBZGRpdGlvbmFsX0Nhc2hiYWNrPSIiJkFkZGl0aW9uYWxfQ2FzaGJhY2tfVHlwZT0iIiZEZXNjcmlwdGlvbj1CYW5rIEVNSSZQcm9kdWN0X1ZhbHVlPTUyMzAwMDA",
"tenant_id": "PGATPOS",
"is_offer_validation_required": "true"
},
"split_info": {
"split_type": "AMOUNT",
"split_details": [
{
"split_merchant_id": "1324",
"split_settlement_id": "v1-241118074845-aa-wduUQF-ss-b",
"merchant_settlement_reference": "kshjhfk",
"amount": {
"value": 50000,
"currency": "INR"
},
"on_hold": true,
"status": "HOLD",
"updated_at": "2024-11-18T07:48:45.324Z"
}
]
},
"cart_details": {
"cart_items": [
{
"item_id": "9876",
"item_name": "T Shirt",
"item_description": "Shopping on Diwali Sale",
"item_details_url": "https://chriscross.in/cdn/shop/files/95_800x.jpg",
"item_image_url": "https://chriscross.in/cdn/shop/files/95_800x.jpg",
"item_original_unit_price": 199,
"item_discounted_unit_price": 149,
"item_quantity": 2,
"item_currency": "INR"
}
]
}
},
"payments": [
{
"id": "v1-5206071124-aa-mpLhF3-cc-l",
"merchant_payment_reference": "pay-ref-001",
"status": "PENDING",
"payment_amount": {
"value": 50000,
"currency": "INR"
},
"base_amount": {
"value": 50000,
"currency": "INR"
},
"conversion_rate": 0.0123,
"payment_method": "CARD",
"payment_option": {
"card_data": {
"card_type": "CREDIT",
"network_name": "VISA",
"issuer_name": "HDFC",
"product_name": "Visa Platinum",
"card_category": "CONSUMER",
"country_code": "IND",
"token_txn_type": "ALT_TOKEN",
"last4_digit": "1091",
"save": false,
"is_native_otp_eligible": true
},
"upi_details": {
"txn_mode": "COLLECT",
"payer": {
"vpa": "kevinbob@okaxis"
}
},
"netbanking_details": {
"pay_code": "NB1531",
"txn_mode": "REDIRECT"
},
"wallet_details": {
"wallet_name": "PAYTM"
},
"bnpl_details": {
"mobile": "9876543210",
"bnpl_pay_code": "LAZYPAY"
},
"points_card_details": {
"card_last4": "1234",
"points_redeemed": "500"
},
"cardless_details": {
"pan_number": "ABCDE****F",
"registered_mobile_number": "9876543210"
}
},
"acquirer_data": {
"approval_code": "030376",
"acquirer_reference": "202455840588334",
"rrn": "419335023601",
"is_aggregator": true
},
"offer_data": {
"offer_details": {
"tenure": {
"issuer_offer_parameters": [],
"details": [
{
"product_offer_parameters": [],
"subvention": {
"breakup": {
"brand": {}
}
}
}
]
}
}
},
"error_detail": {
"code": "PAYMENT_DECLINED",
"message": "Transaction declined due to insufficient balance"
},
"capture_data": [
{
"merchant_capture_reference": "f31d8c60-0dc8-4788-a577-5ced930cc175",
"capture_amount": {
"value": 50000,
"currency": "INR"
},
"created_at": "2024-07-19T11:13:21.523516426Z"
}
],
"created_at": "2024-09-11T08:07:55.647Z",
"updated_at": "2024-09-11T08:07:57.115Z"
}
],
"created_at": "2024-07-09T07:57:08.022Z",
"updated_at": "2024-07-09T07:57:08.022Z",
"integration_mode": "SEAMLESS",
"image_url": "https://api.pluralpay.in/qr/image/v1-order-id",
"payment_retries_remaining": 10,
"is_mcc_transaction": false,
"is_domestic_txn_for_risk_enabled": false,
"order_token": "mzohdLMNCzZ2SN3k1Ppglkz4mmk9edyahe34BM%2Fu9gA%3D",
"cross_border_details": {
"flow_type": "NON_LRS",
"purpose_code": "S0101",
"commodity_type": "SERVICES",
"requires_pan": true,
"payer_data": {
"first_name": "Rajesh",
"last_name": "Patel",
"email": "rajesh@techcorp.com",
"phone": "9876543210",
"country_code": "91",
"pan": "KGEPS1880J",
"dob": "1999-04-14",
"name_on_pan": "TechCorp Private Limited",
"address_line_1": "10 Downing Street Westminster London",
"address_line_2": "Oxford Street Westminster London",
"country": "IN",
"is_tcs_declared": true
}
}
}
}