Create a Payment Order
/api/pay/v1/ordersAn order contains the total amount and the purchase details against an order. For every order, we generate a unique order ID. It ensures that each order can be identified, referenced, and accessed without confusion or ambiguity. This order_id must be used in our payments API to accept payment against an order.
Bearer token. Get token →Header Parameters
| Field | Details |
|---|---|
Request-Timestampstringdate-time | ISO 8601 UTC timestamp of the request. Used for idempotency and audit. |
Request-IDstring | Use a global unique identifier [GUID] for the request. Constraints Minimum length: 1 characterMaximum length: 50 characters |
Request Bodyrequired
| Field | Details |
|---|---|
merchant_order_referencestringrequired | Idempotency Key. Unique order reference assigned by the merchant. Duplicate requests with the same Constraints Minimum length: 1 characterMaximum length: 50 characters |
order_amountobjectrequired2 nested fields | Monetary amount with currency. |
pre_authboolean | Whether pre-authorization is needed. |
allowed_payment_methodsstring[] | Payment methods to offer the customer. Constraints Allowed item values: CARDUPINETBANKINGPOINTSWALLETCREDIT_EMIDEBIT_EMIBNPLCARDLESS_EMI |
notesstring | Note to show against the order. Constraints Maximum length: 100 characters |
callback_urlstring | URL to redirect customers after successful payment. |
failure_callback_urlstring | URL to redirect customers after failed payment. If not provided, callback_url is used for both. |
purchase_detailsobject3 nested fields | Purchase details including customer information. |
split_infoobject2 nested fields | Split settlement information for marketplace flows. |
is_mcc_transactionstring | Identifies the order type for MCC transactions. Set to "true" for MCC transactions. |
base_amountobject2 nested fields | Monetary amount with currency. |
cart_coupon_discount_amountobject2 nested fields | Monetary amount with currency. |
cross_border_detailsobject4 nested fields | Cross-border payment details for Cross Border Import enabled merchants. Required when the merchant is enabled for cross-border transactions. |
Response
| Field | Details |
|---|---|
dataobject24 nested fields | |
order_idstring | Unique identifier of the order in the Pine Labs Online database. Constraints Maximum length: 50 characters |
merchant_order_referencestring | Unique identifier entered while creating the order. Constraints Minimum length: 1 characterMaximum length: 50 characters |
typestring | Payment type. Allowed values: CHARGEREFUNDADD_MONEY |
statusstring | Order status. Settled and Settlement Rejected status will be for Cross border only. Allowed values: CREATEDPENDINGPROCESSEDAUTHORIZEDCANCELLEDATTEMPTEDFAILEDFULLY_REFUNDEDPARTIALLY_REFUNDEDSETTLEDSETTLEMENT_REJECTED |
challenge_urlstring | URL to accept payment. Returned only after payment is linked against the order_id. |
merchant_idstring | Unique identifier of the merchant in the Pine Labs Online database. |
order_amountobject2 nested fields | Monetary amount with currency. |
pre_authboolean | Whether pre-authorization is needed. |
part_paymentboolean | Whether part payment is enabled. |
allowed_payment_methodsstring[] | |
notesstring | Note shown against the order. |
callback_urlstring | URL to redirect customers after successful payment. |
failure_callback_urlstring | URL to redirect customers after failed payment. |
purchase_detailsobject4 nested fields | |
paymentsPaymentItem[]15 nested fields | Array of payment details. Returned only for orders linked with a payment. |
created_atstringdate-time | ISO 8601 UTC timestamp when the order was created. |
updated_atstringdate-time | ISO 8601 UTC timestamp when the order was last updated. |
integration_modestring | Type of integration. Allowed values: SEAMLESSREDIRECT |
image_urlstring | QR code image URL. Returned for UPI Intent with QR flow. |
payment_retries_remaininginteger | Number of retry attempts remaining before payment is marked as failed. |
is_mcc_transactionboolean | Whether the order is a MCC transaction. |
is_domestic_txn_for_risk_enabledboolean | Whether risk evaluation is enabled for domestic transactions. |
order_tokenstring | Unique identifier of the order token. |
cross_border_detailsobject6 nested fields | System-enriched cross-border details from merchant onboarding configuration. Includes payer_data and tcs_data after payment creation. |
Status Codes
200 | Order created successfully. |
400 | The request was malformed or missing required fields. |
401 | Authentication failed — missing, expired, or invalid Bearer token. |
422 | Unprocessable entity. |
500 | An unexpected error occurred on the server. |
curl -X POST "https://api.pluralpay.in/api/pay/v1/orders" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"merchant_order_reference": "112345",
"order_amount": {
"value": 1100,
"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": "kevin.bob@example.com",
"first_name": "Kevin",
"last_name": "Bob",
"customer_id": "123456",
"mobile_number": "9876543210",
"country_code": "91"
},
"merchant_metadata": {
"key1": "DD",
"key2": "XOF"
}
}
}'{
"data": {
"order_id": "v1-5757575757-aa-hU1rUd",
"merchant_order_reference": "112345",
"type": "CHARGE",
"status": "CREATED",
"callback_url": "https://sample-callback-url",
"failure_callback_url": "https://sample-failure-callback-url",
"merchant_id": "123456",
"order_amount": {
"value": 1100,
"currency": "INR"
},
"pre_auth": false,
"part_payment": false,
"allowed_payment_methods": [
"CARD",
"UPI",
"NETBANKING",
"POINTS",
"WALLET"
],
"notes": "order1",
"created_at": "2024-07-09T07:57:08.022Z",
"updated_at": "2024-07-09T07:57:08.022Z",
"integration_mode": "SEAMLESS",
"payment_retries_remaining": 10,
"is_mcc_transaction": false
}
}