6, Payment Status
API to get the status of a payment
API Endpoints
Production Base URL /api/GenToken/GetStatus
Sandbox Base URL /api/GenToken/GetStatus
Sample Request & Response
{
"merchantCode":"xxxxx",
"authKey":"xxxxx",
"ReferenceID":"(15 digit number passing during the payment creation)"
{
"errorCode": 0,
"errorMessgae": "",
"result": {
"tranDate": 260125,
"referenceID": 479865896769733,
"amount": 10,
"charges": 0.25,
"paidAmount": 10,
"countryCode": "KW",
"currencyCode": "KWD",
"paymentChannelCode": "KWKNETDCCORE",
"tunnel": "kibtest",
"authCode": "B30286",
"transactionID": "502610000474188",
"refID": "502610000300",
"paymentID": "100502610000004439",
"result": "CAPTURED",
"status": 1,
"merchantRef": null,
"transactionDate": "2025-01-26T12:01:55.4101568",
"processedDate": "2025-01-26T12:02:36.7615293",
"mobile": "0",
"email": null,
"response": "REFUNDED",
"info1": "USA",
"info2": null,
"info3": null,
"settlementDate": null,
"settledDate": null,
"settledBy": null,
"isRefunded": true,
"refundAmount": 10,
"refundedOn": "2025-01-26T12:03:38.637",
"refundRefrence": null,
"commissionAmnt": null,
"serviceAmount": null,
"merchantName": null,
"originalAmount": null,
"commissionDetails": null,
"vat": null,
"vatAmount": null,
"finalCommission": null
}
}
{
"errorCode": 0,
"errorMessgae": "",
"result": {
"tranDate": 260125,
"referenceID": 762532132798579,
"amount": 0.01,
"charges": 0,
"paidAmount": 0.01,
"countryCode": "KW",
"currencyCode": "KWD",
"paymentChannelCode": "KWKFHMPGSCCKWD",
"tunnel": "nbklocal",
"authCode": null,
"transactionID": null,
"refID": null,
"paymentID": "b394481c3e4c4254",
"result": "NOT CAPTURED",
"status": 2,
"merchantRef": "SESSION0002044905074I70319456L0",
"transactionDate": "2025-01-26T12:08:14.0891371",
"processedDate": "2025-01-26T13:54:22.0071249+03:00",
"mobile": "0",
"email": null,
"response": "INVALID_REQUEST||Unable+to+find+order+762532132798579+for+merchant+900484001",
"info1": "en_US",
"info2": null,
"info3": "////",
"settlementDate": null,
"settledDate": null,
"settledBy": null,
"isRefunded": null,
"refundAmount": null,
"refundedOn": null,
"refundRefrence": null,
"commissionAmnt": null,
"serviceAmount": null,
"merchantName": null,
"originalAmount": null,
"commissionDetails": null,
"vat": null,
"vatAmount": null,
"finalCommission": null
}
}
{
"errorCode": 1,
"errorMessgae": "Transaction not found at OG.",
"result": {
"tranDate": null,
"referenceID": null,
"amount": null,
"charges": null,
"paidAmount": null,
"countryCode": null,
"currencyCode": null,
"paymentChannelCode": null,
"tunnel": null,
"authCode": null,
"transactionID": null,
"refID": null,
"paymentID": null,
"result": null,
"status": null,
"merchantRef": null,
"transactionDate": null,
"processedDate": null,
"mobile": null,
"email": null,
"response": null,
"info1": null,
"info2": null,
"info3": null,
"settlementDate": null,
"settledDate": null,
"settledBy": null,
"isRefunded": null,
"refundAmount": null,
"refundedOn": null,
"refundRefrence": null,
"commissionAmnt": null,
"serviceAmount": null,
"merchantName": null,
"originalAmount": null,
"commissionDetails": null,
"vat": null,
"vatAmount": null,
"finalCommission": null
}
}
Response Explanation
If errorCode is not "0" then check errorMessage for more details.
If errorCode is "0" then only check for Result object.
Response Parameters
Parameters
Datatype
Description
RefrenceId
Long
15-digit unique transaction number
Amount
decimal
Amount of transaction
tranDate
Integer
date of the transaction in (DDMMYY)
result
string
show the result of the transaction (CANCELED or CAPTURED)
isRefunded
bool(nullable)
true if refunded
Sample Code to post data
public async Task> CheckPaymentStatus(PaymentStatus obj)
{
Output dto = new Output();
var url = {Provided End Point};
var client = new HttpClient();
client.BaseAddress = new Uri(url);
try
{
var resultser = JsonConvert.SerializeObject(obj);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8");
var response = client.PostAsJsonAsync(url, obj).Result;
if (response.IsSuccessStatusCode)
{
var ss = response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject>(ss.Result);
dto = result;
}
else
{
var ss = response.Content.ReadAsStringAsync();
var resps = ss.Result.ToString();
}
}
catch (HttpRequestException ex)
{
}
return dto;
}
Class SurroundingClass
Public Task As async
Private Sub New(ByVal obj As PaymentStatus )
Dim dto As Output = New Output()
Dim url = {Provided End Point};
Dim client = New HttpClient()
client.BaseAddress = New Uri(url)
Try
Dim resultser = JsonConvert.SerializeObject(obj)
client.DefaultRequestHeaders.Accept.Add(New System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"))
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8")
Dim response = client.PostAsJsonAsync(url, obj).Result
If response.IsSuccessStatusCode Then
Dim ss = response.Content.ReadAsStringAsync()
Dim result = JsonConvert.DeserializeObject > (ss.Result)
dto = result
Else
Dim ss = response.Content.ReadAsStringAsync()
Dim resps = ss.Result
Dim resultse = JsonConvert.SerializeObject(resps.ToString())
End If
Catch ex As HttpRequestException
End Try
Return dto
End Sub
End Class
<?php
// referenceID must be 15 digit Payment Number
$referenceID = 123456412250000;
$authKey = 'Your Authorization Key';
$merchantID = 'Your Merchent Key';
$data = array(
'merchantCode' => $merchantID,
'authKey' => $authKey,
'referenceID' => $referenceID,
);
$request = json_encode( $data, true );
if ( !$endpoint ) {
$curl = curl_init( 'Provided End Point' );
} else {
$curl = curl_init( $endpoint );
}
curl_setopt( $curl, CURLOPT_POST, true );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $request );
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $curl, CURLOPT_HTTPHEADER, array( 'Content-Type:application/json' ) );
$ch = curl_exec( $curl );
curl_close( $curl );
$response = json_decode( $ch, true );
?>
pagecode:` public async Task> PaymentStatus(PaymentStatus obj)
{
Output dto = new Output();
var url = {Provided End Point};
var client = new HttpClient();
client.BaseAddress = new Uri(url);
try
{
var resultser = JsonConvert.SerializeObject(obj);
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json; charset=utf-8");
var response = client.PostAsJsonAsync(url, obj).Result;
if (response.IsSuccessStatusCode)
{
var ss = response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject>(ss.Result);
dto = result;
}
else
{
var ss = response.Content.ReadAsStringAsync();
var resps = ss.Result;
var resultse = JsonConvert.SerializeObject(resps.ToString());
}
}
catch (HttpRequestException ex)
{
}
return dto;
}`;
Last updated