Casheer KW
  • Introduction
  • Integration Steps
  • Types of Integration
    • 1. Standard Pay
    • 2. Plugins
    • 3. SDK
  • Sample Code
    • 1. Get Payment URL
    • 2. Redirect to Payment URL
    • 3. Callback To Merchant Portal
    • 4. Compute HASH
    • 5. Refund Request
    • 6, Payment Status
  • Parameters & Description
  • Payment Methods
  • Test Cards
  • Download Plugins/SDK
  • Direct Pay
    • 1. Generate Merchant Keys
    • 2. Validate Request
    • 3. Initiate Pay
    • 4. Process Payment
  • Modules Setup Guides
    • WooCommerce
    • Drupal Commerce
    • OpenCart
    • Magento 1
    • Magento 2
    • PrestaShop
    • Joomla
    • WHMCS
Powered by GitBook
On this page
  • API Endpoints
  • Sample Request & Response
  • Response Parameters
  • Sample Code to post data
  1. Sample Code

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;
  
  }`;
Previous5. Refund RequestNextParameters & Description

Last updated 3 months ago