Link transaction
curl --request POST \
--url http://127.0.0.1:3000/transaction/link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"transaction_id": "SONECTljeeQWo99a7TxB"
}
'import requests
url = "http://127.0.0.1:3000/transaction/link"
payload = { "transaction_id": "SONECTljeeQWo99a7TxB" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({transaction_id: 'SONECTljeeQWo99a7TxB'})
};
fetch('http://127.0.0.1:3000/transaction/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://127.0.0.1:3000/transaction/link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'transaction_id' => 'SONECTljeeQWo99a7TxB'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:3000/transaction/link"
payload := strings.NewReader("{\n \"transaction_id\": \"SONECTljeeQWo99a7TxB\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://127.0.0.1:3000/transaction/link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"transaction_id\": \"SONECTljeeQWo99a7TxB\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1:3000/transaction/link")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"transaction_id\": \"SONECTljeeQWo99a7TxB\"\n}"
response = http.request(request)
puts response.read_bodyPOS Integration
Link transaction
Once the transaction is confirmed, POS calls Sonect to share its internal ID for reconciliation purposes. The cashier clicks on OK on the POS interface which would then open the till. This API is crucial as it signals to Sonect if the cashier was able to hand out the money successfully to the user. If the transaction is missing the POS ids, Sonect will investigate during reconciliation.
POST
/
transaction
/
link
Link transaction
curl --request POST \
--url http://127.0.0.1:3000/transaction/link \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"transaction_id": "SONECTljeeQWo99a7TxB"
}
'import requests
url = "http://127.0.0.1:3000/transaction/link"
payload = { "transaction_id": "SONECTljeeQWo99a7TxB" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({transaction_id: 'SONECTljeeQWo99a7TxB'})
};
fetch('http://127.0.0.1:3000/transaction/link', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://127.0.0.1:3000/transaction/link",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'transaction_id' => 'SONECTljeeQWo99a7TxB'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1:3000/transaction/link"
payload := strings.NewReader("{\n \"transaction_id\": \"SONECTljeeQWo99a7TxB\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://127.0.0.1:3000/transaction/link")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"transaction_id\": \"SONECTljeeQWo99a7TxB\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1:3000/transaction/link")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"transaction_id\": \"SONECTljeeQWo99a7TxB\"\n}"
response = http.request(request)
puts response.read_body⌘I

