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)
- BRAND_WALLET — Pay using Brand Wallet balance (see Brand 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.
Brand Wallet flow: After a successful Create Payment call with BRAND_WALLET,
the payment enters PENDING status. The wallet provider automatically sends an
OTP to the customer. Call Submit OTP to authorize the payment.
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 | stringrequired | Type of payment method for this payment. Allowed values: CARDUPINETBANKINGWALLETBRAND_WALLETCREDIT_EMIDEBIT_EMICARDLESS_EMIPOINTSBNPL |
payment_option | object | Mandatory object An object that contains the details of the payment options. Use |
additional_payment_details | object | additional payment details |
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 | string | Payment type. Allowed values: CHARGEREFUNDADD_MONEY |
status | string | Order status. Allowed values: 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 | string | Type of integration. Allowed values: 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 | The request was malformed or missing required fields. |
401 | Authentication failed — missing, expired, or invalid Bearer token. |
404 | Order not found. |
422 | Unprocessable entity — validation failed or payment cannot be processed. |
500 | An unexpected error occurred on the server. |
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-003",
"payment_amount": {
"value": 100,
"currency": "INR"
},
"payment_method": "UPI",
"payment_option": {
"upi_details": {
"txn_mode": "COLLECT",
"payer": {
"vpa": "kevinbob@okaxis"
}
}
}
}
]
}'Run this request
order_id{
"data": {
"order_id": "v1-5206071124-aa-mpLhF3",
"merchant_order_reference": "0342ef1e-4606-4c11-8640-705f4d415b6d",
"type": "CHARGE",
"status": "PROCESSED",
"challenge_url": "https://api.pluralpay.in/web/auth/landing/?token=S50xnInJvpcft...",
"merchant_id": "104359",
"order_amount": {
"value": 1000,
"currency": "INR"
},
"pre_auth": 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": "[email protected]",
"first_name": "Kevin",
"last_name": "Bob",
"customer_id": "123456",
"mobile_number": "9876543210",
"country_code": "91"
},
"merchant_metadata": {
"key1": "value1",
"key2": "value2"
}
},
"payments": [
{
"id": "v1-5206071124-aa-mpLhF3-cc-l",
"merchant_payment_reference": "008cf04b-a770-4777-854e-b1e6c1230609",
"status": "PROCESSED",
"payment_amount": {
"value": 1000,
"currency": "INR"
},
"payment_method": "CARD",
"payment_option": {
"card_data": {
"card_type": "CREDIT",
"network_name": "MASTERCARD",
"issuer_name": "HDFC",
"card_category": "NONE",
"country_code": "IND",
"token_txn_type": "ALT_TOKEN",
"last4_digit": "1091",
"save": false,
"is_native_otp_eligible": true
}
},
"acquirer_data": {
"approval_code": "030376",
"acquirer_reference": "202455840588334",
"rrn": "419335023601",
"is_aggregator": true
},
"created_at": "2024-07-11T06:52:12.484Z",
"updated_at": "2024-07-11T06:59:38.260Z"
}
],
"created_at": "2024-07-11T06:52:12.484Z",
"updated_at": "2024-07-11T06:59:38.260Z"
}
}