Process Cashback
curl --request POST \
--url https://tokens.shakesco.com/process-cashback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_ref": "<string>",
"spent_amount": 123,
"currency": "<string>"
}
'import requests
url = "https://tokens.shakesco.com/process-cashback"
payload = {
"customer_ref": "<string>",
"spent_amount": 123,
"currency": "<string>"
}
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({customer_ref: '<string>', spent_amount: 123, currency: '<string>'})
};
fetch('https://tokens.shakesco.com/process-cashback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tokens.shakesco.com/process-cashback",
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([
'customer_ref' => '<string>',
'spent_amount' => 123,
'currency' => '<string>'
]),
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 := "https://tokens.shakesco.com/process-cashback"
payload := strings.NewReader("{\n \"customer_ref\": \"<string>\",\n \"spent_amount\": 123,\n \"currency\": \"<string>\"\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("https://tokens.shakesco.com/process-cashback")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_ref\": \"<string>\",\n \"spent_amount\": 123,\n \"currency\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tokens.shakesco.com/process-cashback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_ref\": \"<string>\",\n \"spent_amount\": 123,\n \"currency\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{ "tx_hash": "0xabc..." }
{ "error": "Cashback not configured for this business" }
Governance & Cashback
Process Cashback
Record a customer purchase and auto-credit cashback if they hit the threshold
POST
/
process-cashback
Process Cashback
curl --request POST \
--url https://tokens.shakesco.com/process-cashback \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customer_ref": "<string>",
"spent_amount": 123,
"currency": "<string>"
}
'import requests
url = "https://tokens.shakesco.com/process-cashback"
payload = {
"customer_ref": "<string>",
"spent_amount": 123,
"currency": "<string>"
}
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({customer_ref: '<string>', spent_amount: 123, currency: '<string>'})
};
fetch('https://tokens.shakesco.com/process-cashback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://tokens.shakesco.com/process-cashback",
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([
'customer_ref' => '<string>',
'spent_amount' => 123,
'currency' => '<string>'
]),
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 := "https://tokens.shakesco.com/process-cashback"
payload := strings.NewReader("{\n \"customer_ref\": \"<string>\",\n \"spent_amount\": 123,\n \"currency\": \"<string>\"\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("https://tokens.shakesco.com/process-cashback")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_ref\": \"<string>\",\n \"spent_amount\": 123,\n \"currency\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tokens.shakesco.com/process-cashback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customer_ref\": \"<string>\",\n \"spent_amount\": 123,\n \"currency\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{ "tx_hash": "0xabc..." }
{ "error": "Cashback not configured for this business" }
For the complete documentation index, see llms.txt.
Adds
spent_amount to the customer’s cashback progress. If the cumulative spend reaches the configured threshold, reward_tokens are credited automatically and the counter rolls over (overflow carries into the next cycle).
Call this after every customer purchase. Returns 404 if you haven’t set up a cashback program yet via /set-cashback.
Treat this as a transaction. If you don’t get a response, check
/cashback-progress before retrying. Duplicate calls will inflate the customer’s progress.Request Body
Your unique identifier for this customer
Amount the customer just spent, in
currencyResponse
Reference identifier for this purchase
await fetch("https://tokens.shakesco.com/process-cashback", {
method: "POST",
headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
customer_ref: "customer-123",
spent_amount: 600,
currency: "KES",
}),
});
{ "tx_hash": "0xabc..." }
{ "error": "Cashback not configured for this business" }
⌘I