Skip to main content
POST
/
expire-tokens
Expire Tokens
curl --request POST \
  --url https://tokens.shakesco.com/expire-tokens \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "customer_ref": "<string>"
}
'
import requests

url = "https://tokens.shakesco.com/expire-tokens"

payload = { "customer_ref": "<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>'})
};

fetch('https://tokens.shakesco.com/expire-tokens', 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/expire-tokens",
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>'
]),
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/expire-tokens"

payload := strings.NewReader("{\n \"customer_ref\": \"<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/expire-tokens")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customer_ref\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://tokens.shakesco.com/expire-tokens")

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

response = http.request(request)
puts response.read_body
{ "tx_hash": "0xghi789..." }
{ "error": "Tokens have not expired yet" }
For the complete documentation index, see llms.txt. Expires every token a customer holds after they’ve been inactive for longer than the period you configured on your token. The full balance is returned to your token reserve. Check whether expiry should run first with /is-expired.
This is irreversible. Run it only when you intend to clear the customer’s balance. The 400 Tokens have not expired yet response is the safety net if you call it early.

Request Body

customer_ref
string
required
Your unique identifier for this customer

Response

tx_hash
string
Reference identifier for the expiry
await fetch("https://tokens.shakesco.com/expire-tokens", {
  method: "POST",
  headers: { Authorization: `Bearer ${API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ customer_ref: "customer-123" }),
});
{ "tx_hash": "0xghi789..." }
{ "error": "Tokens have not expired yet" }