curl --request GET \
--url https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/ \
--header 'X-API-Version: <api-key>' \
--header 'X-Client-ID: <api-key>' \
--header 'X-Client-Secret: <api-key>'import requests
url = "https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/"
headers = {
"X-Client-ID": "<api-key>",
"X-Client-Secret": "<api-key>",
"X-API-Version": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Client-ID': '<api-key>',
'X-Client-Secret': '<api-key>',
'X-API-Version': '<api-key>'
}
};
fetch('https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Version: <api-key>",
"X-Client-ID: <api-key>",
"X-Client-Secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Client-ID", "<api-key>")
req.Header.Add("X-Client-Secret", "<api-key>")
req.Header.Add("X-API-Version", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/")
.header("X-Client-ID", "<api-key>")
.header("X-Client-Secret", "<api-key>")
.header("X-API-Version", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Client-ID"] = '<api-key>'
request["X-Client-Secret"] = '<api-key>'
request["X-API-Version"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Domestic payment request details retrieved successfully",
"data": {
"payment_id": "PR4350279153",
"order": {
"order_id": "OD8196969047",
"reference_id": "ORD-2026-000123",
"amount": "1500.00",
"currency": "INR",
"opted_mop_type": "upi",
"buyer": {
"name": "Rahul Sharma",
"email": "[email protected]",
"phone": "+919876543210",
"address": {
"line_1": "12 MG Road",
"line_2": "Indiranagar",
"city": "Bengaluru",
"state": "Karnataka",
"postal_code": "560038"
},
"pan_number": null,
"dob": null
},
"product": {
"name": "Annual software licence",
"description": "12-month subscription",
"hs_code": "99831000",
"hs_code_description": "Professional, technical and other services",
"type_of_goods": "service"
},
"status": "payment_successful",
"status_message": "Payment captured successfully",
"created_at": "2026-10-15T06:44:13.101924Z"
},
"settlement": {
"id": "ST6937597440",
"settlement_id": "67c41a7a-010a-4667-82f2-fb529cdcdbe6",
"settlement_completed_at": "2026-10-16T09:40:58.189094Z",
"settlement_amount": "17.62",
"settlement_currency": "USD",
"utr_number": "UTR2026101600042",
"number_of_transactions": 1,
"created_at": "2026-10-16T09:40:58.199249Z",
"last_updated_at": "2026-10-16T09:40:58.199249Z"
},
"refund": [
{
"refund_id": "RF7781203345",
"refund_amount": "500.00",
"refund_status": "refunded",
"refunded_at": "2026-10-17T11:02:41.000000Z",
"message": null,
"payment_id": "PR4350279153",
"reference_id": "RFD-2026-0007",
"created_at": "2026-10-17T10:58:12.553201Z"
}
],
"collection_mode": "hosted_payment",
"mop_type": "upi",
"bank_ref_num": "629012345678",
"mop_detail": {
"vpa": "rahul@okhdfc"
},
"payment_completed_at": "2026-10-15T06:45:02.000000Z",
"status": "captured",
"status_message": null,
"created_at": "2026-10-15T06:44:13.414209Z"
}
}Get Payment
Retrieve one payment with its order, settlement, refunds and method-of-payment details.
curl --request GET \
--url https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/ \
--header 'X-API-Version: <api-key>' \
--header 'X-Client-ID: <api-key>' \
--header 'X-Client-Secret: <api-key>'import requests
url = "https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/"
headers = {
"X-Client-ID": "<api-key>",
"X-Client-Secret": "<api-key>",
"X-API-Version": "<api-key>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Client-ID': '<api-key>',
'X-Client-Secret': '<api-key>',
'X-API-Version': '<api-key>'
}
};
fetch('https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Version: <api-key>",
"X-Client-ID: <api-key>",
"X-Client-Secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Client-ID", "<api-key>")
req.Header.Add("X-Client-Secret", "<api-key>")
req.Header.Add("X-API-Version", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/")
.header("X-Client-ID", "<api-key>")
.header("X-Client-Secret", "<api-key>")
.header("X-API-Version", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-pacb-uat.eximpe.com/pg/payments/{payment_id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Client-ID"] = '<api-key>'
request["X-Client-Secret"] = '<api-key>'
request["X-API-Version"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Domestic payment request details retrieved successfully",
"data": {
"payment_id": "PR4350279153",
"order": {
"order_id": "OD8196969047",
"reference_id": "ORD-2026-000123",
"amount": "1500.00",
"currency": "INR",
"opted_mop_type": "upi",
"buyer": {
"name": "Rahul Sharma",
"email": "[email protected]",
"phone": "+919876543210",
"address": {
"line_1": "12 MG Road",
"line_2": "Indiranagar",
"city": "Bengaluru",
"state": "Karnataka",
"postal_code": "560038"
},
"pan_number": null,
"dob": null
},
"product": {
"name": "Annual software licence",
"description": "12-month subscription",
"hs_code": "99831000",
"hs_code_description": "Professional, technical and other services",
"type_of_goods": "service"
},
"status": "payment_successful",
"status_message": "Payment captured successfully",
"created_at": "2026-10-15T06:44:13.101924Z"
},
"settlement": {
"id": "ST6937597440",
"settlement_id": "67c41a7a-010a-4667-82f2-fb529cdcdbe6",
"settlement_completed_at": "2026-10-16T09:40:58.189094Z",
"settlement_amount": "17.62",
"settlement_currency": "USD",
"utr_number": "UTR2026101600042",
"number_of_transactions": 1,
"created_at": "2026-10-16T09:40:58.199249Z",
"last_updated_at": "2026-10-16T09:40:58.199249Z"
},
"refund": [
{
"refund_id": "RF7781203345",
"refund_amount": "500.00",
"refund_status": "refunded",
"refunded_at": "2026-10-17T11:02:41.000000Z",
"message": null,
"payment_id": "PR4350279153",
"reference_id": "RFD-2026-0007",
"created_at": "2026-10-17T10:58:12.553201Z"
}
],
"collection_mode": "hosted_payment",
"mop_type": "upi",
"bank_ref_num": "629012345678",
"mop_detail": {
"vpa": "rahul@okhdfc"
},
"payment_completed_at": "2026-10-15T06:45:02.000000Z",
"status": "captured",
"status_message": null,
"created_at": "2026-10-15T06:44:13.414209Z"
}
}Overview
Returns the full record of one payment: the order it belongs to, the settlement that paid it out, any refunds against it, and details of the method the buyer used. Take thepayment_id from List Payments or from a payment webhook.
X-Merchant-ID is not needed here, and does not narrow the lookup.Payment status
status is the payment’s status as recorded: pending, captured or failed.
pending here. List Payments shows the same payment as failed. Treat a pending payment whose order has passed its expiry as failed.order.status is the order’s status, not the payment’s: payment_pending, payment_successful or failed. An order can have several payments, one per attempt, so a failed payment can belong to a payment_successful order.
Response Fields
order.amountis a decimal string with two places, e.g."1500.00". The same applies tosettlement.settlement_amountandrefund[].refund_amount. Parse them as decimals, never as floats.settlementisnulluntil the payment is settled.refundlists refunds against the payment, newest first, and is[]when there are none.refund_statusis one ofinitiated,processing,refunded,failed,reversed,on_holdorbank_rejected_refund.collection_modeis how the payment was collected:hosted_payment,payment_linkors2s.mop_typeandorder.opted_mop_typeare lowercase, e.g.upiorcredit_card.opted_mop_typeis the method chosen when the order was created;mop_typeis the one the buyer actually used.mop_detaildepends onmop_type:
mop_type | mop_detail |
|---|---|
upi | vpa |
credit_card, debit_card | card_last_4_digits, card_holder_name, card_issuer_country, card_issuer_bank |
net_banking | bank_ref_num, acq_id |
qr, or any other method | null |
mop_detail can be null when the payment provider did not return it.
created_at,payment_completed_at,order.created_at, and the timestamps undersettlementandrefund, are UTC with microseconds, e.g.2026-10-15T06:44:13.414209Z.
Errors
A payment ID that does not exist, or belongs to a merchant you cannot act for, returns404:
{
"success": false,
"error": {
"code": "ERR_PAYMENT_005",
"message": "Payment not found",
"details": {
"payment_id": "Payment not found"
}
}
}
X-API-Version you send. v1, v2 and v3 integrations share this endpoint and its response.Authorizations
Client Application ID - Your unique application identifier used to authenticate API requests. You can find your Client ID in the Developer Settings section of the merchant dashboard.
Client Secret Key - Your secret key used alongside the Client ID for secure authentication. Keep this confidential and never expose it in client-side code. Available in the Developer Settings section of the merchant dashboard.
API Version - Specifies which version of the API to use (e.g., '1.X.X', '2.X.X', or '3.X.X'). This header allows you to control which API version your integration uses. Default version information is available in the Developer Settings.
Path Parameters
Payment ID, e.g. PR4350279153.