# 6. Payment  Status

### API Endpoint

{% tabs %}
{% tab title="Production" %}

```
Production Base URL /api/GenToken/GetStatus
```

{% endtab %}

{% tab title="Sandbo" %}

```
Sandbox Base URL /api/GenToken/GetStatus
```

{% endtab %}
{% endtabs %}

### **Sample Request & Response**

{% tabs %}
{% tab title="Sample Request" %}

```postman_json
{
    "merchantCode":"xxxxx",
    "authKey":"xxxxx",
    "ReferenceID":"(15 digit number passing during the payment creation)"

}
```

{% endtab %}

{% tab title="Sample Response for Captured" %}

```json
{
  "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
  }
}

```

{% endtab %}

{% tab title="Sample Response for NotCaptured" %}

```
{
  "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
  }
}
```

{% endtab %}

{% tab title="Sample Response For Exception" %}

```
{
  "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
  }
}
```

{% endtab %}
{% endtabs %}

#### Response Explanation

If errorCode is not "0" then check errorMessage for more details.

&#x20;If errorCode is "0" then only check for Result object.

### Response Parameters

| Parameters  | Datatype      | Description                                                |
| ----------- | ------------- | ---------------------------------------------------------- |
| referenceID | String        | 15 digit unique transaction number                         |
| amount      | decimal       | Amount of transaction                                      |
| tranDate    | Integer       | Date of the transaction(DDMMYY)                            |
| result      | string        | Shows the result of the transaction (CANCELED or CAPTURED) |
| isRefunded  | Bool(nulable) | True if refunded                                           |

### Sample code to post data

{% tabs %}
{% tab title="C#" %}

```
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;
  }
```

{% endtab %}

{% tab title="VB.Net" %}

```
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
```

{% endtab %}

{% tab title="PHP" %}

```
<?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 );
?>
```

{% endtab %}

{% tab title="TypeScript" %}

```
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;
  
  }`;
```

{% endtab %}
{% endtabs %}
