Share-Invoice
This API is used to share merchant’s invoice By providing correct/required request data/fields with the correct access token, merchant user will be able to share invoice.
- POST
Sandbox
https://api-sandbox.sadad.qa/api/invoices/share
Live
https://api-s.sadad.qa/api/invoices/share
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/invoices/share
require 'net/http'
require 'uri'
require 'json'
uri = URI.parse("https://api-s.sadad.qa/api/invoices/share")
request = Net::HTTP::Post.new(uri)
request["Content-Type"] = "application/json"
request["Authorization"] = "{ACCESS_TOKEN}"
request.body = File.read("data.json")
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
puts response.body
import requests
url = "https://api-s.sadad.qa/api/invoices/share"
headers = {
"Content-Type": "application/json",
"Authorization": "{ACCESS_TOKEN}"
}
with open("data.json") as f:
data = f.read()
response = requests.post(url, headers=headers, data=data)
print(response.text)
<?php
$url = "https://api-s.sadad.qa/api/invoices/share";
$data = file_get_contents("data.json");
$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, $data);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.file.Files;
import java.nio.file.Path;
public class SadadAPI {
public static void main(String[] args) throws Exception {
String body = Files.readString(Path.of("data.json"));
HttpRequest request = HttpRequest.newBuilder()
.uri(new URI("https://api-s.sadad.qa/api/invoices/share"))
.header("Content-Type", "application/json")
.header("Authorization", "{ACCESS_TOKEN}")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
const fs = require("fs");
const fetch = require("node-fetch");
const url = "https://api-s.sadad.qa/api/invoices/share";
const data = fs.readFileSync("data.json", "utf8");
fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "{ACCESS_TOKEN}"
},
body: data
})
.then(res => res.text())
.then(data => console.log(data))
.catch(err => console.error(err));
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
data, _ := ioutil.ReadFile("data.json")
req, _ := http.NewRequest("POST", "https://api-s.sadad.qa/api/invoices/share", bytes.NewBuffer(data))
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "{ACCESS_TOKEN}")
client := &http.Client{}
resp, _ := client.Do(req)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
using System;
using System.Net.Http;
using System.Text;
using System.IO;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "{ACCESS_TOKEN}");
var json = File.ReadAllText("data.json");
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api-s.sadad.qa/api/invoices/share", content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
| Field | Type | Description |
|---|---|---|
| Authorization | String | User's unique access-token |
- Header-Example:
{
"Authorization": "BN79o6YNrY4IPP60UF4JmNEM6O8hX9HVUq0e0HWNyo2tt1jqCT9IWnXSBhfr7Mws"
}
Parameter
| Field | Type | Description |
|---|---|---|
| sentvia | Number | Sent via email - 4 or sms - 3 |
| invoicenumber | String | Invoice number to share |
| receiverEmail (optional) | String | If sharing with SMS then provide cell number and if sharing with email then provide email address |
| receivercellno (optional) | String | If sharing with SMS then provide cell number and if sharing with email then provide email address |
- Request-Example:
For SMS:
{
"sentvia": 4,
"invoicenumber": "SD20XXXXXXXXX9",
"receivercellno": "76XXXXXXX3"
}
For Email:
{
"sentvia": 3,
"invoicenumber": "SD20XXXXXXXXX9",
"receiverEmail": "test@mail.com"
}
Success 200
- Success-Response:
{
"result": true
}
Error 4xx
| Name | Description |
|---|---|
| 401 | Authorization Required |
| 400 | Invalid data |
| 404 | Data not found |
- Response (example):
{
"error": {
"statusCode": 401,
"name": "Error",
"message": "Authorization Required"
}
}