Refund-Transaction
Refund Transaction
This api is used to refund transaction by providing a transaction number on request. Provided transaction number should be eligible to refund. If the refund is successful then reverse transaction’s details will be provided in response.
Conditions to refund any transaction/eligibility criteria
- Transaction should be within 3 months
- Transaction should be a success.
- POST
Sandbox
https://api-sandbox.sadad.qa/api/transactions/refundTransaction
Live
https://api-s.sadad.qa/api/transactions/refundTransaction
Permission: Merchant
- Curl
- Ruby
- Python
- PHP
- Java
- Node.js
- Go
- .NET
curl -d "@data.json" -H "Content-Type: application/json" -H "Authorization: {ACCESS_TOKEN}" -X POST https://api-s.sadad.qa/api/transactions/refundTransaction
require 'net/http'
require 'json'
uri = URI("https://api-s.sadad.qa/api/transactions/refundTransaction")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "{ACCESS_TOKEN}"
request.body = {
transactionId: "123456",
amount: 50
}.to_json
response = http.request(request)
puts response.body
import requests
url = "https://api-s.sadad.qa/api/transactions/refundTransaction"
headers = {
"Content-Type": "application/json",
"Authorization": "{ACCESS_TOKEN}"
}
payload = {
"transactionId": "123456",
"amount": 50
}
response = requests.post(url, headers=headers, json=payload)
print(response.text)
<?php
$url = "https://api-s.sadad.qa/api/transactions/refundTransaction";
$data = [
"transactionId" => "123456",
"amount" => 50
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Content-Type: application/json",
"Authorization: {ACCESS_TOKEN}"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class RefundTransaction {
public static void main(String[] args) throws Exception {
URL url = new URL("https://api-s.sadad.qa/api/transactions/refundTransaction");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("Authorization", "{ACCESS_TOKEN}");
conn.setDoOutput(true);
String jsonInput = "{\"transactionId\":\"123456\",\"amount\":50}";
OutputStream os = conn.getOutputStream();
os.write(jsonInput.getBytes());
os.flush();
os.close();
System.out.println(conn.getResponseCode());
}
}
fetch("https://api-s.sadad.qa/api/transactions/refundTransaction", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "{ACCESS_TOKEN}"
},
body: JSON.stringify({
transactionId: "123456",
amount: 50
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
package main
import (
"bytes"
"fmt"
"net/http"
)
func main() {
jsonStr := []byte(`{
"transactionId":"123456",
"amount":50
}`)
req, _ := http.NewRequest("POST",
"https://api-s.sadad.qa/api/transactions/refundTransaction",
bytes.NewBuffer(jsonStr))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "{ACCESS_TOKEN}")
client := &http.Client{}
resp, _ := client.Do(req)
fmt.Println(resp.Status)
}
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "{ACCESS_TOKEN}");
var json = @"{
""transactionId"": ""123456"",
""amount"": 50
}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync(
"https://api-s.sadad.qa/api/transactions/refundTransaction",
content
);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
Header
| Field | Type | Description |
|---|---|---|
| Authorization | String | User's unique access-token |
- Header-Example:
{
"Authorization": "BN79o6YNrY4IPP60UF4JmNEM6O8hX9HVUq0e0HWNyo2tt1jqCT9IWnXSBhfr7Mws"
}
Parameter
| Field | Type | Description |
|---|---|---|
| transactionno | String | transaction number to fetch |
- Request-Example:
{
"transactionnumber": "SD33XXXXXXXXXX8"
}
| Field | Type | Description |
|---|---|---|
| entityid | Number | Associated entity id such as invoice/order etc |
| invoicenumber | String | Transaction number |
| isRefund | Boolean | Transaction is refunded or not |
| amount | Number | Transaction amount |
| servicecharge | Number | Service charge of transaction |
| website_ref_no | String | It’s a order_id of checkout page that received from merchant side |
| transaction_summary | String | Transaction summary text |
| refundcharge | Number | If refunded then refund charges |
| id | Number | Unique transaction data id |
| transactiondate | String | Date of transaction |
| transactionentityId | Number | Transaction entity type id such as invoice/order etc |
| transactionmodeId | Number | Transaction payment mode id such as via credit/debit or via sadad |
| transactionstatusId | Number | Transaction status id such as inprogress/success/failure |
| guestuserId | Number | Transaction has been done through non sadad user then received that user id as a guestuserId with detail |
| senderId | Object/Number | Transaction sender id with details |
| receiverId | Object/Number | Transaction receiver id with details |
| transactionentity | Object | Transaction entity id detail |
| transactionstatus | Object | Transaction status id detail |
| transactionmode | Object | Transaction mode id detail |
| guestuser | Object | Guest user id details |
- Success-Response:
{
"entityid": 9230,
"isRefund": false,
"invoicenumber": "SD33XXXXXXXXXX8",
"amount": 1,
"servicecharge": 0.025,
"website_ref_no": null,
"transaction_summary": null,
"refundcharge": 0,
"id": 25291,
"transactiondate": "2021-01-11",
"transactionentityId": 1,
"transactionmodeId": 1,
"transactionstatusId": 3,
"guestuserId": 147,
"senderId": 0,
"receiverId": {
"SadadId": "1853219",
"name": "User1",
"cellnumber": "54XXXXX5",
"id": 466
},
"transactionentity": {
"name": "INVOICE",
"id": 1
},
"transactionstatus": {
"name": "SUCCESS",
"id": 3
},
"transactionmode": {
"name": "CREDIT CARD",
"id": 1
},
"guestuser": {
"cellnumber": "9XXXXXXXXXX3",
"id": 147
}
}
Error 4xx
| Name | Description |
|---|---|
| 401 | Authorization Required |
| 400 | Invalid data |
| 404 | Data not found |
- Response (example):
{
"error": {
"statusCode": 404,
"name": "Error",
"message": "Transaction not found"
}
}