curl --request POST \
--url https://sandbox.cashfree.com/pg/terminal/payments \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"filter": {
"start_date": "2023-08-04T13:12:58+05:30",
"end_date": "2023-08-04T13:12:58+05:30",
"cf_terminal_id": "1234",
"terminal_vpa": "cf.epos@cash",
"terminal_phone_no": "9696969696",
"payment_status": "SUCCESS",
"payment_group": "UPI",
"sort_by": "start_date",
"sort_order": "ASC"
},
"pagination": {
"page_number": 1,
"page_size": 50
}
}
'import requests
url = "https://sandbox.cashfree.com/pg/terminal/payments"
payload = {
"filter": {
"start_date": "2023-08-04T13:12:58+05:30",
"end_date": "2023-08-04T13:12:58+05:30",
"cf_terminal_id": "1234",
"terminal_vpa": "cf.epos@cash",
"terminal_phone_no": "9696969696",
"payment_status": "SUCCESS",
"payment_group": "UPI",
"sort_by": "start_date",
"sort_order": "ASC"
},
"pagination": {
"page_number": 1,
"page_size": 50
}
}
headers = {
"x-api-version": "<x-api-version>",
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-version': '<x-api-version>',
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
filter: {
start_date: '2023-08-04T13:12:58+05:30',
end_date: '2023-08-04T13:12:58+05:30',
cf_terminal_id: '1234',
terminal_vpa: 'cf.epos@cash',
terminal_phone_no: '9696969696',
payment_status: 'SUCCESS',
payment_group: 'UPI',
sort_by: 'start_date',
sort_order: 'ASC'
},
pagination: {page_number: 1, page_size: 50}
})
};
fetch('https://sandbox.cashfree.com/pg/terminal/payments', 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://sandbox.cashfree.com/pg/terminal/payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'filter' => [
'start_date' => '2023-08-04T13:12:58+05:30',
'end_date' => '2023-08-04T13:12:58+05:30',
'cf_terminal_id' => '1234',
'terminal_vpa' => 'cf.epos@cash',
'terminal_phone_no' => '9696969696',
'payment_status' => 'SUCCESS',
'payment_group' => 'UPI',
'sort_by' => 'start_date',
'sort_order' => 'ASC'
],
'pagination' => [
'page_number' => 1,
'page_size' => 50
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-version: <x-api-version>",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.cashfree.com/pg/terminal/payments"
payload := strings.NewReader("{\n \"filter\": {\n \"start_date\": \"2023-08-04T13:12:58+05:30\",\n \"end_date\": \"2023-08-04T13:12:58+05:30\",\n \"cf_terminal_id\": \"1234\",\n \"terminal_vpa\": \"cf.epos@cash\",\n \"terminal_phone_no\": \"9696969696\",\n \"payment_status\": \"SUCCESS\",\n \"payment_group\": \"UPI\",\n \"sort_by\": \"start_date\",\n \"sort_order\": \"ASC\"\n },\n \"pagination\": {\n \"page_number\": 1,\n \"page_size\": 50\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-version", "<x-api-version>")
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.cashfree.com/pg/terminal/payments")
.header("x-api-version", "<x-api-version>")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"filter\": {\n \"start_date\": \"2023-08-04T13:12:58+05:30\",\n \"end_date\": \"2023-08-04T13:12:58+05:30\",\n \"cf_terminal_id\": \"1234\",\n \"terminal_vpa\": \"cf.epos@cash\",\n \"terminal_phone_no\": \"9696969696\",\n \"payment_status\": \"SUCCESS\",\n \"payment_group\": \"UPI\",\n \"sort_by\": \"start_date\",\n \"sort_order\": \"ASC\"\n },\n \"pagination\": {\n \"page_number\": 1,\n \"page_size\": 50\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/pg/terminal/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-version"] = '<x-api-version>'
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"filter\": {\n \"start_date\": \"2023-08-04T13:12:58+05:30\",\n \"end_date\": \"2023-08-04T13:12:58+05:30\",\n \"cf_terminal_id\": \"1234\",\n \"terminal_vpa\": \"cf.epos@cash\",\n \"terminal_phone_no\": \"9696969696\",\n \"payment_status\": \"SUCCESS\",\n \"payment_group\": \"UPI\",\n \"sort_by\": \"start_date\",\n \"sort_order\": \"ASC\"\n },\n \"pagination\": {\n \"page_number\": 1,\n \"page_size\": 50\n }\n}"
response = http.request(request)
puts response.read_body[
{
"cf_terminal_id": 12376123,
"terminal_id": "abcd",
"terminal_vpa": "cf.epose@cashfreensdlpb",
"cf_payment_id": 12394,
"payment_amount": 10.1,
"payment_mode": "UPI_OFFLINE_STATIC",
"payment_status": "SUCCESS",
"payment_time": "2023-11-28T15:59:55+05:30"
}
]{
"message": "bad URL, please check API documentation",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "request_failed",
"type": "invalid_request_error"
}{
"message": "authentication Failed",
"code": "request_failed",
"type": "authentication_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "something_not_found",
"type": "invalid_request_error"
}{
"message": "order with same id is already present",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "order_already_exists",
"type": "invalid_request_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "request_invalid",
"type": "idempotency_error"
}{
"message": "Too many requests from IP. Check headers",
"code": "request_failed",
"type": "rate_limit_error"
}{
"message": "internal Server Error",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "internal_error",
"type": "api_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "bank_processing_failure",
"type": "api_error"
}Get Terminal Payments
Use this API to fetch a paginated list of terminal payment transactions. You can filter results by date range, terminal details, payment status, and other criteria.
curl --request POST \
--url https://sandbox.cashfree.com/pg/terminal/payments \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"filter": {
"start_date": "2023-08-04T13:12:58+05:30",
"end_date": "2023-08-04T13:12:58+05:30",
"cf_terminal_id": "1234",
"terminal_vpa": "cf.epos@cash",
"terminal_phone_no": "9696969696",
"payment_status": "SUCCESS",
"payment_group": "UPI",
"sort_by": "start_date",
"sort_order": "ASC"
},
"pagination": {
"page_number": 1,
"page_size": 50
}
}
'import requests
url = "https://sandbox.cashfree.com/pg/terminal/payments"
payload = {
"filter": {
"start_date": "2023-08-04T13:12:58+05:30",
"end_date": "2023-08-04T13:12:58+05:30",
"cf_terminal_id": "1234",
"terminal_vpa": "cf.epos@cash",
"terminal_phone_no": "9696969696",
"payment_status": "SUCCESS",
"payment_group": "UPI",
"sort_by": "start_date",
"sort_order": "ASC"
},
"pagination": {
"page_number": 1,
"page_size": 50
}
}
headers = {
"x-api-version": "<x-api-version>",
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-api-version': '<x-api-version>',
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
filter: {
start_date: '2023-08-04T13:12:58+05:30',
end_date: '2023-08-04T13:12:58+05:30',
cf_terminal_id: '1234',
terminal_vpa: 'cf.epos@cash',
terminal_phone_no: '9696969696',
payment_status: 'SUCCESS',
payment_group: 'UPI',
sort_by: 'start_date',
sort_order: 'ASC'
},
pagination: {page_number: 1, page_size: 50}
})
};
fetch('https://sandbox.cashfree.com/pg/terminal/payments', 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://sandbox.cashfree.com/pg/terminal/payments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'filter' => [
'start_date' => '2023-08-04T13:12:58+05:30',
'end_date' => '2023-08-04T13:12:58+05:30',
'cf_terminal_id' => '1234',
'terminal_vpa' => 'cf.epos@cash',
'terminal_phone_no' => '9696969696',
'payment_status' => 'SUCCESS',
'payment_group' => 'UPI',
'sort_by' => 'start_date',
'sort_order' => 'ASC'
],
'pagination' => [
'page_number' => 1,
'page_size' => 50
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-version: <x-api-version>",
"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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.cashfree.com/pg/terminal/payments"
payload := strings.NewReader("{\n \"filter\": {\n \"start_date\": \"2023-08-04T13:12:58+05:30\",\n \"end_date\": \"2023-08-04T13:12:58+05:30\",\n \"cf_terminal_id\": \"1234\",\n \"terminal_vpa\": \"cf.epos@cash\",\n \"terminal_phone_no\": \"9696969696\",\n \"payment_status\": \"SUCCESS\",\n \"payment_group\": \"UPI\",\n \"sort_by\": \"start_date\",\n \"sort_order\": \"ASC\"\n },\n \"pagination\": {\n \"page_number\": 1,\n \"page_size\": 50\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-version", "<x-api-version>")
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.cashfree.com/pg/terminal/payments")
.header("x-api-version", "<x-api-version>")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"filter\": {\n \"start_date\": \"2023-08-04T13:12:58+05:30\",\n \"end_date\": \"2023-08-04T13:12:58+05:30\",\n \"cf_terminal_id\": \"1234\",\n \"terminal_vpa\": \"cf.epos@cash\",\n \"terminal_phone_no\": \"9696969696\",\n \"payment_status\": \"SUCCESS\",\n \"payment_group\": \"UPI\",\n \"sort_by\": \"start_date\",\n \"sort_order\": \"ASC\"\n },\n \"pagination\": {\n \"page_number\": 1,\n \"page_size\": 50\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/pg/terminal/payments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-version"] = '<x-api-version>'
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"filter\": {\n \"start_date\": \"2023-08-04T13:12:58+05:30\",\n \"end_date\": \"2023-08-04T13:12:58+05:30\",\n \"cf_terminal_id\": \"1234\",\n \"terminal_vpa\": \"cf.epos@cash\",\n \"terminal_phone_no\": \"9696969696\",\n \"payment_status\": \"SUCCESS\",\n \"payment_group\": \"UPI\",\n \"sort_by\": \"start_date\",\n \"sort_order\": \"ASC\"\n },\n \"pagination\": {\n \"page_number\": 1,\n \"page_size\": 50\n }\n}"
response = http.request(request)
puts response.read_body[
{
"cf_terminal_id": 12376123,
"terminal_id": "abcd",
"terminal_vpa": "cf.epose@cashfreensdlpb",
"cf_payment_id": 12394,
"payment_amount": 10.1,
"payment_mode": "UPI_OFFLINE_STATIC",
"payment_status": "SUCCESS",
"payment_time": "2023-11-28T15:59:55+05:30"
}
]{
"message": "bad URL, please check API documentation",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "request_failed",
"type": "invalid_request_error"
}{
"message": "authentication Failed",
"code": "request_failed",
"type": "authentication_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "something_not_found",
"type": "invalid_request_error"
}{
"message": "order with same id is already present",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "order_already_exists",
"type": "invalid_request_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "request_invalid",
"type": "idempotency_error"
}{
"message": "Too many requests from IP. Check headers",
"code": "request_failed",
"type": "rate_limit_error"
}{
"message": "internal Server Error",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "internal_error",
"type": "api_error"
}{
"message": "something is not found",
"help": "Check latest errors and resolution from Merchant Dashboard API logs: https://bit.ly/4glEd0W Help Document: https://bit.ly/4eeZYO9",
"code": "bank_processing_failure",
"type": "api_error"
}Authorizations
Client app ID. You can find your app id in the Merchant Dashboard.
Client secret key. You can find your secret key in the Merchant Dashboard.
Headers
API version to be used.
Request ID for the API call. Can be used to resolve tech issues. Communicate this in your tech related queries to Cashfree.
An idempotency key is a unique identifier you include with your API call. If the request fails or times out, you can safely retry it using the same key to avoid duplicate actions.
Body
Request parameters to fetch a paginated list of terminal payment transactions.
Use this object to filter terminal transactions based on various criteria.
Show child attributes
Show child attributes
{
"start_date": "2023-08-04T13:12:58+05:30",
"end_date": "2023-08-04T13:12:58+05:30",
"cf_terminal_id": 1234,
"terminal_vpa": "cf.epos@cash",
"terminal_phone_no": "9696969696",
"payment_status": "SUCCESS",
"payment_group": "UPI",
"sort_by": "start_date",
"sort_order": "ASC"
}
Use this object to configure pagination for terminal transaction results.
Show child attributes
Show child attributes
{ "page_number": 1, "page_size": 50 }
Response
Success response for fetching a paginated list of terminal payment transactions.
Unique Cashfree terminal identifier.
Merchant-defined terminal identifier.
Virtual payment address (VPA) associated with the terminal.
Unique Cashfree payment identifier.
Payment transaction amount in the specified currency.
Payment method used for the transaction (for example, UPI_OFFLINE_STATIC).
Current status of the payment transaction (SUCCESS, FAILED, or PENDING).
Timestamp when the payment was processed in ISO8601 format.
The error details are present only for failed payments.
Show child attributes
Show child attributes
{
"error_code": "TRANSACTION_DECLINED",
"error_description": "issuer bank or payment service provider declined the transaction",
"error_reason": "auth_declined",
"error_source": "customer",
"error_code_raw": "ZM",
"error_description_raw": "INVALID / INCORRECT MPIN",
"error_subcode_raw": ""
}
Was this page helpful?